diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-05-06 20:34:06 +0000 | 
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-05-06 20:34:06 +0000 | 
| commit | fc5d305597ea6336d75bd7f3b741e8d57d6a5105 (patch) | |
| tree | 74cae16e5f701b7d0bc679d547c4fe85f91be3a7 /lib | |
| parent | 8265e6ab4fb5ff178266d960c5d894f5828bb8ce (diff) | |
| download | external_llvm-fc5d305597ea6336d75bd7f3b741e8d57d6a5105.zip external_llvm-fc5d305597ea6336d75bd7f3b741e8d57d6a5105.tar.gz external_llvm-fc5d305597ea6336d75bd7f3b741e8d57d6a5105.tar.bz2  | |
Make the logic for determining function alignment more explicit.  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131012 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
28 files changed, 37 insertions, 98 deletions
diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp index 2dde6ad..50750a5 100644 --- a/lib/CodeGen/MachineFunction.cpp +++ b/lib/CodeGen/MachineFunction.cpp @@ -65,7 +65,11 @@ MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM,      FrameInfo->setMaxAlignment(Attribute::getStackAlignmentFromAttrs(          Fn->getAttributes().getFnAttributes()));    ConstantPool = new (Allocator) MachineConstantPool(TM.getTargetData()); -  Alignment = TM.getTargetLowering()->getFunctionAlignment(F); +  Alignment = TM.getTargetLowering()->getMinFunctionAlignment(); +  // FIXME: Shouldn't use pref alignment if explicit alignment is set on Fn. +  if (!Fn->hasFnAttr(Attribute::OptimizeForSize)) +    Alignment = std::max(Alignment, +                         TM.getTargetLowering()->getPrefFunctionAlignment());    FunctionNumber = FunctionNum;    JumpTableInfo = 0;  } diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 15606af..d163ebf 100644 --- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -596,6 +596,8 @@ TargetLowering::TargetLowering(const TargetMachine &tm,    SchedPreferenceInfo = Sched::Latency;    JumpBufSize = 0;    JumpBufAlignment = 0; +  MinFunctionAlignment = 0; +  PrefFunctionAlignment = 0;    PrefLoopAlignment = 0;    MinStackArgumentAlignment = 1;    ShouldFoldAtomicFences = false; diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 7c2a731..d7db688 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -724,6 +724,8 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)    setMinStackArgumentAlignment(4);    benefitFromCodePlacementOpt = true; + +  setMinFunctionAlignment(Subtarget->isThumb() ? 1 : 2);  }  // FIXME: It might make sense to define the representative register class as the @@ -925,11 +927,6 @@ ARMTargetLowering::createFastISel(FunctionLoweringInfo &funcInfo) const {    return ARM::createFastISel(funcInfo);  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned ARMTargetLowering::getFunctionAlignment(const Function *F) const { -  return getTargetMachine().getSubtarget<ARMSubtarget>().isThumb() ? 1 : 2; -} -  /// getMaximalGlobalOffset - Returns the maximal possible offset which can  /// be used for loads / stores from the global.  unsigned ARMTargetLowering::getMaximalGlobalOffset() const { diff --git a/lib/Target/ARM/ARMISelLowering.h b/lib/Target/ARM/ARMISelLowering.h index 82d167e..8ef0601 100644 --- a/lib/Target/ARM/ARMISelLowering.h +++ b/lib/Target/ARM/ARMISelLowering.h @@ -327,9 +327,6 @@ namespace llvm {      /// specified value type.      virtual TargetRegisterClass *getRegClassFor(EVT VT) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      /// getMaximalGlobalOffset - Returns the maximal possible offset which can      /// be used for loads / stores from the global.      virtual unsigned getMaximalGlobalOffset() const; diff --git a/lib/Target/Alpha/AlphaISelLowering.cpp b/lib/Target/Alpha/AlphaISelLowering.cpp index ee404f0..879c660 100644 --- a/lib/Target/Alpha/AlphaISelLowering.cpp +++ b/lib/Target/Alpha/AlphaISelLowering.cpp @@ -155,6 +155,8 @@ AlphaTargetLowering::AlphaTargetLowering(TargetMachine &TM)    setJumpBufSize(272);    setJumpBufAlignment(16); +  setMinFunctionAlignment(4); +    computeRegisterProperties();  } @@ -180,11 +182,6 @@ const char *AlphaTargetLowering::getTargetNodeName(unsigned Opcode) const {    }  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned AlphaTargetLowering::getFunctionAlignment(const Function *F) const { -  return 4; -} -  static SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG) {    EVT PtrVT = Op.getValueType();    JumpTableSDNode *JT = cast<JumpTableSDNode>(Op); diff --git a/lib/Target/Alpha/AlphaISelLowering.h b/lib/Target/Alpha/AlphaISelLowering.h index cb98f92..d38c314 100644 --- a/lib/Target/Alpha/AlphaISelLowering.h +++ b/lib/Target/Alpha/AlphaISelLowering.h @@ -104,9 +104,6 @@ namespace llvm {      virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      /// isFPImmLegal - Returns true if the target can instruction select the      /// specified FP immediate natively. If false, the legalizer will      /// materialize the FP immediate as a load from a constant pool. diff --git a/lib/Target/Blackfin/BlackfinISelLowering.cpp b/lib/Target/Blackfin/BlackfinISelLowering.cpp index 1e1f8c9..b097931 100644 --- a/lib/Target/Blackfin/BlackfinISelLowering.cpp +++ b/lib/Target/Blackfin/BlackfinISelLowering.cpp @@ -121,6 +121,8 @@ BlackfinTargetLowering::BlackfinTargetLowering(TargetMachine &TM)    setOperationAction(ISD::VAEND, MVT::Other, Expand);    setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);    setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand); + +  setMinFunctionAlignment(2);  }  const char *BlackfinTargetLowering::getTargetNodeName(unsigned Opcode) const { @@ -497,11 +499,6 @@ BlackfinTargetLowering::ReplaceNodeResults(SDNode *N,    }  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned BlackfinTargetLowering::getFunctionAlignment(const Function *F) const { -  return 2; -} -  //===----------------------------------------------------------------------===//  //                         Blackfin Inline Assembly Support  //===----------------------------------------------------------------------===// diff --git a/lib/Target/Blackfin/BlackfinISelLowering.h b/lib/Target/Blackfin/BlackfinISelLowering.h index 102c830..9a54557 100644 --- a/lib/Target/Blackfin/BlackfinISelLowering.h +++ b/lib/Target/Blackfin/BlackfinISelLowering.h @@ -53,7 +53,6 @@ namespace llvm {                                        EVT VT) const;      virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;      const char *getTargetNodeName(unsigned Opcode) const; -    unsigned getFunctionAlignment(const Function *F) const;    private:      SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const; diff --git a/lib/Target/CellSPU/SPUISelLowering.cpp b/lib/Target/CellSPU/SPUISelLowering.cpp index 8668da3..4819d72 100644 --- a/lib/Target/CellSPU/SPUISelLowering.cpp +++ b/lib/Target/CellSPU/SPUISelLowering.cpp @@ -445,6 +445,8 @@ SPUTargetLowering::SPUTargetLowering(SPUTargetMachine &TM)    setTargetDAGCombine(ISD::SIGN_EXTEND);    setTargetDAGCombine(ISD::ANY_EXTEND); +  setMinFunctionAlignment(3); +    computeRegisterProperties();    // Set pre-RA register scheduler default to BURR, which produces slightly @@ -489,11 +491,6 @@ SPUTargetLowering::getTargetNodeName(unsigned Opcode) const    return ((i != node_names.end()) ? i->second : 0);  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned SPUTargetLowering::getFunctionAlignment(const Function *) const { -  return 3; -} -  //===----------------------------------------------------------------------===//  // Return the Cell SPU's SETCC result type  //===----------------------------------------------------------------------===// diff --git a/lib/Target/CellSPU/SPUISelLowering.h b/lib/Target/CellSPU/SPUISelLowering.h index cf883e2..dccd78d 100644 --- a/lib/Target/CellSPU/SPUISelLowering.h +++ b/lib/Target/CellSPU/SPUISelLowering.h @@ -152,9 +152,6 @@ namespace llvm {      virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      virtual SDValue        LowerFormalArguments(SDValue Chain,                             CallingConv::ID CallConv, bool isVarArg, diff --git a/lib/Target/MBlaze/MBlazeISelLowering.cpp b/lib/Target/MBlaze/MBlazeISelLowering.cpp index 21a5988..931da7e 100644 --- a/lib/Target/MBlaze/MBlazeISelLowering.cpp +++ b/lib/Target/MBlaze/MBlazeISelLowering.cpp @@ -180,6 +180,8 @@ MBlazeTargetLowering::MBlazeTargetLowering(MBlazeTargetMachine &TM)    setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);    setTruncStoreAction(MVT::f64, MVT::f32, Expand); +  setMinFunctionAlignment(2); +    setStackPointerRegisterToSaveRestore(MBlaze::R1);    computeRegisterProperties();  } @@ -188,11 +190,6 @@ MVT::SimpleValueType MBlazeTargetLowering::getSetCCResultType(EVT VT) const {    return MVT::i32;  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned MBlazeTargetLowering::getFunctionAlignment(const Function *) const { -  return 2; -} -  SDValue MBlazeTargetLowering::LowerOperation(SDValue Op,                                               SelectionDAG &DAG) const {    switch (Op.getOpcode()) diff --git a/lib/Target/MBlaze/MBlazeISelLowering.h b/lib/Target/MBlaze/MBlazeISelLowering.h index 91649bc..265c1a7 100644 --- a/lib/Target/MBlaze/MBlazeISelLowering.h +++ b/lib/Target/MBlaze/MBlazeISelLowering.h @@ -104,7 +104,6 @@ namespace llvm {      /// getSetCCResultType - get the ISD::SETCC result ValueType      MVT::SimpleValueType getSetCCResultType(EVT VT) const; -    virtual unsigned getFunctionAlignment(const Function *F) const;    private:      // Subtarget Info      const MBlazeSubtarget *Subtarget; diff --git a/lib/Target/MSP430/MSP430ISelLowering.cpp b/lib/Target/MSP430/MSP430ISelLowering.cpp index 006785b..b42bf52 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.cpp +++ b/lib/Target/MSP430/MSP430ISelLowering.cpp @@ -170,6 +170,9 @@ MSP430TargetLowering::MSP430TargetLowering(MSP430TargetMachine &tm) :      setLibcallName(RTLIB::MUL_I8,  "__mulqi3hw_noint");      setLibcallName(RTLIB::MUL_I16, "__mulhi3hw_noint");    } + +  setMinFunctionAlignment(1); +  setPrefFunctionAlignment(2);  }  SDValue MSP430TargetLowering::LowerOperation(SDValue Op, @@ -193,11 +196,6 @@ SDValue MSP430TargetLowering::LowerOperation(SDValue Op,    }  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned MSP430TargetLowering::getFunctionAlignment(const Function *F) const { -  return F->hasFnAttr(Attribute::OptimizeForSize) ? 1 : 2; -} -  //===----------------------------------------------------------------------===//  //                       MSP430 Inline Assembly Support  //===----------------------------------------------------------------------===// diff --git a/lib/Target/MSP430/MSP430ISelLowering.h b/lib/Target/MSP430/MSP430ISelLowering.h index 19c9eac..bd660a0 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.h +++ b/lib/Target/MSP430/MSP430ISelLowering.h @@ -82,9 +82,6 @@ namespace llvm {      /// DAG node.      virtual const char *getTargetNodeName(unsigned Opcode) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      SDValue LowerShifts(SDValue Op, SelectionDAG &DAG) const;      SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const;      SDValue LowerBlockAddress(SDValue Op, SelectionDAG &DAG) const; diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp index 9592244..456efc5 100644 --- a/lib/Target/Mips/MipsISelLowering.cpp +++ b/lib/Target/Mips/MipsISelLowering.cpp @@ -171,6 +171,8 @@ MipsTargetLowering(MipsTargetMachine &TM)    setTargetDAGCombine(ISD::UDIVREM);    setTargetDAGCombine(ISD::SETCC); +  setMinFunctionAlignment(2); +    setStackPointerRegisterToSaveRestore(Mips::SP);    computeRegisterProperties();  } @@ -179,11 +181,6 @@ MVT::SimpleValueType MipsTargetLowering::getSetCCResultType(EVT VT) const {    return MVT::i32;  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned MipsTargetLowering::getFunctionAlignment(const Function *) const { -  return 2; -} -  // SelectMadd -  // Transforms a subgraph in CurDAG if the following pattern is found:  //  (addc multLo, Lo0), (adde multHi, Hi0), diff --git a/lib/Target/Mips/MipsISelLowering.h b/lib/Target/Mips/MipsISelLowering.h index e4d0c3d..1cb9665 100644 --- a/lib/Target/Mips/MipsISelLowering.h +++ b/lib/Target/Mips/MipsISelLowering.h @@ -89,9 +89,6 @@ namespace llvm {      /// getSetCCResultType - get the ISD::SETCC result ValueType      MVT::SimpleValueType getSetCCResultType(EVT VT) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      virtual SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const;    private:      // Subtarget Info diff --git a/lib/Target/PTX/PTXISelLowering.cpp b/lib/Target/PTX/PTXISelLowering.cpp index 23b93da..e9b1d8c 100644 --- a/lib/Target/PTX/PTXISelLowering.cpp +++ b/lib/Target/PTX/PTXISelLowering.cpp @@ -65,7 +65,9 @@ PTXTargetLowering::PTXTargetLowering(TargetMachine &TM)    // need to lower SETCC of Preds into bitwise logic    setOperationAction(ISD::SETCC, MVT::i1, Custom); -   + +  setMinFunctionAlignment(2); +    // Compute derived properties from the register classes    computeRegisterProperties();  } diff --git a/lib/Target/PTX/PTXISelLowering.h b/lib/Target/PTX/PTXISelLowering.h index 6a7e3e6..225c000 100644 --- a/lib/Target/PTX/PTXISelLowering.h +++ b/lib/Target/PTX/PTXISelLowering.h @@ -37,9 +37,6 @@ class PTXTargetLowering : public TargetLowering {      virtual const char *getTargetNodeName(unsigned Opcode) const; -    virtual unsigned getFunctionAlignment(const Function *F) const { -      return 2; } -      virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const;      virtual SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const; diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index 128522c..625c963 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -394,6 +394,10 @@ PPCTargetLowering::PPCTargetLowering(PPCTargetMachine &TM)      setLibcallName(RTLIB::EXP2_PPCF128, "exp2l$LDBL128");    } +  setMinFunctionAlignment(2); +  if (PPCSubTarget.isDarwin()) +    setPrefFunctionAlignment(4); +    computeRegisterProperties();  } @@ -460,14 +464,6 @@ MVT::SimpleValueType PPCTargetLowering::getSetCCResultType(EVT VT) const {    return MVT::i32;  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned PPCTargetLowering::getFunctionAlignment(const Function *F) const { -  if (getTargetMachine().getSubtarget<PPCSubtarget>().isDarwin()) -    return F->hasFnAttr(Attribute::OptimizeForSize) ? 2 : 4; -  else -    return 2; -} -  //===----------------------------------------------------------------------===//  // Node matching predicates, for use by the tblgen matching code.  //===----------------------------------------------------------------------===// diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h index 33daae9..64a57a1 100644 --- a/lib/Target/PowerPC/PPCISelLowering.h +++ b/lib/Target/PowerPC/PPCISelLowering.h @@ -364,9 +364,6 @@ namespace llvm {                          bool NonScalarIntSafe, bool MemcpyStrSrc,                          MachineFunction &MF) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -    private:      SDValue getFramePointerFrameIndex(SelectionDAG & DAG) const;      SDValue getReturnAddrFrameIndex(SelectionDAG & DAG) const; diff --git a/lib/Target/Sparc/SparcISelLowering.cpp b/lib/Target/Sparc/SparcISelLowering.cpp index 5e6f7b1..9267b14 100644 --- a/lib/Target/Sparc/SparcISelLowering.cpp +++ b/lib/Target/Sparc/SparcISelLowering.cpp @@ -799,6 +799,8 @@ SparcTargetLowering::SparcTargetLowering(TargetMachine &TM)    if (TM.getSubtarget<SparcSubtarget>().isV9())      setOperationAction(ISD::CTPOP, MVT::i32, Legal); +  setMinFunctionAlignment(2); +    computeRegisterProperties();  } @@ -1288,8 +1290,3 @@ SparcTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {    // The Sparc target isn't yet aware of offsets.    return false;  } - -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned SparcTargetLowering::getFunctionAlignment(const Function *) const { -  return 2; -} diff --git a/lib/Target/Sparc/SparcISelLowering.h b/lib/Target/Sparc/SparcISelLowering.h index 7d02df8..9ea6e16 100644 --- a/lib/Target/Sparc/SparcISelLowering.h +++ b/lib/Target/Sparc/SparcISelLowering.h @@ -71,9 +71,6 @@ namespace llvm {      virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      virtual SDValue        LowerFormalArguments(SDValue Chain,                             CallingConv::ID CallConv, diff --git a/lib/Target/SystemZ/SystemZISelLowering.cpp b/lib/Target/SystemZ/SystemZISelLowering.cpp index d331614..15ef873 100644 --- a/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -153,6 +153,8 @@ SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :    setOperationAction(ISD::FP_TO_UINT,       MVT::i64, Expand);    setTruncStoreAction(MVT::f64, MVT::f32, Expand); + +  setMinFunctionAlignment(1);  }  SDValue SystemZTargetLowering::LowerOperation(SDValue Op, diff --git a/lib/Target/SystemZ/SystemZISelLowering.h b/lib/Target/SystemZ/SystemZISelLowering.h index 3019242..bab3dc2 100644 --- a/lib/Target/SystemZ/SystemZISelLowering.h +++ b/lib/Target/SystemZ/SystemZISelLowering.h @@ -66,11 +66,6 @@ namespace llvm {      /// DAG node.      virtual const char *getTargetNodeName(unsigned Opcode) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const { -      return 1; -    } -      std::pair<unsigned, const TargetRegisterClass*>      getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const;      TargetLowering::ConstraintType diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 703c01d..97fd2a3 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -1096,6 +1096,8 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)    maxStoresPerMemmoveOptSize = Subtarget->isTargetDarwin() ? 8 : 4;    setPrefLoopAlignment(16);    benefitFromCodePlacementOpt = true; + +  setPrefFunctionAlignment(4);  } @@ -1247,11 +1249,6 @@ getPICJumpTableRelocBaseExpr(const MachineFunction *MF, unsigned JTI,    return MCSymbolRefExpr::Create(MF->getPICBaseSymbol(), Ctx);  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned X86TargetLowering::getFunctionAlignment(const Function *F) const { -  return F->hasFnAttr(Attribute::OptimizeForSize) ? 0 : 4; -} -  // FIXME: Why this routine is here? Move to RegInfo!  std::pair<const TargetRegisterClass*, uint8_t>  X86TargetLowering::findRepresentativeClass(EVT VT) const{ diff --git a/lib/Target/X86/X86ISelLowering.h b/lib/Target/X86/X86ISelLowering.h index 6301057..ea0c1b6 100644 --- a/lib/Target/X86/X86ISelLowering.h +++ b/lib/Target/X86/X86ISelLowering.h @@ -674,9 +674,6 @@ namespace llvm {      /// or null if the target does not support "fast" ISel.      virtual FastISel *createFastISel(FunctionLoweringInfo &funcInfo) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -      /// getStackCookieLocation - Return true if the target stores stack      /// protector cookies at a fixed offset in some non-standard address      /// space, and populates the address space and offset as diff --git a/lib/Target/XCore/XCoreISelLowering.cpp b/lib/Target/XCore/XCoreISelLowering.cpp index 5987e8b..6e892cc 100644 --- a/lib/Target/XCore/XCoreISelLowering.cpp +++ b/lib/Target/XCore/XCoreISelLowering.cpp @@ -156,6 +156,8 @@ XCoreTargetLowering::XCoreTargetLowering(XCoreTargetMachine &XTM)    // We have target-specific dag combine patterns for the following nodes:    setTargetDAGCombine(ISD::STORE);    setTargetDAGCombine(ISD::ADD); + +  setMinFunctionAlignment(1);  }  SDValue XCoreTargetLowering:: @@ -201,12 +203,6 @@ void XCoreTargetLowering::ReplaceNodeResults(SDNode *N,    }  } -/// getFunctionAlignment - Return the Log2 alignment of this function. -unsigned XCoreTargetLowering:: -getFunctionAlignment(const Function *) const { -  return 1; -} -  //===----------------------------------------------------------------------===//  //  Misc Lower Operation implementation  //===----------------------------------------------------------------------===// diff --git a/lib/Target/XCore/XCoreISelLowering.h b/lib/Target/XCore/XCoreISelLowering.h index bb3f2cc..e980948 100644 --- a/lib/Target/XCore/XCoreISelLowering.h +++ b/lib/Target/XCore/XCoreISelLowering.h @@ -103,9 +103,6 @@ namespace llvm {      virtual bool isLegalAddressingMode(const AddrMode &AM,                                         const Type *Ty) const; -    /// getFunctionAlignment - Return the Log2 alignment of this function. -    virtual unsigned getFunctionAlignment(const Function *F) const; -    private:      const XCoreTargetMachine &TM;      const XCoreSubtarget &Subtarget;  | 
