pub mod arch_legality;
pub mod bank_conflict;
pub mod constant_folding;
pub mod dead_code;
pub mod instruction_scheduling;
pub mod kernel_fusion;
pub mod register_pressure;
pub mod strength_reduction;
pub use arch_legality::{LegalityReport, LegalityViolation, check_instruction_legality};
pub use bank_conflict::{BankConflict, BankConflictReport, analyze_bank_conflicts};
pub use constant_folding::{
ConstantFoldingReport, fold_constant_branches, fold_constants, fold_constants_report,
};
pub use dead_code::eliminate_dead_code;
pub use instruction_scheduling::{SchedulingReport, SchedulingStrategy, schedule_instructions};
pub use kernel_fusion::{
AccessPattern, DataDependency, FusionAnalysis, FusionCandidate, FusionConstraint, FusionPlan,
FusionReport, FusionType, plan_fusion,
};
pub use register_pressure::{RegisterPressureReport, analyze_register_pressure};
pub use strength_reduction::{StrengthReductionReport, reduce_strength, reduce_strength_report};