Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QQmlJSBasicBlocks Class Reference

#include <qqmljsbasicblocks_p.h>

Inheritance diagram for QQmlJSBasicBlocks:
Collaboration diagram for QQmlJSBasicBlocks:

Classes

struct  BasicBlocksValidationResult

Public Member Functions

 QQmlJSBasicBlocks (const QV4::Compiler::Context *context, const QV4::Compiler::JSUnitGenerator *unitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger)
 ~QQmlJSBasicBlocks ()=default
QQmlJSCompilePass::BlocksAndAnnotations run (const Function *function, QQmlJSAotCompiler::Flags compileFlags, bool &basicBlocksValidationFailed)
BasicBlocksValidationResult basicBlocksValidation ()
QList< ObjectOrArrayDefinitionobjectAndArrayDefinitions () const
Public Member Functions inherited from QQmlJSCompilePass
 QQmlJSCompilePass (const QV4::Compiler::JSUnitGenerator *jsUnitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger, const BasicBlocks &basicBlocks={}, const InstructionAnnotations &annotations={})
Public Member Functions inherited from QV4::Moth::ByteCodeHandler
 ByteCodeHandler ()=default
virtual ~ByteCodeHandler ()
void decode (const char *code, uint len)
void reset ()
int currentInstructionOffset () const
int nextInstructionOffset () const
int absoluteOffset (int relativeOffset) const

Static Public Member Functions

static BasicBlocks::iterator basicBlockForInstruction (QFlatMap< int, BasicBlock > &container, int instructionOffset)
static BasicBlocks::const_iterator basicBlockForInstruction (const QFlatMap< int, BasicBlock > &container, int instructionOffset)

Private Member Functions

QV4::Moth::ByteCodeHandler::Verdict startInstruction (QV4::Moth::Instr::Type type) override
void endInstruction (QV4::Moth::Instr::Type type) override
void generate_Jump (int offset) override
void generate_JumpTrue (int offset) override
void generate_JumpFalse (int offset) override
void generate_JumpNoException (int offset) override
void generate_JumpNotUndefined (int offset) override
void generate_IteratorNext (int value, int offset) override
void generate_GetOptionalLookup (int index, int offset) override
void generate_Ret () override
void generate_ThrowException () override
void generate_DefineArray (int argc, int argv) override
void generate_DefineObjectLiteral (int internalClassId, int argc, int args) override
void generate_Construct (int func, int argc, int argv) override

Additional Inherited Members

