18214982bSSebastian Neubauer //===- AMDGPUMIRFormatter.cpp ---------------------------------------------===//
28214982bSSebastian Neubauer //
38214982bSSebastian Neubauer // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
48214982bSSebastian Neubauer // See https://llvm.org/LICENSE.txt for license information.
58214982bSSebastian Neubauer // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
68214982bSSebastian Neubauer //
78214982bSSebastian Neubauer //===----------------------------------------------------------------------===//
88214982bSSebastian Neubauer //
98214982bSSebastian Neubauer /// \file
108214982bSSebastian Neubauer /// Implementation of AMDGPU overrides of MIRFormatter.
118214982bSSebastian Neubauer //
128214982bSSebastian Neubauer //===----------------------------------------------------------------------===//
138214982bSSebastian Neubauer 
148214982bSSebastian Neubauer #include "AMDGPUMIRFormatter.h"
158214982bSSebastian Neubauer #include "GCNSubtarget.h"
168214982bSSebastian Neubauer #include "SIMachineFunctionInfo.h"
178214982bSSebastian Neubauer 
188214982bSSebastian Neubauer using namespace llvm;
198214982bSSebastian Neubauer 
parseCustomPseudoSourceValue(StringRef Src,MachineFunction & MF,PerFunctionMIParsingState & PFS,const PseudoSourceValue * & PSV,ErrorCallbackType ErrorCallback) const208214982bSSebastian Neubauer bool AMDGPUMIRFormatter::parseCustomPseudoSourceValue(
218214982bSSebastian Neubauer     StringRef Src, MachineFunction &MF, PerFunctionMIParsingState &PFS,
228214982bSSebastian Neubauer     const PseudoSourceValue *&PSV, ErrorCallbackType ErrorCallback) const {
238214982bSSebastian Neubauer   SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>();
24*0e1c71e4SMatt Arsenault   const AMDGPUTargetMachine &TM =
25*0e1c71e4SMatt Arsenault       static_cast<const AMDGPUTargetMachine &>(MF.getTarget());
268214982bSSebastian Neubauer   if (Src == "BufferResource") {
27*0e1c71e4SMatt Arsenault     PSV = MFI->getBufferPSV(TM);
288214982bSSebastian Neubauer     return false;
298214982bSSebastian Neubauer   }
308214982bSSebastian Neubauer   if (Src == "ImageResource") {
31*0e1c71e4SMatt Arsenault     PSV = MFI->getImagePSV(TM);
328214982bSSebastian Neubauer     return false;
338214982bSSebastian Neubauer   }
348214982bSSebastian Neubauer   if (Src == "GWSResource") {
35*0e1c71e4SMatt Arsenault     PSV = MFI->getGWSPSV(TM);
368214982bSSebastian Neubauer     return false;
378214982bSSebastian Neubauer   }
388214982bSSebastian Neubauer   llvm_unreachable("unknown MIR custom pseudo source value");
398214982bSSebastian Neubauer }
40