1#![no_std]
2
3pub extern crate alloc;
4extern crate std;
5
6extern 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;