Package com.oracle.truffle.api.dsl
Annotation Interface GenerateInline
Generates code for a node that makes this node inlinable when used in
cached
parameters of specializations
. Inlining nodes significantly reduces the
footprint of cached nodes as node allocations are avoided.
A node subclass must fullfill the following requirements in order to be inlinable:
- All execute methods of a the node must have a
node
as first parameter type. - The node has no instance fields and must not use
NodeChild
orNodeField
. - The cached node types must not be recursive.
InlineSupport
for details.
Please see the
node
object inlining tutorial for details on how to use this annotation.- Since:
- 23.0
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
boolean
Iftrue
the inlined version is used by default when the node is used as acached
argument.boolean
Iftrue
enables the generation of a inlined version of thisspecializing
node.
-
Element Details
-
value
boolean valueIftrue
enables the generation of a inlined version of thisspecializing
node. It is enabled by default.- Since:
- 23.0
- Default:
true
-
inherit
boolean inherit- Since:
- 23.0
- Default:
false
-
inlineByDefault
boolean inlineByDefaultIftrue
the inlined version is used by default when the node is used as acached
argument. Changing this value on an existing node class with existing and already compiled usages will not force the recompilation of the usages. One has to manually force recompilation of all the affected code. If the node class is part of supported public API, changing this value is a source incompatible change!- Since:
- 23.0
- Default:
false
-