pub use crate::{
shared::{
intrinsic::{call_op, i32_const_op, i32_ty},
lowering::TargetLowering,
metadata::EntryArgLayout,
polyfill::LowerOp,
shared_memory::SharedDeclarations,
to_llvm::{
CubeToLLVMType, ToLLVMDialect,
constant::{
I32_WIDTH, constant_op, convert_attr, float_attr, insert_bool_const,
insert_i32_const, insert_int_const, int_attr,
},
insert::insert,
ty::{
GEP_INDEX_WIDTH, cube_type_to_llvm, index_width, llvm_mangled_ty, scalar_alignment,
type_alignment,
},
vector::insert_splat,
},
},
target::{CtxTarget, LlvmTarget},
};
pub use cubecl_core as cubecl;
pub use cubecl_core::ir::{
AddressSpace, Builtin, NamedRewrite, OpInserter, Scope,
attributes::{BufferIOAttr, EntrypointInterface, FuncInterface, IndexAttr, ZeroAttr},
interfaces::{
AlignedType, MaterializableOp, ScalarType, ScalarizableType, SizedType, TypedExt,
},
prelude::*,
settings::Dim3,
types::{
ArrayType as CubeArrayType, PointerType as CubePointerType, VectorType as CubeVectorType,
scalar::{BoolType, IndexType},
},
};
pub use pliron::{
attribute::AttrObj,
basic_block::BasicBlock,
builtin::{
attributes::{FPDoubleAttr, FPHalfAttr, FPSingleAttr, IntegerAttr},
ops::{ConstantOp, FuncOp, ModuleOp},
types::{FP16Type, FP32Type, FP64Type, FunctionType, IntegerType, Signedness},
},
identifier::Identifier,
input_err,
irbuild::inserter::{BlockInsertionPoint, OpInsertionPoint},
printable::Printable,
symbol_table::SymbolTableCollection,
utils::apint::{APInt, bw},
};
pub use pliron_llvm::{
attributes::{
AtomicOrderingAttr, AtomicRmwKindAttr, FCmpPredicateAttr, FastmathFlags, FastmathFlagsAttr,
ICmpPredicateAttr, IntegerOverflowFlagsAttr, LinkageAttr, SyncScopeAttr,
},
op_interfaces::{
AlignableOpInterface, BinArithOp, CastOpInterface, CastOpWithNNegInterface, FastMathFlags,
FloatBinArithOpWithFastMathFlags, IntBinArithOpWithOverflowFlag,
},
ops as llvm,
types::{
ArrayType as LlvmArrayType, FuncType, PointerType as LlvmPointerType,
VectorType as LlvmVectorType, VectorTypeKind, VoidType,
},
};
pub use thiserror::Error;