Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
//===- AMDGPULegalizerInfo ---------------------------------------*- C++ -*-==//
|
|
|
|
//
|
2019-01-19 16:50:56 +08:00
|
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
/// \file
|
|
|
|
/// This file declares the targeting of the Machinelegalizer class for
|
|
|
|
/// AMDGPU.
|
|
|
|
/// \todo This should be generated by TableGen.
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINELEGALIZER_H
|
|
|
|
#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINELEGALIZER_H
|
|
|
|
|
|
|
|
#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
|
2019-07-02 02:45:36 +08:00
|
|
|
#include "AMDGPUArgumentUsageInfo.h"
|
2019-10-01 09:06:43 +08:00
|
|
|
#include "SIInstrInfo.h"
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
|
|
|
|
namespace llvm {
|
|
|
|
|
2018-03-09 00:24:16 +08:00
|
|
|
class GCNTargetMachine;
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
class LLVMContext;
|
2018-07-12 04:59:01 +08:00
|
|
|
class GCNSubtarget;
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
|
|
|
|
/// This class provides the information for the target register banks.
|
|
|
|
class AMDGPULegalizerInfo : public LegalizerInfo {
|
2019-07-02 02:49:01 +08:00
|
|
|
const GCNSubtarget &ST;
|
|
|
|
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
public:
|
2018-07-12 04:59:01 +08:00
|
|
|
AMDGPULegalizerInfo(const GCNSubtarget &ST,
|
2018-03-09 00:24:16 +08:00
|
|
|
const GCNTargetMachine &TM);
|
2019-02-08 10:40:47 +08:00
|
|
|
|
|
|
|
bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B,
|
2019-02-08 10:40:47 +08:00
|
|
|
GISelChangeObserver &Observer) const override;
|
|
|
|
|
2019-06-28 09:16:46 +08:00
|
|
|
Register getSegmentAperture(unsigned AddrSpace,
|
2019-02-08 10:40:47 +08:00
|
|
|
MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-02-08 10:40:47 +08:00
|
|
|
|
|
|
|
bool legalizeAddrSpaceCast(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-05-17 20:19:57 +08:00
|
|
|
bool legalizeFrint(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-05-17 20:20:05 +08:00
|
|
|
bool legalizeFceil(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-05-17 20:20:01 +08:00
|
|
|
bool legalizeIntrinsicTrunc(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-05-18 07:05:18 +08:00
|
|
|
bool legalizeITOFP(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B, bool Signed) const;
|
2020-01-05 05:40:45 +08:00
|
|
|
bool legalizeFPTOI(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B, bool Signed) const;
|
2019-07-11 00:31:19 +08:00
|
|
|
bool legalizeMinNumMaxNum(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-07-16 03:40:59 +08:00
|
|
|
bool legalizeExtractVectorElt(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-07-16 03:43:04 +08:00
|
|
|
bool legalizeInsertVectorElt(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2020-01-02 04:51:46 +08:00
|
|
|
bool legalizeShuffleVector(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
|
2019-08-30 04:06:48 +08:00
|
|
|
bool legalizeSinCos(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-09-10 01:13:44 +08:00
|
|
|
|
2019-10-01 09:06:43 +08:00
|
|
|
bool buildPCRelGlobalAddress(
|
|
|
|
Register DstReg, LLT PtrTy, MachineIRBuilder &B, const GlobalValue *GV,
|
|
|
|
unsigned Offset, unsigned GAFlags = SIInstrInfo::MO_NONE) const;
|
|
|
|
|
2019-09-10 01:13:44 +08:00
|
|
|
bool legalizeGlobalValue(MachineInstr &MI, MachineRegisterInfo &MRI,
|
AMDGPU/GlobalISel: Rename MIRBuilder to B. NFC
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67374
llvm-svn: 371467
2019-09-10 07:06:13 +08:00
|
|
|
MachineIRBuilder &B) const;
|
2019-09-11 00:42:31 +08:00
|
|
|
bool legalizeLoad(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B,
|
|
|
|
GISelChangeObserver &Observer) const;
|
2019-07-02 02:40:23 +08:00
|
|
|
|
2019-09-13 08:44:35 +08:00
|
|
|
bool legalizeFMad(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
|
2019-10-09 01:04:41 +08:00
|
|
|
bool legalizeAtomicCmpXChg(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-01-22 11:29:30 +08:00
|
|
|
bool legalizeFlog(MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
double Log2BaseInverted) const;
|
2020-01-25 09:53:26 +08:00
|
|
|
bool legalizeFExp(MachineInstr &MI, MachineIRBuilder &B) const;
|
2020-02-21 07:59:08 +08:00
|
|
|
bool legalizeFPow(MachineInstr &MI, MachineIRBuilder &B) const;
|
2020-01-24 23:01:15 +08:00
|
|
|
bool legalizeFFloor(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
|
2020-01-05 04:35:26 +08:00
|
|
|
bool legalizeBuildVector(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-01-25 09:53:26 +08:00
|
|
|
|
AMDGPU/GlobalISel: Support llvm.trap and llvm.debugtrap intrinsics
Summary: Lower trap and debugtrap intrinsics to AMDGPU machine instruction(s).
Reviewers: arsenm, nhaehnle, kerbowa, cdevadas, t-tye, kzhuravl
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, yaxunl, rovka, dstuttard, tpr, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74688
2020-03-05 10:45:55 +08:00
|
|
|
Register getLiveInRegister(MachineIRBuilder &B, MachineRegisterInfo &MRI,
|
|
|
|
Register PhyReg, LLT Ty,
|
|
|
|
bool InsertLiveInCopy = true) const;
|
|
|
|
Register insertLiveInCopy(MachineIRBuilder &B, MachineRegisterInfo &MRI,
|
|
|
|
Register LiveIn, Register PhyReg) const;
|
|
|
|
const ArgDescriptor *
|
|
|
|
getArgDescriptor(MachineIRBuilder &B,
|
|
|
|
AMDGPUFunctionArgInfo::PreloadedValue ArgType) const;
|
2019-07-02 02:45:36 +08:00
|
|
|
bool loadInputValue(Register DstReg, MachineIRBuilder &B,
|
|
|
|
const ArgDescriptor *Arg) const;
|
|
|
|
bool legalizePreloadedArgIntrin(
|
|
|
|
MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &B,
|
|
|
|
AMDGPUFunctionArgInfo::PreloadedValue ArgType) const;
|
|
|
|
|
2020-02-12 09:51:02 +08:00
|
|
|
bool legalizeUDIV_UREM(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-02-12 09:48:45 +08:00
|
|
|
|
|
|
|
void legalizeUDIV_UREM32Impl(MachineIRBuilder &B,
|
|
|
|
Register DstReg, Register Num, Register Den,
|
|
|
|
bool IsRem) const;
|
2020-02-12 09:51:02 +08:00
|
|
|
bool legalizeUDIV_UREM32(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-02-12 09:48:45 +08:00
|
|
|
bool legalizeSDIV_SREM32(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-02-26 23:17:07 +08:00
|
|
|
|
|
|
|
bool legalizeUDIV_UREM64(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2020-02-12 09:48:45 +08:00
|
|
|
bool legalizeSDIV_SREM(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
|
AMDGPU/GlobalISel: Legalize fast unsafe FDIV
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69231
llvm-svn: 375460
2019-10-22 06:18:26 +08:00
|
|
|
bool legalizeFDIV(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
AMDGPU/GlobalISel: Legalize FDIV16
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, volkan, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69347
2019-10-23 08:39:26 +08:00
|
|
|
bool legalizeFDIV16(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
AMDGPU/GlobalISel: Legalize FDIV32
Reviewers: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69581
2019-10-30 00:55:49 +08:00
|
|
|
bool legalizeFDIV32(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
AMDGPU/GlobalISel: Legalize FDIV64
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70403
2019-11-18 08:43:59 +08:00
|
|
|
bool legalizeFDIV64(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
AMDGPU/GlobalISel: Legalize fast unsafe FDIV
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69231
llvm-svn: 375460
2019-10-22 06:18:26 +08:00
|
|
|
bool legalizeFastUnsafeFDIV(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
bool legalizeFDIVFastIntrin(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
[AMDGPU/GlobalISel] Add llvm.amdgcn.fdiv.fast legalization.
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: volkan, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64966
llvm-svn: 367344
2019-07-31 02:49:16 +08:00
|
|
|
|
2019-07-02 02:49:01 +08:00
|
|
|
bool legalizeImplicitArgPtr(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
2019-09-05 10:20:39 +08:00
|
|
|
bool legalizeIsAddrSpace(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B, unsigned AddrSpace) const;
|
2019-09-20 00:26:14 +08:00
|
|
|
|
2019-09-19 12:29:20 +08:00
|
|
|
std::tuple<Register, unsigned, unsigned>
|
|
|
|
splitBufferOffsets(MachineIRBuilder &B, Register OrigOffset) const;
|
|
|
|
|
2019-09-20 00:26:14 +08:00
|
|
|
Register handleD16VData(MachineIRBuilder &B, MachineRegisterInfo &MRI,
|
|
|
|
Register Reg) const;
|
|
|
|
bool legalizeRawBufferStore(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B, bool IsFormat) const;
|
2019-09-19 12:29:20 +08:00
|
|
|
bool legalizeRawBufferLoad(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B, bool IsFormat) const;
|
2020-01-14 09:39:09 +08:00
|
|
|
Register fixStoreSourceType(MachineIRBuilder &B, Register VData,
|
|
|
|
bool IsFormat) const;
|
|
|
|
|
|
|
|
bool legalizeBufferStore(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B, bool IsTyped,
|
|
|
|
bool IsFormat) const;
|
2020-01-14 05:02:14 +08:00
|
|
|
bool legalizeBufferLoad(MachineInstr &MI, MachineRegisterInfo &MRI,
|
2020-01-14 09:39:09 +08:00
|
|
|
MachineIRBuilder &B, bool IsTyped,
|
|
|
|
bool IsFormat) const;
|
2020-01-14 12:17:59 +08:00
|
|
|
bool legalizeBufferAtomic(MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
Intrinsic::ID IID) const;
|
2020-01-14 05:02:14 +08:00
|
|
|
|
2020-01-16 03:23:20 +08:00
|
|
|
bool legalizeImageIntrinsic(
|
|
|
|
MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
GISelChangeObserver &Observer,
|
|
|
|
const AMDGPU::ImageDimIntrinsicInfo *ImageDimIntr) const;
|
|
|
|
|
2020-01-31 06:34:33 +08:00
|
|
|
bool legalizeSBufferLoad(
|
|
|
|
MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
GISelChangeObserver &Observer) const;
|
|
|
|
|
2020-01-18 09:51:01 +08:00
|
|
|
bool legalizeAtomicIncDec(MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
bool IsInc) const;
|
|
|
|
|
AMDGPU/GlobalISel: Support llvm.trap and llvm.debugtrap intrinsics
Summary: Lower trap and debugtrap intrinsics to AMDGPU machine instruction(s).
Reviewers: arsenm, nhaehnle, kerbowa, cdevadas, t-tye, kzhuravl
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, yaxunl, rovka, dstuttard, tpr, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74688
2020-03-05 10:45:55 +08:00
|
|
|
bool legalizeTrapIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
bool legalizeDebugTrapIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
|
|
|
|
MachineIRBuilder &B) const;
|
|
|
|
|
2020-01-28 04:50:55 +08:00
|
|
|
bool legalizeIntrinsic(MachineInstr &MI, MachineIRBuilder &B,
|
|
|
|
GISelChangeObserver &Observer) const override;
|
Re-commit AMDGPU/GlobalISel: Add support for simple shaders
Fix build when global-isel is disabled and fix a warning.
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293551
2017-01-31 05:56:46 +08:00
|
|
|
};
|
|
|
|
} // End llvm namespace.
|
|
|
|
#endif
|