mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
Clean up LDV, no functionality change.
Remove dead functions: renameRegister Move private member variables from LDV to Impl Remove ssp/uwtable from testing case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175072 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ee740ddf9d
commit
f098620095
@ -64,8 +64,7 @@ void LiveDebugVariables::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
MachineFunctionPass::getAnalysisUsage(AU);
|
||||
}
|
||||
|
||||
LiveDebugVariables::LiveDebugVariables() : MachineFunctionPass(ID), pImpl(0),
|
||||
EmitDone(false), ModifiedMF(false) {
|
||||
LiveDebugVariables::LiveDebugVariables() : MachineFunctionPass(ID), pImpl(0) {
|
||||
initializeLiveDebugVariablesPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
||||
@ -248,10 +247,6 @@ public:
|
||||
LiveIntervals &LIS, MachineDominatorTree &MDT,
|
||||
UserValueScopes &UVS);
|
||||
|
||||
/// renameRegister - Update locations to rewrite OldReg as NewReg:SubIdx.
|
||||
void renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx,
|
||||
const TargetRegisterInfo *TRI);
|
||||
|
||||
/// splitRegister - Replace OldReg ranges with NewRegs ranges where NewRegs is
|
||||
/// live. Returns true if any changes were made.
|
||||
bool splitRegister(unsigned OldLocNo, ArrayRef<LiveInterval*> NewRegs);
|
||||
@ -287,6 +282,11 @@ class LDVImpl {
|
||||
MachineDominatorTree *MDT;
|
||||
const TargetRegisterInfo *TRI;
|
||||
|
||||
/// Whether emitDebugValues is called.
|
||||
bool EmitDone;
|
||||
/// Whether the machine function is modified during the pass.
|
||||
bool ModifiedMF;
|
||||
|
||||
/// userValues - All allocated UserValue instances.
|
||||
SmallVector<UserValue*, 8> userValues;
|
||||
|
||||
@ -321,23 +321,26 @@ class LDVImpl {
|
||||
void computeIntervals();
|
||||
|
||||
public:
|
||||
LDVImpl(LiveDebugVariables *ps) : pass(*ps) {}
|
||||
LDVImpl(LiveDebugVariables *ps) : pass(*ps), EmitDone(false),
|
||||
ModifiedMF(false) {}
|
||||
bool runOnMachineFunction(MachineFunction &mf);
|
||||
|
||||
/// clear - Relase all memory.
|
||||
/// clear - Release all memory.
|
||||
void clear() {
|
||||
DeleteContainerPointers(userValues);
|
||||
userValues.clear();
|
||||
virtRegToEqClass.clear();
|
||||
userVarMap.clear();
|
||||
// Make sure we call emitDebugValues if the machine function was modified.
|
||||
assert((!ModifiedMF || EmitDone) &&
|
||||
"Dbg values are not emitted in LDV");
|
||||
EmitDone = false;
|
||||
ModifiedMF = false;
|
||||
}
|
||||
|
||||
/// mapVirtReg - Map virtual register to an equivalence class.
|
||||
void mapVirtReg(unsigned VirtReg, UserValue *EC);
|
||||
|
||||
/// renameRegister - Replace all references to OldReg with NewReg:SubIdx.
|
||||
void renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx);
|
||||
|
||||
/// splitRegister - Replace all references to OldReg with NewRegs.
|
||||
void splitRegister(unsigned OldReg, ArrayRef<LiveInterval*> NewRegs);
|
||||
|
||||
@ -694,6 +697,7 @@ bool LDVImpl::runOnMachineFunction(MachineFunction &mf) {
|
||||
computeIntervals();
|
||||
DEBUG(print(dbgs()));
|
||||
LS.releaseMemory();
|
||||
ModifiedMF = Changed;
|
||||
return Changed;
|
||||
}
|
||||
|
||||
@ -702,17 +706,12 @@ bool LiveDebugVariables::runOnMachineFunction(MachineFunction &mf) {
|
||||
return false;
|
||||
if (!pImpl)
|
||||
pImpl = new LDVImpl(this);
|
||||
ModifiedMF = static_cast<LDVImpl*>(pImpl)->runOnMachineFunction(mf);
|
||||
return ModifiedMF;
|
||||
return static_cast<LDVImpl*>(pImpl)->runOnMachineFunction(mf);
|
||||
}
|
||||
|
||||
void LiveDebugVariables::releaseMemory() {
|
||||
if (pImpl) {
|
||||
if (pImpl)
|
||||
static_cast<LDVImpl*>(pImpl)->clear();
|
||||
// Make sure we call emitDebugValues if the machine function was modified.
|
||||
assert((!ModifiedMF || EmitDone) &&
|
||||
"Dbg values are not emitted in LDV");
|
||||
}
|
||||
}
|
||||
|
||||
LiveDebugVariables::~LiveDebugVariables() {
|
||||
@ -720,45 +719,6 @@ LiveDebugVariables::~LiveDebugVariables() {
|
||||
delete static_cast<LDVImpl*>(pImpl);
|
||||
}
|
||||
|
||||
void UserValue::
|
||||
renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx,
|
||||
const TargetRegisterInfo *TRI) {
|
||||
for (unsigned i = locations.size(); i; --i) {
|
||||
unsigned LocNo = i - 1;
|
||||
MachineOperand &Loc = locations[LocNo];
|
||||
if (!Loc.isReg() || Loc.getReg() != OldReg)
|
||||
continue;
|
||||
if (TargetRegisterInfo::isPhysicalRegister(NewReg))
|
||||
Loc.substPhysReg(NewReg, *TRI);
|
||||
else
|
||||
Loc.substVirtReg(NewReg, SubIdx, *TRI);
|
||||
coalesceLocation(LocNo);
|
||||
}
|
||||
}
|
||||
|
||||
void LDVImpl::
|
||||
renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx) {
|
||||
UserValue *UV = lookupVirtReg(OldReg);
|
||||
if (!UV)
|
||||
return;
|
||||
|
||||
if (TargetRegisterInfo::isVirtualRegister(NewReg))
|
||||
mapVirtReg(NewReg, UV);
|
||||
if (OldReg != NewReg)
|
||||
virtRegToEqClass.erase(OldReg);
|
||||
|
||||
do {
|
||||
UV->renameRegister(OldReg, NewReg, SubIdx, TRI);
|
||||
UV = UV->getNext();
|
||||
} while (UV);
|
||||
}
|
||||
|
||||
void LiveDebugVariables::
|
||||
renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx) {
|
||||
if (pImpl)
|
||||
static_cast<LDVImpl*>(pImpl)->renameRegister(OldReg, NewReg, SubIdx);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Live Range Splitting
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1017,13 +977,12 @@ void LDVImpl::emitDebugValues(VirtRegMap *VRM) {
|
||||
userValues[i]->rewriteLocations(*VRM, *TRI);
|
||||
userValues[i]->emitDebugValues(VRM, *LIS, *TII);
|
||||
}
|
||||
EmitDone = true;
|
||||
}
|
||||
|
||||
void LiveDebugVariables::emitDebugValues(VirtRegMap *VRM) {
|
||||
if (pImpl) {
|
||||
if (pImpl)
|
||||
static_cast<LDVImpl*>(pImpl)->emitDebugValues(VRM);
|
||||
EmitDone = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,10 +31,6 @@ class VirtRegMap;
|
||||
|
||||
class LiveDebugVariables : public MachineFunctionPass {
|
||||
void *pImpl;
|
||||
/// Whether emitDebugValues is called.
|
||||
bool EmitDone;
|
||||
/// Whether the machine function is modified during the pass.
|
||||
bool ModifiedMF;
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
@PtrGlb = common global %struct.Record* null, align 8
|
||||
@PtrGlbNext = common global %struct.Record* null, align 8
|
||||
|
||||
define void @Proc8(i32* nocapture %Array1Par, [51 x i32]* nocapture %Array2Par, i32 %IntParI1, i32 %IntParI2) nounwind optsize ssp uwtable {
|
||||
define void @Proc8(i32* nocapture %Array1Par, [51 x i32]* nocapture %Array2Par, i32 %IntParI1, i32 %IntParI2) nounwind optsize {
|
||||
entry:
|
||||
tail call void @llvm.dbg.value(metadata !{i32* %Array1Par}, i64 0, metadata !23), !dbg !64
|
||||
tail call void @llvm.dbg.value(metadata !{[51 x i32]* %Array2Par}, i64 0, metadata !24), !dbg !65
|
||||
|
Loading…
x
Reference in New Issue
Block a user