4#ifndef QQMLJSBASICBLOCKS_P_H
5#define QQMLJSBASICBLOCKS_P_H
18#include <private/qqmljscompilepass_p.h>
19#include <private/qflatmap_p.h>
31 bool jumpIsUnconditional =
false;
56 struct ObjectOrArrayDefinition
58 static constexpr int arrayClassId = -1;
60 int instructionOffset = -1;
61 int internalClassId = -1;
81 enum JumpMode { Unconditional, Conditional };
83 void populateBasicBlocks();
84 void populateReaderLocations();
86 bool canMove(
int instructionOffset,
const RegisterAccess &
access)
const;
88 void dumpBasicBlocks();
92 InstructionAnnotations m_annotations;
96 bool m_skipUntilNextLabel =
false;
97 bool m_hadBackJumps =
false;
~QQmlJSBasicBlocks()=default
QQmlJSBasicBlocks(const QV4::Compiler::Context *context, const QV4::Compiler::JSUnitGenerator *unitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger)
void generate_JumpTrue(int) override
void generate_JumpFalse(int) override
void generate_Jump(int) override
void generate_DefineArray(int, int) override
void generate_JumpNotUndefined(int) override
void generate_Ret() override
void generate_ThrowException() override
void generate_JumpNoException(int) override
void generate_DefineObjectLiteral(int, int, int) override
virtual void endInstruction(Moth::Instr::Type instr)=0
virtual Verdict startInstruction(Moth::Instr::Type instr)=0
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
GLenum GLuint GLintptr offset
QList< QQmlJSScope::ConstPtr > readTypes
QList< int > readRegisters