Settings Options
Here are the setting options for the compiler tools:
Compiler Settings
Settings |
Description |
---|---|
Compiler.Platform |
Platform x86, x64, ARM32, ARM64 |
Compiler.BaseAddress |
Base address of the compiled application |
Compiler.InitialStackAddress |
Intial stack’s starting address (note the stack grows in the downward direction). |
Compiler.TraceLevel |
Trace level for debugging |
Compiler.MethodScanner |
If true, enable the experimental method scanner |
Compiler.Multithreading |
If true, enables multithreading during compiling process |
Compiler.Multithreading.MaxThreads |
Maximum number of threads used by the compiler |
Compiler.Binary |
If true, emits object file, otherwise no object file is created |
Compiler.OutputFile |
Filename of the object file |
Compiler.SourceFiles |
Filename(s) of the source files |
Compiler Optimizations Settings
Settings |
Description |
---|---|
Optimizations.Basic |
If true, enables prebuilt transformation optimizations, like constant folding and strength reduction |
Optimizations.SSA |
If true, transforms instructions to Single Static Assignment (SSA) form |
Optimizations.SCCP |
If true, enables Sparse Conditional Constant Propagation (SCCP) optimizations |
Optimizations.ValueNumbering |
If true, enables the Value Numbering (VN) optimizations |
Optimizations.LongExpansion |
If true, transforms some 64-bit instructions into 32-bit instructions prior to platform transformations |
Optimizations.BitTracker |
If true, enables the bit tracker optimizations |
Optimizations.LoopInvariantCodeMotion |
If true, enables the loop invariant code motion optimizations |
Optimizations.Devirtualization |
If true, transforms virtual methods calls into static method calls |
Optimizations.Platform |
If true, enable platform specific optimizations |
Optimizations.Inline |
If true, small methods can be inlined |
Optimizations.Inline.Maximum |
Maximun number of instructions that can be inlined within a method |
Optimizations.Basic.Window |
Maximun instruction window for the optimizer to review |
Optimizations.Inline.AggressiveMaximum |
Maximun number of instructions that can be inlined when a method is explicited marked to be inlined |
Optimizations.Inline.Explicit |
If true, explicitly marked methods are inlined |
Optimizations.TwoPass |
If true, some optimization stages are executed twice |
Optimizations.Inline.Aggressive |
Methods to be aggressively inline |
Optimizations.Inline.Exclude |
Methods that may not be inlined |
Optimizations.ReduceCodeSize |
If true, the compiler will favor smaller code size |
Linker Settings
Settings |
Description |
---|---|
Linker.Format |
Type of ELF object file elf32 or elf64 |
Linker.Symbols |
If true, emits the symbols into the object file |
Linker.StaticRelocations |
If true, emits static relocation information into the object file |
Linker.Dwarf |
If true, emits DWARF debug information into the object file |
Linker.ShortSymbolNames |
If true, emits short symbol names into the object file |
Linker.CustomSections.{Name}.SectionName |
Emits a custom linker section with this section name |
Linker.CustomSections.{Name}.SourceFile |
Emits a custom linker section using the specific file |
Linker.CustomSections.{Name}.Address |
Emits a custom linker section with this address |
Common Settings
Settings |
Description |
---|---|
SearchPaths |
Folder to search for files |
DefaultFolder |
Default folder for output files |
TemporaryFolder |
Specifies a temporary folder |
Compiler Debug Settings
Settings |
Description |
---|---|
CompilerDebug.Statistics |
If true, enables statistics gathering |
CompilerDebug.DebugFile |
Filename to emit a MOSA specific debug information |
CompilerDebug.MapFile |
Filename to emit a map of all symbols |
CompilerDebug.CompileTimeFile |
Filename to emit compile times for each method |
CompilerDebug.AsmFile |
Filename to emit ASM disassembly |
CompilerDebug.CountersFile |
Filename to emit the global counters |
CompilerDebug.CountersFilter |
Filters the global counters within the global counters file |
CompilerDebug.NasmFile |
Filename to emit disassembly using the NASM tool |
CompilerDebug.InlinedFile |
Filename to emit a list of all methods that were inlined |
CompilerDebug.PreLinkHashFile |
Filename to emit a list of all methods with their hash value prior to linking |
CompilerDebug.PostLinkHashFile |
Filename to emit a list of all methods with their hash value after linking |
CompilerDebug.FullCheckMode |
If true, causes the compiler to run internal validate checks (used to test the compiler) |
Compiler X86 Settings
Settings |
Description |
---|---|
X86.InterruptMethodName |
Name of the method that handles interrupts |
Explorer Settings
Settings |
Description |
---|---|
Explorer.Filter |
Specifies the default method filter name when Explorer is launched |
Explorer.Start |
If true, immediately compile all methods upon launch |
Explorer.DebugDiagnostic |
If true, debug diagnostics is captured |
Launcher Settings
Settings |
Description |
---|---|
Launcher.Start |
If true, immediately start the compiler upon launch |
Launcher.Launch |
If true, launch a virtual machine after compiling the application and generating the virtual machine image |
Launcher.Exit |
If true, exit immediately after launch |
Launcher.PlugKorlib |
If true, automatically include the plugs for CoreLib |
Launcher.GDB |
If true, launch the GNU GDB application after VM launch |
Launcher.Serial |
If true, outputs the serial data |
Launcher.Debugger |
If true, launch the MOSA debugger application after VM launch |
Launcher.Test |
If true, monitors VM serial for success or failure messages |
Image Settings
Settings |
Description |
---|---|
Image.Format |
Format of the vritual image file BIN, IMG, VHD, VDI, VMDK |
Image.FileSystem |
File system of the primary partition in the image file FAT12, FAT16, FAT32 |
Image.Destination |
Destination directory of the image file |
Image.ImageFile |
Filename of the image file |
Image.FileSystem.RootInclude |
Include files in specified directory |
Emulator Settings
Settings |
Description |
---|---|
Emulator |
Type of Emulator QEMU, VMware, Bochs |
Emulator.Memory |
Amount of memory for the virtual machine in MB |
Emulator.Display |
If true, show the video display |
Emulator.SVGA |
SVGA mode: std, cirrus, vbe, virtio or vmware |
Emulator.MaxRuntime |
Maximum runtime of the virtual machine in seconds (future) |
Emulator.GDB |
If true, enables GDB within emulator |
Emulator.Serial |
Serial Emulation type None, Pipe, TCPServer, TCPClient |
Emulator.Serial.Host |
Serial Host Name or IP address |
Emulator.Serial.Port |
Serial Port |
Emulator.Serial.Pipe |
Serial Pipename |
GDB Settings
Settings |
Description |
---|---|
GDB.Host |
Host IP or Name for GDB |
GDB.Port |
Port Number for GDB |
Multiboot Settings
Settings |
Description |
---|---|
Multiboot.Version |
Multiboot version none, v2 |
Multiboot.Video |
If true, enable the framebuffer provided by Multiboot |
Multiboot.Video.Width |
Video Width |
Multiboot.Video.Height |
Video Height |
Debugger Settings
Settings |
Description |
---|---|
Debugger.WatchFile |
Filename of the watch file |
Debugger.BreakpointFile |
Filename of the breakpoint file |
Application Location Settings
Settings |
Description |
---|---|
AppLocation.Bochs |
Location of the BOCHS application |
AppLocation.QemuX86 |
Location of the QEMU application for x86 (i386) |
AppLocation.QemuX64 |
Location of the QEMU application for x64 |
AppLocation.QemuARM32 |
Location of the QEMU application for ARM32 |
AppLocation.QemuARM64 |
Location of the QEMU application for ARM64 |
AppLocation.QemuBIOS |
Location of the QEMU BIOS |
AppLocation.QemuImg |
Location of the QEMUImg application |
AppLocation.VmwareWorkstation |
Location of the VMWorkstation application |
AppLocation.VmwarePlayer |
Location of the VMPlayer application |
AppLocation.Ndisasm |
Location of the Ndisasm application |
AppLocation.Mkisofs |
Location of the Mkisofs application |
AppLocation.GDB |
Location of the GDB application |
OS Settings
Settings |
Description |
---|---|
OS.Name |
Name of operating system |
OS.BootOptions |
Specifies a boot string to pass to the operating system |
Import Settings
Settings |
Description |
---|---|
Import |
Filename of another settings file to import |
Unit Test Settings
Settings |
Description |
---|---|
UnitTest.MaxErrors |
Maximum number of errors before aborting the unit testing |
UnitTest.Connection.TimeOut |
Maximum connection timeout in milliseconds before retrying |
UnitTest.Connection.MaxAttempts |
Maximun number of restart attempts before aborting the unit tests |
UnitTest.Filter |
Specifies the default method filter name when Explorer is launched |