hide symbols properly
[oota-llvm.git] / lib / Transforms / TransformInternals.cpp
index 3f7d8dbbfa20f9a70c045e77520eb092ac10e520..b6739f40b2ab46fc8f09ebcb2e8cc5fd9abcfbbb 100644 (file)
@@ -1,10 +1,10 @@
 //===- TransformInternals.cpp - Implement shared functions for transforms -===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file was developed by the LLVM research group and is distributed under
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 //  This file defines shared functions used by the different components of the
@@ -14,7 +14,6 @@
 
 #include "TransformInternals.h"
 #include "llvm/Type.h"
-#include "llvm/Analysis/Expressions.h"
 #include "llvm/Function.h"
 #include "llvm/Instructions.h"
 using namespace llvm;
@@ -30,12 +29,12 @@ static const Type *getStructOffsetStep(const StructType *STy, uint64_t &Offset,
   for (i = 0; i < SL->MemberOffsets.size()-1; ++i)
     if (Offset >= SL->MemberOffsets[i] && Offset < SL->MemberOffsets[i+1])
       break;
-  
+
   assert(Offset >= SL->MemberOffsets[i] &&
          (i == SL->MemberOffsets.size()-1 || Offset < SL->MemberOffsets[i+1]));
-  
+
   // Make sure to save the current index...
-  Indices.push_back(ConstantUInt::get(Type::UIntTy, i));
+  Indices.push_back(ConstantInt::get(Type::UIntTy, i));
   Offset = SL->MemberOffsets[i];
   return STy->getContainedType(i);
 }
@@ -73,33 +72,21 @@ const Type *llvm::getStructOffsetType(const Type *Ty, unsigned &Offset,
            "Offset not in composite!");
 
     NextType = ATy->getElementType();
-    unsigned ChildSize = TD.getTypeSize(NextType);
-    if (ConstantSInt::isValueValidForType(Type::IntTy, Offset/ChildSize))
-      Indices.push_back(ConstantSInt::get(Type::IntTy, Offset/ChildSize));
+    unsigned ChildSize = (unsigned)TD.getTypeSize(NextType);
+    if (ConstantInt::isValueValidForType(Type::IntTy, 
+                                         uint64_t(Offset/ChildSize)))
+      Indices.push_back(ConstantInt::get(Type::IntTy, Offset/ChildSize));
     else
-      Indices.push_back(ConstantSInt::get(Type::LongTy, Offset/ChildSize));
+      Indices.push_back(ConstantInt::get(Type::LongTy, Offset/ChildSize));
     ThisOffset = (Offset/ChildSize)*ChildSize;
   } else {
     Offset = 0;   // Return the offset that we were able to achieve
     return Ty;    // Return the leaf type
   }
 
-  unsigned SubOffs = Offset - ThisOffset;
+  unsigned SubOffs = unsigned(Offset - ThisOffset);
   const Type *LeafTy = getStructOffsetType(NextType, SubOffs,
                                            Indices, TD, StopEarly);
-  Offset = ThisOffset + SubOffs;
+  Offset = unsigned(ThisOffset + SubOffs);
   return LeafTy;
 }
-
-// ConvertibleToGEP - This function returns true if the specified value V is
-// a valid index into a pointer of type Ty.  If it is valid, Idx is filled in
-// with the values that would be appropriate to make this a getelementptr
-// instruction.  The type returned is the root type that the GEP would point to
-//
-const Type *llvm::ConvertibleToGEP(const Type *Ty, Value *OffsetVal,
-                                   std::vector<Value*> &Indices,
-                                   const TargetData &TD,
-                                   BasicBlock::iterator *BI) {
-  return 0;
-}
-