]> git.lizzy.rs Git - rust.git/commitdiff
Remove const_{fat_ptr,array,vector,bytes} from cg_ssa
authorbjorn3 <bjorn3@users.noreply.github.com>
Sun, 2 Dec 2018 14:58:40 +0000 (15:58 +0100)
committerbjorn3 <bjorn3@users.noreply.github.com>
Fri, 29 Mar 2019 16:17:12 +0000 (17:17 +0100)
src/librustc_codegen_llvm/common.rs
src/librustc_codegen_ssa/traits/consts.rs

index 4bd036ea3b17a095c54637cd34b38a9f3451156a..aab0d8ac6027125b9ecdab250db65d357f55b104 100644 (file)
@@ -93,6 +93,34 @@ impl BackendTypes for CodegenCx<'ll, 'tcx> {
     type DIScope = &'ll llvm::debuginfo::DIScope;
 }
 
+impl CodegenCx<'ll, 'tcx> {
+    pub fn const_fat_ptr(
+        &self,
+        ptr: &'ll Value,
+        meta: &'ll Value
+    ) -> &'ll Value {
+        assert_eq!(abi::FAT_PTR_ADDR, 0);
+        assert_eq!(abi::FAT_PTR_EXTRA, 1);
+        self.const_struct(&[ptr, meta], false)
+    }
+
+    pub fn const_array(&self, ty: &'ll Type, elts: &[&'ll Value]) -> &'ll Value {
+        unsafe {
+            return llvm::LLVMConstArray(ty, elts.as_ptr(), elts.len() as c_uint);
+        }
+    }
+
+    pub fn const_vector(&self, elts: &[&'ll Value]) -> &'ll Value {
+        unsafe {
+            return llvm::LLVMConstVector(elts.as_ptr(), elts.len() as c_uint);
+        }
+    }
+
+    pub fn const_bytes(&self, bytes: &[u8]) -> &'ll Value {
+        bytes_in_context(self.llcx, bytes)
+    }
+}
+
 impl ConstMethods<'tcx> for CodegenCx<'ll, 'tcx> {
     fn const_null(&self, t: &'ll Type) -> &'ll Value {
         unsafe {
@@ -189,16 +217,6 @@ fn const_str_slice(&self, s: LocalInternedString) -> &'ll Value {
         self.const_fat_ptr(cs, self.const_usize(len as u64))
     }
 
-    fn const_fat_ptr(
-        &self,
-        ptr: &'ll Value,
-        meta: &'ll Value
-    ) -> &'ll Value {
-        assert_eq!(abi::FAT_PTR_ADDR, 0);
-        assert_eq!(abi::FAT_PTR_EXTRA, 1);
-        self.const_struct(&[ptr, meta], false)
-    }
-
     fn const_struct(
         &self,
         elts: &[&'ll Value],
@@ -207,22 +225,6 @@ fn const_struct(
         struct_in_context(self.llcx, elts, packed)
     }
 
-    fn const_array(&self, ty: &'ll Type, elts: &[&'ll Value]) -> &'ll Value {
-        unsafe {
-            return llvm::LLVMConstArray(ty, elts.as_ptr(), elts.len() as c_uint);
-        }
-    }
-
-    fn const_vector(&self, elts: &[&'ll Value]) -> &'ll Value {
-        unsafe {
-            return llvm::LLVMConstVector(elts.as_ptr(), elts.len() as c_uint);
-        }
-    }
-
-    fn const_bytes(&self, bytes: &[u8]) -> &'ll Value {
-        bytes_in_context(self.llcx, bytes)
-    }
-
     fn const_get_elt(&self, v: &'ll Value, idx: u64) -> &'ll Value {
         unsafe {
             assert_eq!(idx as c_uint as u64, idx);
index 319f4b4e5e4b5c6b0013328baaab7e9fc370943e..61db94d53d88169d39373c63809beddeefafd049 100644 (file)
@@ -24,11 +24,7 @@ pub trait ConstMethods<'tcx>: BackendTypes {
     fn const_cstr(&self, s: LocalInternedString, null_terminated: bool) -> Self::Value;
 
     fn const_str_slice(&self, s: LocalInternedString) -> Self::Value;
-    fn const_fat_ptr(&self, ptr: Self::Value, meta: Self::Value) -> Self::Value;
     fn const_struct(&self, elts: &[Self::Value], packed: bool) -> Self::Value;
-    fn const_array(&self, ty: Self::Type, elts: &[Self::Value]) -> Self::Value;
-    fn const_vector(&self, elts: &[Self::Value]) -> Self::Value;
-    fn const_bytes(&self, bytes: &[u8]) -> Self::Value;
 
     fn const_get_elt(&self, v: Self::Value, idx: u64) -> Self::Value;
     fn const_get_real(&self, v: Self::Value) -> Option<(f64, bool)>;