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

292

296

298

301

302

304

305private:

309

310public:

314

317

318

319

321

323 return &InstrInfo;

324 }

325

327 return &FrameLowering;

328 }

329

331 return &TLInfo;

332 }

333

335 return &InstrInfo.getRegisterInfo();

336 }

337

339

341 return CallLoweringInfo.get();

342 }

343

345 return InlineAsmLoweringInfo.get();

346 }

347

349 return InstSelector.get();

350 }

351

353 return Legalizer.get();

354 }

355

357 return RegBankInfo.get();

358 }

359

363

367

369

373

375

377

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

379 }

381

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

383 }

384

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

386 }

387

388

392

396

400

402

403

404

405

407

413

417

421

425

429

433

437

441

445

446

447

451

455

459

463

467

471

475

479

483

487

491

493

497

501

505

509

513

515

519

524

525

526

530

534

535

539

540

541

545

546

550

551

552

556

557

558

562

566

567

571

575

576

577

580

584

585

589

593

594

595

599

600

604

605

609

610

611

615

616

617

621

625

626

627

631

635

639

643

647

651

655

659

661

665

669

671 return TargetID.isXnackOnOrAny();

672 }

673

677

681

683

687

691

695

699

703

704

705

706

710

712

716

721

725

729

731

733

737

739

740

744

748

752

756

760

764

768

769

770

774

775

776

777

778

779

783

784

788

789

790

791

792

796

798

800

804

805

809

813

817

821

825

829

833

837

839

843

847

851

855

859

863

867

871

875

879

883

887

891

895

899

901

903

905

907

909

911

913

915

917

921

925

929

933

937

939

941

945

947

949

953

957

961

965

967

968

969

973

974

975

979

980

981

982

986

987

988

992

994

998

1002

1006

1010

1014

1018

1022

1026

1030

1034

1038

1040

1042

1044

1046

1047

1049

1050

1051

1052

1053

1054

1055

1056

1057

1059

1063

1064 bool useAA() const override;

1065

1069

1072

1073

1075

1076

1080

1083

1086

1088

1092

1096

1100

1104

1106

1110

1112

1116

1120

1123

1124

1126

1127

1129

1133

1137

1141

1145

1149

1151

1155

1156

1160

1164

1166

1170

1174

1178

1180

1182

1186

1188

1190

1192

1194

1196

1198

1200

1202

1206

1210

1214

1218

1220

1222

1224

1225

1227

1229

1230

1232

1236

1240

1244

1248

1250

1254

1258

1262

1263

1267

1271

1276

1280

1284

1288

1292

1296

1300

1304

1308

1312

1313

1314

1318

1319

1320

1322

1323

1324

1326

1327

1329

1330

1334

1338

1340

1342

1344

1348

1350

1352

1354

1358

1360

1362

1364

1366

1370

1372

1374

1378

1379

1381

1382

1384

1385

1386

1388

1389

1390

1392

1394

1396

1398

1399

1401

1403

1404

1405

1407

1408

1409

1411

1412

1413

1414

1418

1420

1422

1424

1426

1428

1430

1431

1432

1434

1435

1436

1440

1441

1443

1444

1445

1446

1450

1452

1456

1460

1464

1466

1468

1470

1472

1474

1478

1480

1481

1482

1484

1485

1487

1489

1491

1492

1493

1494

1496

1498

1500

1501

1502

1504

1505

1506

1508 unsigned DynamicVGPRBlockSize) const;

1509

1510

1511

1512

1513

1514

1515

1516

1517

1519 unsigned LDSSize = 0,

1520 unsigned NumSGPRs = 0,

1521 unsigned NumVGPRs = 0) const;

1522

1523

1524

1528

1529

1530

1532

1533

1535

1536

1538

1539

1541

1542

1543

1547

1548

1550

1551

1553

1554

1556

1557

1559

1560

1561

1563

1564

1566

1567

1569

1570

1572

1573

1575

1576

1577

1579

1581

1583

1584

1586

1587

1589

1590

1592

1593

1594

1596

1597

1599

1600

1602

1603

1605

1606

1608

1609

1611

1612

1614

1615

1616

1617

1619

1620

1621

1625

1627

1629

1630

1634

1635

1639

1640

1644

1645

1649

1650

1651

1655

1656

1657

1661

1662

1663

1664

1666

1668

1669

1671

1672

1674

1675

1676

1677

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

1680 unsigned PreloadedSGPRs,

1681 unsigned ReservedNumSGPRs) const;

1682

1683

1684

1685

1686

1687

1688

1689

1690

1692

1693

1694

1695

1696

1697

1698

1699

1700

1702

1703

1707

1708

1712

1713

1717

1718

1719

1723

1724

1728

1729

1730

1732 unsigned DynamicVGPRBlockSize) const {

1734 DynamicVGPRBlockSize);

1735 }

1736

1737

1738

1740 unsigned DynamicVGPRBlockSize) const {

1742 DynamicVGPRBlockSize);

1743 }

1744

1745

1746

1747 unsigned

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

1750

1751

1752

1753

1754

1755

1756

1757

1758

1760

1764

1765

1766

1768

1769

1770

1771

1772

1773

1774

1775

1776

1778

1780

1782

1786

1790

1791

1792

1793

1795 return hasFeature(AMDGPU::FeatureWavefrontSize32) ||

1796 hasFeature(AMDGPU::FeatureWavefrontSize64);

1797 }

1798

1802

1803

1804

1808

1809

1813

1814

1818

1819

1820

1821 unsigned

1825

1826

1827

1831

1835

1836

1837

1839

1840

1841

1843

1844

1845

1847

1848

1849

1851

1856

1858

1859

1860 return false;

1861 }

1862

1863

1864

1868

1869

1870

1874

1875

1876

1880

1881

1883

1884

1885

1886

1890

1891

1892

1895 return 7;

1897 return 4;

1898 return 3;

1899 }

1900

1901

1902

1906

1910};

1911

1913public:

1915

1917

1919

1921

1923

1925

1927

1929

1931

1933

1935

1937

1948

1949

1951 switch (ID) {

1953 return 2;

1955 return 4;

1957 return 2;

1959 return 2;

1961 return 2;

1963 return 2;

1965 return 2;

1967 return 1;

1968 }

1970 }

1971

1973

1974private:

1976

1977

1978

1979

1980 bool ImplicitBufferPtr = false;

1981

1982 bool PrivateSegmentBuffer = false;

