CIRCT 22.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
LowerArcToLLVM.cpp File Reference
#include "circt/Conversion/ArcToLLVM.h"
#include "circt/Conversion/CombToArith.h"
#include "circt/Conversion/CombToLLVM.h"
#include "circt/Conversion/HWToLLVM.h"
#include "circt/Dialect/Arc/ArcOps.h"
#include "circt/Dialect/Arc/ModelInfo.h"
#include "circt/Dialect/Arc/Runtime/Common.h"
#include "circt/Dialect/Arc/Runtime/FmtDescriptor.h"
#include "circt/Dialect/Arc/Runtime/JITBind.h"
#include "circt/Dialect/Arc/Runtime/TraceTaps.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/Seq/SeqOps.h"
#include "circt/Dialect/Sim/SimOps.h"
#include "circt/Support/ConversionPatternSet.h"
#include "circt/Support/Namespace.h"
#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"
#include "mlir/Conversion/LLVMCommon/TypeConverter.h"
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/Index/IR/IndexOps.h"
#include "mlir/Dialect/LLVMIR/FunctionCallUtils.h"
#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/FormatVariadic.h"
#include <cstddef>
#include "circt/Conversion/Passes.h.inc"
Include dependency graph for LowerArcToLLVM.cpp:

Go to the source code of this file.

Classes

struct  RuntimeModelOpLowering
 

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 

Macros

#define DEBUG_TYPE   "lower-arc-to-llvm"
 
#define GEN_PASS_DEF_LOWERARCTOLLVM
 

Functions

static llvm::Twine evalSymbolFromModelName (StringRef modelName)
 
static LogicalResult convert (arc::ExecuteOp op, arc::ExecuteOp::Adaptor adaptor, ConversionPatternRewriter &rewriter, const TypeConverter &converter)
 
template<typename T , typename = std::enable_if_t<std::is_integral<T>::value>>
static LLVM::GlobalOp buildGlobalConstantIntArray (OpBuilder &builder, Location loc, Twine symName, SmallVectorImpl< T > &data, unsigned alignment=alignof(T))
 
template<typename T >
static LLVM::GlobalOp buildGlobalConstantRuntimeStructArray (OpBuilder &builder, Location loc, Twine symName, SmallVectorImpl< T > &array)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "lower-arc-to-llvm"

Definition at line 46 of file LowerArcToLLVM.cpp.

◆ GEN_PASS_DEF_LOWERARCTOLLVM

#define GEN_PASS_DEF_LOWERARCTOLLVM

Definition at line 49 of file LowerArcToLLVM.cpp.

Function Documentation

◆ buildGlobalConstantIntArray()

template<typename T , typename = std::enable_if_t<std::is_integral<T>::value>>
static LLVM::GlobalOp buildGlobalConstantIntArray ( OpBuilder &  builder,
Location  loc,
Twine  symName,
SmallVectorImpl< T > &  data,
unsigned  alignment = alignof(T) 
)
static

Definition at line 959 of file LowerArcToLLVM.cpp.

Referenced by RuntimeModelOpLowering::buildTraceInfoStruct().

◆ buildGlobalConstantRuntimeStructArray()

template<typename T >
static LLVM::GlobalOp buildGlobalConstantRuntimeStructArray ( OpBuilder &  builder,
Location  loc,
Twine  symName,
SmallVectorImpl< T > &  array 
)
static

Definition at line 977 of file LowerArcToLLVM.cpp.

References assert().

Referenced by RuntimeModelOpLowering::buildTraceInfoStruct().

◆ convert()

static LogicalResult convert ( arc::ExecuteOp  op,
arc::ExecuteOp::Adaptor  adaptor,
ConversionPatternRewriter &  rewriter,
const TypeConverter &  converter 
)
static

◆ evalSymbolFromModelName()

static llvm::Twine evalSymbolFromModelName ( StringRef  modelName)
static

Definition at line 63 of file LowerArcToLLVM.cpp.