OVERVIEW: GenMC -- Model Checking for C programs USAGE: genmc [options] -- [compiler flags] OPTIONS: Debugging Options: --estimation-max= - Number of maximum allotted rounds for state-space estimation --estimation-min= - Number of minimum alloted round for state-space estimation --estimation-threshold= - Deviation threshold % under which estimation is deemed good enough --extra-input= - Build this file seperately and link the result into the build --max-hint-size= - Limit the number of edges in hints to be considered (for debugging) --output-llvm-after= - Output the LLVM code to file after applying transformations --output-llvm-before= - Output the LLVM code to file before applying transformations --print-blocked-execs - Print blocked execution graphs --print-exec-graphs - Print explored execution graphs --print-schedule-seed - Print the seed used for arbitrary scheduling --program-entry-function= - Function used as program entrypoint (default: main()) --schedule-policy= - Choose the scheduling policy: =ltr - Left-to-right =wf - Writes-first (default) =wfr - Writes-first-random =arbitrary - Arbitrary --schedule-seed= - Seed to be used for arbitrary scheduling --skip-genmc-std-build - Don't build the genmc-std crate while verifying .rs files if a build is already present Choose verbosity level: --v0 - Quiet (no logging) --v1 - Print errors only --v2 - Print warnings --v3 - Print tips (default) --warn-on-graph-size= - Warn about graphs larger than N Exploration Options: Choose model type: --sc - SC memory model --tso - TSO memory model --ra - RA+RLX memory model --rc11 - RC11 memory model (default) --imm - IMM memory model --arm8 - ARMv8 memory model --bound= - Do not explore executions exceeding given bound --bound-type= - Choose type for -bound: =context - Context bound =round - Round-robin bound --cache-instructions - Cache instructions for efficiency (non-stateless exploration) --check-lin-spec= - Check implementation refinement of specification file --check-liveness - Check for liveness violations --collect-lin-spec= - Collect linearizability specification into a file --confirmation - Enable confirmation pattern optimization --disable-bam - Disable optimized barrier handling (BAM) --disable-estimation - Do not estimate the state-space size before verifying the program --disable-final-write - Disable final write optimization --disable-helper - Disable helping pattern optimization --disable-ipr - Disable in-place revisiting --disable-race-detection - Disable race detection --disable-sr - Disable symmetry reduction --disable-stop-on-system-error - Do not stop verification on system errors --disable-warn-on-unfreed-memory - Do not warn about unfreed memory --dot-print-only-client-events - Omit library events in the DOT file --dump-error-graph= - Dump an error graph to a file (DOT format) --lapor - Enable Lock-Aware Partial Order Reduction (LAPOR) --max-graph-size= - Prune the graph past this many events in --mode=random (default: never prune) --mode= - Choose exploration mode: =verify - Exhaustive exploration (default) =random - Randomized exploration =estimate - State-space size estimation only --nthreads= - Number of threads to be used in the exploration --print-error-trace - Print error trace --random-budget= - Number of executions to sample in --mode=random Generic Options: --help - Display available options (--help-hidden for more) --help-list - Display list of available options (--help-list-hidden for more) --version - Display the version of this program Transformation Options: --disable-assume-propagation - Disable assume-propagation transformation --disable-cast-elimination - Disable cast-elimination transformation --disable-code-condenser - Disable code-condenser transformation --disable-function-inliner - Disable function-inlining transformation --disable-load-annotation - Disable load-annotation transformation --disable-loop-jump-threading - Disable loop-jump-threading transformation --disable-mm-detector - Disable MM detector pass --disable-spin-assume - Disable spin-assume transformation --no-unroll= - Do not unroll this function --unroll= - Unroll loops N times