1983

1984 bool DispatchPtr = false;

1985

1986 bool QueuePtr = false;

1987

1988 bool KernargSegmentPtr = false;

1989

1990 bool DispatchID = false;

1991

1992 bool FlatScratchInit = false;

1993

1994 bool PrivateSegmentSize = false;

1995

1996 unsigned NumKernargPreloadSGPRs = 0;

1997

1998 unsigned NumUsedUserSGPRs = 0;

1999};

2000

2001}

2002

2003#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:1039

bool hasMemoryAtomicFaddF32DenormalSupport() const

Definition GCNSubtarget.h:976

bool GFX10Insts

Definition GCNSubtarget.h:113

bool hasFlat() const

Definition GCNSubtarget.h:442

bool hasD16Images() const

Definition GCNSubtarget.h:765

bool hasMinimum3Maximum3F32() const

Definition GCNSubtarget.h:1457

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:938

bool hasSDWAOmod() const

Definition GCNSubtarget.h:814

bool hasFlatGVSMode() const

Definition GCNSubtarget.h:1228

bool HasLdsBranchVmemWARHazard

Definition GCNSubtarget.h:263

bool hasPermlane32Swap() const

Definition GCNSubtarget.h:1454

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:547

bool Has1_5xVGPRs

Definition GCNSubtarget.h:272

bool hasSwap() const

Definition GCNSubtarget.h:502

bool hasPkFmacF16Inst() const

Definition GCNSubtarget.h:918

bool HasClusters

Definition GCNSubtarget.h:299

bool HasAtomicFMinFMaxF64FlatInsts

Definition GCNSubtarget.h:182

bool hasPkMinMax3Insts() const

Definition GCNSubtarget.h:1607

bool hasDot2Insts() const

Definition GCNSubtarget.h:844

bool hasD16LoadStore() const

Definition GCNSubtarget.h:757

bool HasExtendedImageInsts

Definition GCNSubtarget.h:143

bool hasMergedShaders() const

Definition GCNSubtarget.h:1544

bool hasA16() const

Definition GCNSubtarget.h:1179

bool hasSDWAScalar() const

Definition GCNSubtarget.h:818

bool hasRrWGMode() const

Definition GCNSubtarget.h:1574

bool supportsBackOffBarrier() const

Definition GCNSubtarget.h:628

bool hasScalarCompareEq64() const

Definition GCNSubtarget.h:1107

bool EnableXNACK

Definition GCNSubtarget.h:87

bool has1_5xVGPRs() const

Definition GCNSubtarget.h:1393

int getLDSBankCount() const

Definition GCNSubtarget.h:393

bool HasG16

Definition GCNSubtarget.h:146

bool hasSafeCUPrefetch() const

Definition GCNSubtarget.h:1045

bool hasOnlyRevVALUShifts() const

Definition GCNSubtarget.h:448

bool hasImageStoreD16Bug() const

Definition GCNSubtarget.h:1187

bool hasNonNSAEncoding() const

Definition GCNSubtarget.h:1199

bool HasSadInsts

Definition GCNSubtarget.h:171

bool hasUsableDivScaleConditionOutput() const

Condition output from div_scale is usable.

Definition GCNSubtarget.h:536

void mirFileLoaded(MachineFunction &MF) const override

bool hasUsableDSOffset() const

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

Definition GCNSubtarget.h:527

bool loadStoreOptEnabled() const

Definition GCNSubtarget.h:1237

bool enableSubRegLiveness() const override

Definition GCNSubtarget.h:1066

bool hasDPPWavefrontShifts() const

Definition GCNSubtarget.h:1138

unsigned getSGPRAllocGranule() const

Definition GCNSubtarget.h:1631

bool hasAtomicFMinFMaxF64FlatInsts() const

Definition GCNSubtarget.h:934

bool hasLdsAtomicAddF64() const

Definition GCNSubtarget.h:741

bool HasSALUFloatInsts

Definition GCNSubtarget.h:242

bool hasFlatLgkmVMemCountInOrder() const

Definition GCNSubtarget.h:753

bool GFX940Insts

Definition GCNSubtarget.h:111

bool Has45BitNumRecordsBufferResource

Definition GCNSubtarget.h:297

bool flatScratchIsPointer() const

Definition GCNSubtarget.h:1525

bool hasSDWAMac() const

Definition GCNSubtarget.h:826

bool hasFP8ConversionInsts() const

Definition GCNSubtarget.h:900

bool hasShift64HighRegBug() const

Definition GCNSubtarget.h:1315

bool hasDot7Insts() const

Definition GCNSubtarget.h:864

bool HasScalarDwordx3Loads

Definition GCNSubtarget.h:129

bool hasApertureRegs() const

Definition GCNSubtarget.h:662

unsigned MaxPrivateElementSize

Definition GCNSubtarget.h:67

bool HasCubeInsts

Definition GCNSubtarget.h:169

bool LDSMisalignedBug

Definition GCNSubtarget.h:236

bool unsafeDSOffsetFoldingEnabled() const

Definition GCNSubtarget.h:531

bool hasBitOp3Insts() const

Definition GCNSubtarget.h:1451

bool hasFPAtomicToDenormModeHazard() const

Definition GCNSubtarget.h:1345

unsigned getAddressableNumArchVGPRs() const

Definition GCNSubtarget.h:1720

bool DumpCode

Definition GCNSubtarget.h:100

bool hasFlatInstOffsets() const

Definition GCNSubtarget.h:692

bool HasSetPrioIncWgInst

Definition GCNSubtarget.h:291

bool vmemWriteNeedsExpWaitcnt() const

Definition GCNSubtarget.h:1031

bool hasAtomicFMinFMaxF32FlatInsts() const

Definition GCNSubtarget.h:930

bool HasDot13Insts

Definition GCNSubtarget.h:165

bool shouldClusterStores() const

Definition GCNSubtarget.h:1838

bool HasXF32Insts

Definition GCNSubtarget.h:199

unsigned getMinNumSGPRs(unsigned WavesPerEU) const

Definition GCNSubtarget.h:1652

unsigned getSGPREncodingGranule() const

Definition GCNSubtarget.h:1636

bool HasSDWAScalar

Definition GCNSubtarget.h:133

bool hasIEEEMinimumMaximumInsts() const

Definition GCNSubtarget.h:1571

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

bool hasLdsBranchVmemWARHazard() const

Definition GCNSubtarget.h:1309

