LLVM 20.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
VFABIDemangler.h File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/Support/Alignment.h"
#include "llvm/Support/TypeSize.h"

Go to the source code of this file.

Classes

struct  llvm::VFParameter
 Encapsulates information needed to describe a parameter. More...
 
struct  llvm::VFShape
 Contains the information about the kind of vectorization available. More...
 
struct  llvm::VFInfo
 Holds the VFShape for a specific scalar to vector function mapping. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::VFABI
 

Enumerations

enum class  llvm::VFParamKind {
  llvm::Vector , llvm::OMP_Linear , llvm::OMP_LinearRef , llvm::OMP_LinearVal ,
  llvm::OMP_LinearUVal , llvm::OMP_LinearPos , llvm::OMP_LinearValPos , llvm::OMP_LinearRefPos ,
  llvm::OMP_LinearUValPos , llvm::OMP_Uniform , llvm::GlobalPredicate , llvm::Unknown
}
 Describes the type of Parameters. More...
 
enum class  llvm::VFISAKind {
  llvm::AdvancedSIMD , llvm::SVE , llvm::RVV , llvm::SSE ,
  llvm::AVX , llvm::AVX2 , llvm::AVX512 , llvm::LLVM ,
  llvm::Unknown
}
 Describes the type of Instruction Set Architecture. More...
 

Functions

std::optional< VFInfollvm::VFABI::tryDemangleForVFABI (StringRef MangledName, const FunctionType *FTy)
 Function to construct a VFInfo out of a mangled names in the following format:
 
VFParamKind llvm::VFABI::getVFParamKindFromString (const StringRef Token)
 Retrieve the VFParamKind from a string token.
 
void llvm::VFABI::getVectorVariantNames (const CallInst &CI, SmallVectorImpl< std::string > &VariantMappings)
 Populates a set of strings representing the Vector Function ABI variants associated to the CallInst CI.
 
FunctionTypellvm::VFABI::createFunctionType (const VFInfo &Info, const FunctionType *ScalarFTy)
 Constructs a FunctionType by applying vector function information to the type of a matching scalar function.
 
void llvm::VFABI::setVectorVariantNames (CallInst *CI, ArrayRef< std::string > VariantMappings)
 Overwrite the Vector Function ABI variants attribute with the names provide in VariantMappings.
 

Variables

static constexpr char constllvm::VFABI::_LLVM_ = "_LLVM_"
 LLVM Internal VFABI ISA token for vector functions.
 
static constexpr char constllvm::VFABI::_LLVM_Scalarize_ = "_LLVM_Scalarize_"
 Prefix for internal name redirection for vector function that tells the compiler to scalarize the call using the scalar name of the function.
 
static constexpr char constllvm::VFABI::MappingsAttrName = "vector-function-abi-variant"