LLVM: lib/Target/AMDGPU/GCNSubtarget.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_LIB_TARGET_AMDGPU_GCNSUBTARGET_H

15#define LLVM_LIB_TARGET_AMDGPU_GCNSUBTARGET_H

16

25

26#define GET_SUBTARGETINFO_HEADER

27#include "AMDGPUGenSubtargetInfo.inc"

28

29namespace llvm {

30

31class GCNTargetMachine;

32

35public:

37

38

39

44

49

50private:

51

52 std::unique_ptr TSInfo;

53

54

55 std::unique_ptr CallLoweringInfo;

56 std::unique_ptr InlineAsmLoweringInfo;

57 std::unique_ptr InstSelector;

58 std::unique_ptr Legalizer;

59 std::unique_ptr RegBankInfo;

60

61protected:

62

68

69

73

74

84

85

86

88

93

94

102

103

200

201

202

209

210

211

213

293

297

299

302

303

305

306private:

310

311public:

315

318

319

320

322

324 return &InstrInfo;

325 }

326

328 return &FrameLowering;

329 }

330

332 return &TLInfo;

333 }

334

336 return &InstrInfo.getRegisterInfo();

337 }

338

340

342 return CallLoweringInfo.get();

343 }

344

346 return InlineAsmLoweringInfo.get();

347 }

348

350 return InstSelector.get();

351 }

352

354 return Legalizer.get();

355 }

356

358 return RegBankInfo.get();

359 }

360

364

368

370

374

376

378

379 return (64 * 4) * ((1 << 18) - 1);

380 }

382

383 return (64 * 4) * ((1 << 15) - 1);

384 }

385

386 return (256 * 4) * ((1 << 13) - 1);

387 }

388

389

393

397

401

403

404

405

406

408

414

418

422

426

430

434

438

442

446

447

448

452

456

460

464

468

472

476

480

484

488

492

494

498

502

506

510

514

516

520

525

526

527

531

535

536

540

541

542

546

547

551

552

553

557

558

559

563

567

568

572

576

577

578

581

585

586

590

594

595

596

600

601

605

606

610

611

612

616

617

618

622

626

627

628

632

636

640

644

648

652

656

660

662

666

670

672 return TargetID.isXnackOnOrAny();

673 }

674

678

682

684

688

692

696

700

704

705

706

707

711

713

717

722

726

730

732

734

738

740

741

745

749

753

757

761

765

769

770

771

775

776

777

778

779

780

784

785

789

790

791

792

793

797

799

801

805

806

810

814

818

822

826

830

834

838

840

844

848

852

856

860

864

868

872

876

880

884

888

892

896

900

902

904

906

908

910

912

914

916

918

922

926

930

934

938

940

942

946

948

950

954

958

962

966

968

969

970

974

975

976

980

981

982

983

987

988

989

993

995

999

1003

1007

1011

1015

1019

1023

1027

1031

1035

1039

1041

1043

1045

1047

1048

1050

1051

1052

1053

1054

1055

1056

1057

1058

1060

1064

1065 bool useAA() const override;

1066

1070

1073

1074

1076

1077

1081

1084

1087

1089

1093

1097

1101

1105

1107

1111

1113

1117

1121

1124

1125

1127

1128

1130

1134

1138

1142

1146

1150

1152

1156

1157

1161

1165

1167

1171

1175

1179

1181

1183

1187

1189

1191

1193

1195

1197

1199

1201

1203

1207

1211

1215

1219

1221

1223

1225

1226

1228

1230

1231

1233

1237

1241

1245

1249

1251

1255

1259

1263

1264

1268

1272

1277

1281

1285

1289

1293

1297

1301

1305

1309

1313

1314

1315

1319

1320

1321

1323

1324

1325

1327

1328

1330

1331

1335

1339

1341

1343

1345

1349

1351

1353

1355

1359

1361

1363

1365

1367

1371

1373

1375

1379

1380

1382

1383

1385

1386

1387

1389

1390

1391

1393

1395

1397

1399

1400

1402

1404

1405

1406

1408

1409

1410

1412

1413

1414

1415

1419

1421

1423

1425

1427

1429

1431

1432

1433

1435

1436

1437

1441

1442

1444

1445

1446

1447

1451

1453

1457

1461

1465

1467

1469

1471

1473

1475

1479

1481

1482

1483

1485

1486

1488

1490

1492

1493

1494

1495

1497

1499

1501

1502

1503

1505

1506

1507

1509 unsigned DynamicVGPRBlockSize) const;

1510

1511

1512

1513

1514

1515

1516

1517

1518

1520 unsigned LDSSize = 0,

1521 unsigned NumSGPRs = 0,

1522 unsigned NumVGPRs = 0) const;

1523

1524

1525

1529

1530

1531

1533

1534

1536

1537

1539

1540

1542

1543

1544

1548

1549

1551

1552

1554

1555

1557

1558

1560

1561

1562

1564

1565

1567

1568

1570

1571

1573

1574

1576

1577

1578

1580

1582

1584

1585

1587

1588

1590

1591

1593

1594

1595

1597

1598

1600

1601

1603

1604

1606

1607

1609

1610

1612

1613

1615

1616

1618

1619

1620

1621

1623

1624

1625

1629

1631

1633

1634

1638

1639

1643

1644

1648

1649

1653

1654

1655

1659

1660

1661

1665

1666

1667

1668

1670

1672

1673

1675

1676

1678

1679

1680

1681

1683 std::pair<unsigned, unsigned> WavesPerEU,

1684 unsigned PreloadedSGPRs,

1685 unsigned ReservedNumSGPRs) const;

1686

1687

1688

1689

1690

1691

1692

1693

1694

1696

1697

1698

1699

1700

1701

1702

1703

1704

1706

1707

1711

1712

1716

1717

1721

1722

1723

1727

1728

1732

1733

1734

1736 unsigned DynamicVGPRBlockSize) const {

1738 DynamicVGPRBlockSize);

1739 }

1740

1741

1742

1744 unsigned DynamicVGPRBlockSize) const {

1746 DynamicVGPRBlockSize);

1747 }

1748

1749

1750

1751 unsigned

1753 std::pair<unsigned, unsigned> NumVGPRBounds) const;

1754

1755

1756

1757

1758

1759

1760

1761

1762

1764

1768

1769

1770

1772

1773

1774

1775

1776

1777

1778

1779

1780

1782

1784

1786

1790

1794

1795

1796

1797

1799 return hasFeature(AMDGPU::FeatureWavefrontSize32) ||

1800 hasFeature(AMDGPU::FeatureWavefrontSize64);

1801 }

1802

1806

1807

1808

1812

1813

1817

1818

1822

1823

1824

1825 unsigned

1829

1830

1831

1835

1839

1840

1841

1843

1844

1845

1847

1848

1849

1851

1852

1853

1855

1860

1862

1863

1864 return false;

1865 }

1866

1867

1868

1872

1873

1874

1878

1879

1880

1884

1885

1887

1888

1889

1890

1894

1895

1896

1899 return 7;

1901 return 4;

1902 return 3;

1903 }

1904

1905

1906

1910

1914};

1915

1917public:

1919

1921

1923

1925

1927

1929

1931

1933

1935

1937

1939

1941

1952

1953

1955 switch (ID) {

1957 return 2;

1959 return 4;

1961 return 2;

1963 return 2;

1965 return 2;

1967 return 2;

1969 return 2;

1971 return 1;

1972 }

1974 }

1975

1977

1978private:

1980

1981

1982

1983

1984 bool ImplicitBufferPtr = false;

1985

1986 bool PrivateSegmentBuffer = false;

1987

1988 bool DispatchPtr = false;

1989

1990 bool QueuePtr = false;

1991

1992 bool KernargSegmentPtr = false;

1993

1994 bool DispatchID = false;

1995

1996 bool FlatScratchInit = false;

1997

1998 bool PrivateSegmentSize = false;

1999

2000 unsigned NumKernargPreloadSGPRs = 0;

2001

2002 unsigned NumUsedUserSGPRs = 0;

2003};

2004

2005}

2006

2007#endif

This file describes how to lower LLVM calls to machine code calls.

This file declares the targeting of the RegisterBankInfo class for AMDGPU.

Base class for AMDGPU specific classes of TargetSubtarget.

