Skip to content

Commit 0f674cc

Browse files
authored
[NFC][LLVM] Remove unused TargetIntrinsicInfo class (#126003)
Remove `TargetIntrinsicInfo` class as its practically unused (its pure virtual with no subclasses) and its references in the code.
1 parent d903996 commit 0f674cc

20 files changed

+58
-203
lines changed

llvm/docs/ReleaseNotes.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ Changes to the LLVM IR
6161
Changes to LLVM infrastructure
6262
------------------------------
6363

64+
* Removed support for target intrinsics being defined in the target directories
65+
themselves (i.e., the `TargetIntrinsicInfo` class).
66+
6467
Changes to building LLVM
6568
------------------------
6669

llvm/include/llvm/CodeGen/MachineOperand.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class MachineRegisterInfo;
3232
class MCCFIInstruction;
3333
class MDNode;
3434
class ModuleSlotTracker;
35-
class TargetIntrinsicInfo;
3635
class TargetRegisterInfo;
3736
class hash_code;
3837
class raw_ostream;
@@ -283,8 +282,7 @@ class MachineOperand {
283282
/// Providing a valid \p TRI and \p IntrinsicInfo results in a more
284283
/// target-specific printing. If \p TRI and \p IntrinsicInfo are null, the
285284
/// function will try to pick it up from the parent.
286-
void print(raw_ostream &os, const TargetRegisterInfo *TRI = nullptr,
287-
const TargetIntrinsicInfo *IntrinsicInfo = nullptr) const;
285+
void print(raw_ostream &os, const TargetRegisterInfo *TRI = nullptr) const;
288286

289287
/// More complex way of printing a MachineOperand.
290288
/// \param TypeToPrint specifies the generic type to be printed on uses and
@@ -310,14 +308,12 @@ class MachineOperand {
310308
void print(raw_ostream &os, ModuleSlotTracker &MST, LLT TypeToPrint,
311309
std::optional<unsigned> OpIdx, bool PrintDef, bool IsStandalone,
312310
bool ShouldPrintRegisterTies, unsigned TiedOperandIdx,
313-
const TargetRegisterInfo *TRI,
314-
const TargetIntrinsicInfo *IntrinsicInfo) const;
311+
const TargetRegisterInfo *TRI) const;
315312

316313
/// Same as print(os, TRI, IntrinsicInfo), but allows to specify the low-level
317314
/// type to be printed the same way the full version of print(...) does it.
318315
void print(raw_ostream &os, LLT TypeToPrint,
319-
const TargetRegisterInfo *TRI = nullptr,
320-
const TargetIntrinsicInfo *IntrinsicInfo = nullptr) const;
316+
const TargetRegisterInfo *TRI = nullptr) const;
321317

322318
void dump() const;
323319

llvm/include/llvm/Target/TargetIntrinsicInfo.h

Lines changed: 0 additions & 68 deletions
This file was deleted.

llvm/include/llvm/Target/TargetMachine.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ class ScheduleDAGInstrs;
5555
class SMDiagnostic;
5656
class SMRange;
5757
class Target;
58-
class TargetIntrinsicInfo;
5958
class TargetIRAnalysis;
6059
class TargetTransformInfo;
6160
class TargetLoweringObjectFile;
@@ -242,11 +241,6 @@ class TargetMachine {
242241
const MCInstrInfo *getMCInstrInfo() const { return MII.get(); }
243242
const MCSubtargetInfo *getMCSubtargetInfo() const { return STI.get(); }
244243

245-
/// If intrinsic information is available, return it. If not, return null.
246-
virtual const TargetIntrinsicInfo *getIntrinsicInfo() const {
247-
return nullptr;
248-
}
249-
250244
bool requiresStructuredCFG() const { return RequireStructuredCFG; }
251245
void setRequiresStructuredCFG(bool Value) { RequireStructuredCFG = Value; }
252246

llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@
7979
#include "llvm/Support/ErrorHandling.h"
8080
#include "llvm/Support/MathExtras.h"
8181
#include "llvm/Support/raw_ostream.h"
82-
#include "llvm/Target/TargetIntrinsicInfo.h"
8382
#include "llvm/Target/TargetMachine.h"
8483
#include "llvm/Transforms/Utils/Local.h"
8584
#include "llvm/Transforms/Utils/MemoryOpRemark.h"
@@ -2758,7 +2757,6 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
27582757
return false;
27592758

27602759
const CallInst &CI = cast<CallInst>(U);
2761-
auto TII = MF->getTarget().getIntrinsicInfo();
27622760
const Function *F = CI.getCalledFunction();
27632761

27642762
// FIXME: support Windows dllimport function calls and calls through
@@ -2782,11 +2780,8 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
27822780
diagnoseDontCall(CI);
27832781

27842782
Intrinsic::ID ID = Intrinsic::not_intrinsic;
2785-
if (F && F->isIntrinsic()) {
2783+
if (F && F->isIntrinsic())
27862784
ID = F->getIntrinsicID();
2787-
if (TII && ID == Intrinsic::not_intrinsic)
2788-
ID = static_cast<Intrinsic::ID>(TII->getIntrinsicID(F));
2789-
}
27902785

27912786
if (!F || !F->isIntrinsic() || ID == Intrinsic::not_intrinsic)
27922787
return translateCallBase(CI, MIRBuilder);

llvm/lib/CodeGen/MIRParser/MIParser.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
#include "llvm/Support/MemoryBuffer.h"
6767
#include "llvm/Support/SMLoc.h"
6868
#include "llvm/Support/SourceMgr.h"
69-
#include "llvm/Target/TargetIntrinsicInfo.h"
7069
#include "llvm/Target/TargetMachine.h"
7170
#include <cassert>
7271
#include <cctype>
@@ -2669,13 +2668,8 @@ bool MIParser::parseIntrinsicOperand(MachineOperand &Dest) {
26692668
if (expectAndConsume(MIToken::rparen))
26702669
return error("expected ')' to terminate intrinsic name");
26712670

2672-
// Find out what intrinsic we're dealing with, first try the global namespace
2673-
// and then the target's private intrinsics if that fails.
2674-
const TargetIntrinsicInfo *TII = MF.getTarget().getIntrinsicInfo();
2671+
// Find out what intrinsic we're dealing with.
26752672
Intrinsic::ID ID = Intrinsic::lookupIntrinsicID(Name);
2676-
if (ID == Intrinsic::not_intrinsic && TII)
2677-
ID = static_cast<Intrinsic::ID>(TII->lookupName(Name));
2678-
26792673
if (ID == Intrinsic::not_intrinsic)
26802674
return error("unknown intrinsic name");
26812675
Dest = MachineOperand::CreateIntrinsicID(ID);

llvm/lib/CodeGen/MIRPrinter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,10 +1007,9 @@ void MIPrinter::print(const MachineInstr &MI, unsigned OpIdx,
10071007
unsigned TiedOperandIdx = 0;
10081008
if (ShouldPrintRegisterTies && Op.isReg() && Op.isTied() && !Op.isDef())
10091009
TiedOperandIdx = Op.getParent()->findTiedOperandIdx(OpIdx);
1010-
const TargetIntrinsicInfo *TII = MI.getMF()->getTarget().getIntrinsicInfo();
10111010
Op.print(OS, MST, TypeToPrint, OpIdx, PrintDef, /*IsStandalone=*/false,
1012-
ShouldPrintRegisterTies, TiedOperandIdx, TRI, TII);
1013-
OS << formatOperandComment(MOComment);
1011+
ShouldPrintRegisterTies, TiedOperandIdx, TRI);
1012+
OS << formatOperandComment(MOComment);
10141013
break;
10151014
}
10161015
case MachineOperand::MO_FrameIndex:

llvm/lib/CodeGen/MachineInstr.cpp

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,15 @@ static const MachineFunction *getMFIfAvailable(const MachineInstr &MI) {
7070
return nullptr;
7171
}
7272

73-
// Try to crawl up to the machine function and get TRI and IntrinsicInfo from
74-
// it.
73+
// Try to crawl up to the machine function and get TRI/MRI/TII from it.
7574
static void tryToGetTargetInfo(const MachineInstr &MI,
7675
const TargetRegisterInfo *&TRI,
7776
const MachineRegisterInfo *&MRI,
78-
const TargetIntrinsicInfo *&IntrinsicInfo,
7977
const TargetInstrInfo *&TII) {
8078

8179
if (const MachineFunction *MF = getMFIfAvailable(MI)) {
8280
TRI = MF->getSubtarget().getRegisterInfo();
8381
MRI = &MF->getRegInfo();
84-
IntrinsicInfo = MF->getTarget().getIntrinsicInfo();
8582
TII = MF->getSubtarget().getInstrInfo();
8683
}
8784
}
@@ -1753,8 +1750,7 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
17531750
// We can be a bit tidier if we know the MachineFunction.
17541751
const TargetRegisterInfo *TRI = nullptr;
17551752
const MachineRegisterInfo *MRI = nullptr;
1756-
const TargetIntrinsicInfo *IntrinsicInfo = nullptr;
1757-
tryToGetTargetInfo(*this, TRI, MRI, IntrinsicInfo, TII);
1753+
tryToGetTargetInfo(*this, TRI, MRI, TII);
17581754

17591755
if (isCFIInstruction())
17601756
assert(getNumOperands() == 1 && "Expected 1 operand in CFI instruction");
@@ -1784,7 +1780,7 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
17841780
LLT TypeToPrint = MRI ? getTypeToPrint(StartOp, PrintedTypes, *MRI) : LLT{};
17851781
unsigned TiedOperandIdx = getTiedOperandIdx(StartOp);
17861782
MO.print(OS, MST, TypeToPrint, StartOp, /*PrintDef=*/false, IsStandalone,
1787-
ShouldPrintRegisterTies, TiedOperandIdx, TRI, IntrinsicInfo);
1783+
ShouldPrintRegisterTies, TiedOperandIdx, TRI);
17881784
++StartOp;
17891785
}
17901786

