llvm-project/llvm/tools
Lang Hames 1df947ab40 [ORC] Update LLJIT to automatically run specially named initializer functions.
The GenericLLVMIRPlatformSupport class runs a transform on all LLVM IR added to
the LLJIT instance to replace instances of llvm.global_ctors with a specially
named function that runs the corresponing static initializers (See
(GlobalCtorDtorScraper from lib/ExecutionEngine/Orc/LLJIT.cpp). This patch
updates the GenericIRPlatform class to check for this specially named function
in other materialization units that are added to the JIT and, if found, add
the function to the initializer work queue. Doing this allows object files
that were compiled from IR and cached to be reloaded in subsequent JIT sessions
without their initializers being skipped.

To enable testing this patch also updates the lli tool's -jit-kind=orc-lazy mode
to respect the -enable-cache-manager and -object-cache-dir options, and modifies
the CompileOnDemandLayer to rename extracted submodules to include a hash of the
names of their symbol definitions. This allows a simple object caching scheme
based on module names (which was already implemented in lli) to work with the
lazy JIT.
2020-02-22 11:49:14 -08:00
..
bugpoint Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
bugpoint-passes Reverted the remainings of c1c9819ef9 2020-02-11 16:20:06 -08:00
dsymutil [dsymutil] Explicitly link against libatomic when necessary 2020-02-17 22:28:18 +00:00
gold [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
llc [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
lli [ORC] Update LLJIT to automatically run specially named initializer functions. 2020-02-22 11:49:14 -08:00
llvm-ar [llvm-ar] Simplify Windows comparePaths NFCI 2020-02-14 11:20:17 +00:00
llvm-as Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-as-fuzzer Fix some include order and file headers issues. NFC 2019-02-21 07:42:31 +00:00
llvm-bcanalyzer Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-c-test Move the sysroot attribute from DIModule to DICompileUnit 2020-01-17 12:55:40 -08:00
llvm-cat Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-cfi-verify Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-config Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-cov [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
llvm-cvtres Share /machine: handling code with llvm-cvtres too 2019-06-12 11:32:43 +00:00
llvm-cxxdump [llvm/Object] - Make ELFObjectFile::getRelocatedSection return Expected<section_iterator> 2019-10-21 11:06:38 +00:00
llvm-cxxfilt Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-cxxmap Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-diff llvm-diff: Perform structural comparison on GlobalVariables, if possible 2019-12-17 14:21:48 -05:00
llvm-dis [llvm-dis] Fix the disable-output flag 2019-11-14 13:35:21 -08:00
llvm-dwarfdump [llvm-dwarfdump][Stats] Fix the License header 2020-02-10 08:01:56 +01:00
llvm-dwp [DebugInfo][NFCI]: Removed an exclamation mark from error message. 2020-02-20 07:49:08 +05:30
llvm-elfabi Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-exegesis [X86] Add a new format type for instructions that represent named prefix bytes like data16 and rep. Use it to make a simpler version of isPrefix. 2020-02-21 12:34:59 -08:00
llvm-extract [llvm-extract] Add -keep-const-init commandline option 2020-02-03 14:30:28 +09:00
llvm-go Reinstate llvm-go to test the go bindings. 2020-02-13 17:24:55 -08:00
llvm-ifs Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-isel-fuzzer Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
llvm-itanium-demangle-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
llvm-jitlink [ORC] Add generic initializer/deinitializer support. 2020-02-19 13:59:32 -08:00
llvm-jitlistener
llvm-link Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lipo Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lto Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lto2 Improve comments after 8404aeb56a. 2020-02-18 14:25:21 -05:00
llvm-mc [AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI* 2020-02-13 22:08:55 -08:00
llvm-mc-assemble-fuzzer Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
llvm-mc-disassemble-fuzzer Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
llvm-mca [MC] De-capitalize another set of MCStreamer::Emit* functions 2020-02-14 19:26:52 -08:00
llvm-microsoft-demangle-fuzzer
llvm-ml [ms] [llvm-ml] Add a draft MASM parser 2020-02-16 12:30:46 -05:00
llvm-modextract Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-mt
llvm-nm Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-objcopy [llvm-objcopy][MachO] Change the storage of sections 2020-02-21 13:30:52 -08:00
llvm-objdump [llvm-objdump] Print method name from debug info in disassembly output. 2020-02-21 15:30:51 -08:00
llvm-opt-fuzzer Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
llvm-opt-report Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-pdbutil Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
llvm-profdata [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
llvm-rc Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-readobj [ARM] Change ARMAttributeParser::Parse to use support::endianness and simplify 2020-02-21 11:05:33 -08:00
llvm-reduce Revert "[llvm-reduce] add ReduceAttribute delta pass" 2020-02-05 14:15:11 -05:00
llvm-rtdyld Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-shlib [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
llvm-size [llvm-size] print a blank line between archieve members when using sysv format 2020-01-03 14:05:55 +08:00
llvm-special-case-list-fuzzer
llvm-split Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-stress [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-strings [binutils] Add response file option to help and docs 2019-06-21 11:49:20 +00:00
llvm-symbolizer [llvm-symbolizer]Fix printing of malformed address values not passed via stdin 2020-01-08 18:37:41 +08:00
llvm-undname Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-xray Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
llvm-yaml-numeric-parser-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
lto [LTO][Legacy] Add API for passing LLVM options separately 2019-11-19 16:30:37 -08:00
msbuild vs integration: bump version nbr 2019-06-19 07:39:53 +00:00
obj2yaml [yaml2obj] - Automatically assign sh_addr for allocatable sections. 2020-02-22 14:43:54 +03:00
opt [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
opt-viewer [opt viewer] Python compat - decode/encode string 2020-01-29 14:49:24 -08:00
remarks-shlib [Remarks] Add parser for bitstream remarks 2019-09-09 17:43:50 +00:00
sancov [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
sanstats [DebugInfo] add SectionedAddress to DebugInfo interfaces. 2019-02-27 13:17:36 +00:00
verify-uselistorder Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
vfabi-demangle-fuzzer [llvm][VectorUtils] Tweak VFShape for scalable vector functions. 2020-01-30 05:53:56 +00:00
xcode-toolchain
yaml2obj [yaml2obj] Add -D k=v to preprocess the input YAML 2020-02-07 09:35:00 -08:00
CMakeLists.txt Continue removing llgo. 2020-02-10 10:33:58 -08:00
LLVMBuild.txt [llvm-ifs][IFS] llvm Interface Stubs merging + object file generation tool. 2019-08-30 18:26:05 +00:00