clang 20.0.0git
|
Bytecode function. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/Function.h"
Public Types | |
using | ParamDescriptor = std::pair< PrimType, Descriptor * > |
using | arg_reverse_iterator = SmallVectorImpl< PrimType >::const_reverse_iterator |
Range over argument types. | |
Public Member Functions | |
unsigned | getFrameSize () const |
Returns the size of the function's local stack. | |
unsigned | getArgSize () const |
Returns the size of the argument stack. | |
CodePtr | getCodeBegin () const |
Returns a pointer to the start of the code. | |
CodePtr | getCodeEnd () const |
Returns a pointer to the end of the code. | |
const FunctionDecl * | getDecl () const |
Returns the original FunctionDecl. | |
const BlockExpr * | getExpr () const |
const std::string | getName () const |
Returns the name of the function decl this code was generated for. | |
ParamDescriptor | getParamDescriptor (unsigned Offset) const |
Returns a parameter descriptor. | |
bool | hasRVO () const |
Checks if the first argument is a RVO pointer. | |
bool | hasNonNullAttr () const |
llvm::iterator_range< llvm::SmallVector< Scope, 2 >::const_iterator > | scopes () const |
Range over the scope blocks. | |
llvm::iterator_range< arg_reverse_iterator > | args_reverse () const |
Scope & | getScope (unsigned Idx) |
Returns a specific scope. | |
const Scope & | getScope (unsigned Idx) const |
SourceInfo | getSource (CodePtr PC) const |
Returns the source information at a given PC. | |
bool | isConstexpr () const |
Checks if the function is valid to call in constexpr. | |
bool | isVirtual () const |
Checks if the function is virtual. | |
bool | isConstructor () const |
Checks if the function is a constructor. | |
bool | isDestructor () const |
Checks if the function is a destructor. | |
const CXXRecordDecl * | getParentDecl () const |
Returns the parent record decl, if any. | |
bool | isLambdaStaticInvoker () const |
Returns whether this function is a lambda static invoker, which we generate custom byte code for. | |
bool | isLambdaCallOperator () const |
Returns whether this function is the call operator of a lambda record decl. | |
bool | isFullyCompiled () const |
Checks if the function is fully done compiling. | |
bool | hasThisPointer () const |
bool | hasBody () const |
Checks if the function already has a body attached. | |
bool | isDefined () const |
Checks if the function is defined. | |
bool | isVariadic () const |
unsigned | getBuiltinID () const |
bool | isBuiltin () const |
bool | isUnevaluatedBuiltin () const |
unsigned | getNumParams () const |
unsigned | getNumWrittenParams () const |
Returns the number of parameter this function takes when it's called, i.e excluding the instance pointer and the RVO pointer. | |
unsigned | getWrittenArgSize () const |
bool | isThisPointerExplicit () const |
unsigned | getParamOffset (unsigned ParamIndex) const |
PrimType | getParamType (unsigned ParamIndex) const |
void | dump () const |
Dumps the disassembled bytecode to llvm::errs() . | |
void | dump (llvm::raw_ostream &OS) const |
Friends | |
class | Program |
class | ByteCodeEmitter |
Bytecode function.
Contains links to the bytecode of the function, as well as metadata describing all arguments and stack-local variables.
When calling a function, all argument values must be on the stack.
If the function has a This pointer (i.e. hasThisPointer() returns true, the argument values need to be preceeded by a Pointer for the This object.
If the function uses Return Value Optimization, the arguments (and potentially the This pointer) need to be preceeded by a Pointer pointing to the location to construct the returned value.
After the function has been called, it will remove all arguments, including RVO and This pointer, from the stack.
Definition at line 81 of file Function.h.
using clang::interp::Function::arg_reverse_iterator = SmallVectorImpl<PrimType>::const_reverse_iterator |
Range over argument types.
Definition at line 127 of file Function.h.
using clang::interp::Function::ParamDescriptor = std::pair<PrimType, Descriptor *> |
Definition at line 83 of file Function.h.
|