lib.rs
1 // Copyright (C) 2019-2025 ADnet Contributors 2 // This file is part of the ADL library. 3 4 // The ADL library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 9 // The ADL library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 14 // You should have received a copy of the GNU General Public License 15 // along with the ADL library. If not, see <https://www.gnu.org/licenses/>. 16 17 #![forbid(unsafe_code)] 18 #![doc = include_str!("../README.md")] 19 20 mod static_analysis; 21 pub use static_analysis::*; 22 23 mod code_generation; 24 pub use code_generation::*; 25 26 mod common; 27 pub use common::*; 28 29 mod common_subexpression_elimination; 30 pub use common_subexpression_elimination::*; 31 32 mod const_propagation; 33 pub use const_propagation::*; 34 35 mod const_prop_unroll_and_morphing; 36 pub use const_prop_unroll_and_morphing::*; 37 38 mod dead_code_elimination; 39 pub use dead_code_elimination::*; 40 41 mod destructuring; 42 pub use destructuring::*; 43 44 mod disambiguate; 45 pub use disambiguate::*; 46 47 mod flattening; 48 pub use flattening::*; 49 50 mod function_inlining; 51 pub use function_inlining::*; 52 53 mod loop_unrolling; 54 pub use loop_unrolling::*; 55 56 mod monomorphization; 57 pub use monomorphization::*; 58 59 mod option_lowering; 60 pub use option_lowering::*; 61 62 mod path_resolution; 63 pub use path_resolution::*; 64 65 mod pass; 66 pub use pass::*; 67 68 mod processing_async; 69 pub use processing_async::*; 70 71 mod processing_script; 72 pub use processing_script::*; 73 74 mod remove_unreachable; 75 pub use remove_unreachable::*; 76 77 mod static_single_assignment; 78 pub use static_single_assignment::*; 79 80 mod ssa_const_propagation; 81 pub use ssa_const_propagation::*; 82 83 mod storage_lowering; 84 pub use storage_lowering::*; 85 86 mod symbol_table_creation; 87 pub use symbol_table_creation::*; 88 89 mod type_checking; 90 pub use type_checking::*; 91 92 mod name_validation; 93 pub use name_validation::*; 94 95 mod write_transforming; 96 pub use write_transforming::*; 97 98 #[cfg(test)] 99 mod test_passes;