Skip to content

Commit c861c1a

Browse files
committed
Revert "[ORC] Remove the Triple argument from LLJITBuilder::ObjectLinking..."
This reverts commit f905bf3 while I fix some compile errors reported on the buildbots (see e.g. https://lab.llvm.org/buildbot/#/builders/53/builds/13369).
1 parent c72ebee commit c861c1a

File tree

7 files changed

+19
-14
lines changed

7 files changed

+19
-14
lines changed

llvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/LLJITWithCustomObjectLinkingLayer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
4545
LLJITBuilder()
4646
.setJITTargetMachineBuilder(std::move(JTMB))
4747
.setObjectLinkingLayerCreator(
48-
[&](ExecutionSession &ES) {
48+
[&](ExecutionSession &ES, const Triple &TT) {
4949
return std::make_unique<ObjectLinkingLayer>(
5050
ES, ExitOnErr(jitlink::InProcessMemoryManager::Create()));
5151
})

llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/LLJITWithGDBRegistrationListener.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ int main(int argc, char *argv[]) {
6262
auto J =
6363
ExitOnErr(LLJITBuilder()
6464
.setJITTargetMachineBuilder(std::move(JTMB))
65-
.setObjectLinkingLayerCreator([&](ExecutionSession &ES) {
65+
.setObjectLinkingLayerCreator([&](ExecutionSession &ES,
66+
const Triple &TT) {
6667
auto GetMemMgr = []() {
6768
return std::make_unique<SectionMemoryManager>();
6869
};

llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/LLJITWithObjectLinkingLayerPlugin.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ int main(int argc, char *argv[]) {
207207
LLJITBuilder()
208208
.setJITTargetMachineBuilder(std::move(JTMB))
209209
.setObjectLinkingLayerCreator(
210-
[&](ExecutionSession &ES) {
210+
[&](ExecutionSession &ES, const Triple &TT) {
211211
// Create ObjectLinkingLayer.
212212
auto ObjLinkingLayer = std::make_unique<ObjectLinkingLayer>(
213213
ES, ExitOnErr(jitlink::InProcessMemoryManager::Create()));

llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,8 @@ class LLLazyJIT : public LLJIT {
299299
class LLJITBuilderState {
300300
public:
301301
using ObjectLinkingLayerCreator =
302-
std::function<Expected<std::unique_ptr<ObjectLayer>>(ExecutionSession &)>;
302+
std::function<Expected<std::unique_ptr<ObjectLayer>>(ExecutionSession &,
303+
const Triple &)>;
303304

304305
using CompileFunctionCreator =
305306
std::function<Expected<std::unique_ptr<IRCompileLayer::IRCompiler>>(

llvm/lib/ExecutionEngine/Orc/LLJIT.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,8 @@ Error LLJITBuilderState::prepareForConstruction() {
832832
JTMB->setCodeModel(CodeModel::Small);
833833
JTMB->setRelocationModel(Reloc::PIC_);
834834
CreateObjectLinkingLayer =
835-
[](ExecutionSession &ES) -> Expected<std::unique_ptr<ObjectLayer>> {
835+
[](ExecutionSession &ES,
836+
const Triple &) -> Expected<std::unique_ptr<ObjectLayer>> {
836837
return std::make_unique<ObjectLinkingLayer>(ES);
837838
};
838839
}
@@ -950,7 +951,7 @@ LLJIT::createObjectLinkingLayer(LLJITBuilderState &S, ExecutionSession &ES) {
950951

951952
// If the config state provided an ObjectLinkingLayer factory then use it.
952953
if (S.CreateObjectLinkingLayer)
953-
return S.CreateObjectLinkingLayer(ES);
954+
return S.CreateObjectLinkingLayer(ES, S.JTMB->getTargetTriple());
954955

955956
// Otherwise default to creating an RTDyldObjectLinkingLayer that constructs
956957
// a new SectionMemoryManager for each object.

llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -911,11 +911,12 @@ void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(
911911
void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(
912912
LLVMOrcLLJITBuilderRef Builder,
913913
LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction F, void *Ctx) {
914-
unwrap(Builder)->setObjectLinkingLayerCreator([=](ExecutionSession &ES) {
915-
auto TTStr = ES.getTargetTriple().str();
916-
return std::unique_ptr<ObjectLayer>(
917-
unwrap(F(Ctx, wrap(&ES), TTStr.c_str())));
918-
});
914+
unwrap(Builder)->setObjectLinkingLayerCreator(
915+
[=](ExecutionSession &ES, const Triple &TT) {
916+
auto TTStr = TT.str();
917+
return std::unique_ptr<ObjectLayer>(
918+
unwrap(F(Ctx, wrap(&ES), TTStr.c_str())));
919+
});
919920
}
920921

921922
LLVMErrorRef LLVMOrcCreateLLJIT(LLVMOrcLLJITRef *Result,

llvm/tools/lli/lli.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -1031,9 +1031,10 @@ int runOrcJIT(const char *ProgName) {
10311031
Builder.getJITTargetMachineBuilder()
10321032
->setRelocationModel(Reloc::PIC_)
10331033
.setCodeModel(CodeModel::Small);
1034-
Builder.setObjectLinkingLayerCreator([&](orc::ExecutionSession &ES) {
1035-
return std::make_unique<orc::ObjectLinkingLayer>(ES);
1036-
});
1034+
Builder.setObjectLinkingLayerCreator(
1035+
[&](orc::ExecutionSession &ES, const Triple &TT) {
1036+
return std::make_unique<orc::ObjectLinkingLayer>(ES);
1037+
});
10371038
}
10381039

10391040
auto J = ExitOnErr(Builder.create());

0 commit comments

Comments
 (0)