MLIR  19.0.0git
Functions
VCIXToLLVMIRTranslation.cpp File Reference
#include "mlir/Target/LLVMIR/Dialect/VCIX/VCIXToLLVMIRTranslation.h"
#include "mlir/Dialect/LLVMIR/VCIXDialect.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Operation.h"
#include "mlir/Target/LLVMIR/ModuleTranslation.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicsRISCV.h"
#include "llvm/Support/raw_ostream.h"
#include "mlir/Dialect/LLVMIR/VCIXConversions.inc"

Go to the source code of this file.

Functions

static llvm::Type * getXlenType (Attribute opcodeAttr, LLVM::ModuleTranslation &moduleTranslation)
 Infer XLen type from opcode's type. More...
 
static llvm::Value * createVL (llvm::IRBuilderBase &builder, llvm::Value *vl, VectorType vtype, llvm::Type *xlen, Location loc, LLVM::ModuleTranslation &moduleTranslation)
 Return VL for VCIX intrinsic. More...
 

Function Documentation

◆ createVL()

static llvm::Value* createVL ( llvm::IRBuilderBase &  builder,
llvm::Value *  vl,
VectorType  vtype,
llvm::Type *  xlen,
Location  loc,
LLVM::ModuleTranslation moduleTranslation 
)
static

Return VL for VCIX intrinsic.

If vl was previously set, return it, otherwise construct a constant using fixed vector type.

Definition at line 39 of file VCIXToLLVMIRTranslation.cpp.

References mlir::get(), mlir::LLVM::ModuleTranslation::getContext(), and mlir::LLVM::detail::getLLVMConstant().

◆ getXlenType()

static llvm::Type* getXlenType ( Attribute  opcodeAttr,
LLVM::ModuleTranslation moduleTranslation 
)
static

Infer XLen type from opcode's type.

This is done to avoid passing target option around.

Definition at line 30 of file VCIXToLLVMIRTranslation.cpp.

References mlir::LLVM::ModuleTranslation::getLLVMContext().