Skip to main content

t4a_cubecl_ir/
lib.rs

1#![no_std]
2
3pub extern crate alloc;
4extern crate std;
5
6// So `#[derive(EnumSetType)]` resolves `::cubecl_ir::` inside this crate as well as out.
7extern crate self as cubecl_ir;
8
9pub mod features;
10
11mod address;
12mod enum_set;
13mod properties;
14mod runtime_properties;
15mod scope;
16mod r#type;
17mod type_hash;
18mod value;
19
20#[cfg(feature = "spirv")]
21mod spirv;
22
23#[cfg(feature = "amd")]
24pub mod amd;
25pub mod apfloat;
26pub mod arena;
27pub mod attributes;
28pub mod convert;
29pub mod dialect;
30pub mod interfaces;
31pub mod metadata;
32#[cfg(feature = "nvidia")]
33pub mod nvidia;
34pub mod rewrite;
35pub mod settings;
36pub mod types;
37
38pub use address::*;
39pub use enum_set::*;
40pub use properties::*;
41pub use runtime_properties::*;
42pub use scope::*;
43pub use r#type::*;
44pub use value::*;
45
46pub use cubecl_macros_internal::EnumSetType;
47pub(crate) use cubecl_macros_internal::TypeHash;
48pub use type_hash::TypeHash;
49
50pub mod prelude {
51    pub use crate::{
52        ContextExt, dialect::OperationPtrExt, rewrite::*, scope::FuncOpExt, verify_op_succ,
53        verify_ty_succ,
54    };
55    pub use alloc::{vec, vec::Vec};
56    pub use cubecl_macros_internal::{cube_op, op_traits, pass_name};
57    pub use pliron::derive::derive_op_interface_impl as op_interfaces;
58    pub use pliron::{
59        attribute::AttributeDict,
60        builtin::{attributes::TypeAttr, op_interfaces::*, type_interfaces::*},
61        common_traits::Verify,
62        context::{Context, Ptr},
63        derive::*,
64        graph::walkers::{
65            IRNode, WALKCONFIG_POSTORDER_FORWARD, WALKCONFIG_POSTORDER_REVERSE,
66            WALKCONFIG_PREORDER_FORWARD, WALKCONFIG_PREORDER_REVERSE,
67        },
68        irbuild::{
69            IRStatus,
70            dialect_conversion::{DialectConversion, DialectConversionRewriter, OperandsInfo},
71            inserter::Inserter,
72            listener::Recorder,
73            match_rewrite::{MatchRewrite, MatchRewriter},
74            rewriter::{IRRewriter, Rewriter},
75        },
76        location::Located,
77        op::{Op, op_cast, op_impls},
78        operation::Operation,
79        pass::*,
80        result::Result,
81        r#type::{Type, TypeHandle, Typed, TypedHandle, type_cast, type_impls},
82        value::{Use, Value},
83    };
84    pub type PassRewriter = pliron::irbuild::rewriter::IRRewriter<Recorder>;
85}
86
87pub use crate::rewrite::NamedRewrite;
88pub use cubecl_macros_internal::{NamedRewrite, cube_op};
89
90pub use pliron;