|
This patch adds a CompilationTiming enum {Undefined, Lazy, Eager} and requires users to pass a value from it to every function that may cause the JIT to generate code.
I do NOT think we should accept this patch: It changes a lot of APIs and makes users specify the choice in many places, while I think most users really just want one choice for their whole app. There's a good argument to be made that users may want to decide certain calls should be lazily-compiled, but those are boundaries _within_ a transitive call tree, not the whole-tree choice this change allows. I'd be happy with a forced choice when creating the JIT, or with an optional choice defaulted to the safer option, but this patch seems like the wrong thing to do.
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+264 lines, -169 lines) |
Patch |
|
M |
docs/ProgrammersManual.html
|
View
|
|
2 chunks |
+28 lines, -0 lines |
0 comments
|
Download
|
|
M |
examples/BrainF/BrainFDriver.cpp
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
examples/Fibonacci/fibonacci.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
examples/HowToUseJIT/HowToUseJIT.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
examples/Kaleidoscope/Chapter4/toy.cpp
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
examples/Kaleidoscope/Chapter5/toy.cpp
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
examples/Kaleidoscope/Chapter6/toy.cpp
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
examples/Kaleidoscope/Chapter7/toy.cpp
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
examples/ParallelJIT/ParallelJIT.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
include/llvm/ExecutionEngine/ExecutionEngine.h
|
View
|
|
11 chunks |
+45 lines, -41 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/ExecutionEngine.cpp
|
View
|
|
24 chunks |
+61 lines, -39 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/ExecutionEngineBindings.cpp
|
View
|
|
4 chunks |
+8 lines, -5 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/Interpreter/Execution.cpp
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/Interpreter/Interpreter.h
|
View
|
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/Interpreter/Interpreter.cpp
|
View
|
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/JIT/JIT.h
|
View
|
|
6 chunks |
+21 lines, -6 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/JIT/JIT.cpp
|
View
|
|
10 chunks |
+28 lines, -15 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp
|
View
|
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
lib/ExecutionEngine/JIT/JITEmitter.cpp
|
View
|
|
7 chunks |
+14 lines, -17 lines |
0 comments
|
Download
|
|
M |
tools/lli/lli.cpp
|
View
|
|
3 chunks |
+8 lines, -7 lines |
0 comments
|
Download
|
|
M |
unittests/ExecutionEngine/JIT/JITEventListenerTest.cpp
|
View
|
|
3 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
|
M |
unittests/ExecutionEngine/JIT/JITTest.cpp
|
View
|
|
9 chunks |
+10 lines, -12 lines |
0 comments
|
Download
|
|