forked from OSchip/llvm-project
[NFC] Sink a function call into LiveDebugValues::process
This was requested in D62904, which I successfully missed. This is just a refactor and shouldn't change any behaviour. llvm-svn: 363259
This commit is contained in:
parent
286e1d2c2d
commit
d2cd9c23b4
|
@ -356,7 +356,8 @@ private:
|
||||||
|
|
||||||
bool process(MachineInstr &MI, OpenRangesSet &OpenRanges,
|
bool process(MachineInstr &MI, OpenRangesSet &OpenRanges,
|
||||||
VarLocInMBB &OutLocs, VarLocMap &VarLocIDs,
|
VarLocInMBB &OutLocs, VarLocMap &VarLocIDs,
|
||||||
TransferMap &Transfers, bool transferChanges);
|
TransferMap &Transfers, bool transferChanges,
|
||||||
|
OverlapMap &OverlapFragments, VarToFragments &SeenFragments);
|
||||||
|
|
||||||
void accumulateFragmentMap(MachineInstr &MI, VarToFragments &SeenFragments,
|
void accumulateFragmentMap(MachineInstr &MI, VarToFragments &SeenFragments,
|
||||||
OverlapMap &OLapMap);
|
OverlapMap &OLapMap);
|
||||||
|
@ -940,13 +941,19 @@ void LiveDebugValues::accumulateFragmentMap(MachineInstr &MI,
|
||||||
/// This routine creates OpenRanges and OutLocs.
|
/// This routine creates OpenRanges and OutLocs.
|
||||||
bool LiveDebugValues::process(MachineInstr &MI, OpenRangesSet &OpenRanges,
|
bool LiveDebugValues::process(MachineInstr &MI, OpenRangesSet &OpenRanges,
|
||||||
VarLocInMBB &OutLocs, VarLocMap &VarLocIDs,
|
VarLocInMBB &OutLocs, VarLocMap &VarLocIDs,
|
||||||
TransferMap &Transfers, bool transferChanges) {
|
TransferMap &Transfers, bool transferChanges,
|
||||||
|
OverlapMap &OverlapFragments,
|
||||||
|
VarToFragments &SeenFragments) {
|
||||||
bool Changed = false;
|
bool Changed = false;
|
||||||
transferDebugValue(MI, OpenRanges, VarLocIDs);
|
transferDebugValue(MI, OpenRanges, VarLocIDs);
|
||||||
transferRegisterDef(MI, OpenRanges, VarLocIDs);
|
transferRegisterDef(MI, OpenRanges, VarLocIDs);
|
||||||
if (transferChanges) {
|
if (transferChanges) {
|
||||||
transferRegisterCopy(MI, OpenRanges, VarLocIDs, Transfers);
|
transferRegisterCopy(MI, OpenRanges, VarLocIDs, Transfers);
|
||||||
transferSpillOrRestoreInst(MI, OpenRanges, VarLocIDs, Transfers);
|
transferSpillOrRestoreInst(MI, OpenRanges, VarLocIDs, Transfers);
|
||||||
|
} else {
|
||||||
|
// Build up a map of overlapping fragments on the first run through.
|
||||||
|
if (MI.isDebugValue())
|
||||||
|
accumulateFragmentMap(MI, SeenFragments, OverlapFragments);
|
||||||
}
|
}
|
||||||
Changed = transferTerminatorInst(MI, OpenRanges, OutLocs, VarLocIDs);
|
Changed = transferTerminatorInst(MI, OpenRanges, OutLocs, VarLocIDs);
|
||||||
return Changed;
|
return Changed;
|
||||||
|
@ -1101,9 +1108,7 @@ bool LiveDebugValues::ExtendRanges(MachineFunction &MF) {
|
||||||
for (auto &MBB : MF) {
|
for (auto &MBB : MF) {
|
||||||
for (auto &MI : MBB) {
|
for (auto &MI : MBB) {
|
||||||
process(MI, OpenRanges, OutLocs, VarLocIDs, Transfers,
|
process(MI, OpenRanges, OutLocs, VarLocIDs, Transfers,
|
||||||
dontTransferChanges);
|
dontTransferChanges, OverlapFragments, SeenFragments);
|
||||||
if (MI.isDebugValue())
|
|
||||||
accumulateFragmentMap(MI, SeenFragments, OverlapFragments);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1151,8 +1156,9 @@ bool LiveDebugValues::ExtendRanges(MachineFunction &MF) {
|
||||||
// examine spill instructions to see whether they spill registers that
|
// examine spill instructions to see whether they spill registers that
|
||||||
// correspond to user variables.
|
// correspond to user variables.
|
||||||
for (auto &MI : *MBB)
|
for (auto &MI : *MBB)
|
||||||
OLChanged |= process(MI, OpenRanges, OutLocs, VarLocIDs, Transfers,
|
OLChanged |=
|
||||||
transferChanges);
|
process(MI, OpenRanges, OutLocs, VarLocIDs, Transfers,
|
||||||
|
transferChanges, OverlapFragments, SeenFragments);
|
||||||
|
|
||||||
// Add any DBG_VALUE instructions necessitated by spills.
|
// Add any DBG_VALUE instructions necessitated by spills.
|
||||||
for (auto &TR : Transfers)
|
for (auto &TR : Transfers)
|
||||||
|
|
Loading…
Reference in New Issue