@@ -39,16 +39,13 @@ using namespace llvm;
39
39
#include " julia_assert.h"
40
40
#include " processor.h"
41
41
42
- #ifdef JL_USE_JITLINK
43
42
# include < llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h>
44
43
# include < llvm/ExecutionEngine/JITLink/EHFrameSupport.h>
45
44
# include < llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h>
46
45
# if JL_LLVM_VERSION >= 150000
47
46
# include < llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h>
48
47
# endif
49
- #else
50
48
# include < llvm/ExecutionEngine/SectionMemoryManager.h>
51
- #endif
52
49
53
50
#define DEBUG_TYPE " julia_jitlayers"
54
51
@@ -694,8 +691,6 @@ void jl_register_jit_object(const object::ObjectFile &debugObj,
694
691
std::function<uint64_t (const StringRef &)> getLoadAddress,
695
692
std::function<void *(void *)> lookupWriteAddress) JL_NOTSAFEPOINT;
696
693
697
- #ifdef JL_USE_JITLINK
698
-
699
694
namespace {
700
695
701
696
using namespace llvm ::orc;
@@ -871,6 +866,8 @@ class JLMemoryUsagePlugin : public ObjectLinkingLayer::Plugin {
871
866
}
872
867
graph_size += secsize;
873
868
}
869
+ (void ) code_size;
870
+ (void ) data_size;
874
871
this ->total_size .fetch_add (graph_size, std::memory_order_relaxed);
875
872
jl_timing_counter_inc (JL_TIMING_COUNTER_JITSize, graph_size);
876
873
jl_timing_counter_inc (JL_TIMING_COUNTER_JITCodeSize, code_size);
@@ -880,6 +877,17 @@ class JLMemoryUsagePlugin : public ObjectLinkingLayer::Plugin {
880
877
}
881
878
};
882
879
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
+
883
891
// TODO: Port our memory management optimisations to JITLink instead of using the
884
892
// default InProcessMemoryManager.
885
893
std::unique_ptr<jitlink::JITLinkMemoryManager> createJITLinkMemoryManager () {
@@ -889,33 +897,28 @@ std::unique_ptr<jitlink::JITLinkMemoryManager> createJITLinkMemoryManager() {
889
897
return cantFail (orc::MapperJITLinkMemoryManager::CreateWithMapper<orc::InProcessMemoryMapper>());
890
898
#endif
891
899
}
892
- }
893
-
894
- # ifdef LLVM_SHLIB
895
900
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
900
904
905
+ #ifdef _COMPILER_GCC_
906
+ #pragma GCC diagnostic pop
907
+ #endif
908
+ }
901
909
902
910
class JLEHFrameRegistrar final : public jitlink::EHFrameRegistrar {
903
911
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 ()));
907
914
return Error::success ();
908
915
}
909
916
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 ()));
913
919
return Error::success ();
914
920
}
915
921
};
916
- # endif
917
-
918
- #else // !JL_USE_JITLINK
919
922
920
923
RTDyldMemoryManager* createRTDyldMemoryManager (void );
921
924
@@ -1015,7 +1018,6 @@ void registerRTDyldJITObject(const object::ObjectFile &Object,
1015
1018
#endif
1016
1019
);
1017
1020
}
1018
- #endif
1019
1021
namespace {
1020
1022
static std::unique_ptr<TargetMachine> createTargetMachine () JL_NOTSAFEPOINT {
1021
1023
TargetOptions options = TargetOptions ();
0 commit comments