An emitter which links the program to bytecode for later use. More...
An emitter which links the program to bytecode for later use.
Definition at line 26 of file ByteCodeEmitter.h.
◆ AddrTy ◆ LabelTy ◆ Local ◆ ByteCodeEmitter() clang::interp::ByteCodeEmitter::ByteCodeEmitter ( Context & Ctx, Program & P ) inlineprotected ◆ ~ByteCodeEmitter() virtual clang::interp::ByteCodeEmitter::~ByteCodeEmitter ( ) inlineprotectedvirtualDefinition at line 40 of file ByteCodeEmitter.h.
◆ compileFunc()Compiles the function into the module.
Definition at line 23 of file ByteCodeEmitter.cpp.
References clang::interp::align(), clang::TemplateArgumentList::asArray(), clang::CXXRecordDecl::captures_begin(), clang::CXXRecordDecl::captures_end(), clang::interp::Context::classify(), clang::interp::Program::createDescriptor(), clang::interp::Program::createFunction(), clang::interp::Record::Field::Decl, Descriptors, clang::FunctionTemplateDecl::findSpecialization(), clang::Func, clang::FunctionDecl::getDescribedFunctionTemplate(), clang::interp::Record::getField(), clang::interp::Program::getFunction(), clang::CXXRecordDecl::getLambdaCallOperator(), clang::interp::Program::getOrCreateRecord(), clang::DeclContext::getParent(), clang::FieldDecl::getParent(), clang::FunctionDecl::getReturnType(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), clang::FunctionDecl::hasBody(), clang::FunctionDecl::isConstexpr(), clang::FunctionDecl::isDefined(), clang::CXXRecordDecl::isGenericLambda(), clang::isLambdaCallOperator(), clang::Type::isPointerType(), clang::Type::isReferenceType(), clang::Type::isVoidType(), LambdaCaptures, LambdaThisCapture, clang::interp::Record::Field::Offset, clang::FunctionDecl::param_begin(), clang::FunctionDecl::param_empty(), clang::FunctionDecl::parameters(), Params, clang::interp::primSize(), clang::interp::PT_Ptr, clang::T, visitFunc(), and clang::FunctionDecl::willHaveBody().
◆ compileObjCBlock()Compile an ObjC block, i.e.
^(){}, that thing.
FIXME: We do not support calling the block though, so we create a function here but do not compile any code for it.
Definition at line 185 of file ByteCodeEmitter.cpp.
References clang::interp::align(), clang::interp::Context::classify(), clang::interp::Program::createDescriptor(), clang::interp::Program::createFunction(), clang::Func, clang::BlockExpr::getBlockDecl(), clang::BlockDecl::hasCaptures(), clang::BlockDecl::parameters(), Params, clang::interp::primSize(), clang::interp::PT_Ptr, and clang::T.
◆ createLocal() ◆ emitLabel() void ByteCodeEmitter::emitLabel ( LabelTy Label ) protected ◆ fallthrough() bool ByteCodeEmitter::fallthrough ( const LabelTy & Label ) protected ◆ getLabel() LabelTy clang::interp::ByteCodeEmitter::getLabel ( ) inlineprotected ◆ isActive() bool clang::interp::ByteCodeEmitter::isActive ( ) const inlineprotected ◆ jump() ◆ jumpFalse() bool ByteCodeEmitter::jumpFalse ( const LabelTy & Label ) protected ◆ jumpTrue() bool ByteCodeEmitter::jumpTrue ( const LabelTy & Label ) protected ◆ visitDeclAndReturn() virtual bool clang::interp::ByteCodeEmitter::visitDeclAndReturn ( const VarDecl * E, bool ConstantContext ) protectedpure virtual ◆ visitExpr() virtual bool clang::interp::ByteCodeEmitter::visitExpr ( const Expr * E, bool DestroyToplevelScope ) protectedpure virtual ◆ visitFunc() virtual bool clang::interp::ByteCodeEmitter::visitFunc ( const FunctionDecl * E ) protectedpure virtualMethods implemented by the compiler.
Referenced by compileFunc().
◆ Descriptors ◆ LambdaCaptures ◆ LambdaThisCapture ◆ ParamsThe documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4