Go to the documentation of this file.
35 #ifndef TTA_BASIC_BLOCK_NODE_HH
36 #define TTA_BASIC_BLOCK_NODE_HH
49 class BasicBlockStatistics;
73 bool refsUpdated =
false,
96 std::pair<TTAProgram::Move*,TTAProgram::Move*>
findJumps();
UInt32 InstructionAddress
BasicBlockNode * predecessor_
bool hasOriginalAddress_
not all basic blocks have original addresses (completely new basic blocks, etc.), this flag is true i...
BasicBlockNode * predecessor()
std::pair< TTAProgram::Move *, TTAProgram::Move * > findJumps()
bool isLoopScheduled() const
InstructionAddress originalEndAddress() const
BasicBlockNode * successor_
void link(BasicBlockNode *succ)
InstructionAddress originalEndAddress_
end address of the original basic block, used for reconstructing the original program after modifying...
bool isBasicBlockNode() const
InstructionAddress originalStartAddress_
start address of the original basic block, used for reconstructing the original program after modifyi...
const TTAProgram::BasicBlockStatistics & statistics()
TTAProgram::BasicBlock & basicBlock()
void setMaximumSize(int sz)
void updateHWloopLength(unsigned len)
const BasicBlockNode * successor() const
void updateReferencesFromProcToCfg(TTAProgram::Program &prog)
virtual ~BasicBlockNode()
void setBBOwnership(bool ownership=true)
BasicBlockNode * successor()
BasicBlockNode(InstructionAddress originalStartAddress, InstructionAddress originalEndAddress, bool entry=false, bool exit=false)
bool bbOwned_
true if the BasicBlock is owned by the BasicBlockNode
TTAProgram::BasicBlock * basicBlock_
the actual payload data of the graph node (the basic block)
void setScheduled(bool state=true)
bool exit_
true if this is an exit basic block (not real one)
const BasicBlockNode * predecessor() const
bool hasOriginalAddress() const
bool isHardwareLoop_
true if this bb is known to be a hwloop body
int maximumSize_
Maximum number of instructions this can consume when scheduled.
void setHWLoop(bool hwloop=true)
Set true if the bbn is known to be a loop body of a hwloop with loop pattern- preheader BB -> loop bo...
bool entry_
true if this is an entry basic block (not real one)
InstructionAddress originalStartAddress() const
std::string toString() const