@@ -1846,9 +1842,9 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
18461842
const unsigned OpIdx = InlineAsm::MIOp_AsmString;
18471843
LLT TypeToPrint = MRI ? getTypeToPrint(OpIdx, PrintedTypes, *MRI) : LLT{};
18481844
unsigned TiedOperandIdx = getTiedOperandIdx(OpIdx);
1849-
getOperand(OpIdx).print(OS, MST, TypeToPrint, OpIdx, /*PrintDef=*/true, IsStandalone,
1850-
ShouldPrintRegisterTies, TiedOperandIdx, TRI,
1851-
IntrinsicInfo);
1845+
getOperand(OpIdx).print(OS, MST, TypeToPrint, OpIdx, /*PrintDef=*/true,
1846+
IsStandalone, ShouldPrintRegisterTies,
1847+
TiedOperandIdx, TRI);
18521848

18531849
// Print HasSideEffects, MayLoad, MayStore, IsAlignStack
18541850
unsigned ExtraInfo = getOperand(InlineAsm::MIOp_ExtraInfo).getImm();
@@ -1886,7 +1882,7 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
18861882
LLT TypeToPrint = MRI ? getTypeToPrint(i, PrintedTypes, *MRI) : LLT{};
18871883
unsigned TiedOperandIdx = getTiedOperandIdx(i);
18881884
MO.print(OS, MST, TypeToPrint, i, /*PrintDef=*/true, IsStandalone,
1889-
ShouldPrintRegisterTies, TiedOperandIdx, TRI, IntrinsicInfo);
1885+
ShouldPrintRegisterTies, TiedOperandIdx, TRI);
18901886
}
18911887
} else if (isDebugLabel() && MO.isMetadata()) {
18921888
// Pretty print DBG_LABEL instructions.
@@ -1897,7 +1893,7 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
18971893
LLT TypeToPrint = MRI ? getTypeToPrint(i, PrintedTypes, *MRI) : LLT{};
18981894
unsigned TiedOperandIdx = getTiedOperandIdx(i);
18991895
MO.print(OS, MST, TypeToPrint, i, /*PrintDef=*/true, IsStandalone,
1900-
ShouldPrintRegisterTies, TiedOperandIdx, TRI, IntrinsicInfo);
1896+
ShouldPrintRegisterTies, TiedOperandIdx, TRI);
19011897
}
19021898
} else if (i == AsmDescOp && MO.isImm()) {
19031899
// Pretty print the inline asm operand descriptor.
@@ -1941,7 +1937,7 @@ void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,
19411937
MachineOperand::printSubRegIdx(OS, MO.getImm(), TRI);
19421938
else
19431939
MO.print(OS, MST, TypeToPrint, i, /*PrintDef=*/true, IsStandalone,
1944-
ShouldPrintRegisterTies, TiedOperandIdx, TRI, IntrinsicInfo);
1940+
ShouldPrintRegisterTies, TiedOperandIdx, TRI);
19451941
}
19461942
}
19471943

