diff options
author | Alexis Engelke <engelke@in.tum.de> | 2024-08-06 13:46:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-06 13:46:19 +0200 |
commit | d871b2e0d09b872c57139ee0e24f966d58b92d33 (patch) | |
tree | e55859aa357cab9400243d9f4b828cf5d9ff0e81 /llvm/lib/CodeGen/MachineBlockPlacement.cpp | |
parent | 80721e0d6c7793eec699b5846dcf5d3ffff331a8 (diff) | |
download | llvm-d871b2e0d09b872c57139ee0e24f966d58b92d33.zip llvm-d871b2e0d09b872c57139ee0e24f966d58b92d33.tar.gz llvm-d871b2e0d09b872c57139ee0e24f966d58b92d33.tar.bz2 |
[CodeGen] Use optimized domtree for MachineFunction (#102107)
The dominator tree gained an optimization to use block numbers instead
of a DenseMap to store blocks. Given that machine basic blocks already
have numbers, expose these via appropriate GraphTraits. For debugging,
block number epochs are added to MachineFunction -- this greatly helps
in finding uses of block numbers after RenumberBlocks().
In a few cases where dominator trees are preserved across renumberings,
the dominator tree is updated to use the new numbers.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineBlockPlacement.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineBlockPlacement.cpp b/llvm/lib/CodeGen/MachineBlockPlacement.cpp index 6179e09..9010c3c 100644 --- a/llvm/lib/CodeGen/MachineBlockPlacement.cpp +++ b/llvm/lib/CodeGen/MachineBlockPlacement.cpp @@ -3649,6 +3649,7 @@ void MachineBlockPlacement::assignBlockOrder( const std::vector<const MachineBasicBlock *> &NewBlockOrder) { assert(F->size() == NewBlockOrder.size() && "Incorrect size of block order"); F->RenumberBlocks(); + MPDT->updateBlockNumbers(); bool HasChanges = false; for (size_t I = 0; I < NewBlockOrder.size(); I++) { |