mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
MC CFG: Split MCBasicBlocks to mirror atom splitting.
When an MCTextAtom is split, all MCBasicBlocks backed by it are automatically split, with a fallthrough between both blocks, and the successors moved to the second block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188881 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -56,6 +56,21 @@ class MCModule {
|
||||
void map(MCAtom *NewAtom);
|
||||
/// @}
|
||||
|
||||
/// \name Basic block tracking
|
||||
/// @{
|
||||
typedef std::vector<MCBasicBlock*> BBsByAtomTy;
|
||||
BBsByAtomTy BBsByAtom;
|
||||
|
||||
// For access to basic block > atom tracking.
|
||||
friend class MCBasicBlock;
|
||||
friend class MCTextAtom;
|
||||
|
||||
/// \brief Keep track of \p BBBackedByAtom as being backed by \p Atom.
|
||||
/// This is used to update succs/preds when \p Atom is split.
|
||||
void trackBBForAtom(const MCTextAtom *Atom, MCBasicBlock *BBBackedByAtom);
|
||||
void splitBasicBlocksForAtom(const MCTextAtom *TA, const MCTextAtom *NewTA);
|
||||
/// @}
|
||||
|
||||
/// \name Function tracking
|
||||
/// @{
|
||||
typedef std::vector<MCFunction*> FunctionListTy;
|
||||
|
Reference in New Issue
Block a user