Skip to content

Commit 9e43494

Browse files
Compile JITLink for every platform (#50099)
1 parent abbe045 commit 9e43494

File tree

3 files changed

+24
-27
lines changed

3 files changed

+24
-27
lines changed

src/codegen.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9076,7 +9076,6 @@ extern "C" void jl_init_llvm(void)
90769076
}
90779077
#endif
90789078

9079-
#ifndef JL_USE_JITLINK
90809079
#ifdef JL_USE_INTEL_JITEVENTS
90819080
if (jl_using_intel_jitevents)
90829081
jl_ExecutionEngine->RegisterJITEventListener(JITEventListener::createIntelJITEventListener());
@@ -9092,7 +9091,6 @@ extern "C" void jl_init_llvm(void)
90929091
jl_ExecutionEngine->RegisterJITEventListener(JITEventListener::createPerfJITEventListener());
90939092
#endif
90949093
#endif
9095-
#endif
90969094
#endif
90979095

90989096
cl::PrintOptionValues();

src/jitlayers.cpp

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,13 @@ using namespace llvm;
3939
#include "julia_assert.h"
4040
#include "processor.h"
4141

42-
#ifdef JL_USE_JITLINK
4342
# include <llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h>
4443
# include <llvm/ExecutionEngine/JITLink/EHFrameSupport.h>
4544
# include <llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h>
4645
# if JL_LLVM_VERSION >= 150000
4746
# include <llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h>
4847
# endif
49-
#else
5048
# include <llvm/ExecutionEngine/SectionMemoryManager.h>
51-
#endif
5249

5350
#define DEBUG_TYPE "julia_jitlayers"
5451

@@ -694,8 +691,6 @@ void jl_register_jit_object(const object::ObjectFile &debugObj,
694691
std::function<uint64_t(const StringRef &)> getLoadAddress,
695692
std::function<void *(void *)> lookupWriteAddress) JL_NOTSAFEPOINT;
696693

697-
#ifdef JL_USE_JITLINK
698-
699694
namespace {
700695

701696
using namespace llvm::orc;
@@ -871,6 +866,8 @@ class JLMemoryUsagePlugin : public ObjectLinkingLayer::Plugin {
871866
}
872867
graph_size += secsize;
873868
}
869+
(void) code_size;
870+
(void) data_size;
874871
this->total_size.fetch_add(graph_size, std::memory_order_relaxed);
875872
jl_timing_counter_inc(JL_TIMING_COUNTER_JITSize, graph_size);
876873
jl_timing_counter_inc(JL_TIMING_COUNTER_JITCodeSize, code_size);
@@ -880,6 +877,17 @@ class JLMemoryUsagePlugin : public ObjectLinkingLayer::Plugin {
880877
}
881878
};
882879

880+
// replace with [[maybe_unused]] when we get to C++17
881+
#ifdef _COMPILER_GCC_
882+
#pragma GCC diagnostic push
883+
#pragma GCC diagnostic ignored "-Wunused-function"
884+
#endif
885+
886+
#ifdef _COMPILER_CLANG_
887+
#pragma clang diagnostic push
888+
#pragma clang diagnostic ignored "-Wunused-function"
889+
#endif
890+
883891
// TODO: Port our memory management optimisations to JITLink instead of using the
884892
// default InProcessMemoryManager.
885893
std::unique_ptr<jitlink::JITLinkMemoryManager> createJITLinkMemoryManager() {
@@ -889,33 +897,28 @@ std::unique_ptr<jitlink::JITLinkMemoryManager> createJITLinkMemoryManager() {
889897
return cantFail(orc::MapperJITLinkMemoryManager::CreateWithMapper<orc::InProcessMemoryMapper>());
890898
#endif
891899
}
892-
}
893-
894-
# ifdef LLVM_SHLIB
895900

896-
# define EHFRAME_RANGE(name) orc::ExecutorAddrRange name
897-
# define UNPACK_EHFRAME_RANGE(name) \
898-
name.Start.toPtr<uint8_t *>(), \
899-
static_cast<size_t>(name.size())
901+
#ifdef _COMPILER_CLANG_
902+
#pragma clang diagnostic pop
903+
#endif
900904

905+
#ifdef _COMPILER_GCC_
906+
#pragma GCC diagnostic pop
907+
#endif
908+
}
901909

902910
class JLEHFrameRegistrar final : public jitlink::EHFrameRegistrar {
903911
public:
904-
Error registerEHFrames(EHFRAME_RANGE(EHFrameSection)) override {
905-
register_eh_frames(
906-
UNPACK_EHFRAME_RANGE(EHFrameSection));
912+
Error registerEHFrames(orc::ExecutorAddrRange EHFrameSection) override {
913+
register_eh_frames(EHFrameSection.Start.toPtr<uint8_t *>(), static_cast<size_t>(EHFrameSection.size()));
907914
return Error::success();
908915
}
909916

910-
Error deregisterEHFrames(EHFRAME_RANGE(EHFrameSection)) override {
911-
deregister_eh_frames(
912-
UNPACK_EHFRAME_RANGE(EHFrameSection));
917+
Error deregisterEHFrames(orc::ExecutorAddrRange EHFrameSection) override {
918+
deregister_eh_frames(EHFrameSection.Start.toPtr<uint8_t *>(), static_cast<size_t>(EHFrameSection.size()));
913919
return Error::success();
914920
}
915921
};
916-
# endif
917-
918-
#else // !JL_USE_JITLINK
919922

920923
RTDyldMemoryManager* createRTDyldMemoryManager(void);
921924

@@ -1015,7 +1018,6 @@ void registerRTDyldJITObject(const object::ObjectFile &Object,
10151018
#endif
10161019
);
10171020
}
1018-
#endif
10191021
namespace {
10201022
static std::unique_ptr<TargetMachine> createTargetMachine() JL_NOTSAFEPOINT {
10211023
TargetOptions options = TargetOptions();

src/jitlayers.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,9 @@
6161
# endif
6262
#endif
6363

64-
#ifdef JL_USE_JITLINK
6564
# include <llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h>
66-
#else
6765
# include <llvm/ExecutionEngine/RTDyldMemoryManager.h>
6866
# include <llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h>
69-
#endif
7067

7168
using namespace llvm;
7269

0 commit comments

Comments
 (0)