FreeBSD Manual Pages
kefir-cc1(1) General Commands Manual kefir-cc1(1) NAME kefir-cc1 -- C17/C23 language compiler SYNOPSIS kefir-cc1 [options] [file] DESCRIPTION kefir-cc1 is a C17/C23 language compiler (without a driver). If no input file is provided, stdin is used. OPTIONS --c17-standard Use C17 language language standard. --c23-standard Use C23 language language standard. --pp-timestamp timestamp Override preprocessor timestamp --json-errors Print errors in JSON format to stderr --tabular-errors Print errors in tabular format to stderr --target-profile profile Generate code for specified target (see "TARGET" subsection) --source-id identifier Force use provided source file identifier --extension-lib libpath Load extension library --quote-include-dir dir Add directory to include search path exclusively for quoted in- cludes --system-include-dir dir Add directory to include search path and mark it as a system in- clude path (used for dependency output) --embed-dir directory Add directory to preprocessor embed search path --debug-info Include debug information into produced output --optimizer-max-inline-depth depth Maximum depth of function inlining (5 by default). --optimizer-max-inlines-per-func inlines Maximum number of inlined functions (10 by default). --enable-lowering Perform target-specific SSA lowering (mandatory for bit-precise in- teger support) [default] --disable-lowering Skip target-specific SSA lowering. --preprocessor-assembly-mode Enable assembly preprocessing mode (default for .S files). In this mode, leading '$' characters are not treated as identifier part. --preprocessor-normal-mode Disable assembly preprocessing mode (default). --dump-dependencies Output a make rule describing the dependencies of source file. --system-dependencies Include dependencies from system include directories into the make rule (used with --dump-dependencies flag) [default: on]. --no-system-dependencies Do not include dependencies from system include directories into the make rule (used with --dump-dependencies flag). --add-phony-targets Generate phony make targets for each dependency (used with --dump-dependencies flag) [default: off]. --no-add-phony-targets Do not generate phony make targets for each dependency (used with --dump-dependencies --dependency-target target Override default make rule target (used with --dump-dependencies flag). --dependency-output filename Output make rule into specified file (used with --dump-dependencies flag). --unsigned-char Let the type char be unsigned. By default, it is target-specific. --signed-char Let the type char be signed. By default, it is target-specific. --codegen-tentative-common Place tentative definitions into common section (equivalent to com- mon attribute applied to all variables). --codegen-tentative-no-common Do not place tentative definitions into common section [default]. --codegen-visibility-default Keep default visibility for all symbols [default]. --codegen-visibility-hidden Make all symbols hidden unless an attribute specifies otherwise. --codegen-visibility-protected Make all symbols protected unless an attribute specifies otherwise. --codegen-visibility-internal Make all symbols internal unless an attribute specifies otherwise. --codegen-decimal-default Use platform-native decimal number encoding [default]. --codegen-decimal-bid Use decimal number BID encoding. Requires kefir to be compiled with BID-enabled compiler to provide correct encoding of static data. --codegen-decimal-dpd Use decimal number DPD encoding. Requires kefir to be compiled with DPD-enabled compiler to provide correct encoding of static data. --feature-[name] Enable compiler feature (see "FEATURES" subsection) --no-feature-[name] Disable compiler feature (see "FEATURES" subsection) --internal-[flag] Enable compiler internal flag (see "INTERNALS" subsection) --no-internal-[flag] Disable compiler internal flag (see "INTERNALS" subsection) --codegen-[option] Enable option for code generator (see "CODEGEN" subsection) --no-codegen-[option] Disable option for code generator (see "CODEGEN" subsection) --optimizer-pipeline spec Optimizer pipeline specification (see "OPTIMIZER" subsection) --precise-bitfield-load-store Load and store bitfields at byte boundaries [default: on]. Pro- vides extra correctness for structures allocated close to a bound- ary with unmapped memory pages at the expense of less efficient bitfield handling. Does not change bitfield layout. --no-precise-bitfield-load-store Load and store bitfields at machine word boundaries [default: off]. May cause failures for structures allocated close to boundaries with unmapped memory pages. Does not change bitfield layout. --declare-atomic-support Declare support of atomics (might require explicit linking of soft- ware atomic library such as libatomic or libcompiler_rt). --no-declare-atomic-support Declare the absence of atomic support via defining __STDC_NO_ATOM- ICS__ macro. --declare-decimal-support Declare support of decimal floating-point (might require explicit linking of libgcc); has effect only is kefir has been built with decimal-capable compiler. --no-declare-decimal-support Do not declare support of decimal floating-point; suppresses defin- itions of kefir-specific support macros. --declare-decimal-bitint-conv-support Declare support of decimal floating-point conversion to/from bit- precise integers (requires linking with recent libgcc >=14); has effect only is kefir has been built with decimal-capable compiler. --no-declare-decimal-support Do not declare support of decimal floating-point conversion to/from bit-precise integers; suppresses definitions of kefir-specific sup- port macros. --optimize-stack-frame Optimize stack frame layout by reusing space for variables for dis- joint lifetimes. Might increase compilation time and memory use on very large functions. [default: on]. --no-optimize-stack-frame Do not optimize stack frame layout and allocate each variable sepa- rately. FEATURES Supported features (to be used with --feature-[feature-name] and --no-feature-[feature-name] flags) -- disabled by default: fail-on-attributes Fail if __attribute__((...)) is encountered missing-function-return-type Permit function definitions with missing return type designated-init-colons Permit "fieldname:" syntax in designated initializers labels-as-values Permit label-addressing with && operator non-strict-qualifiers Disable strict qualifier checks for pointers signed-enums Force all enums to have signed integral type implicit-function-decl Permit implicit funciton declarations at use-site empty-structs Permit empty structure/union definitions ext-pointer-arithmetics Permit pointer arithmetics with function and void pointers missing-braces-subobj Permit missing braces for subobject initialization with scalar statement-expressions Enable statement expressions omitted-conditional-operand Permit omission of the middle ternary expression operand int-to-pointer Permit any integral type conversion to pointer permissive-pointer-conv Permit conversions between any pointer types named-macro-vararg Permit named macro variable arguments include-next Permit include_next preprocessor directive fail-on-assembly Disable support of inline assembly va-args-comma-concat Enable special processing for ", ##__VA_ARGS" case in preprocessor switch-case-ranges Enable support for ranges in switch cases designator-subscript-ranges Enable support for ranges in designator subscripts imprecise-decimal-bitint-conv Enable imprecise conversions between bit-precise integers and deci- mal floating-point values during constant evaluation if precise na- tive routines are not available [default: off] max-parser-errors [num] Set maximum number of parser errors produced; use -1 for unbounded number of errors. Note that printed error list is non-exhaustive irrespective of the setting. [default: 24] max-analyzer-errors [num] Set maximum number of analyzer errors produced; use -1 for un- bounded number of errors. Note that printed error list is non-ex- haustive irrespective of the setting. [default: 24] Werror-compiler-ref Include compiler source code references into reported errors [de- fault: on]. Wno-error-compiler-ref Exclude compiler source code references from reported errors [de- fault: off]. CODEGEN Supported code geneator options (to be used with --codegen-[option] and --no-codegen-[option] flags): emulated-tls Use emulated TLS [disabled by default, enabled on openbsd platform] tls-common Generate common section for thread-local storage if respective at- tribute is on [enabled for linux and netbsd] pic Generate position-independent code omit-frame-pointer Omit frame pointer in leaf function that do not need it valgrind-compatible-x87 Replace x87 opcodes not supported by Valgrind by more expensive al- ternatives [default: on] imprecise-decimal-bitint-conv Use imprecise conversions between bit-precise integers and decimal floating-point values in generated code [default: off] syntax=SYNTAX Produce assembly output with specified syntax [x86_64-intel_nopre- fix, x86_64-intel_prefix, x86_64-att (default)] details=DETAILS-SPEC Augment assembly output with internal code generator details in comments. DETAILS-SPEC can be: vasm (virtual assembly), vasm+regs (virtual assembly and register allocations), devasm (devirtualized assembly). optimize Perform low-level optimizations in code generator [default: on]. no-optimize Disable low-level optimizations in code generator. OPTIMIZER Optimizer pipeline specification consists of comma separated names of opti- mization pipeline passes: noop No-operation pass phi-removal Wherever possible, substitue phi nodes of SSA representation by ac- tual references mem2reg Pull function local variables into registers memory-ssa Perform memory SSA-based optimizations for store-load, load-load, store-store sequences. sroa Perfrom limited scalar replacement of non-escaping aggregates. op-simplify General code simplification constant-fold Folding constant expressions canonicalize Canonicalizations for late pipeline stages gvn Global value numering pass to eliminate redundant arithmetic and bitwise operations local-alloc-sink Moving local variable allocations closer to their actual uses (does not affect effective variable lifetimes). dead-code-elimination Eliminating dead code, blocks and phi links. merge-blocks Remove unnecessary jump and branch instructions and merge respec- tive blocks. dead-alloc Remove dead local variable allocations. inline-func Perform function inlining. tail-calls Perform tail call optimization. lowering Perform target-specific lowering of the SSA representation. Manda- tory for bit-precise integer support. inline-asm-untie Untie inline assembly non-memory parameters from directly linking to memory locations. Improves integration with mem2reg. TARGET Supported compilation targets: amd64-sysv-gas Produce optimized GNU As-compatible assembly adhering System-V AMD64 ABI [default] EXIT STATUS Normally kefir-cc1 exits with 0 exit code. In case of any errors in any of compilation stages, all further compilation is aborted and non-zero exit code retruned. STANDARDS kefir-cc1 implements C17 language standard as specified in its final draft, and C23 language stadard as specified in the first draft of C2Y. NOTES The kefir-cc1 compiler is licensed under the terms of GNU GPLv3 license. kefir-cc1 is developed and maintained by Jevgenij Protopopov (legally: Jevgenijs Protopopovs) Please report bugs found in kefir-cc1 to jevgenij@protopopov.lv kefir-cc1 is available online at https://sr.ht/~jprotopopov/kefir/ with read-only mirrors at https://git.protopopov.lv/kefir and https://codeberg.org/jprotopopov/kefir FreeBSD ports 15.quarterly April 2026 kefir-cc1(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | STANDARDS | NOTES
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kefir-cc1&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>
