MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
flags.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5#include "mim/config.h"
6
7namespace mim {
8
9/// Compiler switches that must be saved and looked up in later phases of compilation.
10/// @see @ref cli
11struct Flags {
12 /// How (if at all) to report Phase runtimes; @see Profiler.
13 enum class Profile {
14 None, ///< No profiling.
15 Summary, ///< Flat table aggregated by Phase name.
16 Tree, ///< Indented tree preserving the order in which Phase%es ran.
17 Trace, ///< chrome://tracing compatible output.
18 };
19
20 uint64_t scalarize_threshold = 32;
21 uint32_t max_fp_iters = 1024; // max number of fixed-point iterations before a Phase errors out
22
23 bool ascii = false;
24 bool dump_recursive = false;
25 bool bootstrap = false;
26 bool force_load = false;
27 Profile profile = Profile::None; // how to report Phase runtimes
28 bool aggressive_lam_spec = false; // HACK makes LamSpec more agressive but potentially non-terminating
29#ifdef MIM_ENABLE_CHECKS
30 bool reeval_breakpoints = false;
31 bool trace_gids = false;
32 bool break_on_error = false;
33 bool break_on_warn = false;
34 bool break_on_alpha = false;
35#endif
36};
37
38} // namespace mim
Definition ast.h:14
Compiler switches that must be saved and looked up in later phases of compilation.
Definition flags.h:11
uint64_t scalarize_threshold
Definition flags.h:20
bool trace_gids
Definition flags.h:31
bool break_on_error
Definition flags.h:32
Profile
How (if at all) to report Phase runtimes;.
Definition flags.h:13
@ Summary
Flat table aggregated by Phase name.
Definition flags.h:15
@ Tree
Indented tree preserving the order in which Phasees ran.
Definition flags.h:16
@ None
No profiling.
Definition flags.h:14
@ Trace
chrome://tracing compatible output.
Definition flags.h:17
bool aggressive_lam_spec
Definition flags.h:28
bool reeval_breakpoints
Definition flags.h:30
bool bootstrap
Definition flags.h:25
bool ascii
Definition flags.h:23
uint32_t max_fp_iters
Definition flags.h:21
bool force_load
Definition flags.h:26
bool break_on_warn
Definition flags.h:33
bool break_on_alpha
Definition flags.h:34
Profile profile
Definition flags.h:27
bool dump_recursive
Definition flags.h:24