forked from OSchip/llvm-project
CodeGen: Use Register in TargetLowering
This commit is contained in:
parent
54502476e7
commit
84aa58cbe2
|
@ -1665,18 +1665,16 @@ public:
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
virtual unsigned
|
||||
virtual Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const {
|
||||
// 0 is guaranteed to be the NoRegister value on all targets
|
||||
return 0;
|
||||
return Register();
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
virtual unsigned
|
||||
virtual Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const {
|
||||
// 0 is guaranteed to be the NoRegister value on all targets
|
||||
return 0;
|
||||
return Register();
|
||||
}
|
||||
|
||||
virtual bool needsFixedCatchObjects() const {
|
||||
|
@ -2068,7 +2066,7 @@ protected:
|
|||
|
||||
/// If set to a physical register, this specifies the register that
|
||||
/// llvm.savestack/llvm.restorestack should save and restore.
|
||||
void setStackPointerRegisterToSaveRestore(unsigned R) {
|
||||
void setStackPointerRegisterToSaveRestore(Register R) {
|
||||
StackPointerRegisterToSaveRestore = R;
|
||||
}
|
||||
|
||||
|
@ -2849,7 +2847,7 @@ private:
|
|||
|
||||
/// If set to a physical register, this specifies the register that
|
||||
/// llvm.savestack/llvm.restorestack should save and restore.
|
||||
unsigned StackPointerRegisterToSaveRestore;
|
||||
Register StackPointerRegisterToSaveRestore;
|
||||
|
||||
/// This indicates the default register class to use for each ValueType the
|
||||
/// target supports natively.
|
||||
|
@ -3902,7 +3900,7 @@ public:
|
|||
/// Should SelectionDAG lower an atomic load of the given kind as a normal
|
||||
/// LoadSDNode (as opposed to an AtomicSDNode)? NOTE: The intention is to
|
||||
/// eventually migrate all targets to the using LoadSDNodes, but porting is
|
||||
/// being done target at a time.
|
||||
/// being done target at a time.
|
||||
virtual bool lowerAtomicLoadAsLoadSDNode(const LoadInst &LI) const {
|
||||
assert(LI.isAtomic() && "violated precondition");
|
||||
return false;
|
||||
|
|
|
@ -542,7 +542,7 @@ public:
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
// FIXME: This is a guess. Has this been defined yet?
|
||||
return AArch64::X0;
|
||||
|
@ -550,7 +550,7 @@ public:
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
// FIXME: This is a guess. Has this been defined yet?
|
||||
return AArch64::X1;
|
||||
|
|
|
@ -18134,18 +18134,18 @@ bool ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(
|
|||
return IsHA || IsIntArray;
|
||||
}
|
||||
|
||||
unsigned ARMTargetLowering::getExceptionPointerRegister(
|
||||
Register ARMTargetLowering::getExceptionPointerRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
// Platforms which do not use SjLj EH may return values in these registers
|
||||
// via the personality function.
|
||||
return Subtarget->useSjLjEH() ? ARM::NoRegister : ARM::R0;
|
||||
return Subtarget->useSjLjEH() ? Register() : ARM::R0;
|
||||
}
|
||||
|
||||
unsigned ARMTargetLowering::getExceptionSelectorRegister(
|
||||
Register ARMTargetLowering::getExceptionSelectorRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
// Platforms which do not use SjLj EH may return values in these registers
|
||||
// via the personality function.
|
||||
return Subtarget->useSjLjEH() ? ARM::NoRegister : ARM::R1;
|
||||
return Subtarget->useSjLjEH() ? Register() : ARM::R1;
|
||||
}
|
||||
|
||||
void ARMTargetLowering::initializeSplitCSR(MachineBasicBlock *Entry) const {
|
||||
|
|
|
@ -563,12 +563,12 @@ class VectorType;
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
Instruction *makeDMB(IRBuilder<> &Builder, ARM_MB::MemBOpt Domain) const;
|
||||
|
|
|
@ -235,14 +235,14 @@ namespace HexagonISD {
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
return Hexagon::R0;
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
return Hexagon::R1;
|
||||
}
|
||||
|
|
|
@ -353,14 +353,14 @@ class TargetRegisterClass;
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
return ABI.IsN64() ? Mips::A0_64 : Mips::A0;
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
return ABI.IsN64() ? Mips::A1_64 : Mips::A1;
|
||||
}
|
||||
|
|
|
@ -15565,12 +15565,12 @@ PPCTargetLowering::getScratchRegisters(CallingConv::ID) const {
|
|||
return ScratchRegs;
|
||||
}
|
||||
|
||||
unsigned PPCTargetLowering::getExceptionPointerRegister(
|
||||
Register PPCTargetLowering::getExceptionPointerRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
return Subtarget.isPPC64() ? PPC::X3 : PPC::R3;
|
||||
}
|
||||
|
||||
unsigned PPCTargetLowering::getExceptionSelectorRegister(
|
||||
Register PPCTargetLowering::getExceptionSelectorRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
return Subtarget.isPPC64() ? PPC::X4 : PPC::R4;
|
||||
}
|
||||
|
|
|
@ -877,7 +877,7 @@ namespace llvm {
|
|||
if (VT != MVT::f32 && VT != MVT::f64)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Returns true if the address of the global is stored in TOC entry.
|
||||
|
@ -945,12 +945,12 @@ namespace llvm {
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
/// Override to support customized stack guard loading.
|
||||
|
|
|
@ -2915,12 +2915,12 @@ Value *RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(
|
|||
return Result;
|
||||
}
|
||||
|
||||
unsigned RISCVTargetLowering::getExceptionPointerRegister(
|
||||
Register RISCVTargetLowering::getExceptionPointerRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
return RISCV::X10;
|
||||
}
|
||||
|
||||
unsigned RISCVTargetLowering::getExceptionSelectorRegister(
|
||||
Register RISCVTargetLowering::getExceptionSelectorRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
return RISCV::X11;
|
||||
}
|
||||
|
|
|
@ -143,12 +143,12 @@ public:
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
bool shouldExtendTypeInLibCall(EVT Type) const override;
|
||||
|
|
|
@ -103,14 +103,14 @@ namespace llvm {
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
return SP::I0;
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
return SP::I1;
|
||||
}
|
||||
|
|
|
@ -486,14 +486,14 @@ public:
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
return SystemZ::R6D;
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
return SystemZ::R7D;
|
||||
}
|
||||
|
|
|
@ -25589,7 +25589,7 @@ SDValue X86TargetLowering::LowerFRAME_TO_ARGS_OFFSET(SDValue Op,
|
|||
return DAG.getIntPtrConstant(2 * RegInfo->getSlotSize(), SDLoc(Op));
|
||||
}
|
||||
|
||||
unsigned X86TargetLowering::getExceptionPointerRegister(
|
||||
Register X86TargetLowering::getExceptionPointerRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
if (classifyEHPersonality(PersonalityFn) == EHPersonality::CoreCLR)
|
||||
return Subtarget.isTarget64BitLP64() ? X86::RDX : X86::EDX;
|
||||
|
@ -25597,7 +25597,7 @@ unsigned X86TargetLowering::getExceptionPointerRegister(
|
|||
return Subtarget.isTarget64BitLP64() ? X86::RAX : X86::EAX;
|
||||
}
|
||||
|
||||
unsigned X86TargetLowering::getExceptionSelectorRegister(
|
||||
Register X86TargetLowering::getExceptionSelectorRegister(
|
||||
const Constant *PersonalityFn) const {
|
||||
// Funclet personalities don't use selectors (the runtime does the selection).
|
||||
assert(!isFuncletEHPersonality(classifyEHPersonality(PersonalityFn)));
|
||||
|
@ -25621,7 +25621,7 @@ SDValue X86TargetLowering::LowerEH_RETURN(SDValue Op, SelectionDAG &DAG) const {
|
|||
(FrameReg == X86::EBP && PtrVT == MVT::i32)) &&
|
||||
"Invalid Frame Register!");
|
||||
SDValue Frame = DAG.getCopyFromReg(DAG.getEntryNode(), dl, FrameReg, PtrVT);
|
||||
unsigned StoreAddrReg = (PtrVT == MVT::i64) ? X86::RCX : X86::ECX;
|
||||
Register StoreAddrReg = (PtrVT == MVT::i64) ? X86::RCX : X86::ECX;
|
||||
|
||||
SDValue StoreAddr = DAG.getNode(ISD::ADD, dl, PtrVT, Frame,
|
||||
DAG.getIntPtrConstant(RegInfo->getSlotSize(),
|
||||
|
|
|
@ -1179,12 +1179,12 @@ namespace llvm {
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
||||
|
||||
virtual bool needsFixedCatchObjects() const override;
|
||||
|
|
|
@ -127,14 +127,14 @@ namespace llvm {
|
|||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception address on entry to an EH pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionPointerRegister(const Constant *PersonalityFn) const override {
|
||||
return XCore::R0;
|
||||
}
|
||||
|
||||
/// If a physical register, this returns the register that receives the
|
||||
/// exception typeid on entry to a landing pad.
|
||||
unsigned
|
||||
Register
|
||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
|
||||
return XCore::R1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue