@@ -101,8 +101,12 @@ int Flay::mainImpl(const CompilerResult &compilerResult) {
101
101
const auto &flayOptions = FlayOptions::get ();
102
102
103
103
// If we write to the optimized program to file, also dump the program after the midend.
104
- if (FlayOptions::get ().optimizedOutputDir () != std::nullopt ) {
105
- auto midendOutputFile = FlayOptions::get ().optimizedOutputDir ().value () / " midend.p4" ;
104
+ auto optimizedOutputDir = flayOptions.optimizedOutputDir ();
105
+ if (optimizedOutputDir != std::nullopt ) {
106
+ if (!std::filesystem::exists (optimizedOutputDir.value ())) {
107
+ std::filesystem::create_directory (optimizedOutputDir.value ());
108
+ }
109
+ auto midendOutputFile = optimizedOutputDir.value () / " midend.p4" ;
106
110
std::ofstream output (midendOutputFile);
107
111
if (!output.is_open ()) {
108
112
::error (" Could not open file %1% for writing." , midendOutputFile.c_str());
@@ -189,6 +193,14 @@ std::optional<std::vector<AnalysisStatistics *>> optimizeProgramImpl(
189
193
return std::nullopt ;
190
194
}
191
195
196
+ // If we write to the optimized program to file, also dump the program after the midend.
197
+ auto optimizedOutputDir = flayOptions.optimizedOutputDir ();
198
+ if (optimizedOutputDir != std::nullopt ) {
199
+ if (!std::filesystem::exists (optimizedOutputDir.value ())) {
200
+ std::filesystem::create_directory (optimizedOutputDir.value ());
201
+ }
202
+ }
203
+
192
204
PartialEvaluationOptions partialEvaluationOptions;
193
205
IncrementalAnalysisMap incrementalAnalysisMap;
194
206
auto [result, inserted] = incrementalAnalysisMap.emplace (
0 commit comments