diff options
author | Lang Hames <lhames@gmail.com> | 2015-02-21 20:44:36 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2015-02-21 20:44:36 +0000 |
commit | e738061c4900016238adf741e37dae099afe7c65 (patch) | |
tree | 5aa02ee105c792fd3959002f907ad99a1d39edc5 | |
parent | 60c5bbff29731d46df8aaf7c806993351ca4aa57 (diff) | |
download | bcm5719-llvm-e738061c4900016238adf741e37dae099afe7c65.tar.gz bcm5719-llvm-e738061c4900016238adf741e37dae099afe7c65.zip |
[Orc] Move Orc code into a namespace (llvm::orc), update Kaleidoscope code.
NFC.
llvm-svn: 230143
19 files changed, 85 insertions, 24 deletions
diff --git a/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp b/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp index b1aca7803da..475d4eba622 100644 --- a/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp +++ b/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp @@ -20,7 +20,9 @@ #include <sstream> #include <string> #include <vector> + using namespace llvm; +using namespace llvm::orc; //===----------------------------------------------------------------------===// // Lexer diff --git a/llvm/examples/Kaleidoscope/Orc/initial/toy.cpp b/llvm/examples/Kaleidoscope/Orc/initial/toy.cpp index ae0d4ad33da..c01aff2f99b 100644 --- a/llvm/examples/Kaleidoscope/Orc/initial/toy.cpp +++ b/llvm/examples/Kaleidoscope/Orc/initial/toy.cpp @@ -20,7 +20,9 @@ #include <sstream> #include <string> #include <vector> + using namespace llvm; +using namespace llvm::orc; //===----------------------------------------------------------------------===// // Lexer diff --git a/llvm/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp b/llvm/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp index 168ebdd87ae..ee42d79e585 100644 --- a/llvm/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp +++ b/llvm/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp @@ -19,7 +19,9 @@ #include <sstream> #include <string> #include <vector> + using namespace llvm; +using namespace llvm::orc; //===----------------------------------------------------------------------===// // Lexer diff --git a/llvm/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp b/llvm/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp index af02e939452..162b0e58999 100644 --- a/llvm/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp +++ b/llvm/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp @@ -19,7 +19,9 @@ #include <sstream> #include <string> #include <vector> + using namespace llvm; +using namespace llvm::orc; //===----------------------------------------------------------------------===// // Lexer diff --git a/llvm/include/llvm/ExecutionEngine/Orc/CloneSubModule.h b/llvm/include/llvm/ExecutionEngine/Orc/CloneSubModule.h index 208a4f7692b..1bd3955e879 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/CloneSubModule.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/CloneSubModule.h @@ -25,21 +25,36 @@ class Function; class GlobalVariable; class Module; +namespace orc { + +/// @brief Functor type for describing how CloneSubModule should mutate a +/// GlobalVariable. typedef std::function<void(GlobalVariable &, const GlobalVariable &, ValueToValueMapTy &)> HandleGlobalVariableFtor; +/// @brief Functor type for describing how CloneSubModule should mutate a +/// Function. typedef std::function<void(Function &, const Function &, ValueToValueMapTy &)> HandleFunctionFtor; +/// @brief Copies the initializer from Orig to New. +/// +/// Type is suitable for implicit conversion to a HandleGlobalVariableFtor. void copyGVInitializer(GlobalVariable &New, const GlobalVariable &Orig, ValueToValueMapTy &VMap); +/// @brief Copies the body of Orig to New. +/// +/// Type is suitable for implicit conversion to a HandleFunctionFtor. void copyFunctionBody(Function &New, const Function &Orig, ValueToValueMapTy &VMap); +/// @brief Clone a subset of the module Src into Dst. void CloneSubModule(Module &Dst, const Module &Src, HandleGlobalVariableFtor HandleGlobalVariable, HandleFunctionFtor HandleFunction, bool KeepInlineAsm); -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_CLONESUBMODULE_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h b/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h index 7fb25db0322..0e218e2e7f4 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h @@ -22,6 +22,7 @@ #include <list> namespace llvm { +namespace orc { /// @brief Compile-on-demand layer. /// @@ -347,6 +348,8 @@ private: CompileCallbackMgrT CompileCallbackMgr; ModuleSetInfoListT ModuleSetInfos; }; -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_COMPILEONDEMANDLAYER_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h b/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h index a054ca659d3..49a1fbadb29 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h @@ -21,6 +21,7 @@ #include "llvm/Target/TargetMachine.h" namespace llvm { +namespace orc { /// @brief Simple compile functor: Takes a single IR module and returns an /// ObjectFile. @@ -54,6 +55,8 @@ public: private: TargetMachine &TM; }; -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_COMPILEUTILS_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h b/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h index 19f55e9551c..6a476221739 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h @@ -21,6 +21,7 @@ #include <memory> namespace llvm { +namespace orc { /// @brief Eager IR compiling layer. /// @@ -138,6 +139,8 @@ private: CompileFtor Compile; ObjectCache *ObjCache; }; -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_IRCOMPILINGLAYER_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h b/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h index 50e9a4352dd..e9d3d34085d 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h @@ -22,6 +22,7 @@ #include <sstream> namespace llvm { +namespace orc { /// @brief Base class for JITLayer independent aspects of /// JITCompileCallbackManager. @@ -239,6 +240,7 @@ public: FullyPartitionedModule fullyPartition(Module &M); -} +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_INDIRECTIONUTILS_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h b/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h index c0b627e60b9..07a7dbb9a1f 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h @@ -19,6 +19,7 @@ #include <functional> namespace llvm { +namespace orc { /// @brief Represents an address in the target process's address space. typedef uint64_t TargetAddress; @@ -67,6 +68,7 @@ private: GetAddressFtor GetAddress; }; -} +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_JITSYMBOL_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h b/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h index 9579cd35cad..d1214af1e30 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h @@ -22,6 +22,7 @@ #include <list> namespace llvm { +namespace orc { /// @brief Lazy-emitting IR layer. /// @@ -273,6 +274,8 @@ LazyEmittingLayer<BaseLayerT>::EmissionDeferredSet::create( return llvm::make_unique<EmissionDeferredSetImpl<ModuleSetT>>(std::move(Ms), std::move(MM)); } -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_LAZYEMITTINGLAYER_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LookasideRTDyldMM.h b/llvm/include/llvm/ExecutionEngine/Orc/LookasideRTDyldMM.h index dd49c94dcca..44564045656 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/LookasideRTDyldMM.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/LookasideRTDyldMM.h @@ -20,6 +20,7 @@ #include <vector> namespace llvm { +namespace orc { /// @brief Defines an adapter for RuntimeDyldMM that allows lookups for external /// symbols to go via a functor, before falling back to the lookup logic @@ -84,6 +85,8 @@ createLookasideRTDyldMM(ExternalLookupFtor &&ExternalLookup, std::forward<ExternalLookupFtor>(ExternalLookup), std::forward<DylibLookupFtor>(DylibLookup)); } -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_LOOKASIDERTDYLDMM_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h index ad7c9ebdd9b..36af0feabda 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h @@ -22,6 +22,7 @@ #include <memory> namespace llvm { +namespace orc { class ObjectLinkingLayerBase { protected: @@ -260,6 +261,7 @@ private: CreateRTDyldMMFtor CreateMemoryManager; }; -} // end namespace llvm +} // End namespace orc. +} // End namespace llvm #endif // LLVM_EXECUTIONENGINE_ORC_OBJECTLINKINGLAYER_H diff --git a/llvm/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h b/llvm/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h index 29e49c33333..c6f866a0469 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h @@ -17,6 +17,7 @@ #include "IndirectionUtils.h" namespace llvm { +namespace orc { class OrcX86_64 { public: @@ -49,6 +50,7 @@ public: }; -} +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_EXECUTIONENGINE_ORC_ORCTARGETSUPPORT_H diff --git a/llvm/lib/ExecutionEngine/Orc/CloneSubModule.cpp b/llvm/lib/ExecutionEngine/Orc/CloneSubModule.cpp index 64a33c80f20..a3196ad2f78 100644 --- a/llvm/lib/ExecutionEngine/Orc/CloneSubModule.cpp +++ b/llvm/lib/ExecutionEngine/Orc/CloneSubModule.cpp @@ -4,15 +4,16 @@ #include "llvm/IR/Module.h" #include "llvm/Transforms/Utils/Cloning.h" -using namespace llvm; +namespace llvm { +namespace orc { -void llvm::copyGVInitializer(GlobalVariable &New, const GlobalVariable &Orig, +void copyGVInitializer(GlobalVariable &New, const GlobalVariable &Orig, ValueToValueMapTy &VMap) { if (Orig.hasInitializer()) New.setInitializer(MapValue(Orig.getInitializer(), VMap)); } -void llvm::copyFunctionBody(Function &New, const Function &Orig, +void copyFunctionBody(Function &New, const Function &Orig, ValueToValueMapTy &VMap) { if (!Orig.isDeclaration()) { Function::arg_iterator DestI = New.arg_begin(); @@ -27,9 +28,9 @@ void llvm::copyFunctionBody(Function &New, const Function &Orig, } } -void llvm::CloneSubModule(llvm::Module &Dst, const Module &Src, - HandleGlobalVariableFtor HandleGlobalVariable, - HandleFunctionFtor HandleFunction, bool CloneInlineAsm) { +void CloneSubModule(llvm::Module &Dst, const Module &Src, + HandleGlobalVariableFtor HandleGlobalVariable, + HandleFunctionFtor HandleFunction, bool CloneInlineAsm) { ValueToValueMapTy VMap; @@ -102,3 +103,6 @@ void llvm::CloneSubModule(llvm::Module &Dst, const Module &Src, } } + +} // End namespace orc. +} // End namespace llvm. diff --git a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp index 57616a54840..11deb4acbeb 100644 --- a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp @@ -8,6 +8,7 @@ using namespace llvm; namespace llvm { +namespace orc { GlobalVariable* createImplPointer(Function &F, const Twine &Name, Constant *Initializer) { @@ -106,4 +107,5 @@ FullyPartitionedModule fullyPartition(Module &M) { return MP; } -} +} // End namespace orc. +} // End namespace llvm. diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp index 75d1b1f7431..48fd31e51a6 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp +++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp @@ -13,7 +13,7 @@ namespace { static struct RegisterJIT { - RegisterJIT() { llvm::OrcMCJITReplacement::Register(); } + RegisterJIT() { llvm::orc::OrcMCJITReplacement::Register(); } } JITRegistrator; } @@ -21,6 +21,7 @@ static struct RegisterJIT { extern "C" void LLVMLinkInOrcMCJITReplacement() {} namespace llvm { +namespace orc { GenericValue OrcMCJITReplacement::runFunction(Function *F, @@ -122,4 +123,6 @@ OrcMCJITReplacement::runFunction(Function *F, llvm_unreachable("Full-featured argument passing not supported yet!"); } -} + +} // End namespace orc. +} // End namespace llvm. diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h index f09d13e87bd..1b7b16187c8 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h +++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h @@ -22,6 +22,7 @@ #include "llvm/Object/Archive.h" namespace llvm { +namespace orc { class OrcMCJITReplacement : public ExecutionEngine { @@ -104,11 +105,12 @@ class OrcMCJITReplacement : public ExecutionEngine { }; private: + static ExecutionEngine * createOrcMCJITReplacement(std::string *ErrorMsg, std::unique_ptr<RTDyldMemoryManager> OrcJMM, - std::unique_ptr<llvm::TargetMachine> TM) { - return new llvm::OrcMCJITReplacement(std::move(OrcJMM), std::move(TM)); + std::unique_ptr<TargetMachine> TM) { + return new OrcMCJITReplacement(std::move(OrcJMM), std::move(TM)); } public: @@ -323,6 +325,8 @@ private: std::vector<object::OwningBinary<object::Archive>> Archives; }; -} + +} // End namespace orc. +} // End namespace llvm. #endif // LLVM_LIB_EXECUTIONENGINE_ORC_MCJITREPLACEMENT_H diff --git a/llvm/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp b/llvm/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp index e71fc65ce24..b5dda8e4ee5 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp +++ b/llvm/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp @@ -2,7 +2,7 @@ #include "llvm/ExecutionEngine/Orc/OrcTargetSupport.h" #include <array> -using namespace llvm; +using namespace llvm::orc; namespace { @@ -47,6 +47,7 @@ uint64_t executeCompileCallback(JITCompileCallbackManagerBase<TargetT> *JCBM, } namespace llvm { +namespace orc { const char* OrcX86_64::ResolverBlockName = "orc_resolver_block"; @@ -123,4 +124,5 @@ OrcX86_64::insertCompileCallbackTrampolines(Module &M, return GetLabelName; } -} +} // End namespace orc. +} // End namespace llvm. |