14#ifndef LLVM_CLANG_LIB_CIR_TARGETINFO_H
15#define LLVM_CLANG_LIB_CIR_TARGETINFO_H
19#include "mlir/Dialect/Ptr/IR/MemorySpaceInterfaces.h"
42 std::unique_ptr<ABIInfo> info;
54 return cir::LangAddressSpaceAttr::get(&info->cgt.getMLIRContext(),
55 cir::LangAddressSpace::Default);
103 mlir::Type ty)
const {
113 llvm::StringRef constraint,
114 mlir::Type ty)
const {
Provides definitions for the various language-specific address spaces.
virtual ~TargetCIRGenInfo()=default
virtual mlir::Type adjustInlineAsmType(CIRGenFunction &cgf, llvm::StringRef constraint, mlir::Type ty) const
Corrects the MLIR type for a given constraint and "usual" type.
const ABIInfo & getABIInfo() const
Returns ABI info helper for the target.
TargetCIRGenInfo(std::unique_ptr< ABIInfo > info)
virtual bool isScalarizableAsmOperand(CIRGenFunction &cgf, mlir::Type ty) const
virtual bool isNoProtoCallVariadic(const FunctionNoProtoType *fnType) const
Determine whether a call to an unprototyped functions under the given calling convention should use t...
virtual mlir::ptr::MemorySpaceAttrInterface getCIRAllocaAddressSpace() const
Get the address space for alloca.
Represents a K&R-style 'int foo()' function, which has no information available about its arguments.
std::unique_ptr< TargetCIRGenInfo > createNVPTXTargetCIRGenInfo(CIRGenTypes &cgt)
std::unique_ptr< TargetCIRGenInfo > createX8664TargetCIRGenInfo(CIRGenTypes &cgt)
bool isEmptyFieldForLayout(const ASTContext &context, const FieldDecl *fd)
isEmptyFieldForLayout - Return true if the field is "empty", that is, either a zero-width bit-field o...
bool isEmptyRecordForLayout(const ASTContext &context, QualType t)
isEmptyRecordForLayout - Return true if a structure contains only empty base classes (per isEmptyReco...