llvm/lib/CodeGen/MachineOperand.cpp

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
#include "llvm/IR/Instructions.h"
2828
#include "llvm/IR/ModuleSlotTracker.h"
2929
#include "llvm/MC/MCDwarf.h"
30-
#include "llvm/Target/TargetIntrinsicInfo.h"
3130
#include "llvm/Target/TargetMachine.h"
3231
#include <optional>
3332

@@ -450,14 +449,11 @@ hash_code llvm::hash_value(const MachineOperand &MO) {
450449
llvm_unreachable("Invalid machine operand type");
451450
}
452451

453-
// Try to crawl up to the machine function and get TRI and IntrinsicInfo from
454-
// it.
452+
// Try to crawl up to the machine function and get TRI from it.
455453
static void tryToGetTargetInfo(const MachineOperand &MO,
456-
const TargetRegisterInfo *&TRI,
457-
const TargetIntrinsicInfo *&IntrinsicInfo) {
454+
const TargetRegisterInfo *&TRI) {
458455
if (const MachineFunction *MF = getMFIfAvailable(MO)) {
459456
TRI = MF->getSubtarget().getRegisterInfo();
460-
IntrinsicInfo = MF->getTarget().getIntrinsicInfo();
461457
}
462458
}
463459

@@ -781,29 +777,27 @@ static void printCFI(raw_ostream &OS, const MCCFIInstruction &CFI,
781777
}
782778
}
783779

