LLUBI(1)
LLUBI(1) ๐ โจ
This is the LLVM manual page for llubi, the UB-aware interpreter, and weโre doing it in group-chat voice because you deserve to actually get it. ๐ซถ
๐ธ NAME ๐ธ
llubi โ LLVM UB-aware Interpreter.
โจ SYNOPSIS โจ
llubi [options] [filename] [program args]
๐ฆ DESCRIPTION ๐ฆ
Okay so llubi directly executes programs in LLVM bitcode format and tracks values in LLVM IR semantics. Unlike lli, llubi is designed to be aware of undefined behaviors during execution. It detects immediate undefined behaviors such as integer division by zero, and it respects poison generating flags like nsw and nuw. Because it captures most of the guardable undefined behaviors, it is highly suitable for constructing an interesting-ness test for miscompilation bugs. No cap, thatโs the whole point. ๐ฅ
If filename is not specified, then llubi reads the LLVM bitcode for the program from standard input. ๐ซถ
The optional args specified on the command line are passed to the program as arguments. Periodt. ๐
๐ GENERAL OPTIONS ๐
-fake-argv0=executableโ Override theargv[0]value passed into the executing program. ๐-entry-function=functionโ Specify the name of the function to execute as the programโs entry point. By default,llubiuses the function namedmain. ๐-helpโ Print a summary of command line options. ๐ธ-verboseโ Print results for each instruction executed. ๐-versionโ Print out the version ofllubiand exit without doing anything else. โจ
๐ง INTERPRETER OPTIONS ๐ง
-max-mem=Nโ Limit the amount of memory (in bytes) that can be allocated by the program, including stack, heap, and global variables. If the limit is exceeded, execution will be terminated. By default, there is no limit (N = 0). ๐พ-max-stack-depth=Nโ Limit the maximum stack depth to N. If the limit is exceeded, execution will be terminated. The default limit is256. Set N to0to disable the limit. ๐ฅ-max-steps=Nโ Limit the number of instructions executed to N. If the limit is reached, execution will be terminated. By default, there is no limit (N = 0). ๐-vscale=Nโ Set the value ofllvm.vscaleto N. The default value is4. ๐-seed=Nโ Set the seed for random number generator to N. By default, the seed is0. ๐ฒ-undef-behavior=modeโ Set the behavior for undefined values (e.g., load from uninitialized memory or freeze a poison value). The options for mode are:nondetโ Each load from the same uninitialized byte yields a freshly random value. This is the default behavior. ๐zeroโ Uninitialized values are treated as zero. 0๏ธโฃ
-nan-behavior=modeโ Set the behavior for payload preserving behavior of floating-point NaN values. The options for mode are:nondetโ The actual behavior is randomly chosen from the modes below. This is the default behavior. ๐ฐpreferredโ The quiet bit is set and the payload is all-zero. ๐งquietingโ The quiet bit is set and the payload is copied from any input operand that is a NaN. ๐คซunchangedโ The quiet bit and payload are copied from any input operand that is a NaN. ๐ชtarget-specificโ The quiet bit is set and the payload is picked from a known target-specific set of extra possible NaN payloads. ๐ฏ
-deterministicโ Disable interpreter-introduced non-determinism (off by default). This option implies-undef-behavior=zeroand-nan-behavior=preferred. ๐-fuse-fmuladdโ Treatllvm.fmuladd.*asllvm.fma.*. It is the default behavior. Otherwise, it is expanded intoa * b + c. ๐งฎ-disable-verifyโ Disable the validation of the input LLVM IR. The user is responsible for the validity of inputs. The verifier is executed by default.
Bestie, -disable-verify is a โyou break it, you own itโ situation: the user is responsible for the validity of inputs. The verifier is executed by default. โ ๏ธ
๐ EXIT STATUS ๐
If llubi fails to load the program, or an error occurs during execution (e.g., an immediate undefined behavior is triggered), it will exit with an exit code of 1. If the return type of entry function is not an integer type, it will return 0. Otherwise, it will return the exit code of the program. ๐โจ
๐ Author ๐
Maintained by the LLVM Team (https://llvm.org/). ๐ซถ
๐ Copyright ๐
2003-2026, LLVM Project ๐
LLVM 23 ยท 2026-10-20 ยท LLUBI(1) โ thatโs the page, bestie; go run some bitcode ๐
โจ
๐ฆ where this page comes from
- arch rolling: llvm 23.1.4-1 ยท Apache-2.0 WITH LLVM-exception
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms