[llvm] d3d4d78 - Revert "[NFC] Refactor X86TargetLowering::getGlobalWrapperKind()"
Arthur Eubanks via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 22 09:05:44 PDT 2023
Author: Arthur Eubanks
Date: 2023-08-22T09:04:56-07:00
New Revision: d3d4d783ac3c919420f61e46c0739fb4fb500830
URL: https://github.com/llvm/llvm-project/commit/d3d4d783ac3c919420f61e46c0739fb4fb500830
DIFF: https://github.com/llvm/llvm-project/commit/d3d4d783ac3c919420f61e46c0739fb4fb500830.diff
LOG: Revert "[NFC] Refactor X86TargetLowering::getGlobalWrapperKind()"
This reverts commit 133b24a3943a3585bab919bc076325bb550164f7.
Causes JIT breakages, see https://reviews.llvm.org/D157907.
Added:
Modified:
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/lib/Target/X86/X86Subtarget.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 9f70d6cedb7611..e14ed5e2639722 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -18204,17 +18204,15 @@ unsigned X86TargetLowering::getGlobalWrapperKind(
if (GV && GV->isAbsoluteSymbolRef())
return X86ISD::Wrapper;
- // The following OpFlags under RIP-rel PIC use RIP.
+ CodeModel::Model M = getTargetMachine().getCodeModel();
if (Subtarget.isPICStyleRIPRel() &&
- (OpFlags == X86II::MO_NO_FLAG || OpFlags == X86II::MO_COFFSTUB ||
- OpFlags == X86II::MO_DLLIMPORT))
+ (M == CodeModel::Small || M == CodeModel::Kernel))
return X86ISD::WrapperRIP;
// In the medium model, functions can always be referenced RIP-relatively,
// since they must be within 2GiB. This is also possible in non-PIC mode, and
// shorter than the 64-bit absolute immediate that would otherwise be emitted.
- if (getTargetMachine().getCodeModel() == CodeModel::Medium &&
- isa_and_nonnull<Function>(GV))
+ if (M == CodeModel::Medium && isa_and_nonnull<Function>(GV))
return X86ISD::WrapperRIP;
// GOTPCREL references must always use RIP.
@@ -18242,8 +18240,7 @@ X86TargetLowering::LowerConstantPool(SDValue Op, SelectionDAG &DAG) const {
SDValue Result = DAG.getTargetConstantPool(
CP->getConstVal(), PtrVT, CP->getAlign(), CP->getOffset(), OpFlag);
SDLoc DL(CP);
- Result =
- DAG.getNode(getGlobalWrapperKind(nullptr, OpFlag), DL, PtrVT, Result);
+ Result = DAG.getNode(getGlobalWrapperKind(), DL, PtrVT, Result);
// With PIC, the address is actually $g + Offset.
if (OpFlag) {
Result =
@@ -18264,8 +18261,7 @@ SDValue X86TargetLowering::LowerJumpTable(SDValue Op, SelectionDAG &DAG) const {
auto PtrVT = getPointerTy(DAG.getDataLayout());
SDValue Result = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, OpFlag);
SDLoc DL(JT);
- Result =
- DAG.getNode(getGlobalWrapperKind(nullptr, OpFlag), DL, PtrVT, Result);
+ Result = DAG.getNode(getGlobalWrapperKind(), DL, PtrVT, Result);
// With PIC, the address is actually $g + Offset.
if (OpFlag)
@@ -18291,8 +18287,7 @@ X86TargetLowering::LowerBlockAddress(SDValue Op, SelectionDAG &DAG) const {
SDLoc dl(Op);
auto PtrVT = getPointerTy(DAG.getDataLayout());
SDValue Result = DAG.getTargetBlockAddress(BA, PtrVT, Offset, OpFlags);
- Result =
- DAG.getNode(getGlobalWrapperKind(nullptr, OpFlags), dl, PtrVT, Result);
+ Result = DAG.getNode(getGlobalWrapperKind(), dl, PtrVT, Result);
// With PIC, the address is actually $g + Offset.
if (isGlobalRelativeToPICBase(OpFlags)) {
@@ -25980,7 +25975,7 @@ SDValue X86TargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
auto &Context = MF.getMMI().getContext();
MCSymbol *S = Context.getOrCreateSymbol(Twine("GCC_except_table") +
Twine(MF.getFunctionNumber()));
- return DAG.getNode(getGlobalWrapperKind(nullptr, /*OpFlags=*/0), dl, VT,
+ return DAG.getNode(getGlobalWrapperKind(), dl, VT,
DAG.getMCSymbol(S, PtrVT));
}
diff --git a/llvm/lib/Target/X86/X86ISelLowering.h b/llvm/lib/Target/X86/X86ISelLowering.h
index 56e98f21784a49..bba457239547cf 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.h
+++ b/llvm/lib/Target/X86/X86ISelLowering.h
@@ -1637,8 +1637,8 @@ namespace llvm {
SDValue LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const;
- unsigned getGlobalWrapperKind(const GlobalValue *GV,
- const unsigned char OpFlags) const;
+ unsigned getGlobalWrapperKind(const GlobalValue *GV = nullptr,
+ const unsigned char OpFlags = 0) const;
SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerBlockAddress(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const;
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp
index e36c14d3400253..c2fe6690479e09 100644
--- a/llvm/lib/Target/X86/X86Subtarget.cpp
+++ b/llvm/lib/Target/X86/X86Subtarget.cpp
@@ -323,9 +323,7 @@ X86Subtarget::X86Subtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU,
InstrInfo(initializeSubtargetDependencies(CPU, TuneCPU, FS)),
TLInfo(TM, *this), FrameLowering(*this, getStackAlignment()) {
// Determine the PICStyle based on the target selected.
- if (!isPositionIndependent() || TM.getCodeModel() == CodeModel::Large)
- // With the large code model, None forces all memory accesses to be indirect
- // rather than RIP-relative.
+ if (!isPositionIndependent())
setPICStyle(PICStyles::Style::None);
else if (is64Bit())
setPICStyle(PICStyles::Style::RIPRel);
More information about the llvm-commits
mailing list