SI DAG Lowering interface definition.

Interface definition for SIInstrInfo.

unsigned getWavefrontSizeLog2() const

AMDGPUSubtarget(Triple TT)

unsigned getMaxWavesPerEU() const

unsigned getWavefrontSize() const

Definition GCNSubtarget.h:34

bool hasPrefetch() const

Definition GCNSubtarget.h:1040

bool hasMemoryAtomicFaddF32DenormalSupport() const

Definition GCNSubtarget.h:977

bool GFX10Insts

Definition GCNSubtarget.h:113

bool hasFlat() const

Definition GCNSubtarget.h:443

bool hasD16Images() const

Definition GCNSubtarget.h:766

bool hasMinimum3Maximum3F32() const

Definition GCNSubtarget.h:1458

InstrItineraryData InstrItins

Definition GCNSubtarget.h:65

bool useVGPRIndexMode() const

bool HasIEEEMinimumMaximumInsts

Definition GCNSubtarget.h:279

bool HasDot6Insts

Definition GCNSubtarget.h:158

bool hasAtomicDsPkAdd16Insts() const

Definition GCNSubtarget.h:939

bool hasSDWAOmod() const

Definition GCNSubtarget.h:815

bool hasFlatGVSMode() const

Definition GCNSubtarget.h:1229

bool HasLdsBranchVmemWARHazard

Definition GCNSubtarget.h:263

bool hasPermlane32Swap() const

Definition GCNSubtarget.h:1455

bool HasCvtPkNormVOP2Insts

Definition GCNSubtarget.h:174

bool HasDot11Insts

Definition GCNSubtarget.h:163

bool partialVCCWritesUpdateVCCZ() const

Writes to VCC_LO/VCC_HI update the VCCZ flag.

Definition GCNSubtarget.h:548

bool Has1_5xVGPRs

Definition GCNSubtarget.h:272

bool hasSwap() const

Definition GCNSubtarget.h:503

bool hasPkFmacF16Inst() const

Definition GCNSubtarget.h:919

bool HasClusters

Definition GCNSubtarget.h:300

bool HasAtomicFMinFMaxF64FlatInsts

Definition GCNSubtarget.h:182

bool hasPkMinMax3Insts() const

Definition GCNSubtarget.h:1608

bool hasDot2Insts() const

Definition GCNSubtarget.h:845

bool hasD16LoadStore() const

Definition GCNSubtarget.h:758

bool HasExtendedImageInsts

Definition GCNSubtarget.h:143

bool hasMergedShaders() const

Definition GCNSubtarget.h:1545

bool hasA16() const

Definition GCNSubtarget.h:1180

bool hasSDWAScalar() const

Definition GCNSubtarget.h:819

bool hasRrWGMode() const

Definition GCNSubtarget.h:1575

bool supportsBackOffBarrier() const

Definition GCNSubtarget.h:629

bool hasScalarCompareEq64() const

Definition GCNSubtarget.h:1108

bool EnableXNACK

Definition GCNSubtarget.h:87

bool has1_5xVGPRs() const

Definition GCNSubtarget.h:1394

int getLDSBankCount() const

Definition GCNSubtarget.h:394

bool HasG16

Definition GCNSubtarget.h:146

bool hasSafeCUPrefetch() const

Definition GCNSubtarget.h:1046

bool hasOnlyRevVALUShifts() const

Definition GCNSubtarget.h:449

bool hasImageStoreD16Bug() const

Definition GCNSubtarget.h:1188

bool hasNonNSAEncoding() const

Definition GCNSubtarget.h:1200

bool HasSadInsts

Definition GCNSubtarget.h:171

bool hasUsableDivScaleConditionOutput() const

Condition output from div_scale is usable.

Definition GCNSubtarget.h:537

void mirFileLoaded(MachineFunction &MF) const override

bool hasUsableDSOffset() const

True if the offset field of DS instructions works as expected.

Definition GCNSubtarget.h:528

bool loadStoreOptEnabled() const

Definition GCNSubtarget.h:1238

bool enableSubRegLiveness() const override

Definition GCNSubtarget.h:1067

bool hasDPPWavefrontShifts() const

Definition GCNSubtarget.h:1139

unsigned getSGPRAllocGranule() const

Definition GCNSubtarget.h:1635

bool hasAtomicFMinFMaxF64FlatInsts() const

Definition GCNSubtarget.h:935

bool hasLdsAtomicAddF64() const

Definition GCNSubtarget.h:742

bool HasSALUFloatInsts

Definition GCNSubtarget.h:242

bool hasFlatLgkmVMemCountInOrder() const

Definition GCNSubtarget.h:754

bool GFX940Insts

Definition GCNSubtarget.h:111

bool Has45BitNumRecordsBufferResource

Definition GCNSubtarget.h:298

bool flatScratchIsPointer() const

Definition GCNSubtarget.h:1526

bool hasSDWAMac() const

Definition GCNSubtarget.h:827

bool hasFP8ConversionInsts() const

Definition GCNSubtarget.h:901

bool hasShift64HighRegBug() const

Definition GCNSubtarget.h:1316

bool hasDot7Insts() const

Definition GCNSubtarget.h:865

bool HasScalarDwordx3Loads

Definition GCNSubtarget.h:129

bool hasApertureRegs() const

Definition GCNSubtarget.h:663

unsigned MaxPrivateElementSize

Definition GCNSubtarget.h:67

bool HasCubeInsts

Definition GCNSubtarget.h:169

bool LDSMisalignedBug

Definition GCNSubtarget.h:236

bool unsafeDSOffsetFoldingEnabled() const

Definition GCNSubtarget.h:532

bool hasBitOp3Insts() const

Definition GCNSubtarget.h:1452

bool hasFPAtomicToDenormModeHazard() const

Definition GCNSubtarget.h:1346

unsigned getAddressableNumArchVGPRs() const

Definition GCNSubtarget.h:1724

bool DumpCode

Definition GCNSubtarget.h:100

bool hasFlatInstOffsets() const

Definition GCNSubtarget.h:693

bool HasSetPrioIncWgInst

Definition GCNSubtarget.h:291

bool vmemWriteNeedsExpWaitcnt() const

Definition GCNSubtarget.h:1032

bool hasAtomicFMinFMaxF32FlatInsts() const

Definition GCNSubtarget.h:931

bool HasDot13Insts

Definition GCNSubtarget.h:165

bool shouldClusterStores() const

Definition GCNSubtarget.h:1842

bool HasXF32Insts

Definition GCNSubtarget.h:199

unsigned getMinNumSGPRs(unsigned WavesPerEU) const

Definition GCNSubtarget.h:1656

unsigned getSGPREncodingGranule() const

Definition GCNSubtarget.h:1640

bool HasSDWAScalar

Definition GCNSubtarget.h:133

bool hasIEEEMinimumMaximumInsts() const

Definition GCNSubtarget.h:1572

void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)

bool hasLdsBranchVmemWARHazard() const

Definition GCNSubtarget.h:1310

bool hasDefaultComponentZero() const

Definition GCNSubtarget.h:994

bool hasGetWaveIdInst() const

Definition GCNSubtarget.h:1008

bool hasCompressedExport() const

Return true if the target's EXP instruction has the COMPR flag, which affects the meaning of the EN (...

Definition GCNSubtarget.h:1388

bool hasGFX90AInsts() const

Definition GCNSubtarget.h:1344

bool hasFlatScratchHiInB64InstHazard() const

Definition GCNSubtarget.h:1881

bool hasDstSelForwardingHazard() const

Definition GCNSubtarget.h:1326

bool HasMadU32Inst

Definition GCNSubtarget.h:286

bool HasVmemPrefInsts

Definition GCNSubtarget.h:259

bool UserSGPRInit16Bug

Definition GCNSubtarget.h:120

void setScalarizeGlobalBehavior(bool b)

Definition GCNSubtarget.h:1071

bool hasRelaxedBufferOOBMode() const

Definition GCNSubtarget.h:661

bool UnalignedDSAccess

Definition GCNSubtarget.h:239

bool HasDPP8

Definition GCNSubtarget.h:138

bool GFX11Insts

Definition GCNSubtarget.h:114

bool AddNoCarryInsts

Definition GCNSubtarget.h:234

