Package com.oracle.truffle.api.bytecode
package com.oracle.truffle.api.bytecode
The Bytecode DSL is a DSL and runtime support component of Truffle that makes it easier to
implement bytecode interpreters. Start
here.- Since:
- 24.2
-
ClassDescriptionParent class for a bytecode builder generated by the Bytecode DSL.The configuration to use while generating bytecode.Builder to generate a
BytecodeConfigprogrammatically.Abstract class implemented by generated code to encodeBytecodeConfigdata.BytecodeDescriptor<R extends RootNode & BytecodeRootNode, L extends TruffleLanguage<?>, B extends BytecodeBuilder>Describes the bytecode interpreter generated for a specificBytecodeRootNodeclass and provides the management API for that interpreter.Accessor class used to abstract away frame and bytecode array accesses in the generated code.Class representing an exception thrown by aBytecodeBuilderwhen the program cannot be encoded, for example, when the bytecode exceeds the maximum addressable bytecode size.Abstract definition of a label.Abstract definition of a local variable in the interpreter.A materialized bytecode location.Represents the current bytecode for a Bytecode DSL root node.BytecodeParser<T extends BytecodeBuilder>Functional interface containing a method to parse one or more nodes using aBytecodeBuilder.Base interface to be implemented by the bytecode root node of a Bytecode DSL interpreter.ABytecodeRootNodesinstance encapsulates one or more bytecode root nodes produced from a single parse.Contains code to support Bytecode DSL interpreters.Special list to weakly keep track of clones.Specialized reusable and allocation-free buffer for constants.Represents the tier of a givenBytecodeNode.Defines a constant operand for an operation.Repeat annotation forConstantOperand.Representation of a continuation closure, consisting of a resumableRootNode, the interpreter state, and a yielded result.Abstract class representing the root node for a continuation.Defines an exceptional epilog operation.Defines a return epilog operation.Introspection class modeling the meta-information of an exception handler in a bytecode interpreter.Represents the kind of the exception handler.Forces quickening for anOperationspecialization.Repeat annotation forForceQuickening.Generates a bytecode interpreter using the Bytecode DSL.This annotation should only be used for testing to generate multiple variants of the interpreter with slightly differentconfigurations.The annotation used to declare a variant.Represents metadata for an instruction in a bytecode node.Represents metadata for an argument of an instruction in a bytecode node.Represents a branch profile.Represents the kind of anInstruction.Argument.Descriptor for a concrete bytecode instruction.Descriptor for a single immediate argument of an instruction.A low-overhead callback interface to observe instruction execution in Bytecode DSL interpreters.Accessor for properties of the instruction about to execute.Instrumentations are operations that can be dynamically enabled at runtime.Operation parameter that allows an operation to get, set, and clear the value of a local.Operation parameter that allows an operation to get, set, or clear locals declared in a contiguous range.Introspection class modeling a local variable and its liveness info in a bytecode interpreter.Operation parameter that allows an operation to get, set, and clear the value of a local from a materialized frame of the current root node or an outer root node.Declares an operation.Defines an operation using an existingNode.Designates aNodeclass as eligible for proxying.Repeat annotation forOperationProxy.Defines a prolog operation that executes before the body of a Root operation.Declares a short-circuiting operation.Defines the behaviour of aShortCircuitOperation.Repeat annotation forShortCircuitOperation.Introspection class modeling source section information for a range of bytecodes.Introspection class modeling a tree ofSourceInformationinstances.Can be applied toSpecialization- orFallback-annotated methods to specify whether they require a bytecode index update in the frame.Logical tree representation of theTagoperations of a bytecode program.Class that implements tag treeNodeLibrarydispatch for tag tree items.Annotation indicating a parameter that takes zero or more values.Declares a custom yield operation.