Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index ebf55f56d52d048eeadbae339ace4bea09dd6ff3..072116881f178b0de6951bf825028aa020c000fb 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -41,9 +41,13 @@ void staticInit(::Ice::GlobalContext *Ctx) { |
// pexe) so we need to register it as such so that ELF emission won't barf |
// on an "unknown" symbol. The GOT is added to the External symbols list |
// here because staticInit() is invoked in a single-thread context. |
- Ctx->getConstantExternSym(::Ice::GlobalOffsetTable); |
+ Ctx->getConstantExternSym(Ctx->getGlobalString(::Ice::GlobalOffsetTable)); |
} |
} |
+ |
+bool shouldBePooled(const class ::Ice::Constant *C) { |
+ return ::Ice::X8632::TargetX8632::shouldBePooled(C); |
+} |
} // end of namespace X8632 |
namespace Ice { |
@@ -252,9 +256,10 @@ void TargetX8632::emitGetIP(CfgNode *Node) { |
const RelocOffsetT ImmSize = -typeWidthInBytes(IceType_i32); |
- auto *GotFromPc = llvm::cast<ConstantRelocatable>( |
- Ctx->getConstantSym(ImmSize, {AfterAddReloc, BeforeAddReloc}, |
- GlobalOffsetTable, GlobalOffsetTable)); |
+ auto *GotFromPc = |
+ llvm::cast<ConstantRelocatable>(Ctx->getConstantSymWithEmitString( |
+ ImmSize, {AfterAddReloc, BeforeAddReloc}, |
+ Ctx->getGlobalString(GlobalOffsetTable), GlobalOffsetTable)); |
// Insert a new version of InstX86GetIP. |
Context.insert<Traits::Insts::GetIP>(CallDest); |