Skip to content

Commit 9e8cf04

Browse files
paperchalicemikolaj-pirog
authored andcommitted
[Passes] Report error when pass requires target machine (llvm#142550)
Fixes llvm#142146 Do nullptr check when pass accept `const TargetMachine &` in constructor, but it is still not exhaustive.
1 parent a948f25 commit 9e8cf04

23 files changed

+142
-49
lines changed

llvm/include/llvm/CodeGen/AtomicExpand.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class AtomicExpandPass : public PassInfoMixin<AtomicExpandPass> {
2121
const TargetMachine *TM;
2222

2323
public:
24-
AtomicExpandPass(const TargetMachine *TM) : TM(TM) {}
24+
AtomicExpandPass(const TargetMachine &TM) : TM(&TM) {}
2525
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
2626
};
2727

llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class BasicBlockSectionsProfileReaderAnalysis
155155
public:
156156
static AnalysisKey Key;
157157
typedef BasicBlockSectionsProfileReader Result;
158-
BasicBlockSectionsProfileReaderAnalysis(const TargetMachine *TM) : TM(TM) {}
158+
BasicBlockSectionsProfileReaderAnalysis(const TargetMachine &TM) : TM(&TM) {}
159159

160160
Result run(Function &F, FunctionAnalysisManager &AM);
161161

llvm/include/llvm/CodeGen/CodeGenPrepare.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class CodeGenPreparePass : public PassInfoMixin<CodeGenPreparePass> {
2626
const TargetMachine *TM;
2727

2828
public:
29-
CodeGenPreparePass(const TargetMachine *TM) : TM(TM) {}
29+
CodeGenPreparePass(const TargetMachine &TM) : TM(&TM) {}
3030
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
3131
};
3232

llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ class TargetMachine;
2424
struct ComplexDeinterleavingPass
2525
: public PassInfoMixin<ComplexDeinterleavingPass> {
2626
private:
27-
TargetMachine *TM;
27+
const TargetMachine *TM;
2828

2929
public:
30-
ComplexDeinterleavingPass(TargetMachine *TM) : TM(TM) {}
30+
ComplexDeinterleavingPass(const TargetMachine &TM) : TM(&TM) {}
3131

3232
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
3333
};

llvm/include/llvm/CodeGen/DwarfEHPrepare.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class DwarfEHPreparePass : public PassInfoMixin<DwarfEHPreparePass> {
2424
const TargetMachine *TM;
2525

2626
public:
27-
explicit DwarfEHPreparePass(const TargetMachine *TM_) : TM(TM_) {}
27+
explicit DwarfEHPreparePass(const TargetMachine &TM_) : TM(&TM_) {}
2828
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
2929
};
3030

llvm/include/llvm/CodeGen/ExpandFp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ExpandFpPass : public PassInfoMixin<ExpandFpPass> {
2222
CodeGenOptLevel OptLevel;
2323

2424
public:
25-
explicit ExpandFpPass(const TargetMachine *TM, CodeGenOptLevel OptLevel);
25+
explicit ExpandFpPass(const TargetMachine &TM, CodeGenOptLevel OptLevel);
2626

2727
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
2828
static bool isRequired() { return true; }

llvm/include/llvm/CodeGen/ExpandLargeDivRem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class ExpandLargeDivRemPass : public PassInfoMixin<ExpandLargeDivRemPass> {
2020
const TargetMachine *TM;
2121

2222
public:
23-
explicit ExpandLargeDivRemPass(const TargetMachine *TM_) : TM(TM_) {}
23+
explicit ExpandLargeDivRemPass(const TargetMachine &TM_) : TM(&TM_) {}
2424

2525
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
2626
};

llvm/include/llvm/CodeGen/ExpandMemCmp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class ExpandMemCmpPass : public PassInfoMixin<ExpandMemCmpPass> {
1919
const TargetMachine *TM;
2020

2121
public:
22-
explicit ExpandMemCmpPass(const TargetMachine *TM_) : TM(TM_) {}
22+
explicit ExpandMemCmpPass(const TargetMachine &TM_) : TM(&TM_) {}
2323

2424
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
2525
};

llvm/include/llvm/CodeGen/IndirectBrExpand.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class IndirectBrExpandPass : public PassInfoMixin<IndirectBrExpandPass> {
1919
const TargetMachine *TM;
2020

2121
public:
22-
IndirectBrExpandPass(const TargetMachine *TM) : TM(TM) {}
22+
IndirectBrExpandPass(const TargetMachine &TM) : TM(&TM) {}
2323
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
2424
};
2525

llvm/include/llvm/CodeGen/InterleavedAccess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class InterleavedAccessPass : public PassInfoMixin<InterleavedAccessPass> {
2525
const TargetMachine *TM;
2626

2727
public:
28-
explicit InterleavedAccessPass(const TargetMachine *TM) : TM(TM) {}
28+
explicit InterleavedAccessPass(const TargetMachine &TM) : TM(&TM) {}
2929
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
3030
};
3131

0 commit comments

Comments
 (0)