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_
void setScheduled(bool state=true)
bool isLoopScheduled() const
TTAProgram::BasicBlock & basicBlock()
const TTAProgram::BasicBlockStatistics & statistics()
InstructionAddress originalEndAddress() const
virtual ~BasicBlockNode()
bool isHardwareLoop_
true if this bb is known to be a hwloop body
void link(BasicBlockNode *succ)
bool isBasicBlockNode() const
InstructionAddress originalStartAddress_
start address of the original basic block, used for reconstructing the original program after modifyi...
std::pair< TTAProgram::Move *, TTAProgram::Move * > findJumps()
bool hasOriginalAddress_
not all basic blocks have original addresses (completely new basic blocks, etc.), this flag is true i...
bool bbOwned_
true if the BasicBlock is owned by the BasicBlockNode
BasicBlockNode * successor()
InstructionAddress originalStartAddress() const
int maximumSize_
Maximum number of instructions this can consume when scheduled.
void setMaximumSize(int sz)
TTAProgram::BasicBlock * basicBlock_
the actual payload data of the graph node (the basic block)
const BasicBlockNode * predecessor() const
InstructionAddress originalEndAddress_
end address of the original basic block, used for reconstructing the original program after modifying...
std::string toString() const
bool exit_
true if this is an exit basic block (not real one)
const BasicBlockNode * successor() const
BasicBlockNode * successor_
bool hasOriginalAddress() const
void updateHWloopLength(unsigned len)
void updateReferencesFromProcToCfg(TTAProgram::Program &prog)
bool entry_
true if this is an entry basic block (not real one)
void setBBOwnership(bool ownership=true)
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...
BasicBlockNode * predecessor()