De-constify Types in StructType::get() and TargetData::getIntPtrType().
authorJay Foad <jay.foad@gmail.com>
Mon, 11 Jul 2011 09:56:20 +0000 (09:56 +0000)
committerJay Foad <jay.foad@gmail.com>
Mon, 11 Jul 2011 09:56:20 +0000 (09:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134893 91177308-0d34-0410-b5e6-96231b3b80d8

13 files changed:
include/llvm/DerivedTypes.h
include/llvm/Target/TargetData.h
lib/CodeGen/SjLjEHPrepare.cpp
lib/Target/ARM/ARMGlobalMerge.cpp
lib/Target/TargetData.cpp
lib/Transforms/IPO/DeadArgumentElimination.cpp
lib/Transforms/Instrumentation/ProfilingUtils.cpp
lib/Transforms/Utils/CodeExtractor.cpp
lib/VMCore/Constants.cpp
lib/VMCore/Core.cpp
lib/VMCore/Type.cpp
tools/bugpoint/ExtractFunction.cpp
unittests/Support/TypeBuilderTest.cpp

index fa16094ec8c3531919694db984eb9c23f2bd0b3a..0f1e99f13499b9b64b9f905f1ee146eb9d1bdd24 100644 (file)
@@ -204,11 +204,6 @@ public:
 
   /// StructType::get - This static method is the primary way to create a
   /// StructType.
-  ///
-  /// FIXME: Remove the 'const Type*' version of this when types are pervasively
-  /// de-constified.
-  static StructType *get(LLVMContext &Context, ArrayRef<const Type*> Elements,
-                         bool isPacked = false);
   static StructType *get(LLVMContext &Context, ArrayRef<Type*> Elements,
                          bool isPacked = false);
 
@@ -220,7 +215,7 @@ public:
   /// structure types by specifying the elements as arguments.  Note that this
   /// method always returns a non-packed struct, and requires at least one
   /// element type.
-  static StructType *get(const Type *elt1, ...) END_WITH_NULL;
+  static StructType *get(Type *elt1, ...) END_WITH_NULL;
 
   bool isPacked() const { return (getSubclassData() & SCDB_Packed) != 0; }
   
index 32e3e2b0b61735792715cffb121de2e8f5cd963a..10252865c966cddf02f0ee835e5599bdf988ed29 100644 (file)
@@ -259,7 +259,7 @@ public:
   /// getIntPtrType - Return an unsigned integer type that is the same size or
   /// greater to the host pointer size.
   ///
-  const IntegerType *getIntPtrType(LLVMContext &C) const;
+  IntegerType *getIntPtrType(LLVMContext &C) const;
 
   /// getIndexedOffset - return the offset from the beginning of the type for
   /// the specified indices.  This is used to implement getelementptr.
index c2565afe0163af03912192c83de4fb7d7595d699..65a33da93afe7cb3d5bd44024ba3d10b3f1dc095 100644 (file)
@@ -87,9 +87,8 @@ FunctionPass *llvm::createSjLjEHPass(const TargetLowering *TLI) {
 bool SjLjEHPass::doInitialization(Module &M) {
   // Build the function context structure.
   // builtin_setjmp uses a five word jbuf
-  const Type *VoidPtrTy =
-          Type::getInt8PtrTy(M.getContext());
-  const Type *Int32Ty = Type::getInt32Ty(M.getContext());
+  Type *VoidPtrTy = Type::getInt8PtrTy(M.getContext());
+  Type *Int32Ty = Type::getInt32Ty(M.getContext());
   FunctionContextTy =
     StructType::get(VoidPtrTy,                        // __prev
                     Int32Ty,                          // call_site
index f8993792bc67c45054bf57349c3023e9858cd47f..8d77b2d8383e109ae3152bddbe79ea0167566cab 100644 (file)
@@ -128,10 +128,10 @@ bool ARMGlobalMerge::doMerge(SmallVectorImpl<GlobalVariable*> &Globals,
   for (size_t i = 0, e = Globals.size(); i != e; ) {
     size_t j = 0;
     uint64_t MergedSize = 0;
-    std::vector<const Type*> Tys;
+    std::vector<Type*> Tys;
     std::vector<Constant*> Inits;
     for (j = i; j != e; ++j) {
-      const Type *Ty = Globals[j]->getType()->getElementType();
+      Type *Ty = Globals[j]->getType()->getElementType();
       MergedSize += TD->getTypeAllocSize(Ty);
       if (MergedSize > MaxOffset) {
         break;
index 6309a1572c5c3a8a20103ac170f8708d4fd77e84..b2c4b21f680daa23ec33e756b0bee4adbf6e2098 100644 (file)
@@ -535,7 +535,7 @@ unsigned TargetData::getPreferredTypeAlignmentShift(const Type *Ty) const {
 
 /// getIntPtrType - Return an unsigned integer type that is the same size or
 /// greater to the host pointer size.
-const IntegerType *TargetData::getIntPtrType(LLVMContext &C) const {
+IntegerType *TargetData::getIntPtrType(LLVMContext &C) const {
   return IntegerType::get(C, getPointerSizeInBits());
 }
 
index 7eb5a487af8503550c6835e1f0da27a84a9bd468..bbb386c012591854c73f15dfb85b3ec5794df6a2 100644 (file)
@@ -659,13 +659,13 @@ bool DAE::RemoveDeadStuffFromFunction(Function *F) {
 
   // Find out the new return value.
 
-  const Type *RetTy = FTy->getReturnType();
+  Type *RetTy = FTy->getReturnType();
   const Type *NRetTy = NULL;
   unsigned RetCount = NumRetVals(F);
 
   // -1 means unused, other numbers are the new index
   SmallVector<int, 5> NewRetIdxs(RetCount, -1);
-  std::vector<const Type*> RetTypes;
+  std::vector<Type*> RetTypes;
   if (RetTy->isVoidTy()) {
     NRetTy = RetTy;
   } else {
index 4224ee303f07790bb2eeef123b1e21b7e39c2743..327e423839f441cd1a2f653d42753ec88de533a5 100644 (file)
@@ -134,7 +134,7 @@ void llvm::IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNum,
 void llvm::InsertProfilingShutdownCall(Function *Callee, Module *Mod) {
   // llvm.global_dtors is an array of type { i32, void ()* }. Prepare those
   // types.
-  const Type *GlobalDtorElems[2] = {
+  Type *GlobalDtorElems[2] = {
     Type::getInt32Ty(Mod->getContext()),
     FunctionType::get(Type::getVoidTy(Mod->getContext()), false)->getPointerTo()
   };
index fa6641fae51aa5236b01aa6bd5d34ffa76449fbe..9a2e53fd5184c841610d612281e5d4708fdce4d9 100644 (file)
@@ -403,7 +403,7 @@ emitCallAndSwitchStatement(Function *newFunction, BasicBlock *codeReplacer,
 
   AllocaInst *Struct = 0;
   if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
-    std::vector<const Type*> ArgTypes;
+    std::vector<Type*> ArgTypes;
     for (Values::iterator v = StructValues.begin(),
            ve = StructValues.end(); v != ve; ++v)
       ArgTypes.push_back((*v)->getType());
index 57498b485921dd3c004ade3ea55b76187857b67b..1529c4ad48122090404b418f81f2eb5b86ec3e3f 100644 (file)
@@ -619,7 +619,7 @@ Constant *ConstantArray::get(LLVMContext &Context, StringRef Str,
 StructType *ConstantStruct::getTypeForElements(LLVMContext &Context,
                                                ArrayRef<Constant*> V,
                                                bool Packed) {
-  SmallVector<const Type*, 16> EltTypes;
+  SmallVector<Type*, 16> EltTypes;
   for (unsigned i = 0, e = V.size(); i != e; ++i)
     EltTypes.push_back(V[i]->getType());
   
index 07caefa1ec48e12602bae3757bb0c8fef5fd2dcf..15d27233f22eb421fd4c101397c5592630521c10 100644 (file)
@@ -290,7 +290,7 @@ void LLVMGetParamTypes(LLVMTypeRef FunctionTy, LLVMTypeRef *Dest) {
 
 LLVMTypeRef LLVMStructTypeInContext(LLVMContextRef C, LLVMTypeRef *ElementTypes,
                            unsigned ElementCount, LLVMBool Packed) {
-  std::vector<const Type*> Tys;
+  std::vector<Type*> Tys;
   for (LLVMTypeRef *I = ElementTypes,
                    *E = ElementTypes + ElementCount; I != E; ++I)
     Tys.push_back(unwrap(*I));
index 40d232a619fc841d47ad8ec35f611240a17585ce..10467a8d90088e0dcbc84ee7ae7736ea1e426d6f 100644 (file)
@@ -458,22 +458,15 @@ void StructType::setName(StringRef Name) {
 //===----------------------------------------------------------------------===//
 // StructType Helper functions.
 
-// FIXME: Remove this version.
-StructType *StructType::get(LLVMContext &Context, ArrayRef<const Type*>Elements,
-                            bool isPacked) {
-  return get(Context, ArrayRef<Type*>(const_cast<Type**>(Elements.data()),
-             Elements.size()), isPacked);
-}
-
 StructType *StructType::get(LLVMContext &Context, bool isPacked) {
-  return get(Context, llvm::ArrayRef<const Type*>(), isPacked);
+  return get(Context, llvm::ArrayRef<Type*>(), isPacked);
 }
 
-StructType *StructType::get(const Type *type, ...) {
+StructType *StructType::get(Type *type, ...) {
   assert(type != 0 && "Cannot create a struct type with no elements with this");
   LLVMContext &Ctx = type->getContext();
   va_list ap;
-  SmallVector<const llvm::Type*, 8> StructFields;
+  SmallVector<llvm::Type*, 8> StructFields;
   va_start(ap, type);
   while (type) {
     StructFields.push_back(type);
index 7ed15245c19055d71d1cb2447dedc4866614c057..9941add52e255747b080c265101d3f0ffec7630b 100644 (file)
@@ -173,7 +173,7 @@ void llvm::DeleteFunctionBody(Function *F) {
 static Constant *GetTorInit(std::vector<std::pair<Function*, int> > &TorList) {
   assert(!TorList.empty() && "Don't create empty tor list!");
   std::vector<Constant*> ArrayElts;
-  const Type *Int32Ty = Type::getInt32Ty(TorList[0].first->getContext());
+  Type *Int32Ty = Type::getInt32Ty(TorList[0].first->getContext());
   
   const StructType *STy =
     StructType::get(Int32Ty, TorList[0].first->getType(), NULL);
index 52b51b3875753180ac95e553d7546ee014fd8f1a..06091784cf0ca35080fe391fb3d4555fa3ed54a5 100644 (file)
@@ -187,7 +187,7 @@ public:
   static const StructType *get(LLVMContext &Context) {
     // Using the static result variable ensures that the type is
     // only looked up once.
-    std::vector<const Type*> st;
+    std::vector<Type*> st;
     st.push_back(TypeBuilder<int, cross>::get(Context));
     st.push_back(TypeBuilder<int*, cross>::get(Context));
     st.push_back(TypeBuilder<void*[], cross>::get(Context));
@@ -210,7 +210,7 @@ public:
   static const StructType *get(LLVMContext &Context) {
     // Using the static result variable ensures that the type is
     // only looked up once.
-    std::vector<const Type*> st;
+    std::vector<Type*> st;
     st.push_back(TypeBuilder<types::i<32>, cross>::get(Context));
     st.push_back(TypeBuilder<types::i<32>*, cross>::get(Context));
     st.push_back(TypeBuilder<types::i<8>*[], cross>::get(Context));