784-
void MachineOperand::print(raw_ostream &OS, const TargetRegisterInfo *TRI,
785-
const TargetIntrinsicInfo *IntrinsicInfo) const {
786-
print(OS, LLT{}, TRI, IntrinsicInfo);
780+
void MachineOperand::print(raw_ostream &OS,
781+
const TargetRegisterInfo *TRI) const {
782+
print(OS, LLT{}, TRI);
787783
}
788784

789785
void MachineOperand::print(raw_ostream &OS, LLT TypeToPrint,
790-
const TargetRegisterInfo *TRI,
791-
const TargetIntrinsicInfo *IntrinsicInfo) const {
792-
tryToGetTargetInfo(*this, TRI, IntrinsicInfo);
786+
const TargetRegisterInfo *TRI) const {
787+
tryToGetTargetInfo(*this, TRI);
793788
ModuleSlotTracker DummyMST(nullptr);
794789
print(OS, DummyMST, TypeToPrint, std::nullopt, /*PrintDef=*/false,
795790
/*IsStandalone=*/true,
796791
/*ShouldPrintRegisterTies=*/true,
797-
/*TiedOperandIdx=*/0, TRI, IntrinsicInfo);
792+
/*TiedOperandIdx=*/0, TRI);
798793
}
799794

800795
void MachineOperand::print(raw_ostream &OS, ModuleSlotTracker &MST,
801796
LLT TypeToPrint, std::optional<unsigned> OpIdx,
802797
bool PrintDef, bool IsStandalone,
803798
bool ShouldPrintRegisterTies,
804799
unsigned TiedOperandIdx,
805-
const TargetRegisterInfo *TRI,
806-
const TargetIntrinsicInfo *IntrinsicInfo) const {
800+
const TargetRegisterInfo *TRI) const {
807801
printTargetFlags(OS, *this);
808802
switch (getType()) {
809803
case MachineOperand::MO_Register: {
@@ -1004,8 +998,6 @@ void MachineOperand::print(raw_ostream &OS, ModuleSlotTracker &MST,
1004998
Intrinsic::ID ID = getIntrinsicID();
1005999
if (ID < Intrinsic::num_intrinsics)
10061000
OS << "intrinsic(@" << Intrinsic::getBaseName(ID) << ')';
1007-
else if (IntrinsicInfo)
1008-
OS << "intrinsic(@" << IntrinsicInfo->getName(ID) << ')';
10091001
else
10101002
OS << "intrinsic(" << ID << ')';
10111003
break;

llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@
9797
#include "llvm/Support/InstructionCost.h"
9898
#include "llvm/Support/MathExtras.h"
9999
#include "llvm/Support/raw_ostream.h"
100-
#include "llvm/Target/TargetIntrinsicInfo.h"
101100
#include "llvm/Target/TargetMachine.h"
102101
#include "llvm/Target/TargetOptions.h"
103102
#include "llvm/TargetParser/Triple.h"
@@ -9364,13 +9363,8 @@ void SelectionDAGBuilder::visitCall(const CallInst &I) {
93649363

93659364
if (Function *F = I.getCalledFunction()) {
93669365
if (F->isDeclaration()) {
9367-
// Is this an LLVM intrinsic or a target-specific intrinsic?
9368-
unsigned IID = F->getIntrinsicID();
9369-
if (!IID)
9370-
if (const TargetIntrinsicInfo *II = TM.getIntrinsicInfo())
9371-
IID = II->getIntrinsicID(F);
9372-
9373-
if (IID) {
9366+
// Is this an LLVM intrinsic?
9367+
if (unsigned IID = F->getIntrinsicID()) {
93749368
visitIntrinsicCall(I, IID);
93759369
return;
93769370
}

llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
#include "llvm/Support/ErrorHandling.h"
4444
#include "llvm/Support/Printable.h"
4545
#include "llvm/Support/raw_ostream.h"
46-
#include "llvm/Target/TargetIntrinsicInfo.h"
4746
#include "llvm/Target/TargetMachine.h"
4847
#include <cstdint>
4948
#include <iterator>
@@ -164,8 +163,6 @@ std::string SDNode::getOperationName(const SelectionDAG *G) const {
164163
return Intrinsic::getBaseName((Intrinsic::ID)IID).str();
165164
if (!G)
166165
return "Unknown intrinsic";
167-
if (const TargetIntrinsicInfo *TII = G->getTarget().getIntrinsicInfo())
168-
return TII->getName(IID);
169166
llvm_unreachable("Invalid intrinsic ID");
170167
}
171168

0 commit comments

Comments
 (0)