cubecl-llvm 0.11.0-pre.4

LLVM compiler for CubeCL
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;