diff options
| author | Chris Lattner <sabre@nondot.org> | 2011-07-18 04:54:35 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2011-07-18 04:54:35 +0000 | 
| commit | db125cfaf57cc83e7dd7453de2d509bc8efd0e5e (patch) | |
| tree | a163ac0f83da7be3f9675a122a6144b12418be09 /lib/Target | |
| parent | 4b3d5469fb7c25504fa20dc65640f02d79675d48 (diff) | |
| download | external_llvm-db125cfaf57cc83e7dd7453de2d509bc8efd0e5e.zip external_llvm-db125cfaf57cc83e7dd7453de2d509bc8efd0e5e.tar.gz external_llvm-db125cfaf57cc83e7dd7453de2d509bc8efd0e5e.tar.bz2  | |
land David Blaikie's patch to de-constify Type, with a few tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
36 files changed, 231 insertions, 231 deletions
diff --git a/lib/Target/ARM/ARMConstantPoolValue.cpp b/lib/Target/ARM/ARMConstantPoolValue.cpp index 165a1d8..eb85aa3 100644 --- a/lib/Target/ARM/ARMConstantPoolValue.cpp +++ b/lib/Target/ARM/ARMConstantPoolValue.cpp @@ -26,7 +26,7 @@ ARMConstantPoolValue::ARMConstantPoolValue(const Constant *cval, unsigned id,                                             unsigned char PCAdj,                                             ARMCP::ARMCPModifier Modif,                                             bool AddCA) -  : MachineConstantPoolValue((const Type*)cval->getType()), +  : MachineConstantPoolValue((Type*)cval->getType()),      CVal(cval), S(NULL), LabelId(id), Kind(K), PCAdjust(PCAdj),      Modifier(Modif), AddCurrentAddress(AddCA) {} @@ -35,13 +35,13 @@ ARMConstantPoolValue::ARMConstantPoolValue(LLVMContext &C,                                             unsigned char PCAdj,                                             ARMCP::ARMCPModifier Modif,                                             bool AddCA) -  : MachineConstantPoolValue((const Type*)Type::getInt32Ty(C)), +  : MachineConstantPoolValue((Type*)Type::getInt32Ty(C)),      CVal(NULL), S(strdup(s)), LabelId(id), Kind(ARMCP::CPExtSymbol),      PCAdjust(PCAdj), Modifier(Modif), AddCurrentAddress(AddCA) {}  ARMConstantPoolValue::ARMConstantPoolValue(const GlobalValue *gv,                                             ARMCP::ARMCPModifier Modif) -  : MachineConstantPoolValue((const Type*)Type::getInt32Ty(gv->getContext())), +  : MachineConstantPoolValue((Type*)Type::getInt32Ty(gv->getContext())),      CVal(gv), S(NULL), LabelId(0), Kind(ARMCP::CPValue), PCAdjust(0),      Modifier(Modif), AddCurrentAddress(false) {} diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index f469d7e..050b8c1 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -171,8 +171,8 @@ class ARMFastISel : public FastISel {      // Utility routines.    private: -    bool isTypeLegal(const Type *Ty, MVT &VT); -    bool isLoadTypeLegal(const Type *Ty, MVT &VT); +    bool isTypeLegal(Type *Ty, MVT &VT); +    bool isLoadTypeLegal(Type *Ty, MVT &VT);      bool ARMEmitLoad(EVT VT, unsigned &ResultReg, Address &Addr);      bool ARMEmitStore(EVT VT, unsigned SrcReg, Address &Addr);      bool ARMComputeAddress(const Value *Obj, Address &Addr); @@ -673,7 +673,7 @@ unsigned ARMFastISel::TargetMaterializeAlloca(const AllocaInst *AI) {    return 0;  } -bool ARMFastISel::isTypeLegal(const Type *Ty, MVT &VT) { +bool ARMFastISel::isTypeLegal(Type *Ty, MVT &VT) {    EVT evt = TLI.getValueType(Ty, true);    // Only handle simple types. @@ -685,7 +685,7 @@ bool ARMFastISel::isTypeLegal(const Type *Ty, MVT &VT) {    return TLI.isTypeLegal(VT);  } -bool ARMFastISel::isLoadTypeLegal(const Type *Ty, MVT &VT) { +bool ARMFastISel::isLoadTypeLegal(Type *Ty, MVT &VT) {    if (isTypeLegal(Ty, VT)) return true;    // If this is a type than can be sign or zero-extended to a basic operation @@ -714,7 +714,7 @@ bool ARMFastISel::ARMComputeAddress(const Value *Obj, Address &Addr) {      U = C;    } -  if (const PointerType *Ty = dyn_cast<PointerType>(Obj->getType())) +  if (PointerType *Ty = dyn_cast<PointerType>(Obj->getType()))      if (Ty->getAddressSpace() > 255)        // Fast instruction selection doesn't support the special        // address spaces. @@ -749,7 +749,7 @@ bool ARMFastISel::ARMComputeAddress(const Value *Obj, Address &Addr) {        for (User::const_op_iterator i = U->op_begin() + 1, e = U->op_end();             i != e; ++i, ++GTI) {          const Value *Op = *i; -        if (const StructType *STy = dyn_cast<StructType>(*GTI)) { +        if (StructType *STy = dyn_cast<StructType>(*GTI)) {            const StructLayout *SL = TD.getStructLayout(STy);            unsigned Idx = cast<ConstantInt>(Op)->getZExtValue();            TmpOffset += SL->getElementOffset(Idx); @@ -1085,7 +1085,7 @@ bool ARMFastISel::SelectBranch(const Instruction *I) {    // TODO: Factor this out.    if (const CmpInst *CI = dyn_cast<CmpInst>(BI->getCondition())) {      MVT SourceVT; -    const Type *Ty = CI->getOperand(0)->getType(); +    Type *Ty = CI->getOperand(0)->getType();      if (CI->hasOneUse() && (CI->getParent() == I->getParent())          && isTypeLegal(Ty, SourceVT)) {        bool isFloat = (Ty->isDoubleTy() || Ty->isFloatTy()); @@ -1201,7 +1201,7 @@ bool ARMFastISel::SelectCmp(const Instruction *I) {    const CmpInst *CI = cast<CmpInst>(I);    MVT VT; -  const Type *Ty = CI->getOperand(0)->getType(); +  Type *Ty = CI->getOperand(0)->getType();    if (!isTypeLegal(Ty, VT))      return false; @@ -1309,7 +1309,7 @@ bool ARMFastISel::SelectSIToFP(const Instruction *I) {    if (!Subtarget->hasVFP2()) return false;    MVT DstVT; -  const Type *Ty = I->getType(); +  Type *Ty = I->getType();    if (!isTypeLegal(Ty, DstVT))      return false; @@ -1343,7 +1343,7 @@ bool ARMFastISel::SelectFPToSI(const Instruction *I) {    if (!Subtarget->hasVFP2()) return false;    MVT DstVT; -  const Type *RetTy = I->getType(); +  Type *RetTy = I->getType();    if (!isTypeLegal(RetTy, DstVT))      return false; @@ -1351,7 +1351,7 @@ bool ARMFastISel::SelectFPToSI(const Instruction *I) {    if (Op == 0) return false;    unsigned Opc; -  const Type *OpTy = I->getOperand(0)->getType(); +  Type *OpTy = I->getOperand(0)->getType();    if (OpTy->isFloatTy()) Opc = ARM::VTOSIZS;    else if (OpTy->isDoubleTy()) Opc = ARM::VTOSIZD;    else return 0; @@ -1401,7 +1401,7 @@ bool ARMFastISel::SelectSelect(const Instruction *I) {  bool ARMFastISel::SelectSDiv(const Instruction *I) {    MVT VT; -  const Type *Ty = I->getType(); +  Type *Ty = I->getType();    if (!isTypeLegal(Ty, VT))      return false; @@ -1429,7 +1429,7 @@ bool ARMFastISel::SelectSDiv(const Instruction *I) {  bool ARMFastISel::SelectSRem(const Instruction *I) {    MVT VT; -  const Type *Ty = I->getType(); +  Type *Ty = I->getType();    if (!isTypeLegal(Ty, VT))      return false; @@ -1456,7 +1456,7 @@ bool ARMFastISel::SelectBinaryOp(const Instruction *I, unsigned ISDOpcode) {    // operations, but can't figure out how to. Just use the vfp instructions    // if we have them.    // FIXME: It'd be nice to use NEON instructions. -  const Type *Ty = I->getType(); +  Type *Ty = I->getType();    bool isFloat = (Ty->isDoubleTy() || Ty->isFloatTy());    if (isFloat && !Subtarget->hasVFP2())      return false; @@ -1778,7 +1778,7 @@ bool ARMFastISel::ARMEmitLibcall(const Instruction *I, RTLIB::Libcall Call) {    CallingConv::ID CC = TLI.getLibcallCallingConv(Call);    // Handle *simple* calls for now. -  const Type *RetTy = I->getType(); +  Type *RetTy = I->getType();    MVT RetVT;    if (RetTy->isVoidTy())      RetVT = MVT::isVoid; @@ -1802,7 +1802,7 @@ bool ARMFastISel::ARMEmitLibcall(const Instruction *I, RTLIB::Libcall Call) {      unsigned Arg = getRegForValue(Op);      if (Arg == 0) return false; -    const Type *ArgTy = Op->getType(); +    Type *ArgTy = Op->getType();      MVT ArgVT;      if (!isTypeLegal(ArgTy, ArgVT)) return false; @@ -1870,13 +1870,13 @@ bool ARMFastISel::SelectCall(const Instruction *I) {    // TODO: Avoid some calling conventions?    // Let SDISel handle vararg functions. -  const PointerType *PT = cast<PointerType>(CS.getCalledValue()->getType()); -  const FunctionType *FTy = cast<FunctionType>(PT->getElementType()); +  PointerType *PT = cast<PointerType>(CS.getCalledValue()->getType()); +  FunctionType *FTy = cast<FunctionType>(PT->getElementType());    if (FTy->isVarArg())      return false;    // Handle *simple* calls for now. -  const Type *RetTy = I->getType(); +  Type *RetTy = I->getType();    MVT RetVT;    if (RetTy->isVoidTy())      RetVT = MVT::isVoid; @@ -1915,7 +1915,7 @@ bool ARMFastISel::SelectCall(const Instruction *I) {          CS.paramHasAttr(AttrInd, Attribute::ByVal))        return false; -    const Type *ArgTy = (*i)->getType(); +    Type *ArgTy = (*i)->getType();      MVT ArgVT;      if (!isTypeLegal(ArgTy, ArgVT))        return false; @@ -1969,9 +1969,9 @@ bool ARMFastISel::SelectIntCast(const Instruction *I) {    // On ARM, in general, integer casts don't involve legal types; this code    // handles promotable integers.  The high bits for a type smaller than    // the register size are assumed to be undefined. -  const Type *DestTy = I->getType(); +  Type *DestTy = I->getType();    Value *Op = I->getOperand(0); -  const Type *SrcTy = Op->getType(); +  Type *SrcTy = Op->getType();    EVT SrcVT, DestVT;    SrcVT = TLI.getValueType(SrcTy, true); diff --git a/lib/Target/ARM/ARMGlobalMerge.cpp b/lib/Target/ARM/ARMGlobalMerge.cpp index 8d77b2d..e4b732c 100644 --- a/lib/Target/ARM/ARMGlobalMerge.cpp +++ b/lib/Target/ARM/ARMGlobalMerge.cpp @@ -100,8 +100,8 @@ namespace {        GlobalCmp(const TargetData *td) : TD(td) { }        bool operator()(const GlobalVariable *GV1, const GlobalVariable *GV2) { -        const Type *Ty1 = cast<PointerType>(GV1->getType())->getElementType(); -        const Type *Ty2 = cast<PointerType>(GV2->getType())->getElementType(); +        Type *Ty1 = cast<PointerType>(GV1->getType())->getElementType(); +        Type *Ty2 = cast<PointerType>(GV2->getType())->getElementType();          return (TD->getTypeAllocSize(Ty1) < TD->getTypeAllocSize(Ty2));        } @@ -123,7 +123,7 @@ bool ARMGlobalMerge::doMerge(SmallVectorImpl<GlobalVariable*> &Globals,    // FIXME: Find better heuristics    std::stable_sort(Globals.begin(), Globals.end(), GlobalCmp(TD)); -  const Type *Int32Ty = Type::getInt32Ty(M.getContext()); +  Type *Int32Ty = Type::getInt32Ty(M.getContext());    for (size_t i = 0, e = Globals.size(); i != e; ) {      size_t j = 0; @@ -176,7 +176,7 @@ bool ARMGlobalMerge::doInitialization(Module &M) {      // Ignore fancy-aligned globals for now.      unsigned Alignment = I->getAlignment(); -    const Type *Ty = I->getType()->getElementType(); +    Type *Ty = I->getType()->getElementType();      if (Alignment > TD->getABITypeAlignment(Ty))        continue; diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index cf8c5ba..45fac88 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -1982,11 +1982,11 @@ ARMTargetLowering::LowerToTLSGeneralDynamicModel(GlobalAddressSDNode *GA,    ArgListTy Args;    ArgListEntry Entry;    Entry.Node = Argument; -  Entry.Ty = (const Type *) Type::getInt32Ty(*DAG.getContext()); +  Entry.Ty = (Type *) Type::getInt32Ty(*DAG.getContext());    Args.push_back(Entry);    // FIXME: is there useful debug info available here?    std::pair<SDValue, SDValue> CallResult = -    LowerCallTo(Chain, (const Type *) Type::getInt32Ty(*DAG.getContext()), +    LowerCallTo(Chain, (Type *) Type::getInt32Ty(*DAG.getContext()),                  false, false, false, false,                  0, CallingConv::C, false, /*isReturnValueUsed=*/true,                  DAG.getExternalSymbol("__tls_get_addr", PtrVT), Args, DAG, dl); @@ -7235,7 +7235,7 @@ bool ARMTargetLowering::isLegalT2ScaledAddressingMode(const AddrMode &AM,  /// isLegalAddressingMode - Return true if the addressing mode represented  /// by AM is legal for this target, for a load/store of the specified type.  bool ARMTargetLowering::isLegalAddressingMode(const AddrMode &AM, -                                              const Type *Ty) const { +                                              Type *Ty) const {    EVT VT = getValueType(Ty, true);    if (!isLegalAddressImmediate(AM.BaseOffs, VT, Subtarget))      return false; @@ -7536,7 +7536,7 @@ bool ARMTargetLowering::ExpandInlineAsm(CallInst *CI) const {      if (AsmPieces.size() == 3 &&          AsmPieces[0] == "rev" && AsmPieces[1] == "$0" && AsmPieces[2] == "$1" &&          IA->getConstraintString().compare(0, 4, "=l,l") == 0) { -      const IntegerType *Ty = dyn_cast<IntegerType>(CI->getType()); +      IntegerType *Ty = dyn_cast<IntegerType>(CI->getType());        if (Ty && Ty->getBitWidth() == 32)          return IntrinsicLowering::LowerToByteSwap(CI);      } @@ -7582,7 +7582,7 @@ ARMTargetLowering::getSingleConstraintMatchWeight(      // but allow it at the lowest weight.    if (CallOperandVal == NULL)      return CW_Default; -  const Type *type = CallOperandVal->getType(); +  Type *type = CallOperandVal->getType();    // Look at the constraint type.    switch (*constraint) {    default: @@ -7933,7 +7933,7 @@ bool ARMTargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info,      // Conservatively set memVT to the entire set of vectors stored.      unsigned NumElts = 0;      for (unsigned ArgI = 1, ArgE = I.getNumArgOperands(); ArgI < ArgE; ++ArgI) { -      const Type *ArgTy = I.getArgOperand(ArgI)->getType(); +      Type *ArgTy = I.getArgOperand(ArgI)->getType();        if (!ArgTy->isVectorTy())          break;        NumElts += getTargetData()->getTypeAllocSize(ArgTy) / 8; diff --git a/lib/Target/ARM/ARMISelLowering.h b/lib/Target/ARM/ARMISelLowering.h index 980fb40..61aa561 100644 --- a/lib/Target/ARM/ARMISelLowering.h +++ b/lib/Target/ARM/ARMISelLowering.h @@ -256,7 +256,7 @@ namespace llvm {      /// isLegalAddressingMode - Return true if the addressing mode represented      /// by AM is legal for this target, for a load/store of the specified type. -    virtual bool isLegalAddressingMode(const AddrMode &AM, const Type *Ty)const; +    virtual bool isLegalAddressingMode(const AddrMode &AM, Type *Ty)const;      bool isLegalT2ScaledAddressingMode(const AddrMode &AM, EVT VT) const;      /// isLegalICmpImmediate - Return true if the specified immediate is legal diff --git a/lib/Target/ARM/ARMSelectionDAGInfo.cpp b/lib/Target/ARM/ARMSelectionDAGInfo.cpp index ef0aaf2..4b2c5c5 100644 --- a/lib/Target/ARM/ARMSelectionDAGInfo.cpp +++ b/lib/Target/ARM/ARMSelectionDAGInfo.cpp @@ -155,7 +155,7 @@ ARMSelectionDAGInfo::EmitTargetCodeForMemset(SelectionDAG &DAG, DebugLoc dl,    TargetLowering::ArgListEntry Entry;    // First argument: data pointer -  const Type *IntPtrTy = TLI.getTargetData()->getIntPtrType(*DAG.getContext()); +  Type *IntPtrTy = TLI.getTargetData()->getIntPtrType(*DAG.getContext());    Entry.Node = Dst;    Entry.Ty = IntPtrTy;    Args.push_back(Entry); diff --git a/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp b/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp index ae8ee9e..7135676 100644 --- a/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp +++ b/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp @@ -34,7 +34,7 @@ namespace bfinIntrinsic {  } -std::string BlackfinIntrinsicInfo::getName(unsigned IntrID, const Type **Tys, +std::string BlackfinIntrinsicInfo::getName(unsigned IntrID, Type **Tys,                                             unsigned numTys) const {    static const char *const names[] = {  #define GET_INTRINSIC_NAME_TABLE @@ -81,8 +81,8 @@ bool BlackfinIntrinsicInfo::isOverloaded(unsigned IntrID) const {  #include "BlackfinGenIntrinsics.inc"  #undef GET_INTRINSIC_ATTRIBUTES -static const FunctionType *getType(LLVMContext &Context, unsigned id) { -  const Type *ResultTy = NULL; +static FunctionType *getType(LLVMContext &Context, unsigned id) { +  Type *ResultTy = NULL;    std::vector<Type*> ArgTys;    bool IsVarArg = false; @@ -94,7 +94,7 @@ static const FunctionType *getType(LLVMContext &Context, unsigned id) {  }  Function *BlackfinIntrinsicInfo::getDeclaration(Module *M, unsigned IntrID, -                                                const Type **Tys, +                                                Type **Tys,                                                  unsigned numTy) const {    assert(!isOverloaded(IntrID) && "Blackfin intrinsics are not overloaded");    AttrListPtr AList = getAttributes((bfinIntrinsic::ID) IntrID); diff --git a/lib/Target/Blackfin/BlackfinIntrinsicInfo.h b/lib/Target/Blackfin/BlackfinIntrinsicInfo.h index 7c4b5a9..f05db5a 100644 --- a/lib/Target/Blackfin/BlackfinIntrinsicInfo.h +++ b/lib/Target/Blackfin/BlackfinIntrinsicInfo.h @@ -19,11 +19,11 @@ namespace llvm {    class BlackfinIntrinsicInfo : public TargetIntrinsicInfo {    public: -    std::string getName(unsigned IntrID, const Type **Tys = 0, +    std::string getName(unsigned IntrID, Type **Tys = 0,                          unsigned numTys = 0) const;      unsigned lookupName(const char *Name, unsigned Len) const;      bool isOverloaded(unsigned IID) const; -    Function *getDeclaration(Module *M, unsigned ID, const Type **Tys = 0, +    Function *getDeclaration(Module *M, unsigned ID, Type **Tys = 0,                               unsigned numTys = 0) const;    }; diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 415beb1..f00fcc4 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -99,7 +99,7 @@ namespace {      /// UnnamedStructIDs - This contains a unique ID for each struct that is      /// either anonymous or has no name. -    DenseMap<const StructType*, unsigned> UnnamedStructIDs; +    DenseMap<StructType*, unsigned> UnnamedStructIDs;    public:      static char ID; @@ -152,20 +152,20 @@ namespace {        return false;      } -    raw_ostream &printType(raw_ostream &Out, const Type *Ty, +    raw_ostream &printType(raw_ostream &Out, Type *Ty,                             bool isSigned = false,                             const std::string &VariableName = "",                             bool IgnoreName = false,                             const AttrListPtr &PAL = AttrListPtr()); -    raw_ostream &printSimpleType(raw_ostream &Out, const Type *Ty, +    raw_ostream &printSimpleType(raw_ostream &Out, Type *Ty,                                   bool isSigned,                                   const std::string &NameSoFar = "");      void printStructReturnPointerFunctionType(raw_ostream &Out,                                                const AttrListPtr &PAL, -                                              const PointerType *Ty); +                                              PointerType *Ty); -    std::string getStructName(const StructType *ST); +    std::string getStructName(StructType *ST);      /// writeOperandDeref - Print the result of dereferencing the specified      /// operand with '*'.  This is equivalent to printing '*' then using @@ -188,7 +188,7 @@ namespace {      void writeOperandWithCast(Value* Operand, const ICmpInst &I);      bool writeInstructionCast(const Instruction &I); -    void writeMemoryAccess(Value *Operand, const Type *OperandType, +    void writeMemoryAccess(Value *Operand, Type *OperandType,                             bool IsVolatile, unsigned Alignment);    private : @@ -200,7 +200,7 @@ namespace {      void printIntrinsicDefinition(const Function &F, raw_ostream &Out);      void printModuleTypes(); -    void printContainedStructs(const Type *Ty, SmallPtrSet<const Type *, 16> &); +    void printContainedStructs(Type *Ty, SmallPtrSet<Type *, 16> &);      void printFloatingPointConstants(Function &F);      void printFloatingPointConstants(const Constant *C);      void printFunctionSignature(const Function *F, bool Prototype); @@ -209,7 +209,7 @@ namespace {      void printBasicBlock(BasicBlock *BB);      void printLoop(Loop *L); -    void printCast(unsigned opcode, const Type *SrcTy, const Type *DstTy); +    void printCast(unsigned opcode, Type *SrcTy, Type *DstTy);      void printConstant(Constant *CPV, bool Static);      void printConstantWithCast(Constant *CPV, unsigned Opcode);      bool printConstExprCast(const ConstantExpr *CE, bool Static); @@ -360,7 +360,7 @@ static std::string CBEMangle(const std::string &S) {    return Result;  } -std::string CWriter::getStructName(const StructType *ST) { +std::string CWriter::getStructName(StructType *ST) {    if (!ST->isAnonymous() && !ST->getName().empty())      return CBEMangle("l_"+ST->getName().str()); @@ -373,20 +373,20 @@ std::string CWriter::getStructName(const StructType *ST) {  /// print it as "Struct (*)(...)", for struct return functions.  void CWriter::printStructReturnPointerFunctionType(raw_ostream &Out,                                                     const AttrListPtr &PAL, -                                                   const PointerType *TheTy) { -  const FunctionType *FTy = cast<FunctionType>(TheTy->getElementType()); +                                                   PointerType *TheTy) { +  FunctionType *FTy = cast<FunctionType>(TheTy->getElementType());    std::string tstr;    raw_string_ostream FunctionInnards(tstr);    FunctionInnards << " (*) (";    bool PrintedType = false;    FunctionType::param_iterator I = FTy->param_begin(), E = FTy->param_end(); -  const Type *RetTy = cast<PointerType>(*I)->getElementType(); +  Type *RetTy = cast<PointerType>(*I)->getElementType();    unsigned Idx = 1;    for (++I, ++Idx; I != E; ++I, ++Idx) {      if (PrintedType)        FunctionInnards << ", "; -    const Type *ArgTy = *I; +    Type *ArgTy = *I;      if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {        assert(ArgTy->isPointerTy());        ArgTy = cast<PointerType>(ArgTy)->getElementType(); @@ -408,7 +408,7 @@ void CWriter::printStructReturnPointerFunctionType(raw_ostream &Out,  }  raw_ostream & -CWriter::printSimpleType(raw_ostream &Out, const Type *Ty, bool isSigned, +CWriter::printSimpleType(raw_ostream &Out, Type *Ty, bool isSigned,                           const std::string &NameSoFar) {    assert((Ty->isPrimitiveType() || Ty->isIntegerTy() || Ty->isVectorTy()) &&           "Invalid type for printSimpleType"); @@ -444,7 +444,7 @@ CWriter::printSimpleType(raw_ostream &Out, const Type *Ty, bool isSigned,                       " __attribute__((vector_size(64))) " + NameSoFar);    case Type::VectorTyID: { -    const VectorType *VTy = cast<VectorType>(Ty); +    VectorType *VTy = cast<VectorType>(Ty);      return printSimpleType(Out, VTy->getElementType(), isSigned,                       " __attribute__((vector_size(" +                       utostr(TD->getTypeAllocSize(VTy)) + " ))) " + NameSoFar); @@ -461,7 +461,7 @@ CWriter::printSimpleType(raw_ostream &Out, const Type *Ty, bool isSigned,  // Pass the Type* and the variable name and this prints out the variable  // declaration.  // -raw_ostream &CWriter::printType(raw_ostream &Out, const Type *Ty, +raw_ostream &CWriter::printType(raw_ostream &Out, Type *Ty,                                  bool isSigned, const std::string &NameSoFar,                                  bool IgnoreName, const AttrListPtr &PAL) {    if (Ty->isPrimitiveType() || Ty->isIntegerTy() || Ty->isVectorTy()) { @@ -471,14 +471,14 @@ raw_ostream &CWriter::printType(raw_ostream &Out, const Type *Ty,    switch (Ty->getTypeID()) {    case Type::FunctionTyID: { -    const FunctionType *FTy = cast<FunctionType>(Ty); +    FunctionType *FTy = cast<FunctionType>(Ty);      std::string tstr;      raw_string_ostream FunctionInnards(tstr);      FunctionInnards << " (" << NameSoFar << ") (";      unsigned Idx = 1;      for (FunctionType::param_iterator I = FTy->param_begin(),             E = FTy->param_end(); I != E; ++I) { -      const Type *ArgTy = *I; +      Type *ArgTy = *I;        if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {          assert(ArgTy->isPointerTy());          ArgTy = cast<PointerType>(ArgTy)->getElementType(); @@ -502,7 +502,7 @@ raw_ostream &CWriter::printType(raw_ostream &Out, const Type *Ty,      return Out;    }    case Type::StructTyID: { -    const StructType *STy = cast<StructType>(Ty); +    StructType *STy = cast<StructType>(Ty);      // Check to see if the type is named.      if (!IgnoreName) @@ -523,7 +523,7 @@ raw_ostream &CWriter::printType(raw_ostream &Out, const Type *Ty,    }    case Type::PointerTyID: { -    const PointerType *PTy = cast<PointerType>(Ty); +    PointerType *PTy = cast<PointerType>(Ty);      std::string ptrName = "*" + NameSoFar;      if (PTy->getElementType()->isArrayTy() || @@ -537,7 +537,7 @@ raw_ostream &CWriter::printType(raw_ostream &Out, const Type *Ty,    }    case Type::ArrayTyID: { -    const ArrayType *ATy = cast<ArrayType>(Ty); +    ArrayType *ATy = cast<ArrayType>(Ty);      unsigned NumElements = ATy->getNumElements();      if (NumElements == 0) NumElements = 1;      // Arrays are wrapped in structs to allow them to have normal @@ -560,7 +560,7 @@ void CWriter::printConstantArray(ConstantArray *CPA, bool Static) {    // As a special case, print the array as a string if it is an array of    // ubytes or an array of sbytes with positive values.    // -  const Type *ETy = CPA->getType()->getElementType(); +  Type *ETy = CPA->getType()->getElementType();    bool isString = (ETy == Type::getInt8Ty(CPA->getContext()) ||                     ETy == Type::getInt8Ty(CPA->getContext())); @@ -682,7 +682,7 @@ static bool isFPCSafeToPrint(const ConstantFP *CFP) {  /// Print out the casting for a cast operation. This does the double casting  /// necessary for conversion to the destination type, if necessary.  /// @brief Print a cast -void CWriter::printCast(unsigned opc, const Type *SrcTy, const Type *DstTy) { +void CWriter::printCast(unsigned opc, Type *SrcTy, Type *DstTy) {    // Print the destination type cast    switch (opc) {      case Instruction::UIToFP: @@ -917,7 +917,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) {    }    if (ConstantInt *CI = dyn_cast<ConstantInt>(CPV)) { -    const Type* Ty = CI->getType(); +    Type* Ty = CI->getType();      if (Ty == Type::getInt1Ty(CPV->getContext()))        Out << (CI->getZExtValue() ? '1' : '0');      else if (Ty == Type::getInt32Ty(CPV->getContext())) @@ -1027,7 +1027,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) {        printConstantArray(CA, Static);      } else {        assert(isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)); -      const ArrayType *AT = cast<ArrayType>(CPV->getType()); +      ArrayType *AT = cast<ArrayType>(CPV->getType());        Out << '{';        if (AT->getNumElements()) {          Out << ' '; @@ -1054,7 +1054,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) {        printConstantVector(CV, Static);      } else {        assert(isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)); -      const VectorType *VT = cast<VectorType>(CPV->getType()); +      VectorType *VT = cast<VectorType>(CPV->getType());        Out << "{ ";        Constant *CZ = Constant::getNullValue(VT->getElementType());        printConstant(CZ, Static); @@ -1074,7 +1074,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) {        Out << ")";      }      if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) { -      const StructType *ST = cast<StructType>(CPV->getType()); +      StructType *ST = cast<StructType>(CPV->getType());        Out << '{';        if (ST->getNumElements()) {          Out << ' '; @@ -1123,7 +1123,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) {  // care of detecting that case and printing the cast for the ConstantExpr.  bool CWriter::printConstExprCast(const ConstantExpr* CE, bool Static) {    bool NeedsExplicitCast = false; -  const Type *Ty = CE->getOperand(0)->getType(); +  Type *Ty = CE->getOperand(0)->getType();    bool TypeIsSigned = false;    switch (CE->getOpcode()) {    case Instruction::Add: @@ -1175,7 +1175,7 @@ bool CWriter::printConstExprCast(const ConstantExpr* CE, bool Static) {  void CWriter::printConstantWithCast(Constant* CPV, unsigned Opcode) {    // Extract the operand's type, we'll need it. -  const Type* OpTy = CPV->getType(); +  Type* OpTy = CPV->getType();    // Indicate whether to do the cast or not.    bool shouldCast = false; @@ -1267,7 +1267,7 @@ std::string CWriter::GetValueName(const Value *Operand) {  void CWriter::writeInstComputationInline(Instruction &I) {    // We can't currently support integer types other than 1, 8, 16, 32, 64.    // Validate this. -  const Type *Ty = I.getType(); +  Type *Ty = I.getType();    if (Ty->isIntegerTy() && (Ty!=Type::getInt1Ty(I.getContext()) &&          Ty!=Type::getInt8Ty(I.getContext()) &&          Ty!=Type::getInt16Ty(I.getContext()) && @@ -1330,7 +1330,7 @@ void CWriter::writeOperand(Value *Operand, bool Static) {  // This function takes care of detecting that case and printing the cast  // for the Instruction.  bool CWriter::writeInstructionCast(const Instruction &I) { -  const Type *Ty = I.getOperand(0)->getType(); +  Type *Ty = I.getOperand(0)->getType();    switch (I.getOpcode()) {    case Instruction::Add:    case Instruction::Sub: @@ -1362,7 +1362,7 @@ bool CWriter::writeInstructionCast(const Instruction &I) {  void CWriter::writeOperandWithCast(Value* Operand, unsigned Opcode) {    // Extract the operand's type, we'll need it. -  const Type* OpTy = Operand->getType(); +  Type* OpTy = Operand->getType();    // Indicate whether to do the cast or not.    bool shouldCast = false; @@ -1430,7 +1430,7 @@ void CWriter::writeOperandWithCast(Value* Operand, const ICmpInst &Cmp) {    bool castIsSigned = Cmp.isSigned();    // If the operand was a pointer, convert to a large integer type. -  const Type* OpTy = Operand->getType(); +  Type* OpTy = Operand->getType();    if (OpTy->isPointerTy())      OpTy = TD->getIntPtrType(Operand->getContext()); @@ -2060,7 +2060,7 @@ void CWriter::printModuleTypes() {    Out << '\n';    // Keep track of which structures have been printed so far. -  SmallPtrSet<const Type *, 16> StructPrinted; +  SmallPtrSet<Type *, 16> StructPrinted;    // Loop over all structures then push them into the stack so they are    // printed in the correct order. @@ -2077,8 +2077,8 @@ void CWriter::printModuleTypes() {  //  // TODO:  Make this work properly with vector types  // -void CWriter::printContainedStructs(const Type *Ty, -                                SmallPtrSet<const Type *, 16> &StructPrinted) { +void CWriter::printContainedStructs(Type *Ty, +                                SmallPtrSet<Type *, 16> &StructPrinted) {    // Don't walk through pointers.    if (Ty->isPointerTy() || Ty->isPrimitiveType() || Ty->isIntegerTy())      return; @@ -2088,7 +2088,7 @@ void CWriter::printContainedStructs(const Type *Ty,         E = Ty->subtype_end(); I != E; ++I)      printContainedStructs(*I, StructPrinted); -  if (const StructType *ST = dyn_cast<StructType>(Ty)) { +  if (StructType *ST = dyn_cast<StructType>(Ty)) {      // Check to see if we have already printed this struct.      if (!StructPrinted.insert(Ty)) return; @@ -2120,7 +2120,7 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {    }    // Loop over the arguments, printing them... -  const FunctionType *FT = cast<FunctionType>(F->getFunctionType()); +  FunctionType *FT = cast<FunctionType>(F->getFunctionType());    const AttrListPtr &PAL = F->getAttributes();    std::string tstr; @@ -2150,7 +2150,7 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {            ArgName = GetValueName(I);          else            ArgName = ""; -        const Type *ArgTy = I->getType(); +        Type *ArgTy = I->getType();          if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {            ArgTy = cast<PointerType>(ArgTy)->getElementType();            ByValParams.insert(I); @@ -2177,7 +2177,7 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {      for (; I != E; ++I) {        if (PrintedArg) FunctionInnards << ", "; -      const Type *ArgTy = *I; +      Type *ArgTy = *I;        if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {          assert(ArgTy->isPointerTy());          ArgTy = cast<PointerType>(ArgTy)->getElementType(); @@ -2205,7 +2205,7 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {    FunctionInnards << ')';    // Get the return tpe for the function. -  const Type *RetTy; +  Type *RetTy;    if (!isStructReturn)      RetTy = F->getReturnType();    else { @@ -2222,8 +2222,8 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {  static inline bool isFPIntBitCast(const Instruction &I) {    if (!isa<BitCastInst>(I))      return false; -  const Type *SrcTy = I.getOperand(0)->getType(); -  const Type *DstTy = I.getType(); +  Type *SrcTy = I.getOperand(0)->getType(); +  Type *DstTy = I.getType();    return (SrcTy->isFloatingPointTy() && DstTy->isIntegerTy()) ||           (DstTy->isFloatingPointTy() && SrcTy->isIntegerTy());  } @@ -2237,7 +2237,7 @@ void CWriter::printFunction(Function &F) {    // If this is a struct return function, handle the result with magic.    if (isStructReturn) { -    const Type *StructTy = +    Type *StructTy =        cast<PointerType>(F.arg_begin()->getType())->getElementType();      Out << "  ";      printType(Out, StructTy, false, "StructReturn"); @@ -2656,7 +2656,7 @@ void CWriter::visitFCmpInst(FCmpInst &I) {    Out << ")";  } -static const char * getFloatBitCastField(const Type *Ty) { +static const char * getFloatBitCastField(Type *Ty) {    switch (Ty->getTypeID()) {      default: llvm_unreachable("Invalid Type");      case Type::FloatTyID:  return "Float"; @@ -2672,8 +2672,8 @@ static const char * getFloatBitCastField(const Type *Ty) {  }  void CWriter::visitCastInst(CastInst &I) { -  const Type *DstTy = I.getType(); -  const Type *SrcTy = I.getOperand(0)->getType(); +  Type *DstTy = I.getType(); +  Type *SrcTy = I.getOperand(0)->getType();    if (isFPIntBitCast(I)) {      Out << '(';      // These int<->float and long<->double casts need to be handled specially @@ -2719,7 +2719,7 @@ void CWriter::visitSelectInst(SelectInst &I) {  // Returns the macro name or value of the max or min of an integer type  // (as defined in limits.h). -static void printLimitValue(const IntegerType &Ty, bool isSigned, bool isMax, +static void printLimitValue(IntegerType &Ty, bool isSigned, bool isMax,                              raw_ostream &Out) {    const char* type;    const char* sprefix = ""; @@ -2745,16 +2745,16 @@ static void printLimitValue(const IntegerType &Ty, bool isSigned, bool isMax,  }  #ifndef NDEBUG -static bool isSupportedIntegerSize(const IntegerType &T) { +static bool isSupportedIntegerSize(IntegerType &T) {    return T.getBitWidth() == 8 || T.getBitWidth() == 16 ||           T.getBitWidth() == 32 || T.getBitWidth() == 64;  }  #endif  void CWriter::printIntrinsicDefinition(const Function &F, raw_ostream &Out) { -  const FunctionType *funT = F.getFunctionType(); -  const Type *retT = F.getReturnType(); -  const IntegerType *elemT = cast<IntegerType>(funT->getParamType(1)); +  FunctionType *funT = F.getFunctionType(); +  Type *retT = F.getReturnType(); +  IntegerType *elemT = cast<IntegerType>(funT->getParamType(1));    assert(isSupportedIntegerSize(*elemT) &&           "CBackend does not support arbitrary size integers."); @@ -2908,8 +2908,8 @@ void CWriter::visitCallInst(CallInst &I) {    Value *Callee = I.getCalledValue(); -  const PointerType  *PTy   = cast<PointerType>(Callee->getType()); -  const FunctionType *FTy   = cast<FunctionType>(PTy->getElementType()); +  PointerType  *PTy   = cast<PointerType>(Callee->getType()); +  FunctionType *FTy   = cast<FunctionType>(PTy->getElementType());    // If this is a call to a struct-return function, assign to the first    // parameter instead of passing it to the call. @@ -3217,7 +3217,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {    std::vector<std::pair<Value*, int> > ResultVals;    if (CI.getType() == Type::getVoidTy(CI.getContext()))      ; -  else if (const StructType *ST = dyn_cast<StructType>(CI.getType())) { +  else if (StructType *ST = dyn_cast<StructType>(CI.getType())) {      for (unsigned i = 0, e = ST->getNumElements(); i != e; ++i)        ResultVals.push_back(std::make_pair(&CI, (int)i));    } else { @@ -3348,7 +3348,7 @@ void CWriter::printGEPExpression(Value *Ptr, gep_type_iterator I,    // Find out if the last index is into a vector.  If so, we have to print this    // specially.  Since vectors can't have elements of indexable type, only the    // last index could possibly be of a vector element. -  const VectorType *LastIndexIsVector = 0; +  VectorType *LastIndexIsVector = 0;    {      for (gep_type_iterator TmpI = I; TmpI != E; ++TmpI)        LastIndexIsVector = dyn_cast<VectorType>(*TmpI); @@ -3421,7 +3421,7 @@ void CWriter::printGEPExpression(Value *Ptr, gep_type_iterator I,    Out << ")";  } -void CWriter::writeMemoryAccess(Value *Operand, const Type *OperandType, +void CWriter::writeMemoryAccess(Value *Operand, Type *OperandType,                                  bool IsVolatile, unsigned Alignment) {    bool IsUnaligned = Alignment && @@ -3463,7 +3463,7 @@ void CWriter::visitStoreInst(StoreInst &I) {    Out << " = ";    Value *Operand = I.getOperand(0);    Constant *BitMask = 0; -  if (const IntegerType* ITy = dyn_cast<IntegerType>(Operand->getType())) +  if (IntegerType* ITy = dyn_cast<IntegerType>(Operand->getType()))      if (!ITy->isPowerOf2ByteWidth())        // We have a bit width that doesn't match an even power-of-2 byte        // size. Consequently we must & the value with the type's bit mask @@ -3492,7 +3492,7 @@ void CWriter::visitVAArgInst(VAArgInst &I) {  }  void CWriter::visitInsertElementInst(InsertElementInst &I) { -  const Type *EltTy = I.getType()->getElementType(); +  Type *EltTy = I.getType()->getElementType();    writeOperand(I.getOperand(0));    Out << ";\n  ";    Out << "(("; @@ -3507,7 +3507,7 @@ void CWriter::visitInsertElementInst(InsertElementInst &I) {  void CWriter::visitExtractElementInst(ExtractElementInst &I) {    // We know that our operand is not inlined.    Out << "(("; -  const Type *EltTy = +  Type *EltTy =      cast<VectorType>(I.getOperand(0)->getType())->getElementType();    printType(Out, PointerType::getUnqual(EltTy));    Out << ")(&" << GetValueName(I.getOperand(0)) << "))["; @@ -3519,9 +3519,9 @@ void CWriter::visitShuffleVectorInst(ShuffleVectorInst &SVI) {    Out << "(";    printType(Out, SVI.getType());    Out << "){ "; -  const VectorType *VT = SVI.getType(); +  VectorType *VT = SVI.getType();    unsigned NumElts = VT->getNumElements(); -  const Type *EltTy = VT->getElementType(); +  Type *EltTy = VT->getElementType();    for (unsigned i = 0; i != NumElts; ++i) {      if (i) Out << ", "; @@ -3557,7 +3557,7 @@ void CWriter::visitInsertValueInst(InsertValueInst &IVI) {    Out << GetValueName(&IVI);    for (const unsigned *b = IVI.idx_begin(), *i = b, *e = IVI.idx_end();         i != e; ++i) { -    const Type *IndexedTy = +    Type *IndexedTy =        ExtractValueInst::getIndexedType(IVI.getOperand(0)->getType(),                                         ArrayRef<unsigned>(b, i+1));      if (IndexedTy->isArrayTy()) @@ -3579,7 +3579,7 @@ void CWriter::visitExtractValueInst(ExtractValueInst &EVI) {      Out << GetValueName(EVI.getOperand(0));      for (const unsigned *b = EVI.idx_begin(), *i = b, *e = EVI.idx_end();           i != e; ++i) { -      const Type *IndexedTy = +      Type *IndexedTy =          ExtractValueInst::getIndexedType(EVI.getOperand(0)->getType(),                                           ArrayRef<unsigned>(b, i+1));        if (IndexedTy->isArrayTy()) diff --git a/lib/Target/CellSPU/SPUISelLowering.cpp b/lib/Target/CellSPU/SPUISelLowering.cpp index f0ceee2..1c533a9 100644 --- a/lib/Target/CellSPU/SPUISelLowering.cpp +++ b/lib/Target/CellSPU/SPUISelLowering.cpp @@ -69,7 +69,7 @@ namespace {      TargetLowering::ArgListEntry Entry;      for (unsigned i = 0, e = Op.getNumOperands(); i != e; ++i) {        EVT ArgVT = Op.getOperand(i).getValueType(); -      const Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext()); +      Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());        Entry.Node = Op.getOperand(i);        Entry.Ty = ArgTy;        Entry.isSExt = isSigned; @@ -80,7 +80,7 @@ namespace {                                             TLI.getPointerTy());      // Splice the libcall in wherever FindInputOutputChains tells us to. -    const Type *RetTy = +    Type *RetTy =                  Op.getNode()->getValueType(0).getTypeForEVT(*DAG.getContext());      std::pair<SDValue, SDValue> CallInfo =              TLI.LowerCallTo(InChain, RetTy, isSigned, !isSigned, false, false, @@ -3216,7 +3216,7 @@ SPUTargetLowering::LowerAsmOperandForConstraint(SDValue Op,  /// isLegalAddressImmediate - Return true if the integer value can be used  /// as the offset of the target addressing mode.  bool SPUTargetLowering::isLegalAddressImmediate(int64_t V, -                                                const Type *Ty) const { +                                                Type *Ty) const {    // SPU's addresses are 256K:    return (V > -(1 << 18) && V < (1 << 18) - 1);  } @@ -3239,7 +3239,7 @@ bool SPUTargetLowering::isLegalICmpImmediate(int64_t Imm) const {  bool  SPUTargetLowering::isLegalAddressingMode(const AddrMode &AM, -                                         const Type * ) const{ +                                         Type * ) const{    // A-form: 18bit absolute address.    if (AM.BaseGV && !AM.HasBaseReg && AM.Scale == 0 && AM.BaseOffs == 0) diff --git a/lib/Target/CellSPU/SPUISelLowering.h b/lib/Target/CellSPU/SPUISelLowering.h index d23f6cc..91bbdf2 100644 --- a/lib/Target/CellSPU/SPUISelLowering.h +++ b/lib/Target/CellSPU/SPUISelLowering.h @@ -147,7 +147,7 @@ namespace llvm {      /// isLegalAddressImmediate - Return true if the integer value can be used      /// as the offset of the target addressing mode. -    virtual bool isLegalAddressImmediate(int64_t V, const Type *Ty) const; +    virtual bool isLegalAddressImmediate(int64_t V, Type *Ty) const;      virtual bool isLegalAddressImmediate(GlobalValue *) const;      virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const; @@ -179,7 +179,7 @@ namespace llvm {      virtual bool isLegalICmpImmediate(int64_t Imm) const;      virtual bool isLegalAddressingMode(const AddrMode &AM, -                                       const Type *Ty) const; +                                       Type *Ty) const;    };  } diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index 10d18f6..85b07d1 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -88,11 +88,11 @@ extern "C" void LLVMInitializeCppBackendMCSubtargetInfo() {  }  namespace { -  typedef std::vector<const Type*> TypeList; -  typedef std::map<const Type*,std::string> TypeMap; +  typedef std::vector<Type*> TypeList; +  typedef std::map<Type*,std::string> TypeMap;    typedef std::map<const Value*,std::string> ValueMap;    typedef std::set<std::string> NameSet; -  typedef std::set<const Type*> TypeSet; +  typedef std::set<Type*> TypeSet;    typedef std::set<const Value*> ValueSet;    typedef std::map<const Value*,std::string> ForwardRefMap; @@ -143,14 +143,14 @@ namespace {      void printEscapedString(const std::string& str);      void printCFP(const ConstantFP* CFP); -    std::string getCppName(const Type* val); -    inline void printCppName(const Type* val); +    std::string getCppName(Type* val); +    inline void printCppName(Type* val);      std::string getCppName(const Value* val);      inline void printCppName(const Value* val);      void printAttributes(const AttrListPtr &PAL, const std::string &name); -    void printType(const Type* Ty); +    void printType(Type* Ty);      void printTypes(const Module* M);      void printConstant(const Constant *CPV); @@ -184,7 +184,7 @@ static inline void sanitize(std::string &str) {        str[i] = '_';  } -static std::string getTypePrefix(const Type *Ty) { +static std::string getTypePrefix(Type *Ty) {    switch (Ty->getTypeID()) {    case Type::VoidTyID:     return "void_";    case Type::IntegerTyID: @@ -339,7 +339,7 @@ void CppWriter::printEscapedString(const std::string &Str) {    }  } -std::string CppWriter::getCppName(const Type* Ty) { +std::string CppWriter::getCppName(Type* Ty) {    // First, handle the primitive types .. easy    if (Ty->isPrimitiveType() || Ty->isIntegerTy()) {      switch (Ty->getTypeID()) { @@ -379,7 +379,7 @@ std::string CppWriter::getCppName(const Type* Ty) {    // See if the type has a name in the symboltable and build accordingly    std::string name; -  if (const StructType *STy = dyn_cast<StructType>(Ty)) +  if (StructType *STy = dyn_cast<StructType>(Ty))      if (STy->hasName())        name = STy->getName(); @@ -393,7 +393,7 @@ std::string CppWriter::getCppName(const Type* Ty) {    return TypeNames[Ty] = name;  } -void CppWriter::printCppName(const Type* Ty) { +void CppWriter::printCppName(Type* Ty) {    printEscapedString(getCppName(Ty));  } @@ -499,7 +499,7 @@ void CppWriter::printAttributes(const AttrListPtr &PAL,    }  } -void CppWriter::printType(const Type* Ty) { +void CppWriter::printType(Type* Ty) {    // We don't print definitions for primitive types    if (Ty->isPrimitiveType() || Ty->isIntegerTy())      return; @@ -514,13 +514,13 @@ void CppWriter::printType(const Type* Ty) {    // Print the type definition    switch (Ty->getTypeID()) {    case Type::FunctionTyID:  { -    const FunctionType* FT = cast<FunctionType>(Ty); +    FunctionType* FT = cast<FunctionType>(Ty);      Out << "std::vector<Type*>" << typeName << "_args;";      nl(Out);      FunctionType::param_iterator PI = FT->param_begin();      FunctionType::param_iterator PE = FT->param_end();      for (; PI != PE; ++PI) { -      const Type* argTy = static_cast<const Type*>(*PI); +      Type* argTy = static_cast<Type*>(*PI);        printType(argTy);        std::string argName(getCppName(argTy));        Out << typeName << "_args.push_back(" << argName; @@ -539,7 +539,7 @@ void CppWriter::printType(const Type* Ty) {      break;    }    case Type::StructTyID: { -    const StructType* ST = cast<StructType>(Ty); +    StructType* ST = cast<StructType>(Ty);      if (!ST->isAnonymous()) {        Out << "StructType *" << typeName << " = ";        Out << "StructType::createNamed(mod->getContext(), \""; @@ -555,7 +555,7 @@ void CppWriter::printType(const Type* Ty) {      StructType::element_iterator EI = ST->element_begin();      StructType::element_iterator EE = ST->element_end();      for (; EI != EE; ++EI) { -      const Type* fieldTy = static_cast<const Type*>(*EI); +      Type* fieldTy = static_cast<Type*>(*EI);        printType(fieldTy);        std::string fieldName(getCppName(fieldTy));        Out << typeName << "_fields.push_back(" << fieldName; @@ -576,8 +576,8 @@ void CppWriter::printType(const Type* Ty) {      break;    }    case Type::ArrayTyID: { -    const ArrayType* AT = cast<ArrayType>(Ty); -    const Type* ET = AT->getElementType(); +    ArrayType* AT = cast<ArrayType>(Ty); +    Type* ET = AT->getElementType();      printType(ET);      if (DefinedTypes.find(Ty) == DefinedTypes.end()) {        std::string elemName(getCppName(ET)); @@ -589,8 +589,8 @@ void CppWriter::printType(const Type* Ty) {      break;    }    case Type::PointerTyID: { -    const PointerType* PT = cast<PointerType>(Ty); -    const Type* ET = PT->getElementType(); +    PointerType* PT = cast<PointerType>(Ty); +    Type* ET = PT->getElementType();      printType(ET);      if (DefinedTypes.find(Ty) == DefinedTypes.end()) {        std::string elemName(getCppName(ET)); @@ -602,8 +602,8 @@ void CppWriter::printType(const Type* Ty) {      break;    }    case Type::VectorTyID: { -    const VectorType* PT = cast<VectorType>(Ty); -    const Type* ET = PT->getElementType(); +    VectorType* PT = cast<VectorType>(Ty); +    Type* ET = PT->getElementType();      printType(ET);      if (DefinedTypes.find(Ty) == DefinedTypes.end()) {        std::string elemName(getCppName(ET)); @@ -1873,7 +1873,7 @@ void CppWriter::printVariable(const std::string& fname,  void CppWriter::printType(const std::string &fname,                            const std::string &typeName) { -  const Type* Ty = TheModule->getTypeByName(typeName); +  Type* Ty = TheModule->getTypeByName(typeName);    if (!Ty) {      error(std::string("Type '") + typeName + "' not found in input module");      return; diff --git a/lib/Target/MBlaze/MBlazeISelLowering.cpp b/lib/Target/MBlaze/MBlazeISelLowering.cpp index 62dfdcc..85efbf3 100644 --- a/lib/Target/MBlaze/MBlazeISelLowering.cpp +++ b/lib/Target/MBlaze/MBlazeISelLowering.cpp @@ -1096,7 +1096,7 @@ MBlazeTargetLowering::getSingleConstraintMatchWeight(      // but allow it at the lowest weight.    if (CallOperandVal == NULL)      return CW_Default; -  const Type *type = CallOperandVal->getType(); +  Type *type = CallOperandVal->getType();    // Look at the constraint type.    switch (*constraint) {    default: diff --git a/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp b/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp index 32d67b2..ea81dd6 100644 --- a/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp +++ b/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp @@ -37,7 +37,7 @@ namespace mblazeIntrinsic {  #undef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN  } -std::string MBlazeIntrinsicInfo::getName(unsigned IntrID, const Type **Tys, +std::string MBlazeIntrinsicInfo::getName(unsigned IntrID, Type **Tys,                                           unsigned numTys) const {    static const char *const names[] = {  #define GET_INTRINSIC_NAME_TABLE @@ -90,8 +90,8 @@ bool MBlazeIntrinsicInfo::isOverloaded(unsigned IntrID) const {  #include "MBlazeGenIntrinsics.inc"  #undef GET_INTRINSIC_ATTRIBUTES -static const FunctionType *getType(LLVMContext &Context, unsigned id) { -  const Type *ResultTy = NULL; +static FunctionType *getType(LLVMContext &Context, unsigned id) { +  Type *ResultTy = NULL;    std::vector<Type*> ArgTys;    bool IsVarArg = false; @@ -103,7 +103,7 @@ static const FunctionType *getType(LLVMContext &Context, unsigned id) {  }  Function *MBlazeIntrinsicInfo::getDeclaration(Module *M, unsigned IntrID, -                                                const Type **Tys, +                                                Type **Tys,                                                  unsigned numTy) const {    assert(!isOverloaded(IntrID) && "MBlaze intrinsics are not overloaded");    AttrListPtr AList = getAttributes((mblazeIntrinsic::ID) IntrID); diff --git a/lib/Target/MBlaze/MBlazeIntrinsicInfo.h b/lib/Target/MBlaze/MBlazeIntrinsicInfo.h index 9804c77..80760d8 100644 --- a/lib/Target/MBlaze/MBlazeIntrinsicInfo.h +++ b/lib/Target/MBlaze/MBlazeIntrinsicInfo.h @@ -19,12 +19,12 @@ namespace llvm {    class MBlazeIntrinsicInfo : public TargetIntrinsicInfo {    public: -    std::string getName(unsigned IntrID, const Type **Tys = 0, +    std::string getName(unsigned IntrID, Type **Tys = 0,                          unsigned numTys = 0) const;      unsigned lookupName(const char *Name, unsigned Len) const;      unsigned lookupGCCName(const char *Name) const;      bool isOverloaded(unsigned IID) const; -    Function *getDeclaration(Module *M, unsigned ID, const Type **Tys = 0, +    Function *getDeclaration(Module *M, unsigned ID, Type **Tys = 0,                               unsigned numTys = 0) const;    }; diff --git a/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp b/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp index abd1b0b..f66ea30 100644 --- a/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp +++ b/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp @@ -69,7 +69,7 @@ IsGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM,    if (Kind.isMergeable1ByteCString())      return false; -  const Type *Ty = GV->getType()->getElementType(); +  Type *Ty = GV->getType()->getElementType();    return IsInSmallSection(TM.getTargetData()->getTypeAllocSize(Ty));  } diff --git a/lib/Target/MSP430/MSP430ISelLowering.cpp b/lib/Target/MSP430/MSP430ISelLowering.cpp index 0a3eab1..8405789 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.cpp +++ b/lib/Target/MSP430/MSP430ISelLowering.cpp @@ -987,8 +987,8 @@ const char *MSP430TargetLowering::getTargetNodeName(unsigned Opcode) const {    }  } -bool MSP430TargetLowering::isTruncateFree(const Type *Ty1, -                                          const Type *Ty2) const { +bool MSP430TargetLowering::isTruncateFree(Type *Ty1, +                                          Type *Ty2) const {    if (!Ty1->isIntegerTy() || !Ty2->isIntegerTy())      return false; @@ -1002,7 +1002,7 @@ bool MSP430TargetLowering::isTruncateFree(EVT VT1, EVT VT2) const {    return (VT1.getSizeInBits() > VT2.getSizeInBits());  } -bool MSP430TargetLowering::isZExtFree(const Type *Ty1, const Type *Ty2) const { +bool MSP430TargetLowering::isZExtFree(Type *Ty1, Type *Ty2) const {    // MSP430 implicitly zero-extends 8-bit results in 16-bit registers.    return 0 && Ty1->isIntegerTy(8) && Ty2->isIntegerTy(16);  } diff --git a/lib/Target/MSP430/MSP430ISelLowering.h b/lib/Target/MSP430/MSP430ISelLowering.h index bd660a0..237f604 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.h +++ b/lib/Target/MSP430/MSP430ISelLowering.h @@ -102,7 +102,7 @@ namespace llvm {      /// isTruncateFree - Return true if it's free to truncate a value of type      /// Ty1 to type Ty2. e.g. On msp430 it's free to truncate a i16 value in      /// register R15W to i8 by referencing its sub-register R15B. -    virtual bool isTruncateFree(const Type *Ty1, const Type *Ty2) const; +    virtual bool isTruncateFree(Type *Ty1, Type *Ty2) const;      virtual bool isTruncateFree(EVT VT1, EVT VT2) const;      /// isZExtFree - Return true if any actual instruction that defines a value @@ -113,7 +113,7 @@ namespace llvm {      /// necessarily apply to truncate instructions. e.g. on msp430, all      /// instructions that define 8-bit values implicit zero-extend the result      /// out to 16 bits. -    virtual bool isZExtFree(const Type *Ty1, const Type *Ty2) const; +    virtual bool isZExtFree(Type *Ty1, Type *Ty2) const;      virtual bool isZExtFree(EVT VT1, EVT VT2) const;      MachineBasicBlock* EmitInstrWithCustomInserter(MachineInstr *MI, diff --git a/lib/Target/Mangler.cpp b/lib/Target/Mangler.cpp index 46c687b..53ad155 100644 --- a/lib/Target/Mangler.cpp +++ b/lib/Target/Mangler.cpp @@ -159,7 +159,7 @@ static void AddFastCallStdCallSuffix(SmallVectorImpl<char> &OutName,    unsigned ArgWords = 0;    for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end();         AI != AE; ++AI) { -    const Type *Ty = AI->getType(); +    Type *Ty = AI->getType();      // 'Dereference' type in case of byval parameter attribute      if (AI->hasByValAttr())        Ty = cast<PointerType>(Ty)->getElementType(); @@ -214,7 +214,7 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,        // fastcall and stdcall functions usually need @42 at the end to specify        // the argument info. -      const FunctionType *FT = F->getFunctionType(); +      FunctionType *FT = F->getFunctionType();        if ((CC == CallingConv::X86_FastCall || CC == CallingConv::X86_StdCall) &&            // "Pure" variadic functions do not receive @0 suffix.            (!FT->isVarArg() || FT->getNumParams() == 0 || diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp index b4f4b1b..617a85f 100644 --- a/lib/Target/Mips/MipsISelLowering.cpp +++ b/lib/Target/Mips/MipsISelLowering.cpp @@ -1361,11 +1361,11 @@ LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const      ArgListTy Args;      ArgListEntry Entry;      Entry.Node = Argument; -    Entry.Ty = (const Type *) Type::getInt32Ty(*DAG.getContext()); +    Entry.Ty = (Type *) Type::getInt32Ty(*DAG.getContext());      Args.push_back(Entry);      std::pair<SDValue, SDValue> CallResult =          LowerCallTo(DAG.getEntryNode(), -                    (const Type *) Type::getInt32Ty(*DAG.getContext()), +                    (Type *) Type::getInt32Ty(*DAG.getContext()),                      false, false, false, false, 0, CallingConv::C, false, true,                      DAG.getExternalSymbol("__tls_get_addr", PtrVT), Args, DAG,                      dl); @@ -2313,7 +2313,7 @@ MipsTargetLowering::getSingleConstraintMatchWeight(      // but allow it at the lowest weight.    if (CallOperandVal == NULL)      return CW_Default; -  const Type *type = CallOperandVal->getType(); +  Type *type = CallOperandVal->getType();    // Look at the constraint type.    switch (*constraint) {    default: diff --git a/lib/Target/Mips/MipsTargetObjectFile.cpp b/lib/Target/Mips/MipsTargetObjectFile.cpp index cf5d1b5..05c46f5 100644 --- a/lib/Target/Mips/MipsTargetObjectFile.cpp +++ b/lib/Target/Mips/MipsTargetObjectFile.cpp @@ -79,7 +79,7 @@ IsGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM,    if (Kind.isMergeable1ByteCString())      return false; -  const Type *Ty = GV->getType()->getElementType(); +  Type *Ty = GV->getType()->getElementType();    return IsInSmallSection(TM.getTargetData()->getTypeAllocSize(Ty));  } diff --git a/lib/Target/PTX/PTXAsmPrinter.cpp b/lib/Target/PTX/PTXAsmPrinter.cpp index 2848d54..bb48e0a 100644 --- a/lib/Target/PTX/PTXAsmPrinter.cpp +++ b/lib/Target/PTX/PTXAsmPrinter.cpp @@ -115,7 +115,7 @@ static const char *getStateSpaceName(unsigned addressSpace) {    return NULL;  } -static const char *getTypeName(const Type* type) { +static const char *getTypeName(Type* type) {    while (true) {      switch (type->getTypeID()) {        default: llvm_unreachable("Unknown type"); @@ -130,7 +130,7 @@ static const char *getTypeName(const Type* type) {          }        case Type::ArrayTyID:        case Type::PointerTyID: -        type = dyn_cast<const SequentialType>(type)->getElementType(); +        type = dyn_cast<SequentialType>(type)->getElementType();          break;      }    } @@ -406,8 +406,8 @@ void PTXAsmPrinter::EmitVariableDeclaration(const GlobalVariable *gv) {    if (PointerType::classof(gv->getType())) { -    const PointerType* pointerTy = dyn_cast<const PointerType>(gv->getType()); -    const Type* elementTy = pointerTy->getElementType(); +    PointerType* pointerTy = dyn_cast<PointerType>(gv->getType()); +    Type* elementTy = pointerTy->getElementType();      decl += ".b8 ";      decl += gvsym->getName(); @@ -417,14 +417,14 @@ void PTXAsmPrinter::EmitVariableDeclaration(const GlobalVariable *gv) {      {        assert(elementTy->isArrayTy() && "Only pointers to arrays are supported"); -      const ArrayType* arrayTy = dyn_cast<const ArrayType>(elementTy); +      ArrayType* arrayTy = dyn_cast<ArrayType>(elementTy);        elementTy = arrayTy->getElementType();        unsigned numElements = arrayTy->getNumElements();        while (elementTy->isArrayTy()) { -        arrayTy = dyn_cast<const ArrayType>(elementTy); +        arrayTy = dyn_cast<ArrayType>(elementTy);          elementTy = arrayTy->getElementType();          numElements *= arrayTy->getNumElements(); diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index 9741a39..f97c467 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -406,7 +406,7 @@ PPCTargetLowering::PPCTargetLowering(PPCTargetMachine &TM)  /// getByValTypeAlignment - Return the desired alignment for ByVal aggregate  /// function arguments in the caller parameter area. -unsigned PPCTargetLowering::getByValTypeAlignment(const Type *Ty) const { +unsigned PPCTargetLowering::getByValTypeAlignment(Type *Ty) const {    const TargetMachine &TM = getTargetMachine();    // Darwin passes everything on 4 byte boundary.    if (TM.getSubtarget<PPCSubtarget>().isDarwin()) @@ -1378,7 +1378,7 @@ SDValue PPCTargetLowering::LowerTRAMPOLINE(SDValue Op,    EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();    bool isPPC64 = (PtrVT == MVT::i64); -  const Type *IntPtrTy = +  Type *IntPtrTy =      DAG.getTargetLoweringInfo().getTargetData()->getIntPtrType(                                                               *DAG.getContext()); @@ -5504,7 +5504,7 @@ PPCTargetLowering::getSingleConstraintMatchWeight(      // but allow it at the lowest weight.    if (CallOperandVal == NULL)      return CW_Default; -  const Type *type = CallOperandVal->getType(); +  Type *type = CallOperandVal->getType();    // Look at the constraint type.    switch (*constraint) {    default: @@ -5634,7 +5634,7 @@ void PPCTargetLowering::LowerAsmOperandForConstraint(SDValue Op,  // isLegalAddressingMode - Return true if the addressing mode represented  // by AM is legal for this target, for a load/store of the specified type.  bool PPCTargetLowering::isLegalAddressingMode(const AddrMode &AM, -                                              const Type *Ty) const { +                                              Type *Ty) const {    // FIXME: PPC does not allow r+i addressing modes for vectors!    // PPC allows a sign-extended 16-bit immediate field. @@ -5670,7 +5670,7 @@ bool PPCTargetLowering::isLegalAddressingMode(const AddrMode &AM,  /// isLegalAddressImmediate - Return true if the integer value can be used  /// as the offset of the target addressing mode for load / store of the  /// given type. -bool PPCTargetLowering::isLegalAddressImmediate(int64_t V,const Type *Ty) const{ +bool PPCTargetLowering::isLegalAddressImmediate(int64_t V,Type *Ty) const{    // PPC allows a sign-extended 16-bit immediate field.    return (V > -(1 << 16) && V < (1 << 16)-1);  } diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h index 986b4e7..a4f8e2a 100644 --- a/lib/Target/PowerPC/PPCISelLowering.h +++ b/lib/Target/PowerPC/PPCISelLowering.h @@ -323,7 +323,7 @@ namespace llvm {      /// getByValTypeAlignment - Return the desired alignment for ByVal aggregate      /// function arguments in the caller parameter area.  This is the actual      /// alignment, not its logarithm. -    unsigned getByValTypeAlignment(const Type *Ty) const; +    unsigned getByValTypeAlignment(Type *Ty) const;      /// LowerAsmOperandForConstraint - Lower the specified operand into the Ops      /// vector.  If it is invalid, don't add anything to Ops. @@ -334,12 +334,12 @@ namespace llvm {      /// isLegalAddressingMode - Return true if the addressing mode represented      /// by AM is legal for this target, for a load/store of the specified type. -    virtual bool isLegalAddressingMode(const AddrMode &AM, const Type *Ty)const; +    virtual bool isLegalAddressingMode(const AddrMode &AM, Type *Ty)const;      /// isLegalAddressImmediate - Return true if the integer value can be used      /// as the offset of the target addressing mode for load / store of the      /// given type. -    virtual bool isLegalAddressImmediate(int64_t V, const Type *Ty) const; +    virtual bool isLegalAddressImmediate(int64_t V, Type *Ty) const;      /// isLegalAddressImmediate - Return true if the GlobalValue can be used as      /// the offset of the target addressing mode. diff --git a/lib/Target/Sparc/SparcISelLowering.cpp b/lib/Target/Sparc/SparcISelLowering.cpp index 6f30d3f..fb19490 100644 --- a/lib/Target/Sparc/SparcISelLowering.cpp +++ b/lib/Target/Sparc/SparcISelLowering.cpp @@ -631,8 +631,8 @@ SparcTargetLowering::getSRetArgSize(SelectionDAG &DAG, SDValue Callee) const    assert(CalleeFn->hasStructRetAttr() &&           "Callee does not have the StructRet attribute."); -  const PointerType *Ty = cast<PointerType>(CalleeFn->arg_begin()->getType()); -  const Type *ElementTy = Ty->getElementType(); +  PointerType *Ty = cast<PointerType>(CalleeFn->arg_begin()->getType()); +  Type *ElementTy = Ty->getElementType();    return getTargetData()->getTypeAllocSize(ElementTy);  } diff --git a/lib/Target/Target.cpp b/lib/Target/Target.cpp index a42ce54..1216cce 100644 --- a/lib/Target/Target.cpp +++ b/lib/Target/Target.cpp @@ -87,13 +87,13 @@ unsigned LLVMPreferredAlignmentOfGlobal(LLVMTargetDataRef TD,  unsigned LLVMElementAtOffset(LLVMTargetDataRef TD, LLVMTypeRef StructTy,                               unsigned long long Offset) { -  const StructType *STy = unwrap<StructType>(StructTy); +  StructType *STy = unwrap<StructType>(StructTy);    return unwrap(TD)->getStructLayout(STy)->getElementContainingOffset(Offset);  }  unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD, LLVMTypeRef StructTy,                                         unsigned Element) { -  const StructType *STy = unwrap<StructType>(StructTy); +  StructType *STy = unwrap<StructType>(StructTy);    return unwrap(TD)->getStructLayout(STy)->getElementOffset(Element);  } diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp index 17d022a..4e95aba 100644 --- a/lib/Target/TargetData.cpp +++ b/lib/Target/TargetData.cpp @@ -41,7 +41,7 @@ char TargetData::ID = 0;  // Support for StructLayout  //===----------------------------------------------------------------------===// -StructLayout::StructLayout(const StructType *ST, const TargetData &TD) { +StructLayout::StructLayout(StructType *ST, const TargetData &TD) {    assert(!ST->isOpaque() && "Cannot get layout of opaque structs");    StructAlignment = 0;    StructSize = 0; @@ -49,7 +49,7 @@ StructLayout::StructLayout(const StructType *ST, const TargetData &TD) {    // Loop over each of the elements, placing them in memory.    for (unsigned i = 0, e = NumElements; i != e; ++i) { -    const Type *Ty = ST->getElementType(i); +    Type *Ty = ST->getElementType(i);      unsigned TyAlign = ST->isPacked() ? 1 : TD.getABITypeAlignment(Ty);      // Add padding if necessary to align the data element properly. @@ -261,7 +261,7 @@ TargetData::setAlignment(AlignTypeEnum align_type, unsigned abi_align,  /// preferred if ABIInfo = false) the target wants for the specified datatype.  unsigned TargetData::getAlignmentInfo(AlignTypeEnum AlignType,                                        uint32_t BitWidth, bool ABIInfo, -                                      const Type *Ty) const { +                                      Type *Ty) const {    // Check to see if we have an exact match and remember the best match we see.    int BestMatchIdx = -1;    int LargestInt = -1; @@ -315,7 +315,7 @@ unsigned TargetData::getAlignmentInfo(AlignTypeEnum AlignType,  namespace {  class StructLayoutMap { -  typedef DenseMap<const StructType*, StructLayout*> LayoutInfoTy; +  typedef DenseMap<StructType*, StructLayout*> LayoutInfoTy;    LayoutInfoTy LayoutInfo;  public: @@ -329,7 +329,7 @@ public:      }    } -  StructLayout *&operator[](const StructType *STy) { +  StructLayout *&operator[](StructType *STy) {      return LayoutInfo[STy];    } @@ -343,7 +343,7 @@ TargetData::~TargetData() {    delete static_cast<StructLayoutMap*>(LayoutMap);  } -const StructLayout *TargetData::getStructLayout(const StructType *Ty) const { +const StructLayout *TargetData::getStructLayout(StructType *Ty) const {    if (!LayoutMap)      LayoutMap = new StructLayoutMap(); @@ -389,14 +389,14 @@ std::string TargetData::getStringRepresentation() const {  } -uint64_t TargetData::getTypeSizeInBits(const Type *Ty) const { +uint64_t TargetData::getTypeSizeInBits(Type *Ty) const {    assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!");    switch (Ty->getTypeID()) {    case Type::LabelTyID:    case Type::PointerTyID:      return getPointerSizeInBits();    case Type::ArrayTyID: { -    const ArrayType *ATy = cast<ArrayType>(Ty); +    ArrayType *ATy = cast<ArrayType>(Ty);      return getTypeAllocSizeInBits(ATy->getElementType())*ATy->getNumElements();    }    case Type::StructTyID: @@ -435,7 +435,7 @@ uint64_t TargetData::getTypeSizeInBits(const Type *Ty) const {    Get the ABI (\a abi_or_pref == true) or preferred alignment (\a abi_or_pref    == false) for the requested type \a Ty.   */ -unsigned TargetData::getAlignment(const Type *Ty, bool abi_or_pref) const { +unsigned TargetData::getAlignment(Type *Ty, bool abi_or_pref) const {    int AlignType = -1;    assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!"); @@ -485,7 +485,7 @@ unsigned TargetData::getAlignment(const Type *Ty, bool abi_or_pref) const {                            abi_or_pref, Ty);  } -unsigned TargetData::getABITypeAlignment(const Type *Ty) const { +unsigned TargetData::getABITypeAlignment(Type *Ty) const {    return getAlignment(Ty, true);  } @@ -496,7 +496,7 @@ unsigned TargetData::getABIIntegerTypeAlignment(unsigned BitWidth) const {  } -unsigned TargetData::getCallFrameTypeAlignment(const Type *Ty) const { +unsigned TargetData::getCallFrameTypeAlignment(Type *Ty) const {    for (unsigned i = 0, e = Alignments.size(); i != e; ++i)      if (Alignments[i].AlignType == STACK_ALIGN)        return Alignments[i].ABIAlign; @@ -504,11 +504,11 @@ unsigned TargetData::getCallFrameTypeAlignment(const Type *Ty) const {    return getABITypeAlignment(Ty);  } -unsigned TargetData::getPrefTypeAlignment(const Type *Ty) const { +unsigned TargetData::getPrefTypeAlignment(Type *Ty) const {    return getAlignment(Ty, false);  } -unsigned TargetData::getPreferredTypeAlignmentShift(const Type *Ty) const { +unsigned TargetData::getPreferredTypeAlignmentShift(Type *Ty) const {    unsigned Align = getPrefTypeAlignment(Ty);    assert(!(Align & (Align-1)) && "Alignment is not a power of two!");    return Log2_32(Align); @@ -521,16 +521,16 @@ IntegerType *TargetData::getIntPtrType(LLVMContext &C) const {  } -uint64_t TargetData::getIndexedOffset(const Type *ptrTy, Value* const* Indices, +uint64_t TargetData::getIndexedOffset(Type *ptrTy, Value* const* Indices,                                        unsigned NumIndices) const { -  const Type *Ty = ptrTy; +  Type *Ty = ptrTy;    assert(Ty->isPointerTy() && "Illegal argument for getIndexedOffset()");    uint64_t Result = 0;    generic_gep_type_iterator<Value* const*>      TI = gep_type_begin(ptrTy, Indices, Indices+NumIndices);    for (unsigned CurIDX = 0; CurIDX != NumIndices; ++CurIDX, ++TI) { -    if (const StructType *STy = dyn_cast<StructType>(*TI)) { +    if (StructType *STy = dyn_cast<StructType>(*TI)) {        assert(Indices[CurIDX]->getType() ==               Type::getInt32Ty(ptrTy->getContext()) &&               "Illegal struct idx"); @@ -561,7 +561,7 @@ uint64_t TargetData::getIndexedOffset(const Type *ptrTy, Value* const* Indices,  /// global.  This includes an explicitly requested alignment (if the global  /// has one).  unsigned TargetData::getPreferredAlignment(const GlobalVariable *GV) const { -  const Type *ElemType = GV->getType()->getElementType(); +  Type *ElemType = GV->getType()->getElementType();    unsigned Alignment = getPrefTypeAlignment(ElemType);    unsigned GVAlignment = GV->getAlignment();    if (GVAlignment >= Alignment) { diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 703431b..20f8744 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -93,7 +93,7 @@ static bool isSuitableForBSS(const GlobalVariable *GV) {  /// known to have a type that is an array of 1/2/4 byte elements) ends with a  /// nul value and contains no other nuls in it.  static bool IsNullTerminatedString(const Constant *C) { -  const ArrayType *ATy = cast<ArrayType>(C->getType()); +  ArrayType *ATy = cast<ArrayType>(C->getType());    // First check: is we have constant array of i8 terminated with zero    if (const ConstantArray *CVA = dyn_cast<ConstantArray>(C)) { @@ -188,8 +188,8 @@ SectionKind TargetLoweringObjectFile::getKindForGlobal(const GlobalValue *GV,        // If initializer is a null-terminated string, put it in a "cstring"        // section of the right width. -      if (const ArrayType *ATy = dyn_cast<ArrayType>(C->getType())) { -        if (const IntegerType *ITy = +      if (ArrayType *ATy = dyn_cast<ArrayType>(C->getType())) { +        if (IntegerType *ITy =                dyn_cast<IntegerType>(ATy->getElementType())) {            if ((ITy->getBitWidth() == 8 || ITy->getBitWidth() == 16 ||                 ITy->getBitWidth() == 32) && diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp index 21e163a..545d880 100644 --- a/lib/Target/X86/X86FastISel.cpp +++ b/lib/Target/X86/X86FastISel.cpp @@ -134,7 +134,7 @@ private:        (VT == MVT::f32 && X86ScalarSSEf32);   // f32 is when SSE1    } -  bool isTypeLegal(const Type *Ty, MVT &VT, bool AllowI1 = false); +  bool isTypeLegal(Type *Ty, MVT &VT, bool AllowI1 = false);    bool IsMemcpySmall(uint64_t Len); @@ -144,7 +144,7 @@ private:  } // end anonymous namespace. -bool X86FastISel::isTypeLegal(const Type *Ty, MVT &VT, bool AllowI1) { +bool X86FastISel::isTypeLegal(Type *Ty, MVT &VT, bool AllowI1) {    EVT evt = TLI.getValueType(Ty, /*HandleUnknown=*/true);    if (evt == MVT::Other || !evt.isSimple())      // Unhandled type. Halt "fast" selection and bail. @@ -336,7 +336,7 @@ bool X86FastISel::X86SelectAddress(const Value *V, X86AddressMode &AM) {      U = C;    } -  if (const PointerType *Ty = dyn_cast<PointerType>(V->getType())) +  if (PointerType *Ty = dyn_cast<PointerType>(V->getType()))      if (Ty->getAddressSpace() > 255)        // Fast instruction selection doesn't support the special        // address spaces. @@ -399,7 +399,7 @@ bool X86FastISel::X86SelectAddress(const Value *V, X86AddressMode &AM) {      for (User::const_op_iterator i = U->op_begin() + 1, e = U->op_end();           i != e; ++i, ++GTI) {        const Value *Op = *i; -      if (const StructType *STy = dyn_cast<StructType>(*GTI)) { +      if (StructType *STy = dyn_cast<StructType>(*GTI)) {          const StructLayout *SL = TD.getStructLayout(STy);          Disp += SL->getElementOffset(cast<ConstantInt>(Op)->getZExtValue());          continue; @@ -1411,7 +1411,7 @@ bool X86FastISel::X86VisitIntrinsicCall(const IntrinsicInst &I) {      // Replace "add with overflow" intrinsics with an "add" instruction followed      // by a seto/setc instruction.      const Function *Callee = I.getCalledFunction(); -    const Type *RetTy = +    Type *RetTy =        cast<StructType>(Callee->getReturnType())->getTypeAtIndex(unsigned(0));      MVT VT; @@ -1484,8 +1484,8 @@ bool X86FastISel::DoSelectCall(const Instruction *I, const char *MemIntName) {    if (CC == CallingConv::Fast && GuaranteedTailCallOpt)      return false; -  const PointerType *PT = cast<PointerType>(CS.getCalledValue()->getType()); -  const FunctionType *FTy = cast<FunctionType>(PT->getElementType()); +  PointerType *PT = cast<PointerType>(CS.getCalledValue()->getType()); +  FunctionType *FTy = cast<FunctionType>(PT->getElementType());    bool isVarArg = FTy->isVarArg();    // Don't know how to handle Win64 varargs yet.  Nothing special needed for @@ -1547,8 +1547,8 @@ bool X86FastISel::DoSelectCall(const Instruction *I, const char *MemIntName) {        Flags.setZExt();      if (CS.paramHasAttr(AttrInd, Attribute::ByVal)) { -      const PointerType *Ty = cast<PointerType>(ArgVal->getType()); -      const Type *ElementTy = Ty->getElementType(); +      PointerType *Ty = cast<PointerType>(ArgVal->getType()); +      Type *ElementTy = Ty->getElementType();        unsigned FrameSize = TD.getTypeAllocSize(ElementTy);        unsigned FrameAlign = CS.getParamAlignment(AttrInd);        if (!FrameAlign) @@ -1600,7 +1600,7 @@ bool X86FastISel::DoSelectCall(const Instruction *I, const char *MemIntName) {      if (ArgReg == 0) return false; -    const Type *ArgTy = ArgVal->getType(); +    Type *ArgTy = ArgVal->getType();      MVT ArgVT;      if (!isTypeLegal(ArgTy, ArgVT))        return false; diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 5096d9a..1d953bc 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -1131,18 +1131,18 @@ MVT::SimpleValueType X86TargetLowering::getSetCCResultType(EVT VT) const {  /// getMaxByValAlign - Helper for getByValTypeAlignment to determine  /// the desired ByVal argument alignment. -static void getMaxByValAlign(const Type *Ty, unsigned &MaxAlign) { +static void getMaxByValAlign(Type *Ty, unsigned &MaxAlign) {    if (MaxAlign == 16)      return; -  if (const VectorType *VTy = dyn_cast<VectorType>(Ty)) { +  if (VectorType *VTy = dyn_cast<VectorType>(Ty)) {      if (VTy->getBitWidth() == 128)        MaxAlign = 16; -  } else if (const ArrayType *ATy = dyn_cast<ArrayType>(Ty)) { +  } else if (ArrayType *ATy = dyn_cast<ArrayType>(Ty)) {      unsigned EltAlign = 0;      getMaxByValAlign(ATy->getElementType(), EltAlign);      if (EltAlign > MaxAlign)        MaxAlign = EltAlign; -  } else if (const StructType *STy = dyn_cast<StructType>(Ty)) { +  } else if (StructType *STy = dyn_cast<StructType>(Ty)) {      for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {        unsigned EltAlign = 0;        getMaxByValAlign(STy->getElementType(i), EltAlign); @@ -1159,7 +1159,7 @@ static void getMaxByValAlign(const Type *Ty, unsigned &MaxAlign) {  /// function arguments in the caller parameter area. For X86, aggregates  /// that contain SSE vectors are placed at 16-byte boundaries while the rest  /// are at 4-byte boundaries. -unsigned X86TargetLowering::getByValTypeAlignment(const Type *Ty) const { +unsigned X86TargetLowering::getByValTypeAlignment(Type *Ty) const {    if (Subtarget->is64Bit()) {      // Max of 8 and alignment of type.      unsigned TyAlign = TD->getABITypeAlignment(Ty); @@ -8118,7 +8118,7 @@ SDValue X86TargetLowering::LowerVAARG(SDValue Op, SelectionDAG &DAG) const {    DebugLoc dl = Op.getDebugLoc();    EVT ArgVT = Op.getNode()->getValueType(0); -  const Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext()); +  Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());    uint32_t ArgSize = getTargetData()->getTypeAllocSize(ArgTy);    uint8_t ArgMode; @@ -8619,7 +8619,7 @@ SDValue X86TargetLowering::LowerTRAMPOLINE(SDValue Op,        NestReg = X86::ECX;        // Check that ECX wasn't needed by an 'inreg' parameter. -      const FunctionType *FTy = Func->getFunctionType(); +      FunctionType *FTy = Func->getFunctionType();        const AttrListPtr &Attrs = Func->getAttributes();        if (!Attrs.isEmpty() && !Func->isVarArg()) { @@ -9619,7 +9619,7 @@ const char *X86TargetLowering::getTargetNodeName(unsigned Opcode) const {  // isLegalAddressingMode - Return true if the addressing mode represented  // by AM is legal for this target, for a load/store of the specified type.  bool X86TargetLowering::isLegalAddressingMode(const AddrMode &AM, -                                              const Type *Ty) const { +                                              Type *Ty) const {    // X86 supports extremely general addressing modes.    CodeModel::Model M = getTargetMachine().getCodeModel();    Reloc::Model R = getTargetMachine().getRelocationModel(); @@ -9671,7 +9671,7 @@ bool X86TargetLowering::isLegalAddressingMode(const AddrMode &AM,  } -bool X86TargetLowering::isTruncateFree(const Type *Ty1, const Type *Ty2) const { +bool X86TargetLowering::isTruncateFree(Type *Ty1, Type *Ty2) const {    if (!Ty1->isIntegerTy() || !Ty2->isIntegerTy())      return false;    unsigned NumBits1 = Ty1->getPrimitiveSizeInBits(); @@ -9691,7 +9691,7 @@ bool X86TargetLowering::isTruncateFree(EVT VT1, EVT VT2) const {    return true;  } -bool X86TargetLowering::isZExtFree(const Type *Ty1, const Type *Ty2) const { +bool X86TargetLowering::isZExtFree(Type *Ty1, Type *Ty2) const {    // x86-64 implicitly zero-extends 32-bit results in 64-bit registers.    return Ty1->isIntegerTy(32) && Ty2->isIntegerTy(64) && Subtarget->is64Bit();  } @@ -12551,7 +12551,7 @@ bool X86TargetLowering::ExpandInlineAsm(CallInst *CI) const {           AsmPieces[1] == "${0:q}")) {        // No need to check constraints, nothing other than the equivalent of        // "=r,0" would be valid here. -      const IntegerType *Ty = dyn_cast<IntegerType>(CI->getType()); +      IntegerType *Ty = dyn_cast<IntegerType>(CI->getType());        if (!Ty || Ty->getBitWidth() % 16 != 0)          return false;        return IntrinsicLowering::LowerToByteSwap(CI); @@ -12572,7 +12572,7 @@ bool X86TargetLowering::ExpandInlineAsm(CallInst *CI) const {            AsmPieces[1] == "~{dirflag}" &&            AsmPieces[2] == "~{flags}" &&            AsmPieces[3] == "~{fpsr}") { -        const IntegerType *Ty = dyn_cast<IntegerType>(CI->getType()); +        IntegerType *Ty = dyn_cast<IntegerType>(CI->getType());          if (!Ty || Ty->getBitWidth() % 16 != 0)            return false;          return IntrinsicLowering::LowerToByteSwap(CI); @@ -12603,7 +12603,7 @@ bool X86TargetLowering::ExpandInlineAsm(CallInst *CI) const {                  AsmPieces[1] == "~{dirflag}" &&                  AsmPieces[2] == "~{flags}" &&                  AsmPieces[3] == "~{fpsr}") { -              const IntegerType *Ty = dyn_cast<IntegerType>(CI->getType()); +              IntegerType *Ty = dyn_cast<IntegerType>(CI->getType());                if (!Ty || Ty->getBitWidth() % 16 != 0)                  return false;                return IntrinsicLowering::LowerToByteSwap(CI); @@ -12629,7 +12629,7 @@ bool X86TargetLowering::ExpandInlineAsm(CallInst *CI) const {              SplitString(AsmPieces[2], Words, " \t,");              if (Words.size() == 3 && Words[0] == "xchgl" && Words[1] == "%eax" &&                  Words[2] == "%edx") { -              const IntegerType *Ty = dyn_cast<IntegerType>(CI->getType()); +              IntegerType *Ty = dyn_cast<IntegerType>(CI->getType());                if (!Ty || Ty->getBitWidth() % 16 != 0)                  return false;                return IntrinsicLowering::LowerToByteSwap(CI); @@ -12700,7 +12700,7 @@ TargetLowering::ConstraintWeight      // but allow it at the lowest weight.    if (CallOperandVal == NULL)      return CW_Default; -  const Type *type = CallOperandVal->getType(); +  Type *type = CallOperandVal->getType();    // Look at the constraint type.    switch (*constraint) {    default: diff --git a/lib/Target/X86/X86ISelLowering.h b/lib/Target/X86/X86ISelLowering.h index b603678..376aa8a 100644 --- a/lib/Target/X86/X86ISelLowering.h +++ b/lib/Target/X86/X86ISelLowering.h @@ -505,7 +505,7 @@ namespace llvm {      /// function arguments in the caller parameter area. For X86, aggregates      /// that contains are placed at 16-byte boundaries while the rest are at      /// 4-byte boundaries. -    virtual unsigned getByValTypeAlignment(const Type *Ty) const; +    virtual unsigned getByValTypeAlignment(Type *Ty) const;      /// getOptimalMemOpType - Returns the target specific optimal type for load      /// and store operations as a result of memset, memcpy, and memmove @@ -617,12 +617,12 @@ namespace llvm {      /// isLegalAddressingMode - Return true if the addressing mode represented      /// by AM is legal for this target, for a load/store of the specified type. -    virtual bool isLegalAddressingMode(const AddrMode &AM, const Type *Ty)const; +    virtual bool isLegalAddressingMode(const AddrMode &AM, Type *Ty)const;      /// isTruncateFree - Return true if it's free to truncate a value of      /// type Ty1 to type Ty2. e.g. On x86 it's free to truncate a i32 value in      /// register EAX to i16 by referencing its sub-register AX. -    virtual bool isTruncateFree(const Type *Ty1, const Type *Ty2) const; +    virtual bool isTruncateFree(Type *Ty1, Type *Ty2) const;      virtual bool isTruncateFree(EVT VT1, EVT VT2) const;      /// isZExtFree - Return true if any actual instruction that defines a @@ -633,7 +633,7 @@ namespace llvm {      /// does not necessarily apply to truncate instructions. e.g. on x86-64,      /// all instructions that define 32-bit values implicit zero-extend the      /// result out to 64 bits. -    virtual bool isZExtFree(const Type *Ty1, const Type *Ty2) const; +    virtual bool isZExtFree(Type *Ty1, Type *Ty2) const;      virtual bool isZExtFree(EVT VT1, EVT VT2) const;      /// isNarrowingProfitable - Return true if it's profitable to narrow diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 55b5835..8dc6822 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -2515,7 +2515,7 @@ MachineInstr* X86InstrInfo::foldMemoryOperandImpl(MachineFunction &MF,      // Create a constant-pool entry.      MachineConstantPool &MCP = *MF.getConstantPool(); -    const Type *Ty; +    Type *Ty;      unsigned Opc = LoadMI->getOpcode();      if (Opc == X86::FsFLD0SS || Opc == X86::VFsFLD0SS)        Ty = Type::getFloatTy(MF.getFunction()->getContext()); diff --git a/lib/Target/X86/X86SelectionDAGInfo.cpp b/lib/Target/X86/X86SelectionDAGInfo.cpp index 02754f9..6406bce 100644 --- a/lib/Target/X86/X86SelectionDAGInfo.cpp +++ b/lib/Target/X86/X86SelectionDAGInfo.cpp @@ -54,7 +54,7 @@ X86SelectionDAGInfo::EmitTargetCodeForMemset(SelectionDAG &DAG, DebugLoc dl,      if (const char *bzeroEntry =  V &&          V->isNullValue() ? Subtarget->getBZeroEntry() : 0) {        EVT IntPtr = TLI.getPointerTy(); -      const Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext()); +      Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext());        TargetLowering::ArgListTy Args;        TargetLowering::ArgListEntry Entry;        Entry.Node = Dst; diff --git a/lib/Target/XCore/XCoreAsmPrinter.cpp b/lib/Target/XCore/XCoreAsmPrinter.cpp index 1a43714..6efa41f 100644 --- a/lib/Target/XCore/XCoreAsmPrinter.cpp +++ b/lib/Target/XCore/XCoreAsmPrinter.cpp @@ -88,7 +88,7 @@ void XCoreAsmPrinter::emitArrayBound(MCSymbol *Sym, const GlobalVariable *GV) {    assert(((GV->hasExternalLinkage() ||      GV->hasWeakLinkage()) ||      GV->hasLinkOnceLinkage()) && "Unexpected linkage"); -  if (const ArrayType *ATy = dyn_cast<ArrayType>( +  if (ArrayType *ATy = dyn_cast<ArrayType>(      cast<PointerType>(GV->getType())->getElementType())) {      OutStreamer.EmitSymbolAttribute(Sym, MCSA_Global);      // FIXME: MCStreamerize. diff --git a/lib/Target/XCore/XCoreISelLowering.cpp b/lib/Target/XCore/XCoreISelLowering.cpp index 6d040e0..21a119e 100644 --- a/lib/Target/XCore/XCoreISelLowering.cpp +++ b/lib/Target/XCore/XCoreISelLowering.cpp @@ -252,8 +252,8 @@ static inline SDValue BuildGetId(SelectionDAG &DAG, DebugLoc dl) {                       DAG.getConstant(Intrinsic::xcore_getid, MVT::i32));  } -static inline bool isZeroLengthArray(const Type *Ty) { -  const ArrayType *AT = dyn_cast_or_null<ArrayType>(Ty); +static inline bool isZeroLengthArray(Type *Ty) { +  ArrayType *AT = dyn_cast_or_null<ArrayType>(Ty);    return AT && (AT->getNumElements() == 0);  } @@ -275,7 +275,7 @@ LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const      llvm_unreachable("Thread local object not a GlobalVariable?");      return SDValue();    } -  const Type *Ty = cast<PointerType>(GV->getType())->getElementType(); +  Type *Ty = cast<PointerType>(GV->getType())->getElementType();    if (!Ty->isSized() || isZeroLengthArray(Ty)) {  #ifndef NDEBUG      errs() << "Size of thread local object " << GVar->getName() @@ -465,7 +465,7 @@ LowerLOAD(SDValue Op, SelectionDAG &DAG) const {    }    // Lower to a call to __misaligned_load(BasePtr). -  const Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext()); +  Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext());    TargetLowering::ArgListTy Args;    TargetLowering::ArgListEntry Entry; @@ -524,7 +524,7 @@ LowerSTORE(SDValue Op, SelectionDAG &DAG) const    }    // Lower to a call to __misaligned_store(BasePtr, Value). -  const Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext()); +  Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext());    TargetLowering::ArgListTy Args;    TargetLowering::ArgListEntry Entry; @@ -1548,7 +1548,7 @@ static inline bool isImmUs4(int64_t val)  /// by AM is legal for this target, for a load/store of the specified type.  bool  XCoreTargetLowering::isLegalAddressingMode(const AddrMode &AM, -                                              const Type *Ty) const { +                                              Type *Ty) const {    if (Ty->getTypeID() == Type::VoidTyID)      return AM.Scale == 0 && isImmUs(AM.BaseOffs) && isImmUs4(AM.BaseOffs); diff --git a/lib/Target/XCore/XCoreISelLowering.h b/lib/Target/XCore/XCoreISelLowering.h index 9c803be..246da9e 100644 --- a/lib/Target/XCore/XCoreISelLowering.h +++ b/lib/Target/XCore/XCoreISelLowering.h @@ -101,7 +101,7 @@ namespace llvm {                                    MachineBasicBlock *MBB) const;      virtual bool isLegalAddressingMode(const AddrMode &AM, -                                       const Type *Ty) const; +                                       Type *Ty) const;    private:      const XCoreTargetMachine &TM;  | 