bool hasDefaultComponentZero() const

Definition GCNSubtarget.h:993

bool hasGetWaveIdInst() const

Definition GCNSubtarget.h:1007

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:1387

bool hasGFX90AInsts() const

Definition GCNSubtarget.h:1343

bool hasFlatScratchHiInB64InstHazard() const

Definition GCNSubtarget.h:1877

bool hasDstSelForwardingHazard() const

Definition GCNSubtarget.h:1325

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:1070

bool hasRelaxedBufferOOBMode() const

Definition GCNSubtarget.h:660

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:1604

bool HasScalarStores

Definition GCNSubtarget.h:130

bool HasDPALU_DPP

Definition GCNSubtarget.h:139

bool hasDLInsts() const

Definition GCNSubtarget.h:834

bool hasExtendedImageInsts() const

Definition GCNSubtarget.h:1171

bool GFX10_BEncoding

Definition GCNSubtarget.h:150

bool hasVmemWriteVgprInOrder() const

Definition GCNSubtarget.h:1429

bool hasBCNT(unsigned Size) const

Definition GCNSubtarget.h:468

unsigned getSNopBits() const

Definition GCNSubtarget.h:1893

bool HasTransposeLoadF4F6Insts

Definition GCNSubtarget.h:250

bool HasMADIntraFwdBug

Definition GCNSubtarget.h:273

bool hasMAIInsts() const

Definition GCNSubtarget.h:892

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:1415

bool has1024AddressableVGPRs() const

Definition GCNSubtarget.h:1473

bool supportsAgentScopeFineGrainedRemoteMemoryAtomics() const

Definition GCNSubtarget.h:983

bool hasFlatScratchInsts() const

Definition GCNSubtarget.h:700

bool HasFlatSegmentOffsetBug

Definition GCNSubtarget.h:267

bool hasMultiDwordFlatScratchAddressing() const

Definition GCNSubtarget.h:745

bool hasArchitectedSGPRs() const

Definition GCNSubtarget.h:1534

bool hasFmaakFmamkF64Insts() const

Definition GCNSubtarget.h:1165

bool hasTanhInsts() const

Definition GCNSubtarget.h:1467

bool hasHWFP64() const

Definition GCNSubtarget.h:426

bool hasScaleOffset() const

Definition GCNSubtarget.h:1226

bool hasDenormModeInst() const

Definition GCNSubtarget.h:586

bool hasPrivEnabledTrap2NopBug() const

Definition GCNSubtarget.h:1195

bool HasPkFmacF16Inst

Definition GCNSubtarget.h:178

bool hasMFMAInlineLiteralBug() const

Definition GCNSubtarget.h:1255

bool NegativeScratchOffsetBug

Definition GCNSubtarget.h:121

bool hasCvtScaleForwardingHazard() const

Definition GCNSubtarget.h:1361

unsigned getTotalNumVGPRs() const

Definition GCNSubtarget.h:1714

unsigned getMinWavesPerEU() const override

Definition GCNSubtarget.h:1828

bool hasSMemTimeInst() const

Definition GCNSubtarget.h:1011

bool HasVGPRIndexMode

Definition GCNSubtarget.h:128

bool HasMAIInsts

Definition GCNSubtarget.h:166

bool hasUnalignedDSAccessEnabled() const

Definition GCNSubtarget.h:644

bool hasTensorCvtLutInsts() const

Definition GCNSubtarget.h:1469

bool hasNegativeScratchOffsetBug() const

Definition GCNSubtarget.h:1249

const SIInstrInfo * getInstrInfo() const override

Definition GCNSubtarget.h:322

unsigned getMaxWorkGroupsPerCU(unsigned FlatWorkGroupSize) const override

Definition GCNSubtarget.h:1805

bool AutoWaitcntBeforeBarrier

Definition GCNSubtarget.h:76

bool HasVscnt

Definition GCNSubtarget.h:215

bool hasDot1Insts() const

Definition GCNSubtarget.h:840

bool hasDot3Insts() const

Definition GCNSubtarget.h:848

unsigned getConstantBusLimit(unsigned Opcode) const

bool hasMADIntraFwdBug() const

Definition GCNSubtarget.h:1191

bool hasVALUMaskWriteHazard() const

Definition GCNSubtarget.h:1371

bool hasCondSubInsts() const

Definition GCNSubtarget.h:1626

TrapHandlerAbi

Definition GCNSubtarget.h:40

@ NONE

Definition GCNSubtarget.h:41

@ AMDHSA

Definition GCNSubtarget.h:42

const InlineAsmLowering * getInlineAsmLowering() const override

Definition GCNSubtarget.h:344

bool HasDot3Insts

Definition GCNSubtarget.h:155

bool hasAutoWaitcntBeforeBarrier() const

Definition GCNSubtarget.h:622

bool hasNSAClauseBug() const

Definition GCNSubtarget.h:1339

bool EnableSRAMECC

Definition GCNSubtarget.h:212

bool HasSDWAOmod

Definition GCNSubtarget.h:132

bool hasAtomicFaddRtnInsts() const

Definition GCNSubtarget.h:946

unsigned getTotalNumSGPRs() const

Definition GCNSubtarget.h:1641

bool hasGFX1250Insts() const

Definition GCNSubtarget.h:1580

bool HasLdsBarrierArriveAtomic

Definition GCNSubtarget.h:290

const InstrItineraryData * getInstrItineraryData() const override

Definition GCNSubtarget.h:364

bool HasDPP

Definition GCNSubtarget.h:137

bool hasSafeSmemPrefetch() const

Definition GCNSubtarget.h:1043

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:1157

bool needsAlignedVGPRs() const

Return if operations acting on VGPR tuples require even alignment.

Definition GCNSubtarget.h:1380

bool hasGFX10_3Insts() const

Definition GCNSubtarget.h:1215

Align getStackAlignment() const

Definition GCNSubtarget.h:1058

bool privateMemoryResourceIsRangeChecked() const

Definition GCNSubtarget.h:612

bool hasScalarSubwordLoads() const

Definition GCNSubtarget.h:514

bool hasDot11Insts() const

Definition GCNSubtarget.h:880

bool HasTanhInsts

Definition GCNSubtarget.h:248

bool enableFlatScratch() const

Definition GCNSubtarget.h:717

bool KernargPreload

Definition GCNSubtarget.h:83

bool hasDsAtomicAsyncBarrierArriveB64PipeBug() const

Definition GCNSubtarget.h:1865