Public Types inherited from QQmlJSCompilePass
enum  RegisterShortcuts {
  InvalidRegister = -1 , CurrentFunction = QV4::CallData::Function , Context = QV4::CallData::Context , Accumulator = QV4::CallData::Accumulator ,
  This = QV4::CallData::This , NewTarget = QV4::CallData::NewTarget , Argc = QV4::CallData::Argc , FirstArgument = QV4::CallData::OffsetCount
}
using SourceLocationTable = QV4::Compiler::Context::SourceLocationTable
using VirtualRegisters = QFlatMap<int, VirtualRegister>
using BasicBlocks = QFlatMap<int, BasicBlock>
using InstructionAnnotations = QFlatMap<int, InstructionAnnotation>
Protected Types inherited from QV4::Moth::ByteCodeHandler
enum  Verdict { ProcessInstruction , SkipInstruction }
Protected Member Functions inherited from QQmlJSCompilePass
int firstRegisterIndex () const
bool isArgument (int registerIndex) const
QQmlJSRegisterContent argumentType (int registerIndex) const
bool isQmlScopeObject (QQmlJSRegisterContent content)
State initialState (const Function *function)
State nextStateFromAnnotations (const State &oldState, const InstructionAnnotations &annotations)
QList< SourceLocationTable::Entry >::const_iterator sourceLocationEntry (int instructionOffset) const
QQmlJS::SourceLocation sourceLocation (int instructionOffset) const
QQmlJS::SourceLocation nonEmptySourceLocation (int instructionOffset) const
QQmlJS::SourceLocation currentSourceLocation () const
QQmlJS::SourceLocation currentNonEmptySourceLocation () const
QQmlJS::SourceLocation currentFunctionSourceLocation () const
void addError (const QString &message, int instructionOffset)
void addSkip (const QString &message, int instructionOffset)
void addError (const QString &message)
void addSkip (const QString &message)
void generate_Add (int) override
void generate_As (int) override
void generate_BitAnd (int) override
void generate_BitAndConst (int) override
void generate_BitOr (int) override
void generate_BitOrConst (int) override
void generate_BitXor (int) override
void generate_BitXorConst (int) override
void generate_CallGlobalLookup (int, int, int) override
void generate_CallName (int, int, int) override
void generate_CallPossiblyDirectEval (int, int) override
void generate_CallProperty (int, int, int, int) override
void generate_CallPropertyLookup (int, int, int, int) override
void generate_CallQmlContextPropertyLookup (int, int, int) override
void generate_CallValue (int, int, int) override
void generate_CallWithReceiver (int, int, int, int) override
void generate_CallWithSpread (int, int, int, int) override
void generate_CheckException () override
void generate_CloneBlockContext () override
void generate_CmpEq (int) override
void generate_CmpEqInt (int) override
void generate_CmpEqNull () override
void generate_CmpGe (int) override
void generate_CmpGt (int) override
void generate_CmpIn (int) override
void generate_CmpInstanceOf (int) override
void generate_CmpLe (int) override
void generate_CmpLt (int) override
void generate_CmpNe (int) override
void generate_CmpNeInt (int) override
void generate_CmpNeNull () override
void generate_CmpStrictEqual (int) override
void generate_CmpStrictNotEqual (int) override
void generate_Construct (int, int, int) override
void generate_ConstructWithSpread (int, int, int) override
void generate_ConvertThisToObject () override
void generate_CreateCallContext () override
void generate_CreateClass (int, int, int) override
void generate_CreateMappedArgumentsObject () override
void generate_CreateRestParameter (int) override
void generate_CreateUnmappedArgumentsObject () override
void generate_DeadTemporalZoneCheck (int) override
void generate_Debug () override
void generate_DeclareVar (int, int) override
void generate_Decrement () override
void generate_DefineArray (int, int) override
void generate_DefineObjectLiteral (int, int, int) override
void generate_DeleteName (int) override
void generate_DeleteProperty (int, int) override
void generate_DestructureRestElement () override
void generate_Div (int) override
void generate_Exp (int) override
void generate_GetException () override
void generate_GetIterator (int) override
void generate_GetLookup (int) override
void generate_GetOptionalLookup (int, int) override
void generate_GetTemplateObject (int) override
void generate_Increment () override
void generate_InitializeBlockDeadTemporalZone (int, int) override
void generate_IteratorClose () override
void generate_IteratorNext (int, int) override
void generate_IteratorNextForYieldStar (int, int, int) override
void generate_Jump (int) override
void generate_JumpFalse (int) override
void generate_JumpNoException (int) override
void generate_JumpNotUndefined (int) override
void generate_JumpTrue (int) override
void generate_LoadClosure (int) override
void generate_LoadConst (int) override
void generate_LoadElement (int) override
void generate_LoadFalse () override
void generate_LoadGlobalLookup (int) override
void generate_LoadImport (int) override
void generate_LoadInt (int) override
void generate_LoadLocal (int) override
void generate_LoadName (int) override
void generate_LoadNull () override
void generate_LoadOptionalProperty (int, int) override
void generate_LoadProperty (int) override
void generate_LoadQmlContextPropertyLookup (int) override
void generate_LoadReg (int) override
void generate_LoadRuntimeString (int) override
void generate_LoadScopedLocal (int, int) override
void generate_LoadSuperConstructor () override
void generate_LoadSuperProperty (int) override
void generate_LoadTrue () override
void generate_LoadUndefined () override
void generate_LoadZero () override
void generate_Mod (int) override
void generate_MoveConst (int, int) override
void generate_MoveReg (int, int) override
void generate_MoveRegExp (int, int) override
void generate_Mul (int) override
void generate_PopContext () override
void generate_PopScriptContext () override
void generate_PushBlockContext (int) override
void generate_PushCatchContext (int, int) override
void generate_PushScriptContext (int) override
void generate_PushWithContext () override
void generate_Resume (int) override
void generate_Ret () override
void generate_SetException () override
void generate_SetLookup (int, int) override
void generate_SetUnwindHandler (int) override
void generate_Shl (int) override
void generate_ShlConst (int) override
void generate_Shr (int) override
void generate_ShrConst (int) override
void generate_StoreElement (int, int) override
void generate_StoreLocal (int) override
void generate_StoreNameSloppy (int) override
void generate_StoreNameStrict (int) override
void generate_StoreProperty (int, int) override
void generate_StoreReg (int) override
void generate_StoreScopedLocal (int, int) override
void generate_StoreSuperProperty (int) override
void generate_Sub (int) override
void generate_TailCall (int, int, int, int) override
void generate_ThrowException () override
void generate_ThrowOnNullOrUndefined () override
void generate_ToObject () override
void generate_TypeofName (int) override
void generate_TypeofValue () override
void generate_UCompl () override
void generate_UMinus () override
void generate_UNot () override
void generate_UPlus () override
void generate_UShr (int) override
void generate_UShrConst (int) override
void generate_UnwindDispatch () override
void generate_UnwindToLabel (int, int) override
void generate_Yield () override
void generate_YieldStar () override
Static Protected Member Functions inherited from QQmlJSCompilePass
static bool instructionManipulatesContext (QV4::Moth::Instr::Type type)
Protected Attributes inherited from QQmlJSCompilePass
const QV4::Compiler::JSUnitGeneratorm_jsUnitGenerator = nullptr
const QQmlJSTypeResolverm_typeResolver = nullptr
QQmlJSRegisterContentPoolm_pool = nullptr
QQmlJSLoggerm_logger = nullptr
const Functionm_function = nullptr
BasicBlocks m_basicBlocks
InstructionAnnotations m_annotations

Detailed Description

