|
@@ -57,10 +57,6 @@ public:
|
|
|
bool runOnMachineFunction(MachineFunction &MF) override;
|
|
|
|
|
|
static char ID;
|
|
|
-
|
|
|
-private:
|
|
|
- void markRegClobbered(const TargetRegisterInfo *TRI, uint32_t *RegMask,
|
|
|
- unsigned PReg);
|
|
|
};
|
|
|
} // end of anonymous namespace
|
|
|
|
|
@@ -76,13 +72,6 @@ FunctionPass *llvm::createRegUsageInfoCollector() {
|
|
|
return new RegUsageInfoCollector();
|
|
|
}
|
|
|
|
|
|
-void RegUsageInfoCollector::markRegClobbered(const TargetRegisterInfo *TRI,
|
|
|
- uint32_t *RegMask, unsigned PReg) {
|
|
|
- // If PReg is clobbered then all of its alias are also clobbered.
|
|
|
- for (MCRegAliasIterator AI(PReg, TRI, true); AI.isValid(); ++AI)
|
|
|
- RegMask[*AI / 32] &= ~(1u << *AI % 32);
|
|
|
-}
|
|
|
-
|
|
|
void RegUsageInfoCollector::getAnalysisUsage(AnalysisUsage &AU) const {
|
|
|
AU.addRequired<PhysicalRegisterUsageInfo>();
|
|
|
AU.setPreservesAll();
|
|
@@ -116,7 +105,7 @@ bool RegUsageInfoCollector::runOnMachineFunction(MachineFunction &MF) {
|
|
|
|
|
|
for (unsigned PReg = 1, PRegE = TRI->getNumRegs(); PReg < PRegE; ++PReg)
|
|
|
if (MRI->isPhysRegModified(PReg, true))
|
|
|
- markRegClobbered(TRI, &RegMask[0], PReg);
|
|
|
+ RegMask[PReg / 32] &= ~(1u << PReg % 32);
|
|
|
|
|
|
if (!TargetFrameLowering::isSafeForNoCSROpt(F)) {
|
|
|
const uint32_t *CallPreservedMask =
|