You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/truffle/test/HostInliningBytecodeInterpreterExampleTest.java
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@
49
49
importjdk.vm.ci.meta.ResolvedJavaMethod;
50
50
51
51
/*
52
-
* If you update the code here, please also update truffle/docs/HostOptimization.md.
52
+
* If you update the code here, please also update truffle/docs/HostCompilation.md.
Copy file name to clipboardExpand all lines: truffle/docs/HostCompilation.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ This allows bytecode interpreter switches to be composed of multiple methods if
38
38
Native image, during closed world analysis, computes all methods that are reachable for runtime compilation.
39
39
Any potentially reachable method from `RootNode.execute(...)` is determined as runtime compilable.
40
40
For native images, in addition to bytecode interpreter switches, all runtime compilable methods are optimized using Truffle host inlining.
41
-
The maximum node cost of such an inlining pass can be configured with `-H:TruffleHostInliningBaseBudget=5000`.
41
+
The maximum node cost of such an inlining pass can be configured with `-H:TruffleHostInliningBaseBudget=5000`.
42
42
On HotSpot the set of runtime compilable methods is unknown.
43
43
Therefore, we can only rely on regular Java method inlining for methods not annotated as bytecode interpreter switch on HotSpot.
44
44
@@ -213,10 +213,10 @@ Additionally, to avoid the explosion of code size, host inlining has a built-in
213
213
For example, the tracing may print the following:
214
214
215
215
```
216
-
CUTOFF com.oracle.truffle.espresso.nodes.BytecodeNode.putPoolConstant(VirtualFrame, int, char, int) [inlined -1, explored 0, monomorphic false, deopt false, inInterpreter false, propDeopt false, graphSize 1132, subTreeCost 5136, invokes 1, subTreeInvokes 12, forced false, incomplete false, reason call has too many fast-path invokes - too complex, please optimize, see truffle/docs/HostOptimization.md
216
+
CUTOFF com.oracle.truffle.espresso.nodes.BytecodeNode.putPoolConstant(VirtualFrame, int, char, int) [inlined -1, explored 0, monomorphic false, deopt false, inInterpreter false, propDeopt false, graphSize 1132, subTreeCost 5136, invokes 1, subTreeInvokes 12, forced false, incomplete false, reason call has too many fast-path invokes - too complex, please optimize, see truffle/docs/HostCompilation.md
217
217
```
218
218
219
-
This indicates that there are too many fast-path invokes (by default 10) in the subtree, it also stops exploring after that number.
219
+
This indicates that there are too many fast-path invokes (see limit in [HostInliningPhase](../../compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/truffle/host/HostInliningPhase.java)) in the subtree, it also stops exploring after that number.
220
220
The `-Djdk.graal.TruffleHostInliningPrintExplored=true` flag may be provided to see the entire subtree for the decision.
221
221
The following calls are considered fast-path invokes:
222
222
@@ -262,8 +262,8 @@ abstract class AddNode extends Node {
262
262
```
263
263
264
264
In this example, the specializations `doInt` and `doDouble` are very simple, but there is also the `doGeneric` specialization, which calls into a complex lookup chain.
265
-
Assuming that the `LookupAndCallNode.execute` is a very complex method with more than ten fast-path subtree calls, we could not expect the execute method to get inlined.
266
-
Host inlining currently does not support automatic component analysis; though it can be specified manually using the `@InliningCutoff` annotation:
265
+
Assuming that the `LookupAndCallNode.execute` is a very complex method with many fast-path subtree calls (see limit in [HostInliningPhase](../../compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/truffle/host/HostInliningPhase.java)), we could not expect the execute method to get inlined.
266
+
Host inlining currently does not support automatic component analysis; though a cutoff can be specified manually using the `@InliningCutoff` annotation:
Copy file name to clipboardExpand all lines: truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/CachedFallbackTest.java
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -38,18 +38,18 @@
38
38
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
Copy file name to clipboardExpand all lines: truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/ConstantLocationTest.java
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -38,11 +38,15 @@
38
38
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
Copy file name to clipboardExpand all lines: truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/CustomLayoutTest.java
+2-3Lines changed: 2 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -38,16 +38,15 @@
38
38
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
0 commit comments