Definition at line 25 of file qqmljsbasicblocks_p.h.

Constructor & Destructor Documentation

◆ QQmlJSBasicBlocks()

QQmlJSBasicBlocks::QQmlJSBasicBlocks ( const QV4::Compiler::Context * context,
const QV4::Compiler::JSUnitGenerator * unitGenerator,
const QQmlJSTypeResolver * typeResolver,
QQmlJSLogger * logger )
inline

Definition at line 28 of file qqmljsbasicblocks_p.h.

◆ ~QQmlJSBasicBlocks()

QQmlJSBasicBlocks::~QQmlJSBasicBlocks ( )
default

Member Function Documentation

◆ basicBlockForInstruction() [1/2]

BasicBlocks::const_iterator QQmlJSBasicBlocks::basicBlockForInstruction ( const QFlatMap< int, BasicBlock > & container,
int instructionOffset )
static

◆ basicBlockForInstruction() [2/2]

QQmlJSCompilePass::BasicBlocks::iterator QQmlJSBasicBlocks::basicBlockForInstruction ( QFlatMap< int, BasicBlock > & container,
int instructionOffset )
static

Definition at line 290 of file qqmljsbasicblocks.cpp.

◆ basicBlocksValidation()

QQmlJSBasicBlocks::BasicBlocksValidationResult QQmlJSBasicBlocks::basicBlocksValidation ( )

Definition at line 305 of file qqmljsbasicblocks.cpp.

◆ endInstruction()

void QQmlJSBasicBlocks::endInstruction ( QV4::Moth::Instr::Type type)
overrideprivatevirtual

Implements QV4::Moth::ByteCodeHandler.

Definition at line 180 of file qqmljsbasicblocks.cpp.

◆ generate_Construct()

void QQmlJSBasicBlocks::generate_Construct ( int func,
int argc,
int argv )
overrideprivate

Definition at line 258 of file qqmljsbasicblocks.cpp.

◆ generate_DefineArray()

void QQmlJSBasicBlocks::generate_DefineArray ( int argc,
int argv )
overrideprivate

Definition at line 240 of file qqmljsbasicblocks.cpp.

◆ generate_DefineObjectLiteral()

void QQmlJSBasicBlocks::generate_DefineObjectLiteral ( int internalClassId,
int argc,
int args )
overrideprivate

Definition at line 250 of file qqmljsbasicblocks.cpp.

◆ generate_GetOptionalLookup()

void QQmlJSBasicBlocks::generate_GetOptionalLookup ( int index,
int offset )
overrideprivate

Definition at line 220 of file qqmljsbasicblocks.cpp.

◆ generate_IteratorNext()

void QQmlJSBasicBlocks::generate_IteratorNext ( int value,
int offset )
overrideprivate

Definition at line 214 of file qqmljsbasicblocks.cpp.

◆ generate_Jump()

void QQmlJSBasicBlocks::generate_Jump ( int offset)
overrideprivate

Definition at line 189 of file qqmljsbasicblocks.cpp.

◆ generate_JumpFalse()

void QQmlJSBasicBlocks::generate_JumpFalse ( int offset)
overrideprivate

Definition at line 199 of file qqmljsbasicblocks.cpp.

◆ generate_JumpNoException()

void QQmlJSBasicBlocks::generate_JumpNoException ( int offset)
overrideprivate

Definition at line 204 of file qqmljsbasicblocks.cpp.

◆ generate_JumpNotUndefined()

void QQmlJSBasicBlocks::generate_JumpNotUndefined ( int offset)
overrideprivate

Definition at line 209 of file qqmljsbasicblocks.cpp.

◆ generate_JumpTrue()

void QQmlJSBasicBlocks::generate_JumpTrue ( int offset)
overrideprivate

Definition at line 194 of file qqmljsbasicblocks.cpp.

◆ generate_Ret()

void QQmlJSBasicBlocks::generate_Ret ( )
overrideprivate

Definition at line 226 of file qqmljsbasicblocks.cpp.

◆ generate_ThrowException()

void QQmlJSBasicBlocks::generate_ThrowException ( )
overrideprivate

Definition at line 233 of file qqmljsbasicblocks.cpp.

◆ objectAndArrayDefinitions()

QList< QQmlJSCompilePass::ObjectOrArrayDefinition > QQmlJSBasicBlocks::objectAndArrayDefinitions ( ) const

Definition at line 292 of file qqmljsoptimizations.cpp.

◆ run()

QQmlJSCompilePass::BlocksAndAnnotations QQmlJSBasicBlocks::run ( const Function * function,
QQmlJSAotCompiler::Flags compileFlags,
bool & basicBlocksValidationFailed )

Definition at line 105 of file qqmljsbasicblocks.cpp.

◆ startInstruction()

QV4::Moth::ByteCodeHandler::Verdict QQmlJSBasicBlocks::startInstruction ( QV4::Moth::Instr::Type type)
overrideprivatevirtual

Implements QV4::Moth::ByteCodeHandler.

Definition at line 168 of file qqmljsbasicblocks.cpp.


The documentation for this class was generated from the following files: