Skip to content

Commit

Permalink
Invalidate liveness in ARMConstantIslandPass.
Browse files Browse the repository at this point in the history
This pass splits basic blocks to insert constant islands, and it
doesn't recompute the live-in lists. No later passes depend on accurate
liveness information.

This fixes PR12410 where the machine code verifier was complaining.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153700 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
stoklund committed Mar 29, 2012
1 parent ccca22e commit 7a4c071
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/Target/ARM/ARMConstantIslandPass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/Debug.h"
Expand Down Expand Up @@ -392,6 +393,9 @@ bool ARMConstantIslands::runOnMachineFunction(MachineFunction &mf) {

HasFarJump = false;

// This pass invalidates liveness information when it splits basic blocks.
MF->getRegInfo().invalidateLiveness();

// Renumber all of the machine basic blocks in the function, guaranteeing that
// the numbers agree with the position of the block in the function.
MF->RenumberBlocks();
Expand Down

0 comments on commit 7a4c071

Please sign in to comment.