clang 24.0.0git
CIRABIClassifier.h File Reference
#include "mlir/ABI/ABIRewriteContext.h"
#include "mlir/ABI/ABITypeMapper.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/Interfaces/DataLayoutInterfaces.h"
#include "clang/CIR/Dialect/IR/CIRDialect.h"
#include "clang/CIR/Dialect/Passes.h"
#include "llvm/ABI/FunctionInfo.h"
#include "llvm/ABI/TargetInfo.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/CallingConv.h"
#include <memory>
#include <optional>

Go to the source code of this file.

Classes

struct  cir::ABIClassifierOptions
 The target-specific settings a classifier needs beyond what it can read from the module. More...
class  cir::CIRABIClassifier
 Produces the classification CallConvLowering rewrites a signature from. More...
class  cir::CIRABIClassifierCommon
 Classifies through the LLVM ABI Lowering Library. More...

Namespaces

namespace  cir

Functions

std::unique_ptr< CIRABIClassifier > cir::createTestTargetABIClassifier (const mlir::DataLayout &dl)
 The MLIR test ABI target's classifier, whose predictable rules approximate x86_64 SysV.
std::unique_ptr< CIRABIClassifier > cir::createInjectedABIClassifier (const mlir::DataLayout &dl, llvm::StringRef attrName)
 A classifier that reads each function's classification from the DictionaryAttr named attrName.
std::unique_ptr< CIRABIClassifier > cir::createX86_64ABIClassifier (const mlir::DataLayout &dl, mlir::ModuleOp modOp, const ABIClassifierOptions &options)
 The x86_64 System V classifier.
std::unique_ptr< CIRABIClassifier > cir::createAMDGPUABIClassifier (const mlir::DataLayout &dl, mlir::ModuleOp modOp)
 The AMDGPU classifier.
llvm::CallingConv::ID cir::convertCallingConv (cir::CallingConv cc)
 Map a CIR calling convention to the llvm::CallingConv the ABI classifier uses.
std::optional< mlir::abi::FunctionClassification > cir::withReturnVoidness (std::optional< mlir::abi::FunctionClassification > fc, mlir::Type returnType)
 Record on fc whether returnType is CIR's void.
std::optional< mlir::abi::FunctionClassification > cir::classifyFunction (cir::FuncOp func, const mlir::DataLayout &dl, cir::CallConvTarget target, llvm::StringRef classificationAttrName)
 Classify func with the test target, or from the attribute named classificationAttrName when that is non-empty.
llvm::abi::RequiredArgs cir::requiredArgs (cir::FuncType fnTy)
 Where fnTy's declared parameters end and its ellipsis arguments begin.
llvm::abi::X86AVXABILevel cir::funcAvxLevel (cir::FuncOp func, llvm::abi::X86AVXABILevel base)
 The AVX level to classify func at: base, raised if the function's own recorded feature list enables a wider vector.