Skip to content

Commit 1dbf7a5

Browse files
committed
Add MachineFunctionProperty checks for AllVRegsAllocated for target passes
Summary: This adds the same checks that were added in r264593 to all target-specific passes that run after register allocation. Reviewers: qcolombet Subscribers: jyknight, dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D18525 llvm-svn: 265313
1 parent cdaf1df commit 1dbf7a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+210
-6
lines changed

llvm/lib/CodeGen/ExecutionDepsFix.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@ class ExeDepsFix : public MachineFunctionPass {
168168

169169
bool runOnMachineFunction(MachineFunction &MF) override;
170170

171+
MachineFunctionProperties getRequiredProperties() const override {
172+
return MachineFunctionProperties().set(
173+
MachineFunctionProperties::Property::AllVRegsAllocated);
174+
}
175+
171176
const char *getPassName() const override {
172177
return "Execution dependency fix";
173178
}

llvm/lib/CodeGen/IfConversion.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,11 @@ namespace {
189189

190190
bool runOnMachineFunction(MachineFunction &MF) override;
191191

192+
MachineFunctionProperties getRequiredProperties() const override {
193+
return MachineFunctionProperties().set(
194+
MachineFunctionProperties::Property::AllVRegsAllocated);
195+
}
196+
192197
private:
193198
bool ReverseBranchCondition(BBInfo &BBI);
194199
bool ValidSimple(BBInfo &TrueBBI, unsigned &Dups,

llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ class AArch64A53Fix835769 : public MachineFunctionPass {
8787

8888
bool runOnMachineFunction(MachineFunction &F) override;
8989

90+
MachineFunctionProperties getRequiredProperties() const override {
91+
return MachineFunctionProperties().set(
92+
MachineFunctionProperties::Property::AllVRegsAllocated);
93+
}
94+
9095
const char *getPassName() const override {
9196
return "Workaround A53 erratum 835769 pass";
9297
}

llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ class AArch64A57FPLoadBalancing : public MachineFunctionPass {
125125

126126
bool runOnMachineFunction(MachineFunction &F) override;
127127

128+
MachineFunctionProperties getRequiredProperties() const override {
129+
return MachineFunctionProperties().set(
130+
MachineFunctionProperties::Property::AllVRegsAllocated);
131+
}
132+
128133
const char *getPassName() const override {
129134
return "A57 FP Anti-dependency breaker";
130135
}

llvm/lib/Target/AArch64/AArch64CollectLOH.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,11 @@ struct AArch64CollectLOH : public MachineFunctionPass {
179179

180180
bool runOnMachineFunction(MachineFunction &MF) override;
181181

182+
MachineFunctionProperties getRequiredProperties() const override {
183+
return MachineFunctionProperties().set(
184+
MachineFunctionProperties::Property::AllVRegsAllocated);
185+
}
186+
182187
const char *getPassName() const override {
183188
return AARCH64_COLLECT_LOH_NAME;
184189
}

llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ class AArch64DeadRegisterDefinitions : public MachineFunctionPass {
4848

4949
bool runOnMachineFunction(MachineFunction &F) override;
5050

51+
MachineFunctionProperties getRequiredProperties() const override {
52+
return MachineFunctionProperties().set(
53+
MachineFunctionProperties::Property::AllVRegsAllocated);
54+
}
55+
5156
const char *getPassName() const override { return AARCH64_DEAD_REG_DEF_NAME; }
5257

5358
void getAnalysisUsage(AnalysisUsage &AU) const override {

llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ struct AArch64LoadStoreOpt : public MachineFunctionPass {
164164

165165
bool runOnMachineFunction(MachineFunction &Fn) override;
166166

167+
MachineFunctionProperties getRequiredProperties() const override {
168+
return MachineFunctionProperties().set(
169+
MachineFunctionProperties::Property::AllVRegsAllocated);
170+
}
171+
167172
const char *getPassName() const override {
168173
return AARCH64_LOAD_STORE_OPT_NAME;
169174
}

llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ class AArch64RedundantCopyElimination : public MachineFunctionPass {
5353
AArch64RedundantCopyElimination() : MachineFunctionPass(ID) {}
5454
bool optimizeCopy(MachineBasicBlock *MBB);
5555
bool runOnMachineFunction(MachineFunction &MF) override;
56+
MachineFunctionProperties getRequiredProperties() const override {
57+
return MachineFunctionProperties().set(
58+
MachineFunctionProperties::Property::AllVRegsAllocated);
59+
}
5660
const char *getPassName() const override {
5761
return "AArch64 Redundant Copy Elimination";
5862
}

llvm/lib/Target/ARM/ARMConstantIslandPass.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,11 @@ namespace {
279279

280280
bool runOnMachineFunction(MachineFunction &MF) override;
281281

282+
MachineFunctionProperties getRequiredProperties() const override {
283+
return MachineFunctionProperties().set(
284+
MachineFunctionProperties::Property::AllVRegsAllocated);
285+
}
286+
282287
const char *getPassName() const override {
283288
return "ARM constant island placement and branch shortening pass";
284289
}

llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ namespace {
5050

5151
bool runOnMachineFunction(MachineFunction &Fn) override;
5252

53+
MachineFunctionProperties getRequiredProperties() const override {
54+
return MachineFunctionProperties().set(
55+
MachineFunctionProperties::Property::AllVRegsAllocated);
56+
}
57+
5358
const char *getPassName() const override {
5459
return "ARM pseudo instruction expansion pass";
5560
}

llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ namespace {
9999

100100
bool runOnMachineFunction(MachineFunction &Fn) override;
101101

102+
MachineFunctionProperties getRequiredProperties() const override {
103+
return MachineFunctionProperties().set(
104+
MachineFunctionProperties::Property::AllVRegsAllocated);
105+
}
106+
102107
const char *getPassName() const override {
103108
return ARM_LOAD_STORE_OPT_NAME;
104109
}
@@ -2369,4 +2374,3 @@ FunctionPass *llvm::createARMLoadStoreOptimizationPass(bool PreAlloc) {
23692374
return new ARMPreAllocLoadStoreOpt();
23702375
return new ARMLoadStoreOpt();
23712376
}
2372-

llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ class ARMOptimizeBarriersPass : public MachineFunctionPass {
2727

2828
bool runOnMachineFunction(MachineFunction &Fn) override;
2929

30+
MachineFunctionProperties getRequiredProperties() const override {
31+
return MachineFunctionProperties().set(
32+
MachineFunctionProperties::Property::AllVRegsAllocated);
33+
}
34+
3035
const char *getPassName() const override {
3136
return "optimise barriers pass";
3237
}

llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ namespace {
3636

3737
bool runOnMachineFunction(MachineFunction &Fn) override;
3838

39+
MachineFunctionProperties getRequiredProperties() const override {
40+
return MachineFunctionProperties().set(
41+
MachineFunctionProperties::Property::AllVRegsAllocated);
42+
}
43+
3944
const char *getPassName() const override {
4045
return "Thumb IT blocks insertion pass";
4146
}

llvm/lib/Target/ARM/Thumb2SizeReduction.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ namespace {
143143

144144
bool runOnMachineFunction(MachineFunction &MF) override;
145145

146+
MachineFunctionProperties getRequiredProperties() const override {
147+
return MachineFunctionProperties().set(
148+
MachineFunctionProperties::Property::AllVRegsAllocated);
149+
}
150+
146151
const char *getPassName() const override {
147152
return "Thumb2 instruction size reduction pass";
148153
}

llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ class HexagonCFGOptimizer : public MachineFunctionPass {
5050
return "Hexagon CFG Optimizer";
5151
}
5252
bool runOnMachineFunction(MachineFunction &Fn) override;
53+
MachineFunctionProperties getRequiredProperties() const override {
54+
return MachineFunctionProperties().set(
55+
MachineFunctionProperties::Property::AllVRegsAllocated);
56+
}
5357
};
5458

5559

llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ class HexagonCopyToCombine : public MachineFunctionPass {
8686

8787
bool runOnMachineFunction(MachineFunction &Fn) override;
8888

89+
MachineFunctionProperties getRequiredProperties() const override {
90+
return MachineFunctionProperties().set(
91+
MachineFunctionProperties::Property::AllVRegsAllocated);
92+
}
93+
8994
private:
9095
MachineInstr *findPairable(MachineInstr *I1, bool &DoInsertAtI1,
9196
bool AllowC64);

llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ namespace {
4545

4646
bool runOnMachineFunction(MachineFunction &MF) override;
4747

48+
MachineFunctionProperties getRequiredProperties() const override {
49+
return MachineFunctionProperties().set(
50+
MachineFunctionProperties::Property::AllVRegsAllocated);
51+
}
52+
4853
const char *getPassName() const override {
4954
return "Hexagon Hardware Loop Fixup";
5055
}

llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,10 @@ namespace {
170170
initializeHexagonCallFrameInformationPass(PR);
171171
}
172172
bool runOnMachineFunction(MachineFunction &MF) override;
173+
MachineFunctionProperties getRequiredProperties() const override {
174+
return MachineFunctionProperties().set(
175+
MachineFunctionProperties::Property::AllVRegsAllocated);
176+
}
173177
};
174178

175179
char HexagonCallFrameInformation::ID = 0;

llvm/lib/Target/Hexagon/HexagonGenMux.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ namespace {
4949
MachineFunctionPass::getAnalysisUsage(AU);
5050
}
5151
bool runOnMachineFunction(MachineFunction &MF) override;
52+
MachineFunctionProperties getRequiredProperties() const override {
53+
return MachineFunctionProperties().set(
54+
MachineFunctionProperties::Property::AllVRegsAllocated);
55+
}
5256

5357
private:
5458
const HexagonInstrInfo *HII;
@@ -316,4 +320,3 @@ bool HexagonGenMux::runOnMachineFunction(MachineFunction &MF) {
316320
FunctionPass *llvm::createHexagonGenMux() {
317321
return new HexagonGenMux();
318322
}
319-

llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ namespace {
8787
}
8888

8989
bool runOnMachineFunction(MachineFunction &Fn) override;
90+
MachineFunctionProperties getRequiredProperties() const override {
91+
return MachineFunctionProperties().set(
92+
MachineFunctionProperties::Property::AllVRegsAllocated);
93+
}
9094

9195
private:
9296
/// \brief A handle to the branch probability pass.

llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ namespace {
5555
}
5656
bool runOnMachineFunction(MachineFunction &MF) override;
5757

58+
MachineFunctionProperties getRequiredProperties() const override {
59+
return MachineFunctionProperties().set(
60+
MachineFunctionProperties::Property::AllVRegsAllocated);
61+
}
62+
5863
static char ID;
5964

6065
private:

llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ class HexagonSplitConst32AndConst64 : public MachineFunctionPass {
6161
return "Hexagon Split Const32s and Const64s";
6262
}
6363
bool runOnMachineFunction(MachineFunction &Fn) override;
64+
MachineFunctionProperties getRequiredProperties() const override {
65+
return MachineFunctionProperties().set(
66+
MachineFunctionProperties::Property::AllVRegsAllocated);
67+
}
6468
};
6569

6670

llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ namespace {
8181
return "Hexagon Packetizer";
8282
}
8383
bool runOnMachineFunction(MachineFunction &Fn) override;
84+
MachineFunctionProperties getRequiredProperties() const override {
85+
return MachineFunctionProperties().set(
86+
MachineFunctionProperties::Property::AllVRegsAllocated);
87+
}
8488

8589
private:
8690
const HexagonInstrInfo *HII;
@@ -1597,4 +1601,3 @@ bool HexagonPacketizerList::producesStall(const MachineInstr *I) {
15971601
FunctionPass *llvm::createHexagonPacketizer() {
15981602
return new HexagonPacketizer();
15991603
}
1600-

llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ struct Filler : public MachineFunctionPass {
5858
return Changed;
5959
}
6060

61+
MachineFunctionProperties getRequiredProperties() const override {
62+
return MachineFunctionProperties().set(
63+
MachineFunctionProperties::Property::AllVRegsAllocated);
64+
}
65+
6166
void insertDefsUses(MachineBasicBlock::instr_iterator MI,
6267
SmallSet<unsigned, 32> &RegDefs,
6368
SmallSet<unsigned, 32> &RegUses);

llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ class LanaiMemAluCombiner : public MachineFunctionPass {
6767

6868
bool runOnMachineFunction(MachineFunction &F) override;
6969

70+
MachineFunctionProperties getRequiredProperties() const override {
71+
return MachineFunctionProperties().set(
72+
MachineFunctionProperties::Property::AllVRegsAllocated);
73+
}
74+
7075
private:
7176
MbbIterator findClosestSuitableAluInstr(MachineBasicBlock *BB,
7277
const MbbIterator &MemInstr,

llvm/lib/Target/Lanai/LanaiSetflagAluCombiner.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ class LanaiSetflagAluCombiner : public MachineFunctionPass {
5050

5151
bool runOnMachineFunction(MachineFunction &F) override;
5252

53+
MachineFunctionProperties getRequiredProperties() const override {
54+
return MachineFunctionProperties().set(
55+
MachineFunctionProperties::Property::AllVRegsAllocated);
56+
}
57+
5358
private:
5459
bool CombineSetflagAluInBasicBlock(MachineFunction *MF,
5560
MachineBasicBlock *BB);

llvm/lib/Target/MSP430/MSP430BranchSelector.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ namespace {
3939

4040
bool runOnMachineFunction(MachineFunction &Fn) override;
4141

42+
MachineFunctionProperties getRequiredProperties() const override {
43+
return MachineFunctionProperties().set(
44+
MachineFunctionProperties::Property::AllVRegsAllocated);
45+
}
46+
4247
const char *getPassName() const override {
4348
return "MSP430 Branch Selector";
4449
}

llvm/lib/Target/Mips/MipsConstantIslandPass.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,11 @@ namespace {
375375

376376
bool runOnMachineFunction(MachineFunction &F) override;
377377

378+
MachineFunctionProperties getRequiredProperties() const override {
379+
return MachineFunctionProperties().set(
380+
MachineFunctionProperties::Property::AllVRegsAllocated);
381+
}
382+
378383
void doInitialPlacement(std::vector<MachineInstr*> &CPEMIs);
379384
CPEntry *findConstPoolEntry(unsigned CPI, const MachineInstr *CPEMI);
380385
unsigned getCPELogAlign(const MachineInstr *CPEMI);
@@ -1710,4 +1715,3 @@ void MipsConstantIslands::prescanForConstants() {
17101715
}
17111716
}
17121717
}
1713-

llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,11 @@ namespace {
189189
return Changed;
190190
}
191191

192+
MachineFunctionProperties getRequiredProperties() const override {
193+
return MachineFunctionProperties().set(
194+
MachineFunctionProperties::Property::AllVRegsAllocated);
195+
}
196+
192197
void getAnalysisUsage(AnalysisUsage &AU) const override {
193198
AU.addRequired<MachineBranchProbabilityInfo>();
194199
MachineFunctionPass::getAnalysisUsage(AU);

llvm/lib/Target/Mips/MipsHazardSchedule.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ class MipsHazardSchedule : public MachineFunctionPass {
7575

7676
bool runOnMachineFunction(MachineFunction &F) override;
7777

78+
MachineFunctionProperties getRequiredProperties() const override {
79+
return MachineFunctionProperties().set(
80+
MachineFunctionProperties::Property::AllVRegsAllocated);
81+
}
82+
7883
private:
7984
static char ID;
8085
};

llvm/lib/Target/Mips/MipsLongBranch.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ namespace {
7373

7474
bool runOnMachineFunction(MachineFunction &F) override;
7575

76+
MachineFunctionProperties getRequiredProperties() const override {
77+
return MachineFunctionProperties().set(
78+
MachineFunctionProperties::Property::AllVRegsAllocated);
79+
}
80+
7681
private:
7782
void splitMBB(MachineBasicBlock *MBB);
7883
void initMBBInfo();

0 commit comments

Comments
 (0)