bool hasPkAddMinMaxInsts() const

Definition GCNSubtarget.h:1605

bool HasScalarStores

Definition GCNSubtarget.h:130

bool HasDPALU_DPP

Definition GCNSubtarget.h:139

bool hasDLInsts() const

Definition GCNSubtarget.h:835

bool hasExtendedImageInsts() const

Definition GCNSubtarget.h:1172

bool GFX10_BEncoding

Definition GCNSubtarget.h:150

bool hasVmemWriteVgprInOrder() const

Definition GCNSubtarget.h:1430

bool hasBCNT(unsigned Size) const

Definition GCNSubtarget.h:469

unsigned getSNopBits() const

Definition GCNSubtarget.h:1897

bool HasTransposeLoadF4F6Insts

Definition GCNSubtarget.h:250

bool HasMADIntraFwdBug

Definition GCNSubtarget.h:273

bool hasMAIInsts() const

Definition GCNSubtarget.h:893

bool HasFlatAtomicFaddF32Inst

Definition GCNSubtarget.h:193

bool hasLDSLoadB96_B128() const

Returns true if the target supports global_load_lds_dwordx3/global_load_lds_dwordx4 or buffer_load_dw...

Definition GCNSubtarget.h:1416

bool has1024AddressableVGPRs() const

Definition GCNSubtarget.h:1474

bool supportsAgentScopeFineGrainedRemoteMemoryAtomics() const

Definition GCNSubtarget.h:984

bool hasFlatScratchInsts() const

Definition GCNSubtarget.h:701

bool HasFlatSegmentOffsetBug

Definition GCNSubtarget.h:267

bool hasMultiDwordFlatScratchAddressing() const

Definition GCNSubtarget.h:746

bool hasArchitectedSGPRs() const

Definition GCNSubtarget.h:1535

bool hasFmaakFmamkF64Insts() const

Definition GCNSubtarget.h:1166

bool hasTanhInsts() const

Definition GCNSubtarget.h:1468

bool hasHWFP64() const

Definition GCNSubtarget.h:427

bool hasScaleOffset() const

Definition GCNSubtarget.h:1227

bool hasDenormModeInst() const

Definition GCNSubtarget.h:587

bool hasPrivEnabledTrap2NopBug() const

Definition GCNSubtarget.h:1196

bool HasPkFmacF16Inst

Definition GCNSubtarget.h:178

bool hasMFMAInlineLiteralBug() const

Definition GCNSubtarget.h:1256

bool NegativeScratchOffsetBug

Definition GCNSubtarget.h:121

bool hasCvtScaleForwardingHazard() const

Definition GCNSubtarget.h:1362

unsigned getTotalNumVGPRs() const

Definition GCNSubtarget.h:1718

unsigned getMinWavesPerEU() const override

Definition GCNSubtarget.h:1832

bool hasSMemTimeInst() const

Definition GCNSubtarget.h:1012

bool HasVGPRIndexMode

Definition GCNSubtarget.h:128

bool HasMAIInsts

Definition GCNSubtarget.h:166

bool hasUnalignedDSAccessEnabled() const

Definition GCNSubtarget.h:645

bool hasTensorCvtLutInsts() const

Definition GCNSubtarget.h:1470

bool hasNegativeScratchOffsetBug() const

Definition GCNSubtarget.h:1250

const SIInstrInfo * getInstrInfo() const override

Definition GCNSubtarget.h:323

bool hasSWakeupBarrier() const

Definition GCNSubtarget.h:1617

unsigned getMaxWorkGroupsPerCU(unsigned FlatWorkGroupSize) const override

Definition GCNSubtarget.h:1809

bool AutoWaitcntBeforeBarrier

Definition GCNSubtarget.h:76

bool HasVscnt

Definition GCNSubtarget.h:215

bool hasDot1Insts() const

Definition GCNSubtarget.h:841

bool hasDot3Insts() const

Definition GCNSubtarget.h:849

unsigned getConstantBusLimit(unsigned Opcode) const

bool hasMADIntraFwdBug() const

Definition GCNSubtarget.h:1192

bool hasVALUMaskWriteHazard() const

Definition GCNSubtarget.h:1372

bool hasCondSubInsts() const

Definition GCNSubtarget.h:1630

TrapHandlerAbi

Definition GCNSubtarget.h:40

@ NONE

Definition GCNSubtarget.h:41

@ AMDHSA

Definition GCNSubtarget.h:42

const InlineAsmLowering * getInlineAsmLowering() const override

Definition GCNSubtarget.h:345

bool HasDot3Insts

Definition GCNSubtarget.h:155

bool hasAutoWaitcntBeforeBarrier() const

Definition GCNSubtarget.h:623

bool hasNSAClauseBug() const

Definition GCNSubtarget.h:1340

bool EnableSRAMECC

Definition GCNSubtarget.h:212

bool HasSDWAOmod

Definition GCNSubtarget.h:132

bool hasAtomicFaddRtnInsts() const

Definition GCNSubtarget.h:947

unsigned getTotalNumSGPRs() const

Definition GCNSubtarget.h:1645

bool hasGFX1250Insts() const

Definition GCNSubtarget.h:1581

bool HasLdsBarrierArriveAtomic

Definition GCNSubtarget.h:290

const InstrItineraryData * getInstrItineraryData() const override

Definition GCNSubtarget.h:365

bool HasDPP

Definition GCNSubtarget.h:137

bool hasSafeSmemPrefetch() const

Definition GCNSubtarget.h:1044

void adjustSchedDependency(SUnit *Def, int DefOpIdx, SUnit *Use, int UseOpIdx, SDep &Dep, const TargetSchedModel *SchedModel) const override

void overridePostRASchedPolicy(MachineSchedPolicy &Policy, const SchedRegion &Region) const override

bool HasShaderCyclesHiLoRegisters

Definition GCNSubtarget.h:220

bool EnableLoadStoreOpt

Definition GCNSubtarget.h:95

unsigned getMaxLocalMemSizeWithWaveCount(unsigned WaveCount, const Function &) const

Return the amount of LDS that can be used that will not restrict the occupancy lower than WaveCount.

bool hasPkMovB32() const

Definition GCNSubtarget.h:1158

bool needsAlignedVGPRs() const

Return if operations acting on VGPR tuples require even alignment.

Definition GCNSubtarget.h:1381

bool hasGFX10_3Insts() const

Definition GCNSubtarget.h:1216

Align getStackAlignment() const

Definition GCNSubtarget.h:1059

bool privateMemoryResourceIsRangeChecked() const

Definition GCNSubtarget.h:613

bool hasScalarSubwordLoads() const

Definition GCNSubtarget.h:515

bool hasDot11Insts() const

Definition GCNSubtarget.h:881

bool HasTanhInsts

Definition GCNSubtarget.h:248

bool enableFlatScratch() const

Definition GCNSubtarget.h:718

bool KernargPreload

Definition GCNSubtarget.h:83

bool hasDsAtomicAsyncBarrierArriveB64PipeBug() const

Definition GCNSubtarget.h:1869

bool HasGWS

Definition GCNSubtarget.h:233

bool hasMin3Max3PKF16() const

Definition GCNSubtarget.h:1466

bool DynamicVGPR

Definition GCNSubtarget.h:205

bool EnablePreciseMemory

Definition GCNSubtarget.h:92

bool hasUnalignedBufferAccess() const

Definition GCNSubtarget.h:633

bool GFX10_3Insts

Definition GCNSubtarget.h:117

bool HasGetWaveIdInst

Definition GCNSubtarget.h:217

bool hasR128A16() const

Definition GCNSubtarget.h:1176

bool hasCvtPkNormVOP3Insts() const

Definition GCNSubtarget.h:915

bool hasOffset3fBug() const

Definition GCNSubtarget.h:1184

bool hasDwordx3LoadStores() const

Definition GCNSubtarget.h:1265

bool hasPrngInst() const

Definition GCNSubtarget.h:1498

bool hasSignedScratchOffsets() const

Definition GCNSubtarget.h:1579

bool GFX9Insts

Definition GCNSubtarget.h:109

bool HasPrivEnabledTrap2NopBug

Definition GCNSubtarget.h:271

bool hasGlobalAddTidInsts() const

Definition GCNSubtarget.h:723

bool hasSGPRInitBug() const

