19using namespace mlir::abi;
26 AMDGPUABIClassifier(
const mlir::DataLayout &dl, mlir::ModuleOp modOp)
27 : CIRABIClassifierCommon(dl, modOp) {}
29 mlir::FailureOr<ArgClassification>
30 classifyVAArg(cir::VAArgOp vaArg)
override {
32 <<
"not yet implemented in CallConvLowering for AMDGPU";
33 return mlir::failure();
38 const llvm::abi::TargetInfo &getTargetInfo(cir::FuncOp)
override;
41 std::unique_ptr<llvm::abi::TargetInfo> target;
44const llvm::abi::TargetInfo &AMDGPUABIClassifier::getTargetInfo(cir::FuncOp) {
47 auto langOpts = modOp->getAttrOfType<cir::LoweringOptionsAttr>(
48 cir::CIRDialect::getLoweringOptionsAttrName());
49 target = llvm::abi::createAMDGPUTargetInfo(
50 typeMapper.getTypeBuilder(),
51 langOpts && langOpts.getHip());
58std::unique_ptr<CIRABIClassifier>
60 mlir::ModuleOp modOp) {
61 return std::make_unique<AMDGPUABIClassifier>(dl, modOp);
Classifies through the LLVM ABI Lowering Library.
std::unique_ptr< CIRABIClassifier > createAMDGPUABIClassifier(const mlir::DataLayout &dl, mlir::ModuleOp modOp)
The AMDGPU classifier.