bool HasGWS

Definition GCNSubtarget.h:233

bool hasMin3Max3PKF16() const

Definition GCNSubtarget.h:1465

bool DynamicVGPR

Definition GCNSubtarget.h:205

bool EnablePreciseMemory

Definition GCNSubtarget.h:92

bool hasUnalignedBufferAccess() const

Definition GCNSubtarget.h:632

bool GFX10_3Insts

Definition GCNSubtarget.h:117

bool HasGetWaveIdInst

Definition GCNSubtarget.h:217

bool hasR128A16() const

Definition GCNSubtarget.h:1175

bool hasCvtPkNormVOP3Insts() const

Definition GCNSubtarget.h:914

bool hasOffset3fBug() const

Definition GCNSubtarget.h:1183

bool hasDwordx3LoadStores() const

Definition GCNSubtarget.h:1264

bool hasPrngInst() const

Definition GCNSubtarget.h:1497

bool hasSignedScratchOffsets() const

Definition GCNSubtarget.h:1578

bool GFX9Insts

Definition GCNSubtarget.h:109

bool HasPrivEnabledTrap2NopBug

Definition GCNSubtarget.h:271

bool hasGlobalAddTidInsts() const

Definition GCNSubtarget.h:722

bool hasSGPRInitBug() const

Definition GCNSubtarget.h:1241

bool hasFlatScrRegister() const

Definition GCNSubtarget.h:688

bool hasFmaMixBF16Insts() const

Definition GCNSubtarget.h:492

bool hasGetPCZeroExtension() const

Definition GCNSubtarget.h:1618

bool hasPermLane64() const

Definition GCNSubtarget.h:1128

bool HasBVHDualAndBVH8Insts

Definition GCNSubtarget.h:252

bool requiresNopBeforeDeallocVGPRs() const

Definition GCNSubtarget.h:1846