Definition GCNSubtarget.h:1242

bool hasFlatScrRegister() const

Definition GCNSubtarget.h:689

bool hasFmaMixBF16Insts() const

Definition GCNSubtarget.h:493

bool hasGetPCZeroExtension() const

Definition GCNSubtarget.h:1622

bool hasPermLane64() const

Definition GCNSubtarget.h:1129

bool HasBVHDualAndBVH8Insts

Definition GCNSubtarget.h:252

bool requiresNopBeforeDeallocVGPRs() const

Definition GCNSubtarget.h:1850

unsigned getMinNumVGPRs(unsigned WavesPerEU, unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1735

bool hasVMemToLDSLoad() const

Definition GCNSubtarget.h:1420

bool supportsGetDoorbellID() const

Definition GCNSubtarget.h:521

bool supportsWave32() const

Definition GCNSubtarget.h:1783

bool FlatGVSMode

Definition GCNSubtarget.h:227

bool HasNSAClauseBug

Definition GCNSubtarget.h:265

bool hasVcmpxExecWARHazard() const

Definition GCNSubtarget.h:1306

bool isTgSplitEnabled() const

Definition GCNSubtarget.h:675

bool hasFlatAtomicFaddF32Inst() const

Definition GCNSubtarget.h:967

bool hasKernargPreload() const

Definition GCNSubtarget.h:1553

bool HasMin3Max3PKF16

Definition GCNSubtarget.h:282

bool FlatGlobalInsts

Definition GCNSubtarget.h:225

bool hasFP8Insts() const

Definition GCNSubtarget.h:897

unsigned getMaxNumAGPRs(const Function &F) const

Definition GCNSubtarget.h:1765

bool hasReadM0MovRelInterpHazard() const

Definition GCNSubtarget.h:1269

bool isDynamicVGPREnabled() const

Definition GCNSubtarget.h:1856

const SIRegisterInfo * getRegisterInfo() const override

Definition GCNSubtarget.h:335

bool ScalarizeGlobal

Definition GCNSubtarget.h:241

bool hasRequiredExportPriority() const

Definition GCNSubtarget.h:1428

bool hasDOTOpSelHazard() const

Definition GCNSubtarget.h:1329

bool hasLdsWaitVMSRC() const

Definition GCNSubtarget.h:1354

bool hasMSAALoadDstSelBug() const

Definition GCNSubtarget.h:1194

const TargetRegisterClass * getBoolRC() const

Definition GCNSubtarget.h:1803

bool HasPermlane16Swap

Definition GCNSubtarget.h:253

unsigned getBaseMaxNumVGPRs(const Function &F, std::pair< unsigned, unsigned > NumVGPRBounds) const

bool hasFmaakFmamkF32Insts() const

Definition GCNSubtarget.h:1162

bool hasClusters() const

Definition GCNSubtarget.h:1886

bool hasVscnt() const

Definition GCNSubtarget.h:1004

bool HasMinimum3Maximum3F32

Definition GCNSubtarget.h:280

bool hasMad64_32() const

Definition GCNSubtarget.h:811

InstructionSelector * getInstructionSelector() const override

Definition GCNSubtarget.h:349

unsigned getVGPREncodingGranule() const

Definition GCNSubtarget.h:1713

bool NegativeUnalignedScratchOffsetBug

Definition GCNSubtarget.h:122

bool hasHardClauses() const

Definition GCNSubtarget.h:1342

bool useDS128() const

Definition GCNSubtarget.h:597

bool hasExtendedWaitCounts() const

Definition GCNSubtarget.h:1434

bool HasImageInsts

Definition GCNSubtarget.h:142

bool hasBVHDualAndBVH8Insts() const

Definition GCNSubtarget.h:1500

bool hasMinimum3Maximum3PKF16() const

Definition GCNSubtarget.h:1476

bool hasLshlAddU64Inst() const

Definition GCNSubtarget.h:1224

bool hasLDSMisalignedBug() const

Definition GCNSubtarget.h:1298

bool HasPartialNSAEncoding

Definition GCNSubtarget.h:148

bool d16PreservesUnusedBits() const

Definition GCNSubtarget.h:762

bool hasFmacF64Inst() const

Definition GCNSubtarget.h:839

bool EnablePRTStrictNull

Definition GCNSubtarget.h:99

bool RequiresWaitsBeforeSystemScopeStores

Definition GCNSubtarget.h:301

bool hasXF32Insts() const

Definition GCNSubtarget.h:1443

bool hasInstPrefetch() const

Definition GCNSubtarget.h:1036

bool hasAddPC64Inst() const

Definition GCNSubtarget.h:1472

unsigned maxHardClauseLength() const

Definition GCNSubtarget.h:1496

bool hasAshrPkInsts() const

Definition GCNSubtarget.h:1456

bool isMesaGfxShader(const Function &F) const

Definition GCNSubtarget.h:807

bool hasVcmpxPermlaneHazard() const

Definition GCNSubtarget.h:1286

bool HasDLInsts

Definition GCNSubtarget.h:151

bool hasUserSGPRInit16Bug() const

Definition GCNSubtarget.h:1246

bool DynamicVGPRBlockSize32

Definition GCNSubtarget.h:206

bool hasExportInsts() const

Definition GCNSubtarget.h:735

bool hasDPP() const

Definition GCNSubtarget.h:1131

bool hasVINTERPEncoding() const

Definition GCNSubtarget.h:739

bool hasGloballyAddressableScratch() const

Definition GCNSubtarget.h:1368

const AMDGPURegisterBankInfo * getRegBankInfo() const override

Definition GCNSubtarget.h:357

bool hasAddSubU64Insts() const

Definition GCNSubtarget.h:1586

bool hasLegacyGeometry() const

Definition GCNSubtarget.h:1550

bool has64BitLiterals() const

Definition GCNSubtarget.h:1487

int LDSBankCount

Definition GCNSubtarget.h:66

bool FullRate64Ops

Definition GCNSubtarget.h:72

TrapHandlerAbi getTrapHandlerAbi() const

Definition GCNSubtarget.h:517

bool isCuModeEnabled() const

Definition GCNSubtarget.h:679

bool hasScalarAtomics() const

Definition GCNSubtarget.h:1118

const SIFrameLowering * getFrameLowering() const override

Definition GCNSubtarget.h:327

bool HasR128A16

Definition GCNSubtarget.h:144

bool hasUnalignedScratchAccess() const

Definition GCNSubtarget.h:649

bool zeroesHigh16BitsOfDest(unsigned Opcode) const

Returns if the result of this instruction with a 16-bit result returned in a 32-bit register implicit...

bool hasMinimum3Maximum3F16() const

Definition GCNSubtarget.h:1462

bool HasMinimum3Maximum3F16

Definition GCNSubtarget.h:281

bool hasSDWAOutModsVOPC() const

Definition GCNSubtarget.h:831

bool hasAtomicFMinFMaxF32GlobalInsts() const

Definition GCNSubtarget.h:923

bool HasAddSubU64Insts

Definition GCNSubtarget.h:285

bool HasFmacF64Inst

Definition GCNSubtarget.h:152

unsigned getBaseMaxNumSGPRs(const Function &F, std::pair< unsigned, unsigned > WavesPerEU, unsigned PreloadedSGPRs, unsigned ReservedNumSGPRs) const

bool hasLdsBarrierArriveAtomic() const

Definition GCNSubtarget.h:1491

bool hasGFX950Insts() const

Definition GCNSubtarget.h:1411

bool HasNoDataDepHazard

Definition GCNSubtarget.h:222

bool hasCvtNormInsts() const

Definition GCNSubtarget.h:911

bool HasVOPDInsts

Definition GCNSubtarget.h:274

bool HasDot7Insts

Definition GCNSubtarget.h:159

bool has45BitNumRecordsBufferResource() const

Definition GCNSubtarget.h:1907

bool Has64BitLiterals

Definition GCNSubtarget.h:245

const AMDGPU::IsaInfo::AMDGPUTargetID & getTargetID() const

Definition GCNSubtarget.h:361

unsigned getMaxNumPreloadedSGPRs() const

bool hasAtomicCSubNoRtnInsts() const

Definition GCNSubtarget.h:1563

bool HasSDWAOutModsVOPC

Definition GCNSubtarget.h:136

bool EnableCuMode

Definition GCNSubtarget.h:90

bool hasScalarFlatScratchInsts() const

Definition GCNSubtarget.h:714

GCNSubtarget & initializeSubtargetDependencies(const Triple &TT, StringRef GPU, StringRef FS)

unsigned Gen

Definition GCNSubtarget.h:64

bool has12DWordStoreHazard() const

Definition GCNSubtarget.h:1260

bool hasVALUPartialForwardingHazard() const

Definition GCNSubtarget.h:1356

bool dumpCode() const

Definition GCNSubtarget.h:573

bool hasNoDataDepHazard() const

Definition GCNSubtarget.h:1028

void overrideSchedPolicy(MachineSchedPolicy &Policy, const SchedRegion &Region) const override

bool HasWaitXcnt

Definition GCNSubtarget.h:216

bool HasMovrel

Definition GCNSubtarget.h:127

bool useVGPRBlockOpsForCSR() const

Definition GCNSubtarget.h:1366

bool HasTensorCvtLutInsts

Definition GCNSubtarget.h:249

std::pair< unsigned, unsigned > computeOccupancy(const Function &F, unsigned LDSSize=0, unsigned NumSGPRs=0, unsigned NumVGPRs=0) const

Subtarget's minimum/maximum occupancy, in number of waves per EU, that can be achieved when the only ...

bool hasUnalignedDSAccess() const

Definition GCNSubtarget.h:641

bool hasAddMinMaxInsts() const

Definition GCNSubtarget.h:1602

bool needsKernArgPreloadProlog() const

Definition GCNSubtarget.h:1626

bool hasRestrictedSOffset() const

Definition GCNSubtarget.h:1426

bool hasMin3Max3_16() const

Definition GCNSubtarget.h:485

bool hasIntClamp() const

Definition GCNSubtarget.h:415

bool hasGFX10_AEncoding() const

Definition GCNSubtarget.h:1208

bool hasFP8E5M3Insts() const

Definition GCNSubtarget.h:917

bool hasFlatSegmentOffsetBug() const

Definition GCNSubtarget.h:750

bool GFX10_AEncoding

Definition GCNSubtarget.h:149

unsigned getMaxNumVGPRs(unsigned WavesPerEU, unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1743

unsigned getVGPRAllocGranule(unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1708

bool MIMG_R128

Definition GCNSubtarget.h:106

bool hasEmulatedSystemScopeAtomics() const

Definition GCNSubtarget.h:990

bool hasMadU64U32NoCarry() const

Definition GCNSubtarget.h:1596

unsigned getSetRegWaitStates() const

Number of hazard wait states for s_setreg_b32/s_setreg_imm32_b32.

Definition GCNSubtarget.h:569

const SITargetLowering * getTargetLowering() const override

Definition GCNSubtarget.h:331

bool HasVcmpxPermlaneHazard

Definition GCNSubtarget.h:255

bool hasPackedFP32Ops() const

Definition GCNSubtarget.h:1153

bool SupportsXNACK

Definition GCNSubtarget.h:82

bool hasTransForwardingHazard() const

Definition GCNSubtarget.h:1322

bool hasDot6Insts() const

Definition GCNSubtarget.h:861

bool HasFmaMixInsts

Definition GCNSubtarget.h:125

bool BackOffBarrier

Definition GCNSubtarget.h:77

TrapID

Definition GCNSubtarget.h:45

@ LLVMAMDHSADebugTrap

Definition GCNSubtarget.h:47

@ LLVMAMDHSATrap

Definition GCNSubtarget.h:46

bool hasGFX940Insts() const

Definition GCNSubtarget.h:1407

bool HasScalarAtomics

Definition GCNSubtarget.h:131

bool hasFullRate64Ops() const

Definition GCNSubtarget.h:435

bool HasSafeCUPrefetch

Definition GCNSubtarget.h:261

bool EnableSIScheduler

Definition GCNSubtarget.h:97

bool hasScalarStores() const

Definition GCNSubtarget.h:1114

bool isTrapHandlerEnabled() const

Definition GCNSubtarget.h:667

bool enableMachineScheduler() const override

Definition GCNSubtarget.h:1061

bool hasLDSFPAtomicAddF64() const

Definition GCNSubtarget.h:1123

bool HasAtomicFlatPkAdd16Insts

Definition GCNSubtarget.h:184

bool hasFlatGlobalInsts() const

Definition GCNSubtarget.h:697

bool HasGloballyAddressableScratch

Definition GCNSubtarget.h:296

bool hasDX10ClampMode() const

Definition GCNSubtarget.h:1566

bool HasOffset3fBug

Definition GCNSubtarget.h:266

unsigned getNSAThreshold(const MachineFunction &MF) const

bool HasDot4Insts

Definition GCNSubtarget.h:156

bool HasDot9Insts

Definition GCNSubtarget.h:161

bool HasAtomicFMinFMaxF32GlobalInsts

Definition GCNSubtarget.h:179

bool HasDPPSrc1SGPR

Definition GCNSubtarget.h:140

bool getScalarizeGlobalBehavior() const

Definition GCNSubtarget.h:1072

bool hasPKF32InstsReplicatingLower32BitsOfScalarInput() const

Definition GCNSubtarget.h:1448

bool HasAtomicFMinFMaxF32FlatInsts

Definition GCNSubtarget.h:181

bool HasPseudoScalarTrans

Definition GCNSubtarget.h:243

bool hasReadM0LdsDmaHazard() const

Definition GCNSubtarget.h:1278

bool hasScalarSMulU64() const

Definition GCNSubtarget.h:800

bool HasPointSampleAccel

Definition GCNSubtarget.h:289

bool HasDot8Insts

Definition GCNSubtarget.h:160

unsigned getKnownHighZeroBitsForFrameIndex() const

Return the number of high bits known to be zero for a frame index.

Definition GCNSubtarget.h:390

bool hasScratchBaseForwardingHazard() const

Definition GCNSubtarget.h:1875

bool HasShaderCyclesRegister

Definition GCNSubtarget.h:219

bool FlatInstOffsets

Definition GCNSubtarget.h:224

bool hasLerpInst() const

Definition GCNSubtarget.h:905

bool hasIntMinMax64() const

Definition GCNSubtarget.h:1599

bool hasShaderCyclesHiLoRegisters() const

Definition GCNSubtarget.h:1020

bool hasSDWASdst() const

Definition GCNSubtarget.h:823

bool HasDefaultComponentBroadcast

Definition GCNSubtarget.h:198

bool HasNoSdstCMPX

Definition GCNSubtarget.h:214

bool hasScalarPackInsts() const

Definition GCNSubtarget.h:507

bool hasFFBL() const

Definition GCNSubtarget.h:473

bool hasNSAEncoding() const

Definition GCNSubtarget.h:1198

bool requiresDisjointEarlyClobberAndUndef() const override

Definition GCNSubtarget.h:1861

bool hasVALUReadSGPRHazard() const

Definition GCNSubtarget.h:1374

bool hasSMemRealTime() const

Definition GCNSubtarget.h:1094

bool EnableTgSplit

Definition GCNSubtarget.h:89

bool hasFlatAddressSpace() const

Definition GCNSubtarget.h:685

bool hasDPPBroadcasts() const

Definition GCNSubtarget.h:1135

bool HasFP8Insts

Definition GCNSubtarget.h:167

bool usePRTStrictNull() const

Definition GCNSubtarget.h:619

bool hasMovB64() const

Definition GCNSubtarget.h:1222

bool hasVmemPrefInsts() const

Definition GCNSubtarget.h:1042

unsigned getAddressableNumVGPRs(unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1729

bool HasFmaMixBF16Insts

Definition GCNSubtarget.h:126

bool hasCubeInsts() const

Definition GCNSubtarget.h:903

bool HalfRate64Ops

Definition GCNSubtarget.h:71

bool HasSafeSmemPrefetch

Definition GCNSubtarget.h:260

bool HasSMemTimeInst

Definition GCNSubtarget.h:218

bool HasFP8ConversionInsts

Definition GCNSubtarget.h:168

bool GFX8Insts

Definition GCNSubtarget.h:108

bool hasInstFwdPrefetchBug() const

Definition GCNSubtarget.h:1302

bool HasDot2Insts

Definition GCNSubtarget.h:154

bool hasAtomicFMinFMaxF64GlobalInsts() const

Definition GCNSubtarget.h:927

bool HasLerpInst

Definition GCNSubtarget.h:170

bool hasMed3_16() const

Definition GCNSubtarget.h:481

bool HasVMemToLDSLoad

Definition GCNSubtarget.h:207

unsigned getReservedNumSGPRs(const MachineFunction &MF) const

bool hasUnalignedScratchAccessEnabled() const

Definition GCNSubtarget.h:653

bool hasMovrel() const

Definition GCNSubtarget.h:1098

bool HasVOP3Literal

Definition GCNSubtarget.h:221

bool hasNullExportTarget() const

Return true if the target's EXP instruction supports the NULL export target.

Definition GCNSubtarget.h:1392

bool UnalignedScratchAccess

Definition GCNSubtarget.h:78

bool hasAtomicFlatPkAdd16Insts() const

Definition GCNSubtarget.h:941

bool HasPrngInst

Definition GCNSubtarget.h:251

bool HasImageGather4D16Bug

Definition GCNSubtarget.h:269

bool hasBFI() const

Definition GCNSubtarget.h:461

bool hasDot13Insts() const

Definition GCNSubtarget.h:889

bool ldsRequiresM0Init() const

Return if most LDS instructions have an m0 use that require m0 to be initialized.

Definition GCNSubtarget.h:772

bool HasSMEMtoVectorWriteHazard

Definition GCNSubtarget.h:257

bool HasAshrPkInsts

Definition GCNSubtarget.h:278

bool HasAtomicFaddNoRtnInsts

Definition GCNSubtarget.h:186

bool hasSMEMtoVectorWriteHazard() const

Definition GCNSubtarget.h:1294

bool useAA() const override

bool isWave32() const

Definition GCNSubtarget.h:1787

bool hasVGPRIndexMode() const

Definition GCNSubtarget.h:1102

bool HasGDS

Definition GCNSubtarget.h:232

bool HasAtomicBufferGlobalPkAddF16Insts

Definition GCNSubtarget.h:189

unsigned getOccupancyWithNumVGPRs(unsigned VGPRs, unsigned DynamicVGPRBlockSize) const

Return the maximum number of waves per SIMD for kernels using VGPRs VGPRs.

bool hasUnalignedBufferAccessEnabled() const

Definition GCNSubtarget.h:637

bool isWaveSizeKnown() const

Returns if the wavesize of this subtarget is known reliable.

Definition GCNSubtarget.h:1798

unsigned getMaxPrivateElementSize(bool ForBufferRSrc=false) const

Definition GCNSubtarget.h:398

unsigned getMinFlatWorkGroupSize() const override

Definition GCNSubtarget.h:1814

bool HasAtomicCSubNoRtnInsts

Definition GCNSubtarget.h:190

bool hasImageInsts() const

Definition GCNSubtarget.h:1168

bool HasAtomicDsPkAdd16Insts

Definition GCNSubtarget.h:183

bool hasImageGather4D16Bug() const

Definition GCNSubtarget.h:1190

bool FMA

Definition GCNSubtarget.h:105

bool HasRequiredExportPriority

Definition GCNSubtarget.h:276

bool hasFMA() const

Definition GCNSubtarget.h:499

bool hasDot10Insts() const

Definition GCNSubtarget.h:877

bool hasSPackHL() const

Return true if the target has the S_PACK_HL_B32_B16 instruction.

Definition GCNSubtarget.h:1384

bool hasVMEMtoScalarWriteHazard() const

Definition GCNSubtarget.h:1290

bool hasCvtFP8VOP1Bug() const

Definition GCNSubtarget.h:1559

bool supportsMinMaxDenormModes() const

Definition GCNSubtarget.h:582

bool supportsWave64() const

Definition GCNSubtarget.h:1785

bool RelaxedBufferOOBMode

Definition GCNSubtarget.h:80

bool HasAtomicBufferPkAddBF16Inst

Definition GCNSubtarget.h:192

bool hasNegativeUnalignedScratchOffsetBug() const

Definition GCNSubtarget.h:1252

bool hasFFBH() const

Definition GCNSubtarget.h:477

bool hasFormattedMUBUFInsts() const

Definition GCNSubtarget.h:733

bool HasQsadInsts

Definition GCNSubtarget.h:172

bool hasFlatScratchSVSMode() const

Definition GCNSubtarget.h:712

bool supportsWGP() const

Definition GCNSubtarget.h:409

bool hasG16() const

Definition GCNSubtarget.h:1182

bool GFX90AInsts

Definition GCNSubtarget.h:110

bool HasMSAALoadDstSelBug

Definition GCNSubtarget.h:270

bool HasPackedFP32Ops

Definition GCNSubtarget.h:141

bool hasHalfRate64Ops() const

Definition GCNSubtarget.h:431

bool hasAtomicFaddInsts() const

Definition GCNSubtarget.h:943

bool HasAtomicBufferGlobalPkAddF16NoRtnInsts

Definition GCNSubtarget.h:188

bool HasMinimum3Maximum3PKF16

Definition GCNSubtarget.h:283

bool hasSubClampInsts() const

Definition GCNSubtarget.h:1632

bool hasPermlane16Swap() const

Definition GCNSubtarget.h:1454

bool hasNSAtoVMEMBug() const

Definition GCNSubtarget.h:1336

bool requiresWaitXCntForSingleAccessInstructions() const

Definition GCNSubtarget.h:1891

bool RequiresAlignVGPR

Definition GCNSubtarget.h:208

bool HasArchitectedFlatScratch

Definition GCNSubtarget.h:229

bool CIInsts

Definition GCNSubtarget.h:107

unsigned getNSAMaxSize(bool HasSampler=false) const

Definition GCNSubtarget.h:1204

bool hasAtomicBufferGlobalPkAddF16NoRtnInsts() const

Definition GCNSubtarget.h:951

bool hasSadInsts() const

Definition GCNSubtarget.h:907

bool hasMIMG_R128() const

Definition GCNSubtarget.h:423

unsigned getOccupancyWithNumSGPRs(unsigned SGPRs) const

Return the maximum number of waves per SIMD for kernels using SGPRs SGPRs.

bool HasCvtNormInsts

Definition GCNSubtarget.h:173

bool hasVOP3DPP() const

Definition GCNSubtarget.h:1350

bool hasAtomicBufferPkAddBF16Inst() const

Definition GCNSubtarget.h:963

bool HasAgentScopeFineGrainedRemoteMemoryAtomics

Definition GCNSubtarget.h:196

unsigned getMaxFlatWorkGroupSize() const override

Definition GCNSubtarget.h:1819

bool hasDPP8() const

Definition GCNSubtarget.h:1143

bool hasDot5Insts() const

Definition GCNSubtarget.h:857

unsigned getMaxNumUserSGPRs() const

Definition GCNSubtarget.h:1090

bool hasTransposeLoadF4F6Insts() const

Definition GCNSubtarget.h:1480

bool hasMadU32Inst() const

Definition GCNSubtarget.h:1589

bool hasAtomicFaddNoRtnInsts() const

Definition GCNSubtarget.h:949

unsigned MaxHardClauseLength

The maximum number of instructions that may be placed within an S_CLAUSE, which is one greater than t...

Definition GCNSubtarget.h:203

bool hasPermLaneX16() const

Definition GCNSubtarget.h:1126

bool hasFlatScratchSVSSwizzleBug() const

Definition GCNSubtarget.h:1398

bool hasFlatBufferGlobalAtomicFaddF64Inst() const

Definition GCNSubtarget.h:971

bool HasEmulatedSystemScopeAtomics

Definition GCNSubtarget.h:197

bool hasNoF16PseudoScalarTransInlineConstants() const

Definition GCNSubtarget.h:1438

bool hasIEEEMode() const

Definition GCNSubtarget.h:1569

bool hasScalarDwordx3Loads() const

Definition GCNSubtarget.h:1112

bool hasVDecCoExecHazard() const

Definition GCNSubtarget.h:1332

bool FastDenormalF32

Definition GCNSubtarget.h:70

bool hasSignedGVSOffset() const

Definition GCNSubtarget.h:1232

bool hasCvtPkNormVOP2Insts() const

Definition GCNSubtarget.h:913

bool HasImageStoreD16Bug

Definition GCNSubtarget.h:268

bool UnalignedAccessMode

Definition GCNSubtarget.h:79

bool hasLDSFPAtomicAddF32() const

Definition GCNSubtarget.h:1122

unsigned getWavesPerEUForWorkGroup(unsigned FlatWorkGroupSize) const override

Definition GCNSubtarget.h:1826

bool HasLshlAddU64Inst

Definition GCNSubtarget.h:284

bool EnableDS128

Definition GCNSubtarget.h:98

bool HasApertureRegs

Definition GCNSubtarget.h:81

bool hasBFM() const

Definition GCNSubtarget.h:465

bool haveRoundOpsF64() const

Have v_trunc_f64, v_ceil_f64, v_rndne_f64.

Definition GCNSubtarget.h:607

bool hasDelayAlu() const

Return true if the target has the S_DELAY_ALU instruction.

Definition GCNSubtarget.h:1401

bool HasNSAtoVMEMBug

Definition GCNSubtarget.h:264

bool GFX950Insts

Definition GCNSubtarget.h:112

bool hasReadM0SendMsgHazard() const

Definition GCNSubtarget.h:1273

bool HasA16

Definition GCNSubtarget.h:145

bool AssemblerPermissiveWavesize

Definition GCNSubtarget.h:101

bool hasDot8Insts() const

Definition GCNSubtarget.h:869

bool hasVectorMulU64() const

Definition GCNSubtarget.h:1592

bool hasScalarMulHiInsts() const

Definition GCNSubtarget.h:511

bool hasSCmpK() const

Definition GCNSubtarget.h:1049

bool HasFP8E5M3Insts

Definition GCNSubtarget.h:176

bool hasPseudoScalarTrans() const

Definition GCNSubtarget.h:1424

const LegalizerInfo * getLegalizerInfo() const override

Definition GCNSubtarget.h:353

bool requiresWaitIdleBeforeGetReg() const

Definition GCNSubtarget.h:1854

bool HasSDWASdst

Definition GCNSubtarget.h:134

bool hasPointSampleAccel() const

Definition GCNSubtarget.h:1489

bool hasDot12Insts() const

Definition GCNSubtarget.h:885

bool hasDS96AndDS128() const

Definition GCNSubtarget.h:602

bool hasGWS() const

Definition GCNSubtarget.h:1541

bool HasCvtPkNormVOP3Insts

Definition GCNSubtarget.h:175

bool HasAtomicFMinFMaxF64GlobalInsts

Definition GCNSubtarget.h:180

bool HasBitOp3Insts

Definition GCNSubtarget.h:247

bool hasReadM0LdsDirectHazard() const

Definition GCNSubtarget.h:1282

bool useFlatForGlobal() const

Definition GCNSubtarget.h:591

bool EnableFlatScratch

Definition GCNSubtarget.h:230

static bool hasHalfRate64Ops(const TargetSubtargetInfo &STI)

bool hasVOPDInsts() const

Definition GCNSubtarget.h:1396

bool hasGFX10_BEncoding() const

Definition GCNSubtarget.h:1212

Generation getGeneration() const

Definition GCNSubtarget.h:371

bool GFX7GFX8GFX9Insts

Definition GCNSubtarget.h:118

GCNSubtarget(const Triple &TT, StringRef GPU, StringRef FS, const GCNTargetMachine &TM)

unsigned getMaxNumSGPRs(unsigned WavesPerEU, bool Addressable) const

Definition GCNSubtarget.h:1662

bool hasVOP3Literal() const

Definition GCNSubtarget.h:1024

bool HasDot10Insts

Definition GCNSubtarget.h:162

bool hasAtomicBufferGlobalPkAddF16Insts() const

Definition GCNSubtarget.h:955

std::pair< unsigned, unsigned > getMaxNumVectorRegs(const Function &F) const

Return a pair of maximum numbers of VGPRs and AGPRs that meet the number of waves per execution unit ...

bool HasSDWAMac

Definition GCNSubtarget.h:135

bool hasNoSdstCMPX() const

Definition GCNSubtarget.h:1000

bool HasDot12Insts

Definition GCNSubtarget.h:164

bool isXNACKEnabled() const

Definition GCNSubtarget.h:671

bool hasScalarAddSub64() const

Definition GCNSubtarget.h:798

bool hasSplitBarriers() const

Definition GCNSubtarget.h:1556

bool hasUnpackedD16VMem() const

Definition GCNSubtarget.h:802

bool enableEarlyIfConversion() const override

Definition GCNSubtarget.h:1078

bool hasSMRDReadVALUDefHazard() const

A read of an SGPR by SMRD instruction requires 4 wait states when the SGPR was written by a VALU inst...

Definition GCNSubtarget.h:554

bool hasSGetShaderCyclesInst() const

Definition GCNSubtarget.h:1611

bool hasRFEHazards() const

Definition GCNSubtarget.h:564

bool hasVMEMReadSGPRVALUDefHazard() const

A read of an SGPR by a VMEM instruction requires 5 wait states when the SGPR was written by a VALU In...

Definition GCNSubtarget.h:560

bool FlatForGlobal

Definition GCNSubtarget.h:75

bool hasFlatScratchSTMode() const

Definition GCNSubtarget.h:708

unsigned getBaseReservedNumSGPRs(const bool HasFlatScratch) const

bool hasGWSSemaReleaseAll() const

Definition GCNSubtarget.h:786

bool hasDPALU_DPP() const

Definition GCNSubtarget.h:1147

bool enableSIScheduler() const

Definition GCNSubtarget.h:1234

bool hasAtomicGlobalPkAddBF16Inst() const

Definition GCNSubtarget.h:959

bool FlatScratchInsts

Definition GCNSubtarget.h:226

bool hasAddr64() const

Definition GCNSubtarget.h:439

bool HasVMEMtoScalarWriteHazard

Definition GCNSubtarget.h:256

bool HasAddMinMaxInsts

Definition GCNSubtarget.h:287

bool SGPRInitBug

Definition GCNSubtarget.h:119

bool HasAtomicGlobalPkAddBF16Inst

Definition GCNSubtarget.h:191

bool hasUnalignedAccessMode() const

Definition GCNSubtarget.h:657

bool FP64

Definition GCNSubtarget.h:104

unsigned getAddressableNumSGPRs() const

Definition GCNSubtarget.h:1650

bool HasDot1Insts

Definition GCNSubtarget.h:153

bool hasReadVCCZBug() const

Extra wait hazard is needed in some cases before s_cbranch_vccnz/s_cbranch_vccz.

Definition GCNSubtarget.h:543

bool HasAtomicFaddRtnInsts

Definition GCNSubtarget.h:185

bool isWave64() const

Definition GCNSubtarget.h:1791

bool HasRestrictedSOffset

Definition GCNSubtarget.h:244

unsigned getDynamicVGPRBlockSize() const

Definition GCNSubtarget.h:1857

bool RequiresCOV6

Definition GCNSubtarget.h:294

bool HasArchitectedSGPRs

Definition GCNSubtarget.h:231

bool TrapHandler

Definition GCNSubtarget.h:91

bool hasFmaMixInsts() const

Definition GCNSubtarget.h:489

bool HasVALUTransUseHazard

Definition GCNSubtarget.h:275

bool hasCARRY() const

Definition GCNSubtarget.h:495

bool hasQsadInsts() const

Definition GCNSubtarget.h:909

bool HasSMemRealTime

Definition GCNSubtarget.h:123

bool hasPackedTID() const

Definition GCNSubtarget.h:1403

bool setRegModeNeedsVNOPs() const

Definition GCNSubtarget.h:1376

bool HasVcmpxExecWARHazard

Definition GCNSubtarget.h:262

bool HasNSAEncoding

Definition GCNSubtarget.h:147

bool hasFP64() const

Definition GCNSubtarget.h:419

bool hasAddNoCarry() const

Definition GCNSubtarget.h:794

bool ScalarFlatScratchInsts

Definition GCNSubtarget.h:228

bool requiresWaitsBeforeSystemScopeStores() const

Definition GCNSubtarget.h:1911

bool hasVALUTransUseHazard() const

Definition GCNSubtarget.h:1360

bool HasDot5Insts

Definition GCNSubtarget.h:157

bool hasShaderCyclesRegister() const

Definition GCNSubtarget.h:1016

bool HasCvtFP8Vop1Bug

Definition GCNSubtarget.h:177

bool HasMFMAInlineLiteralBug

Definition GCNSubtarget.h:237

bool HasIntClamp

Definition GCNSubtarget.h:124

bool HasVmemWriteVgprInOrder

Definition GCNSubtarget.h:277

bool UnalignedBufferAccess

Definition GCNSubtarget.h:238

bool HasUnpackedD16VMem

Definition GCNSubtarget.h:235

bool hasSALUFloatInsts() const

Definition GCNSubtarget.h:1422

bool EnableUnsafeDSOffsetFolding

Definition GCNSubtarget.h:96

bool hasFractBug() const

Definition GCNSubtarget.h:453

bool isPreciseMemoryEnabled() const

Definition GCNSubtarget.h:683

bool hasDPPSrc1SGPR() const

Definition GCNSubtarget.h:1151

bool hasGDS() const

Definition GCNSubtarget.h:1538

unsigned getMaxWaveScratchSize() const

Definition GCNSubtarget.h:375

bool GFX12Insts

Definition GCNSubtarget.h:115

bool HasDefaultComponentZero

Definition GCNSubtarget.h:195

bool HasMemoryAtomicFaddF32DenormalSupport

Definition GCNSubtarget.h:187

bool HasPkAddMinMaxInsts

Definition GCNSubtarget.h:288

bool hasMTBUFInsts() const

Definition GCNSubtarget.h:731

bool hasDot4Insts() const

Definition GCNSubtarget.h:853

bool HasSWakeupBarrier

Definition GCNSubtarget.h:292

bool FeatureDisable

Definition GCNSubtarget.h:304

bool GFX1250Insts

Definition GCNSubtarget.h:116

bool flatScratchIsArchitected() const

Definition GCNSubtarget.h:1532

bool hasPartialNSAEncoding() const

Definition GCNSubtarget.h:1202

bool HasInstFwdPrefetchBug

Definition GCNSubtarget.h:258

bool hasWaitXCnt() const

Definition GCNSubtarget.h:1484

void checkSubtargetFeatures(const Function &F) const

Diagnose inconsistent subtarget features before attempting to codegen function F.

bool HasPermlane32Swap

Definition GCNSubtarget.h:254

bool Has1024AddressableVGPRs

Definition GCNSubtarget.h:246

bool hasSetPrioIncWgInst() const

Definition GCNSubtarget.h:1614

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

bool FlatAddressSpace

Definition GCNSubtarget.h:223

bool hasDot9Insts() const

Definition GCNSubtarget.h:873

bool HasPackedTID

Definition GCNSubtarget.h:240

bool hasVOPD3() const

Definition GCNSubtarget.h:1583

bool UseBlockVGPROpsForCSR

Definition GCNSubtarget.h:295

bool hasAtomicCSub() const

Definition GCNSubtarget.h:727

AMDGPU::IsaInfo::AMDGPUTargetID TargetID

Definition GCNSubtarget.h:63

bool hasDefaultComponentBroadcast() const

Definition GCNSubtarget.h:996

bool requiresCodeObjectV6() const

Definition GCNSubtarget.h:1364

bool SupportsSRAMECC

Definition GCNSubtarget.h:204

const CallLowering * getCallLowering() const override

Definition GCNSubtarget.h:341

bool hasBFE() const

Definition GCNSubtarget.h:457

bool hasLdsDirect() const

Definition GCNSubtarget.h:1352

bool hasGWSAutoReplay() const

Definition GCNSubtarget.h:781

bool HasFlatBufferGlobalAtomicFaddF64Inst

Definition GCNSubtarget.h:194

static unsigned getNumUserSGPRForField(UserSGPRID ID)

Definition GCNSubtarget.h:1954

bool hasQueuePtr() const

Definition GCNSubtarget.h:1924

bool hasKernargSegmentPtr() const

Definition GCNSubtarget.h:1926

void allocKernargPreloadSGPRs(unsigned NumSGPRs)

bool hasDispatchID() const

Definition GCNSubtarget.h:1928

UserSGPRID

Definition GCNSubtarget.h:1942

@ ImplicitBufferPtrID

Definition GCNSubtarget.h:1943

@ DispatchIdID

Definition GCNSubtarget.h:1948

@ QueuePtrID

Definition GCNSubtarget.h:1946

@ DispatchPtrID

Definition GCNSubtarget.h:1945

@ FlatScratchInitID

Definition GCNSubtarget.h:1949

@ PrivateSegmentBufferID

Definition GCNSubtarget.h:1944

@ PrivateSegmentSizeID

Definition GCNSubtarget.h:1950

@ KernargSegmentPtrID

Definition GCNSubtarget.h:1947

bool hasPrivateSegmentBuffer() const

Definition GCNSubtarget.h:1920

unsigned getNumFreeUserSGPRs()

bool hasImplicitBufferPtr() const

Definition GCNSubtarget.h:1918

unsigned getNumKernargPreloadSGPRs() const

Definition GCNSubtarget.h:1934

bool hasPrivateSegmentSize() const

Definition GCNSubtarget.h:1932

unsigned getNumUsedUserSGPRs() const

Definition GCNSubtarget.h:1936

bool hasDispatchPtr() const

Definition GCNSubtarget.h:1922

GCNUserSGPRUsageInfo(const Function &F, const GCNSubtarget &ST)

bool hasFlatScratchInit() const

Definition GCNSubtarget.h:1930

Itinerary data supplied by a subtarget to be used by a target.

const TargetRegisterClass * getBoolRC() const

Scheduling unit. This is a node in the scheduling DAG.

Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...

StringRef - Represent a constant reference to a string, i.e.

Provide an instruction scheduling machine model to CodeGen passes.

TargetSubtargetInfo - Generic base class for all target subtargets.

Triple - Helper class for working with autoconf configuration names.

A Use represents the edge between a Value definition and its users.

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

unsigned getVGPREncodingGranule(const MCSubtargetInfo *STI, std::optional< bool > EnableWavefrontSize32)

unsigned getTotalNumVGPRs(const MCSubtargetInfo *STI)

unsigned getWavesPerEUForWorkGroup(const MCSubtargetInfo *STI, unsigned FlatWorkGroupSize)

unsigned getMaxWorkGroupsPerCU(const MCSubtargetInfo *STI, unsigned FlatWorkGroupSize)

unsigned getMaxFlatWorkGroupSize(const MCSubtargetInfo *STI)

unsigned getSGPREncodingGranule(const MCSubtargetInfo *STI)

unsigned getAddressableNumSGPRs(const MCSubtargetInfo *STI)

unsigned getMinNumSGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU)

unsigned getMinFlatWorkGroupSize(const MCSubtargetInfo *STI)

unsigned getVGPRAllocGranule(const MCSubtargetInfo *STI, unsigned DynamicVGPRBlockSize, std::optional< bool > EnableWavefrontSize32)

unsigned getMaxNumSGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU, bool Addressable)

unsigned getMinWavesPerEU(const MCSubtargetInfo *STI)

unsigned getMaxNumVGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU, unsigned DynamicVGPRBlockSize)

unsigned getSGPRAllocGranule(const MCSubtargetInfo *STI)

unsigned getMinNumVGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU, unsigned DynamicVGPRBlockSize)

unsigned getAddressableNumArchVGPRs(const MCSubtargetInfo *STI)

unsigned getTotalNumSGPRs(const MCSubtargetInfo *STI)

unsigned getAddressableNumVGPRs(const MCSubtargetInfo *STI, unsigned DynamicVGPRBlockSize)

LLVM_READNONE constexpr bool isShader(CallingConv::ID CC)

unsigned getMaxNumUserSGPRs(const MCSubtargetInfo &STI)

unsigned getNSAMaxSize(const MCSubtargetInfo &STI, bool HasSampler)

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

This is an optimization pass for GlobalISel generic memory operations.

int countl_zero(T Val)

Count number of 0's from the most significant bit to the least stopping at the first 1.

This struct is a compact representation of a valid (non-zero power of two) alignment.

Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy.

A region of an MBB for scheduling.