/ compiler / passes / src / lib.rs
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;