- Notifications
You must be signed in to change notification settings - Fork28
Commitb96d550
committed
Support for optimizing and emitting code in LLVM JIT provider.
This commit introduces the ability to actually generate code usingLLVM. In particular, this adds:- Ability to emit code both in heavily optimized and largely unoptimized fashion- Batching facility to allow functions to be defined in small increments, but optimized and emitted in executable form in larger batches (for performance and memory efficiency)- Type and function declaration synchronization between runtime generated code and normal postgres code. This is critical to be able to access struct fields etc.- Developer oriented jit_dump_bitcode GUC, for inspecting / debugging the generated code.- per JitContext statistics of number of functions, time spent generating code, optimizing, and emitting it. This will later be employed for EXPLAIN support.This commit doesn't yet contain any code actually generatingfunctions. That'll follow in later commits.Documentation for GUCs added, and for JIT in general, will be added inlater commits.Author: Andres Freund, with contributions by Pierre DucroquetTesting-By: Thomas Munro, Peter EisentrautDiscussion:https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de1 parent2fe6336 commitb96d550
File tree
11 files changed
+748
-3
lines changed- src
- backend
- jit
- llvm
- utils/misc
- include/jit
- tools/pgindent
11 files changed
+748
-3
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 | 2 |
| |
3 | 3 |
| |
| 4 | + | |
4 | 5 |
| |
5 | 6 |
| |
6 | 7 |
| |
|
Lines changed: 21 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
951 | 951 |
| |
952 | 952 |
| |
953 | 953 |
| |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + |
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
46 | 46 |
| |
47 | 47 |
| |
48 | 48 |
| |
| 49 | + |
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
33 | 33 |
| |
34 | 34 |
| |
35 | 35 |
| |
| 36 | + | |
36 | 37 |
| |
37 | 38 |
| |
38 | 39 |
| |
|
Lines changed: 11 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
41 | 41 |
| |
42 | 42 |
| |
43 | 43 |
| |
44 |
| - | |
| 44 | + | |
45 | 45 |
| |
46 |
| - | |
| 46 | + | |
47 | 47 |
| |
48 | 48 |
| |
49 | 49 |
| |
50 |
| - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
51 | 58 |
| |
52 | 59 |
| |
53 | 60 |
| |
54 | 61 |
| |
55 | 62 |
| |
| 63 | + |
0 commit comments
Comments
(0)