@@ -102,20 +102,20 @@ ut::suite<"Compiler"> compiler_suite = [] {
102102 });
103103 };
104104
105- " IR generation and optimization " _test = [] {
105+ " IR generation and optimisation " _test = [] {
106106 constexpr uint16_t features = featuresNoOpti | Ark::FeatureIROptimiser;
107107
108108 iterTestFiles (
109- " CompilerSuite/optimized_ir " ,
109+ " CompilerSuite/optimised_ir " ,
110110 [](TestData&& data) {
111111 Ark::Welder welder (0 , { lib_path }, features);
112112
113- should (" compile without error optimized_ir /" + data.stem ) = [&] {
113+ should (" compile without error optimised_ir /" + data.stem ) = [&] {
114114 expect (mut (welder).computeASTFromFile (data.path ));
115115 expect (mut (welder).generateBytecode ());
116116 };
117117
118- should (" output expected optimized IR for " + data.stem ) = [&] {
118+ should (" output expected optimised IR for " + data.stem ) = [&] {
119119 std::string ir = welder.textualIR ();
120120
121121 Ark::Utils::ltrim (Ark::Utils::rtrim (ir));
@@ -148,7 +148,29 @@ ut::suite<"Compiler"> compiler_suite = [] {
148148 updateExpectedFile (data, ir);
149149 };
150150 });
151+ };
152+
153+ " IR generation, inlining and optimisation" _test = [] {
154+ constexpr uint16_t features = featuresNoOpti | Ark::FeatureIRInliner | Ark::FeatureASTOptimiser;
155+
156+ iterTestFiles (
157+ " CompilerSuite/inlined_optimised_ir" ,
158+ [](TestData&& data) {
159+ Ark::Welder welder (0 , { lib_path }, features);
160+
161+ should (" compile without error inlined_optimised_ir/" + data.stem ) = [&] {
162+ expect (mut (welder).computeASTFromFile (data.path ));
163+ expect (mut (welder).generateBytecode ());
164+ };
151165
152- // todo: ir inliner
166+ should (" output expected inlined IR for " + data.stem ) = [&] {
167+ std::string ir = welder.textualIR ();
168+
169+ Ark::Utils::ltrim (Ark::Utils::rtrim (ir));
170+ expectOrDiff (data.expected , ir);
171+ if (shouldWriteNewDiffsTofile () && data.expected != ir)
172+ updateExpectedFile (data, ir);
173+ };
174+ });
153175 };
154176};
0 commit comments