unsigned getMinNumVGPRs(unsigned WavesPerEU, unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1731

bool hasVMemToLDSLoad() const

Definition GCNSubtarget.h:1419

bool supportsGetDoorbellID() const

Definition GCNSubtarget.h:520

bool supportsWave32() const

Definition GCNSubtarget.h:1779

bool FlatGVSMode

Definition GCNSubtarget.h:227

bool HasNSAClauseBug

Definition GCNSubtarget.h:265

bool hasVcmpxExecWARHazard() const

Definition GCNSubtarget.h:1305

bool isTgSplitEnabled() const

Definition GCNSubtarget.h:674

bool hasFlatAtomicFaddF32Inst() const

Definition GCNSubtarget.h:966

bool hasKernargPreload() const

Definition GCNSubtarget.h:1552

bool HasMin3Max3PKF16

Definition GCNSubtarget.h:282

bool FlatGlobalInsts

Definition GCNSubtarget.h:225

bool hasFP8Insts() const

Definition GCNSubtarget.h:896

unsigned getMaxNumAGPRs(const Function &F) const

Definition GCNSubtarget.h:1761

bool hasReadM0MovRelInterpHazard() const

Definition GCNSubtarget.h:1268

bool isDynamicVGPREnabled() const

Definition GCNSubtarget.h:1852

const SIRegisterInfo * getRegisterInfo() const override

Definition GCNSubtarget.h:334

bool ScalarizeGlobal

Definition GCNSubtarget.h:241

bool hasRequiredExportPriority() const

Definition GCNSubtarget.h:1427

bool hasDOTOpSelHazard() const

Definition GCNSubtarget.h:1328

bool hasLdsWaitVMSRC() const

Definition GCNSubtarget.h:1353

bool hasMSAALoadDstSelBug() const

Definition GCNSubtarget.h:1193

const TargetRegisterClass * getBoolRC() const

Definition GCNSubtarget.h:1799

bool HasPermlane16Swap

Definition GCNSubtarget.h:253

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

bool hasFmaakFmamkF32Insts() const

Definition GCNSubtarget.h:1161

bool hasClusters() const

Definition GCNSubtarget.h:1882

bool hasVscnt() const

Definition GCNSubtarget.h:1003

bool HasMinimum3Maximum3F32

Definition GCNSubtarget.h:280

bool hasMad64_32() const

Definition GCNSubtarget.h:810

InstructionSelector * getInstructionSelector() const override

Definition GCNSubtarget.h:348

unsigned getVGPREncodingGranule() const

Definition GCNSubtarget.h:1709

bool NegativeUnalignedScratchOffsetBug

Definition GCNSubtarget.h:122

bool hasHardClauses() const

Definition GCNSubtarget.h:1341

bool useDS128() const

Definition GCNSubtarget.h:596

bool hasExtendedWaitCounts() const

Definition GCNSubtarget.h:1433

bool HasImageInsts

Definition GCNSubtarget.h:142

bool hasBVHDualAndBVH8Insts() const

Definition GCNSubtarget.h:1499

bool hasMinimum3Maximum3PKF16() const

Definition GCNSubtarget.h:1475

bool hasLshlAddU64Inst() const

Definition GCNSubtarget.h:1223

bool hasLDSMisalignedBug() const

Definition GCNSubtarget.h:1297

bool HasPartialNSAEncoding

Definition GCNSubtarget.h:148

bool d16PreservesUnusedBits() const

Definition GCNSubtarget.h:761

bool hasFmacF64Inst() const

Definition GCNSubtarget.h:838

bool EnablePRTStrictNull

Definition GCNSubtarget.h:99

bool RequiresWaitsBeforeSystemScopeStores

Definition GCNSubtarget.h:300

bool hasXF32Insts() const

Definition GCNSubtarget.h:1442

bool hasInstPrefetch() const

Definition GCNSubtarget.h:1035

bool hasAddPC64Inst() const

Definition GCNSubtarget.h:1471

unsigned maxHardClauseLength() const

Definition GCNSubtarget.h:1495

bool hasAshrPkInsts() const

Definition GCNSubtarget.h:1455

bool isMesaGfxShader(const Function &F) const

Definition GCNSubtarget.h:806

bool hasVcmpxPermlaneHazard() const

Definition GCNSubtarget.h:1285

bool HasDLInsts

Definition GCNSubtarget.h:151

bool hasUserSGPRInit16Bug() const

Definition GCNSubtarget.h:1245

bool DynamicVGPRBlockSize32

Definition GCNSubtarget.h:206

bool hasExportInsts() const

Definition GCNSubtarget.h:734

bool hasDPP() const

Definition GCNSubtarget.h:1130

bool hasVINTERPEncoding() const

Definition GCNSubtarget.h:738

bool hasGloballyAddressableScratch() const

Definition GCNSubtarget.h:1367

const AMDGPURegisterBankInfo * getRegBankInfo() const override

Definition GCNSubtarget.h:356

bool hasAddSubU64Insts() const

Definition GCNSubtarget.h:1585

bool hasLegacyGeometry() const

Definition GCNSubtarget.h:1549

bool has64BitLiterals() const

Definition GCNSubtarget.h:1486

int LDSBankCount

Definition GCNSubtarget.h:66

bool FullRate64Ops

Definition GCNSubtarget.h:72

TrapHandlerAbi getTrapHandlerAbi() const

Definition GCNSubtarget.h:516

bool isCuModeEnabled() const

Definition GCNSubtarget.h:678

bool hasScalarAtomics() const

Definition GCNSubtarget.h:1117

const SIFrameLowering * getFrameLowering() const override

Definition GCNSubtarget.h:326

bool HasR128A16

Definition GCNSubtarget.h:144

bool hasUnalignedScratchAccess() const

Definition GCNSubtarget.h:648

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:1461

bool HasMinimum3Maximum3F16

Definition GCNSubtarget.h:281

bool hasSDWAOutModsVOPC() const

Definition GCNSubtarget.h:830

bool hasAtomicFMinFMaxF32GlobalInsts() const

Definition GCNSubtarget.h:922

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:1490

bool hasGFX950Insts() const

Definition GCNSubtarget.h:1410

bool HasNoDataDepHazard

Definition GCNSubtarget.h:222

bool hasCvtNormInsts() const

Definition GCNSubtarget.h:910

bool HasVOPDInsts

Definition GCNSubtarget.h:274

bool HasDot7Insts

Definition GCNSubtarget.h:159

bool has45BitNumRecordsBufferResource() const

Definition GCNSubtarget.h:1903

bool Has64BitLiterals

Definition GCNSubtarget.h:245

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

Definition GCNSubtarget.h:360

unsigned getMaxNumPreloadedSGPRs() const

bool hasAtomicCSubNoRtnInsts() const

Definition GCNSubtarget.h:1562

bool HasSDWAOutModsVOPC

Definition GCNSubtarget.h:136

bool EnableCuMode

Definition GCNSubtarget.h:90

bool hasScalarFlatScratchInsts() const

Definition GCNSubtarget.h:713

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

unsigned Gen

Definition GCNSubtarget.h:64

bool has12DWordStoreHazard() const

Definition GCNSubtarget.h:1259

bool hasVALUPartialForwardingHazard() const

Definition GCNSubtarget.h:1355

bool dumpCode() const

Definition GCNSubtarget.h:572

bool hasNoDataDepHazard() const

Definition GCNSubtarget.h:1027

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:1365

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:640

bool hasAddMinMaxInsts() const

Definition GCNSubtarget.h:1601

bool needsKernArgPreloadProlog() const

Definition GCNSubtarget.h:1622

bool hasRestrictedSOffset() const

Definition GCNSubtarget.h:1425

bool hasMin3Max3_16() const

Definition GCNSubtarget.h:484

bool hasIntClamp() const

Definition GCNSubtarget.h:414

bool hasGFX10_AEncoding() const

Definition GCNSubtarget.h:1207

bool hasFP8E5M3Insts() const

Definition GCNSubtarget.h:916

bool hasFlatSegmentOffsetBug() const

Definition GCNSubtarget.h:749

bool GFX10_AEncoding

Definition GCNSubtarget.h:149

unsigned getMaxNumVGPRs(unsigned WavesPerEU, unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1739

unsigned getVGPRAllocGranule(unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1704

bool MIMG_R128

Definition GCNSubtarget.h:106

bool hasEmulatedSystemScopeAtomics() const

Definition GCNSubtarget.h:989

bool hasMadU64U32NoCarry() const

Definition GCNSubtarget.h:1595

unsigned getSetRegWaitStates() const

Number of hazard wait states for s_setreg_b32/s_setreg_imm32_b32.

Definition GCNSubtarget.h:568

const SITargetLowering * getTargetLowering() const override

Definition GCNSubtarget.h:330

bool HasVcmpxPermlaneHazard

Definition GCNSubtarget.h:255

bool hasPackedFP32Ops() const

Definition GCNSubtarget.h:1152

bool SupportsXNACK

Definition GCNSubtarget.h:82

bool hasTransForwardingHazard() const

Definition GCNSubtarget.h:1321

bool hasDot6Insts() const

Definition GCNSubtarget.h:860

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:1406

bool HasScalarAtomics

Definition GCNSubtarget.h:131

bool hasFullRate64Ops() const

Definition GCNSubtarget.h:434

bool HasSafeCUPrefetch

Definition GCNSubtarget.h:261

bool EnableSIScheduler

Definition GCNSubtarget.h:97

bool hasScalarStores() const

Definition GCNSubtarget.h:1113

bool isTrapHandlerEnabled() const

Definition GCNSubtarget.h:666

bool enableMachineScheduler() const override

Definition GCNSubtarget.h:1060

bool hasLDSFPAtomicAddF64() const

Definition GCNSubtarget.h:1122

bool HasAtomicFlatPkAdd16Insts

Definition GCNSubtarget.h:184

bool hasFlatGlobalInsts() const

Definition GCNSubtarget.h:696

bool HasGloballyAddressableScratch

Definition GCNSubtarget.h:295

bool hasDX10ClampMode() const

Definition GCNSubtarget.h:1565

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:1071

bool hasPKF32InstsReplicatingLower32BitsOfScalarInput() const

Definition GCNSubtarget.h:1447

bool HasAtomicFMinFMaxF32FlatInsts

Definition GCNSubtarget.h:181

bool HasPseudoScalarTrans

Definition GCNSubtarget.h:243

bool hasReadM0LdsDmaHazard() const

Definition GCNSubtarget.h:1277

bool hasScalarSMulU64() const

Definition GCNSubtarget.h:799

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:389

bool hasScratchBaseForwardingHazard() const

Definition GCNSubtarget.h:1871

bool HasShaderCyclesRegister

Definition GCNSubtarget.h:219

bool FlatInstOffsets

Definition GCNSubtarget.h:224

bool hasLerpInst() const

Definition GCNSubtarget.h:904

bool hasIntMinMax64() const

Definition GCNSubtarget.h:1598

bool hasShaderCyclesHiLoRegisters() const

Definition GCNSubtarget.h:1019

bool hasSDWASdst() const

Definition GCNSubtarget.h:822

bool HasDefaultComponentBroadcast

Definition GCNSubtarget.h:198

bool HasNoSdstCMPX

Definition GCNSubtarget.h:214

bool hasScalarPackInsts() const

Definition GCNSubtarget.h:506

bool hasFFBL() const

Definition GCNSubtarget.h:472

bool hasNSAEncoding() const

Definition GCNSubtarget.h:1197

bool requiresDisjointEarlyClobberAndUndef() const override

Definition GCNSubtarget.h:1857

bool hasVALUReadSGPRHazard() const

Definition GCNSubtarget.h:1373

bool hasSMemRealTime() const

Definition GCNSubtarget.h:1093

bool EnableTgSplit

Definition GCNSubtarget.h:89

bool hasFlatAddressSpace() const

Definition GCNSubtarget.h:684

bool hasDPPBroadcasts() const

Definition GCNSubtarget.h:1134

bool HasFP8Insts

Definition GCNSubtarget.h:167

bool usePRTStrictNull() const

Definition GCNSubtarget.h:618

bool hasMovB64() const

Definition GCNSubtarget.h:1221

bool hasVmemPrefInsts() const

Definition GCNSubtarget.h:1041

unsigned getAddressableNumVGPRs(unsigned DynamicVGPRBlockSize) const

Definition GCNSubtarget.h:1725

bool HasFmaMixBF16Insts

Definition GCNSubtarget.h:126

bool hasCubeInsts() const

Definition GCNSubtarget.h:902

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:1301

bool HasDot2Insts

Definition GCNSubtarget.h:154

bool hasAtomicFMinFMaxF64GlobalInsts() const

Definition GCNSubtarget.h:926

bool HasLerpInst

Definition GCNSubtarget.h:170

bool hasMed3_16() const

Definition GCNSubtarget.h:480

bool HasVMemToLDSLoad

Definition GCNSubtarget.h:207

unsigned getReservedNumSGPRs(const MachineFunction &MF) const

bool hasUnalignedScratchAccessEnabled() const

Definition GCNSubtarget.h:652

bool hasMovrel() const

Definition GCNSubtarget.h:1097

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:1391

bool UnalignedScratchAccess

Definition GCNSubtarget.h:78

bool hasAtomicFlatPkAdd16Insts() const

Definition GCNSubtarget.h:940

bool HasPrngInst

Definition GCNSubtarget.h:251

bool HasImageGather4D16Bug

Definition GCNSubtarget.h:269

bool hasBFI() const

Definition GCNSubtarget.h:460

bool hasDot13Insts() const

Definition GCNSubtarget.h:888

bool ldsRequiresM0Init() const

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

Definition GCNSubtarget.h:771

bool HasSMEMtoVectorWriteHazard

Definition GCNSubtarget.h:257

bool HasAshrPkInsts

Definition GCNSubtarget.h:278

bool HasAtomicFaddNoRtnInsts

Definition GCNSubtarget.h:186

bool hasSMEMtoVectorWriteHazard() const

Definition GCNSubtarget.h:1293

bool useAA() const override

bool isWave32() const

Definition GCNSubtarget.h:1783

bool hasVGPRIndexMode() const

Definition GCNSubtarget.h:1101

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:636

bool isWaveSizeKnown() const

Returns if the wavesize of this subtarget is known reliable.

Definition GCNSubtarget.h:1794

unsigned getMaxPrivateElementSize(bool ForBufferRSrc=false) const

Definition GCNSubtarget.h:397

unsigned getMinFlatWorkGroupSize() const override

Definition GCNSubtarget.h:1810

bool HasAtomicCSubNoRtnInsts

Definition GCNSubtarget.h:190

bool hasImageInsts() const

Definition GCNSubtarget.h:1167

bool HasAtomicDsPkAdd16Insts

Definition GCNSubtarget.h:183

bool hasImageGather4D16Bug() const

Definition GCNSubtarget.h:1189

bool FMA

Definition GCNSubtarget.h:105

bool HasRequiredExportPriority

Definition GCNSubtarget.h:276

bool hasFMA() const

Definition GCNSubtarget.h:498

bool hasDot10Insts() const

Definition GCNSubtarget.h:876

bool hasSPackHL() const

Return true if the target has the S_PACK_HL_B32_B16 instruction.

Definition GCNSubtarget.h:1383

bool hasVMEMtoScalarWriteHazard() const

Definition GCNSubtarget.h:1289

bool hasCvtFP8VOP1Bug() const

Definition GCNSubtarget.h:1558

bool supportsMinMaxDenormModes() const

Definition GCNSubtarget.h:581

bool supportsWave64() const

Definition GCNSubtarget.h:1781

bool RelaxedBufferOOBMode

Definition GCNSubtarget.h:80

bool HasAtomicBufferPkAddBF16Inst

Definition GCNSubtarget.h:192

bool hasNegativeUnalignedScratchOffsetBug() const

Definition GCNSubtarget.h:1251

bool hasFFBH() const

Definition GCNSubtarget.h:476

bool hasFormattedMUBUFInsts() const

Definition GCNSubtarget.h:732

bool HasQsadInsts

Definition GCNSubtarget.h:172

bool hasFlatScratchSVSMode() const

Definition GCNSubtarget.h:711

bool supportsWGP() const

Definition GCNSubtarget.h:408

bool hasG16() const

Definition GCNSubtarget.h:1181

bool GFX90AInsts

Definition GCNSubtarget.h:110

bool HasMSAALoadDstSelBug

Definition GCNSubtarget.h:270

bool HasPackedFP32Ops

Definition GCNSubtarget.h:141

bool hasHalfRate64Ops() const

Definition GCNSubtarget.h:430

bool hasAtomicFaddInsts() const

Definition GCNSubtarget.h:942

bool HasAtomicBufferGlobalPkAddF16NoRtnInsts

Definition GCNSubtarget.h:188

bool HasMinimum3Maximum3PKF16

Definition GCNSubtarget.h:283

bool hasSubClampInsts() const

Definition GCNSubtarget.h:1628

bool hasPermlane16Swap() const

Definition GCNSubtarget.h:1453

bool hasNSAtoVMEMBug() const

Definition GCNSubtarget.h:1335

bool requiresWaitXCntForSingleAccessInstructions() const

Definition GCNSubtarget.h:1887

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:1203

bool hasAtomicBufferGlobalPkAddF16NoRtnInsts() const

Definition GCNSubtarget.h:950

bool hasSadInsts() const

Definition GCNSubtarget.h:906

bool hasMIMG_R128() const

Definition GCNSubtarget.h:422

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:1349

bool hasAtomicBufferPkAddBF16Inst() const

Definition GCNSubtarget.h:962

bool HasAgentScopeFineGrainedRemoteMemoryAtomics

Definition GCNSubtarget.h:196

unsigned getMaxFlatWorkGroupSize() const override

Definition GCNSubtarget.h:1815

bool hasDPP8() const

Definition GCNSubtarget.h:1142

bool hasDot5Insts() const

Definition GCNSubtarget.h:856

unsigned getMaxNumUserSGPRs() const

Definition GCNSubtarget.h:1089

bool hasTransposeLoadF4F6Insts() const

Definition GCNSubtarget.h:1479

bool hasMadU32Inst() const

Definition GCNSubtarget.h:1588

bool hasAtomicFaddNoRtnInsts() const

Definition GCNSubtarget.h:948

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:1125

bool hasFlatScratchSVSSwizzleBug() const

Definition GCNSubtarget.h:1397

bool hasFlatBufferGlobalAtomicFaddF64Inst() const

Definition GCNSubtarget.h:970

bool HasEmulatedSystemScopeAtomics

Definition GCNSubtarget.h:197

bool hasNoF16PseudoScalarTransInlineConstants() const

Definition GCNSubtarget.h:1437

bool hasIEEEMode() const

Definition GCNSubtarget.h:1568

bool hasScalarDwordx3Loads() const

Definition GCNSubtarget.h:1111

bool hasVDecCoExecHazard() const

Definition GCNSubtarget.h:1331

bool FastDenormalF32

Definition GCNSubtarget.h:70

bool hasSignedGVSOffset() const

Definition GCNSubtarget.h:1231

bool hasCvtPkNormVOP2Insts() const

Definition GCNSubtarget.h:912

bool HasImageStoreD16Bug

Definition GCNSubtarget.h:268

bool UnalignedAccessMode

Definition GCNSubtarget.h:79

bool hasLDSFPAtomicAddF32() const

Definition GCNSubtarget.h:1121

unsigned getWavesPerEUForWorkGroup(unsigned FlatWorkGroupSize) const override

Definition GCNSubtarget.h:1822

bool HasLshlAddU64Inst

Definition GCNSubtarget.h:284

bool EnableDS128

Definition GCNSubtarget.h:98

bool HasApertureRegs

Definition GCNSubtarget.h:81

bool hasBFM() const

Definition GCNSubtarget.h:464

bool haveRoundOpsF64() const

Have v_trunc_f64, v_ceil_f64, v_rndne_f64.

Definition GCNSubtarget.h:606

bool hasDelayAlu() const

Return true if the target has the S_DELAY_ALU instruction.

Definition GCNSubtarget.h:1400

bool HasNSAtoVMEMBug

Definition GCNSubtarget.h:264

bool GFX950Insts

Definition GCNSubtarget.h:112

bool hasReadM0SendMsgHazard() const

Definition GCNSubtarget.h:1272

bool HasA16

Definition GCNSubtarget.h:145

bool AssemblerPermissiveWavesize

Definition GCNSubtarget.h:101

bool hasDot8Insts() const

Definition GCNSubtarget.h:868

bool hasVectorMulU64() const

Definition GCNSubtarget.h:1591

bool hasScalarMulHiInsts() const

Definition GCNSubtarget.h:510

bool hasSCmpK() const

Definition GCNSubtarget.h:1048

bool HasFP8E5M3Insts

Definition GCNSubtarget.h:176

bool hasPseudoScalarTrans() const

Definition GCNSubtarget.h:1423

const LegalizerInfo * getLegalizerInfo() const override

Definition GCNSubtarget.h:352

bool requiresWaitIdleBeforeGetReg() const

Definition GCNSubtarget.h:1850

bool HasSDWASdst

Definition GCNSubtarget.h:134

bool hasPointSampleAccel() const

Definition GCNSubtarget.h:1488

bool hasDot12Insts() const

Definition GCNSubtarget.h:884

bool hasDS96AndDS128() const

Definition GCNSubtarget.h:601

bool hasGWS() const

Definition GCNSubtarget.h:1540

bool HasCvtPkNormVOP3Insts

Definition GCNSubtarget.h:175

bool HasAtomicFMinFMaxF64GlobalInsts

Definition GCNSubtarget.h:180

bool HasBitOp3Insts

Definition GCNSubtarget.h:247

bool hasReadM0LdsDirectHazard() const

Definition GCNSubtarget.h:1281

bool useFlatForGlobal() const

Definition GCNSubtarget.h:590

bool EnableFlatScratch

Definition GCNSubtarget.h:230

static bool hasHalfRate64Ops(const TargetSubtargetInfo &STI)

bool hasVOPDInsts() const

Definition GCNSubtarget.h:1395

bool hasGFX10_BEncoding() const

Definition GCNSubtarget.h:1211

Generation getGeneration() const

Definition GCNSubtarget.h:370

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:1658

bool hasVOP3Literal() const

Definition GCNSubtarget.h:1023

bool HasDot10Insts

Definition GCNSubtarget.h:162

bool hasAtomicBufferGlobalPkAddF16Insts() const

Definition GCNSubtarget.h:954

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:999

bool HasDot12Insts

Definition GCNSubtarget.h:164

bool isXNACKEnabled() const

Definition GCNSubtarget.h:670

bool hasScalarAddSub64() const

Definition GCNSubtarget.h:797

bool hasSplitBarriers() const

Definition GCNSubtarget.h:1555

bool hasUnpackedD16VMem() const

Definition GCNSubtarget.h:801

bool enableEarlyIfConversion() const override

Definition GCNSubtarget.h:1077

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:553

bool hasSGetShaderCyclesInst() const

Definition GCNSubtarget.h:1610

bool hasRFEHazards() const

Definition GCNSubtarget.h:563

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:559

bool FlatForGlobal

Definition GCNSubtarget.h:75

bool hasFlatScratchSTMode() const

Definition GCNSubtarget.h:707

unsigned getBaseReservedNumSGPRs(const bool HasFlatScratch) const

bool hasGWSSemaReleaseAll() const

Definition GCNSubtarget.h:785

bool hasDPALU_DPP() const

Definition GCNSubtarget.h:1146

bool enableSIScheduler() const

Definition GCNSubtarget.h:1233

bool hasAtomicGlobalPkAddBF16Inst() const

Definition GCNSubtarget.h:958

bool FlatScratchInsts

Definition GCNSubtarget.h:226

bool hasAddr64() const

Definition GCNSubtarget.h:438

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:656

bool FP64

Definition GCNSubtarget.h:104

unsigned getAddressableNumSGPRs() const

Definition GCNSubtarget.h:1646

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:542

bool HasAtomicFaddRtnInsts

Definition GCNSubtarget.h:185

bool isWave64() const

Definition GCNSubtarget.h:1787

bool HasRestrictedSOffset

Definition GCNSubtarget.h:244

unsigned getDynamicVGPRBlockSize() const

Definition GCNSubtarget.h:1853

bool RequiresCOV6

Definition GCNSubtarget.h:293

bool HasArchitectedSGPRs

Definition GCNSubtarget.h:231

bool TrapHandler

Definition GCNSubtarget.h:91

bool hasFmaMixInsts() const

Definition GCNSubtarget.h:488

bool HasVALUTransUseHazard

Definition GCNSubtarget.h:275

bool hasCARRY() const

Definition GCNSubtarget.h:494

bool hasQsadInsts() const

Definition GCNSubtarget.h:908

bool HasSMemRealTime

Definition GCNSubtarget.h:123

bool hasPackedTID() const

Definition GCNSubtarget.h:1402

bool setRegModeNeedsVNOPs() const

Definition GCNSubtarget.h:1375

bool HasVcmpxExecWARHazard

Definition GCNSubtarget.h:262

bool HasNSAEncoding

Definition GCNSubtarget.h:147

bool hasFP64() const

Definition GCNSubtarget.h:418

bool hasAddNoCarry() const

Definition GCNSubtarget.h:793

bool ScalarFlatScratchInsts

Definition GCNSubtarget.h:228

bool requiresWaitsBeforeSystemScopeStores() const

Definition GCNSubtarget.h:1907

bool hasVALUTransUseHazard() const

Definition GCNSubtarget.h:1359

bool HasDot5Insts

Definition GCNSubtarget.h:157

bool hasShaderCyclesRegister() const

Definition GCNSubtarget.h:1015

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:1421

bool EnableUnsafeDSOffsetFolding

Definition GCNSubtarget.h:96

bool hasFractBug() const

Definition GCNSubtarget.h:452

bool isPreciseMemoryEnabled() const

Definition GCNSubtarget.h:682

bool hasDPPSrc1SGPR() const

Definition GCNSubtarget.h:1150

bool hasGDS() const

Definition GCNSubtarget.h:1537

unsigned getMaxWaveScratchSize() const

Definition GCNSubtarget.h:374

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:730

bool hasDot4Insts() const

Definition GCNSubtarget.h:852

bool FeatureDisable

Definition GCNSubtarget.h:303

bool GFX1250Insts

Definition GCNSubtarget.h:116

bool flatScratchIsArchitected() const

Definition GCNSubtarget.h:1531

bool hasPartialNSAEncoding() const

Definition GCNSubtarget.h:1201

bool HasInstFwdPrefetchBug

Definition GCNSubtarget.h:258

bool hasWaitXCnt() const

Definition GCNSubtarget.h:1483

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:1613

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

bool FlatAddressSpace

Definition GCNSubtarget.h:223

bool hasDot9Insts() const

Definition GCNSubtarget.h:872

bool HasPackedTID

Definition GCNSubtarget.h:240

bool hasVOPD3() const

Definition GCNSubtarget.h:1582

bool UseBlockVGPROpsForCSR

Definition GCNSubtarget.h:294

bool hasAtomicCSub() const

Definition GCNSubtarget.h:726

AMDGPU::IsaInfo::AMDGPUTargetID TargetID

Definition GCNSubtarget.h:63

bool hasDefaultComponentBroadcast() const

Definition GCNSubtarget.h:995

bool requiresCodeObjectV6() const

Definition GCNSubtarget.h:1363

bool SupportsSRAMECC

Definition GCNSubtarget.h:204

const CallLowering * getCallLowering() const override

Definition GCNSubtarget.h:340

bool hasBFE() const

Definition GCNSubtarget.h:456

bool hasLdsDirect() const

Definition GCNSubtarget.h:1351

bool hasGWSAutoReplay() const

Definition GCNSubtarget.h:780

bool HasFlatBufferGlobalAtomicFaddF64Inst

Definition GCNSubtarget.h:194

static unsigned getNumUserSGPRForField(UserSGPRID ID)

Definition GCNSubtarget.h:1950

bool hasQueuePtr() const

Definition GCNSubtarget.h:1920

bool hasKernargSegmentPtr() const

Definition GCNSubtarget.h:1922

void allocKernargPreloadSGPRs(unsigned NumSGPRs)

bool hasDispatchID() const

Definition GCNSubtarget.h:1924

UserSGPRID

Definition GCNSubtarget.h:1938

@ ImplicitBufferPtrID

Definition GCNSubtarget.h:1939

@ DispatchIdID

Definition GCNSubtarget.h:1944

@ QueuePtrID

Definition GCNSubtarget.h:1942

@ DispatchPtrID

Definition GCNSubtarget.h:1941

@ FlatScratchInitID

Definition GCNSubtarget.h:1945

@ PrivateSegmentBufferID

Definition GCNSubtarget.h:1940

@ PrivateSegmentSizeID

Definition GCNSubtarget.h:1946

@ KernargSegmentPtrID

Definition GCNSubtarget.h:1943

bool hasPrivateSegmentBuffer() const

Definition GCNSubtarget.h:1916

unsigned getNumFreeUserSGPRs()

bool hasImplicitBufferPtr() const

Definition GCNSubtarget.h:1914

unsigned getNumKernargPreloadSGPRs() const

Definition GCNSubtarget.h:1930

bool hasPrivateSegmentSize() const

Definition GCNSubtarget.h:1928

unsigned getNumUsedUserSGPRs() const

Definition GCNSubtarget.h:1932

bool hasDispatchPtr() const

Definition GCNSubtarget.h:1918

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

bool hasFlatScratchInit() const

Definition GCNSubtarget.h:1926

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.