31class CompilerOptions :
public ParserOptions {
36 explicit CompilerOptions(std::string_view defaultMessage =
"Compile a P4 program");
40 bool excludeFrontendPasses =
false;
41 bool listFrontendPasses =
false;
44 bool excludeMidendPasses =
false;
45 bool listMidendPasses =
false;
48 bool excludeBackendPasses =
false;
51 std::vector<cstring> passesToExcludeFrontend;
54 std::vector<cstring> passesToExcludeMidend;
57 std::vector<cstring> passesToExcludeBackend;
59 std::filesystem::path dumpJsonFile;
61 bool debugJson =
false;
65 cstring p4RuntimeFile =
nullptr;
68 cstring p4RuntimeEntriesFile =
nullptr;
70 cstring p4RuntimeFiles =
nullptr;
73 cstring p4RuntimeEntriesFiles =
nullptr;
77 std::filesystem::path prettyPrintFile;
83 bool loopsUnrolling =
false;
87 std::set<cstring> selectedMetrics;
90 int optimizationLevel = 1;
91 bool optimizeDebug =
false;
92 bool optimizeSize =
false;
94 virtual bool enable_intrinsic_metadata_fix();
100 if (p4RuntimeFile.isNullOrEmpty() && p4RuntimeFiles.isNullOrEmpty() &&
101 p4RuntimeEntriesFile.isNullOrEmpty() && p4RuntimeEntriesFiles.isNullOrEmpty()) {
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24