Skip to content

Commit e2c23ae

Browse files
committed
Added constructor with TII in AMDGPUCombinerHelper to propagate it from Pre/Post legalizeCombiner.
1 parent e891e17 commit e2c23ae

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@
1717
using namespace llvm;
1818
using namespace MIPatternMatch;
1919

20+
AMDGPUCombinerHelper::AMDGPUCombinerHelper(
21+
GISelChangeObserver &Observer, MachineIRBuilder &B, bool IsPreLegalize,
22+
GISelKnownBits *KB, MachineDominatorTree *MDT, const LegalizerInfo *LI,
23+
const GCNSubtarget &STI)
24+
: CombinerHelper(Observer, B, IsPreLegalize, KB, MDT, LI), STI(STI),
25+
TII(*STI.getInstrInfo()) {}
26+
2027
LLVM_READNONE
2128
static bool fnegFoldsIntoMI(const MachineInstr &MI) {
2229
switch (MI.getOpcode()) {
@@ -481,11 +488,9 @@ bool AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(
481488
return false;
482489

483490
// For f32, only non-inline constants should be transformed.
484-
const SIInstrInfo *TII =
485-
(MI.getMF()->getSubtarget<GCNSubtarget>()).getInstrInfo();
486491
if (ScalarDestTy == LLT::float32() &&
487-
TII->isInlineConstant(SelectTrueCst->Value) &&
488-
TII->isInlineConstant(SelectFalseCst->Value))
492+
TII.isInlineConstant(SelectTrueCst->Value) &&
493+
TII.isInlineConstant(SelectFalseCst->Value))
489494
return false;
490495

491496
int SelectTrueVal = SelectTrueCst->Value.getExactLog2Abs();

llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,22 @@
1515
#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUCOMBINERHELPER_H
1616
#define LLVM_LIB_TARGET_AMDGPU_AMDGPUCOMBINERHELPER_H
1717

18+
#include "GCNSubtarget.h"
1819
#include "llvm/CodeGen/GlobalISel/Combiner.h"
1920
#include "llvm/CodeGen/GlobalISel/CombinerHelper.h"
2021

2122
namespace llvm {
2223
class AMDGPUCombinerHelper : public CombinerHelper {
24+
protected:
25+
const GCNSubtarget &STI;
26+
const SIInstrInfo &TII;
27+
2328
public:
2429
using CombinerHelper::CombinerHelper;
30+
AMDGPUCombinerHelper(GISelChangeObserver &Observer, MachineIRBuilder &B,
31+
bool IsPreLegalize, GISelKnownBits *KB,
32+
MachineDominatorTree *MDT, const LegalizerInfo *LI,
33+
const GCNSubtarget &STI);
2534

2635
bool matchFoldableFneg(MachineInstr &MI, MachineInstr *&MatchInfo);
2736
void applyFoldableFneg(MachineInstr &MI, MachineInstr *&MatchInfo);

llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ AMDGPUPostLegalizerCombinerImpl::AMDGPUPostLegalizerCombinerImpl(
134134
const GCNSubtarget &STI, MachineDominatorTree *MDT, const LegalizerInfo *LI)
135135
: Combiner(MF, CInfo, TPC, &KB, CSEInfo), RuleConfig(RuleConfig), STI(STI),
136136
TII(*STI.getInstrInfo()),
137-
Helper(Observer, B, /*IsPreLegalize*/ false, &KB, MDT, LI),
137+
Helper(Observer, B, /*IsPreLegalize*/ false, &KB, MDT, LI, STI),
138138
#define GET_GICOMBINER_CONSTRUCTOR_INITS
139139
#include "AMDGPUGenPostLegalizeGICombiner.inc"
140140
#undef GET_GICOMBINER_CONSTRUCTOR_INITS

llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ AMDGPUPreLegalizerCombinerImpl::AMDGPUPreLegalizerCombinerImpl(
9494
const AMDGPUPreLegalizerCombinerImplRuleConfig &RuleConfig,
9595
const GCNSubtarget &STI, MachineDominatorTree *MDT, const LegalizerInfo *LI)
9696
: Combiner(MF, CInfo, TPC, &KB, CSEInfo), RuleConfig(RuleConfig), STI(STI),
97-
Helper(Observer, B, /*IsPreLegalize*/ true, &KB, MDT, LI),
97+
Helper(Observer, B, /*IsPreLegalize*/ true, &KB, MDT, LI, STI),
9898
#define GET_GICOMBINER_CONSTRUCTOR_INITS
9999
#include "AMDGPUGenPreLegalizeGICombiner.inc"
100100
#undef GET_GICOMBINER_CONSTRUCTOR_INITS

0 commit comments

Comments
 (0)