Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/anthropics/claudes-c-compiler
/ functions
Functions
6,057 in github.com/anthropics/claudes-c-compiler
⨍
Functions
6,057
◇
Types & classes
346
↓ 10 callers
Function
make_absolute
Make a path absolute without resolving symlinks. Unlike `std::fs::canonicalize`, this preserves symlinks in the path. This is important for `#include
src/frontend/preprocessor/includes.rs:229
↓ 10 callers
Function
make_func
Helper to create a minimal IrFunction with given blocks.
src/passes/gvn.rs:1244
↓ 10 callers
Function
make_module
(func: IrFunction)
src/passes/gvn.rs:1272
↓ 10 callers
Function
mnemonic_size_suffix
Get operand size from mnemonic suffix.
src/backend/x86/assembler/encoder/registers.rs:201
↓ 10 callers
Method
operand_to_vn
Convert an Operand to a VNOperand for hashing. If the value hasn't been assigned a value number yet (e.g. a function parameter or an alloca whose defi
src/passes/gvn.rs:158
↓ 10 callers
Method
parse_binary_expr
Parse a left-associative binary expression at the given precedence level. This is the shared core that replaces 10 nearly-identical parsing functions.
src/frontend/parser/expressions.rs:153
↓ 10 callers
Method
parse_cast_expr
Parse a cast expression: (type-name)expr, compound literal (type-name){...}, or fall through to unary expression.
src/frontend/parser/expressions.rs:182
↓ 10 callers
Method
parse_param_list
Parse a function parameter list: (params...) or (void) or ()
src/frontend/parser/declarators.rs:312
↓ 10 callers
Method
parsing_typedef
(&self)
src/frontend/parser/parse.rs:150
↓ 10 callers
Function
phys_reg_name_32
Map a PhysReg index to its x86-64 32-bit sub-register name. Handles both callee-saved (1-5) and caller-saved (10-15) registers.
src/backend/x86/codegen/emit.rs:76
↓ 10 callers
Method
record_use
Record a use of an alloca (or GEP-derived value) in a block.
src/backend/stack_layout/alloca_coalescing.rs:70
↓ 10 callers
Method
resolve_init_field
Resolve which field an initializer targets, with full info about anonymous members. When a designator name is found inside an anonymous struct/union
src/common/types.rs:1029
↓ 10 callers
Function
resolve_numeric_name
Resolve a numeric label reference to its unique name.
src/backend/arm/assembler/mod.rs:152
↓ 10 callers
Method
resolve_to_global_name
Resolve a variable name to its global name, checking static local names first.
src/ir/lowering/const_eval_global_addr.rs:45
↓ 10 callers
Method
set_thread_local
(&mut self, v: bool)
src/frontend/parser/ast.rs:256
↓ 10 callers
Function
strip_comment
(line: &str)
src/backend/arm/assembler/parser.rs:1322
↓ 10 callers
Method
to_str
Get the path as a string slice (panics if not valid UTF-8).
src/common/temp_files.rs:76
↓ 10 callers
Function
write_i64_fast
(buf: &mut String, val: i64)
src/backend/common.rs:756
↓ 9 callers
Function
build_cfg
Build predecessor and successor lists from the function's CFG. Returns (preds, succs) as flat adjacency lists (CSR format). Uses only 4 heap allocati
src/ir/analysis.rs:110
↓ 9 callers
Function
build_label_map
Build a map from block label to block index.
src/ir/analysis.rs:95
↓ 9 callers
Method
coerce_const_to_type_with_src
Coerce a constant to the target type, using the source expression's type for signedness.
src/ir/lowering/const_eval.rs:624
↓ 9 callers
Function
compute_dominators
Compute immediate dominators using the Cooper-Harvey-Kennedy algorithm. Returns idom[i] = immediate dominator of block i (idom[0] = 0 for entry). Uses
src/ir/analysis.rs:238
↓ 9 callers
Method
emit
Emit a diagnostic: apply warning filtering/promotion, print to stderr, and update counts. For warnings with a `WarningKind`: - If the warning is disa
src/common/error.rs:504
↓ 9 callers
Method
emit_array_element_store
Emit a single element store at a given byte offset in an alloca.
src/ir/lowering/lower.rs:1378
↓ 9 callers
Function
enc
(sign: bool, exp: u16, mant: u64)
src/common/long_double.rs:2993
↓ 9 callers
Method
encode_bt
Encode bit test instructions (bt, bts, btr, btc).
src/backend/x86/assembler/encoder/x87_misc.rs:7
↓ 9 callers
Function
encode_f128
Encode an IEEE 754 binary128 value from sign, binary exponent, and 113-bit mantissa. `binary_exp` is the exponent of the MSB (bit 112) of `mantissa113
src/common/long_double.rs:734
↓ 9 callers
Function
f128_operand_to_arg1
Load an F128 operand into the first argument position with full precision. Three paths: 1. **Constant**: load f128 bytes directly as lo:hi. 2. **Trac
src/backend/f128_softfloat.rs:271
↓ 9 callers
Method
id
(&self)
src/frontend/parser/ast.rs:811
↓ 9 callers
Method
intern_string_literal
Intern a string literal: add it to the module's .rodata string table and return its unique label.
src/ir/lowering/lower.rs:1058
↓ 9 callers
Method
is_defined
Check if a macro is defined.
src/frontend/preprocessor/macro_defs.rs:152
↓ 9 callers
Method
is_noreturn
(&self)
src/frontend/parser/ast.rs:90
↓ 9 callers
Function
load_file
( path: &str, objects: &mut Vec<ElfObject>, globals: &mut HashMap<String, GlobalSymbol>, needed_soname
src/backend/x86/linker/input.rs:13
↓ 9 callers
Method
load_ptr_to_reg
Load the address represented by a pointer Value into the given register. For alloca values, computes the address; for others, loads the stored pointer
src/backend/arm/codegen/emit.rs:1211
↓ 9 callers
Function
make_f128_nan
(negative: bool)
src/common/long_double.rs:879
↓ 9 callers
Method
operand_to_ecx
Load an operand into %ecx.
src/backend/i686/codegen/emit.rs:326
↓ 9 callers
Function
parse_long_double_to_f128_bytes
Parse a float string directly to IEEE 754 binary128 (f128) bytes with full 112-bit mantissa precision. Used for long double constants on ARM64/RISC-V
src/common/long_double.rs:713
↓ 9 callers
Function
parse_reg
Parse a register name to our internal ID.
src/backend/riscv/codegen/peephole.rs:120
↓ 9 callers
Function
parse_st_num
Parse x87 register number: "st(0)" -> 0, "st" -> 0, "st(1)" -> 1, etc.
src/backend/x86/assembler/encoder/registers.rs:260
↓ 9 callers
Function
parse_string_literal
String literal parser for assembler directives. Shared by all four assembler backends (x86, i686, ARM, RISC-V) to ensure consistent handling of C/GNU
src/backend/elf/parse_string.rs:22
↓ 9 callers
Function
promote_allocas
Promote allocas to SSA form with phi insertion. Only promotes scalar allocas that are exclusively loaded/stored (not address-taken by GEP, memcpy, va_
src/ir/mem2reg/promote.rs:42
↓ 9 callers
Function
reg_to_8l
Convert any x86 register name to its 8-bit low variant. Accepts both 64-bit and 32/16/8-bit register names. For `r8`-`r15` (x86-64 only), appends `b`
src/backend/x86_common.rs:136
↓ 9 callers
Function
register_family
Map i686 register name to family ID.
src/backend/i686/codegen/peephole.rs:124
↓ 9 callers
Function
remap_block
Remap a BlockId by adding an offset.
src/passes/inline.rs:1470
↓ 9 callers
Method
resolve_vector_size
Resolve the total vector size in bytes, considering both `vector_size` (total bytes) and `ext_vector_type` (element count). `elem_size` is the sizeof
src/frontend/parser/ast.rs:310
↓ 9 callers
Method
returns_complex_long_double_in_regs
Returns true if the target returns _Complex long double via register pairs rather than via sret hidden pointer. On x86-64: true (COMPLEX_X87 class, re
src/ir/lowering/lower.rs:298
↓ 9 callers
Method
track_f128_self
(&mut self, value_id: u32)
src/backend/state.rs:371
↓ 9 callers
Method
vector_info
For a vector type, returns (element_type, num_elements). Returns None for non-vector types.
src/common/types.rs:1432
↓ 9 callers
Method
with_span
Attach a source span to this diagnostic.
src/common/error.rs:404
↓ 9 callers
Function
x87_mul
Multiply two x87 80-bit extended precision values with full precision.
src/common/long_double.rs:1179
↓ 8 callers
Function
_mm_getcsr
Read the MXCSR register */
include/xmmintrin.h:613
↓ 8 callers
Method
build_full_ctype
Build a full CType from a TypeSpecifier and DerivedDeclarator chain. Delegates to the shared type_builder module for canonical inside-out declarator a
src/ir/lowering/types_ctype.rs:385
↓ 8 callers
Method
byte_size
Return the number of bytes this move size covers.
src/backend/x86/codegen/peephole/types.rs:150
↓ 8 callers
Function
classify_line
Parse one assembly line into a `LineInfo`.
src/backend/x86/codegen/peephole/types.rs:201
↓ 8 callers
Method
coerce_to
Coerce this constant to match a target IrType (assumes signed source for int-to-float).
src/ir/constants.rs:550
↓ 8 callers
Method
emit_branch_to_block
(&mut self, block: BlockId)
src/backend/riscv/codegen/emit.rs:502
↓ 8 callers
Method
emit_compound_field_init
Emit a single field initializer in compound (relocation-aware) mode.
src/ir/lowering/global_init_compound_struct.rs:501
↓ 8 callers
Method
emit_f128_classify_libcall
Emit a call to a libc FP classification function for F128 (long double) arguments. Returns the call result as a Value. The libc functions take a long
src/ir/lowering/expr_builtins_fpclass.rs:32
↓ 8 callers
Method
emit_placeholder
Emit placeholder bytes for a deferred value (symbol diff, etc.).
src/backend/elf/writer_base.rs:591
↓ 8 callers
Method
emit_store_at_offset
Emit a GEP + Store: store `val` at `base + byte_offset` with the given type.
src/ir/lowering/lower.rs:1126
↓ 8 callers
Method
emit_store_result
(&mut self, dest: &Value)
src/backend/i686/codegen/emit.rs:1274
↓ 8 callers
Method
emit_sub_struct_to_compound
Emit a sub-struct's initialization into compound elements, choosing between compound (relocation-aware) and byte-level approaches based on whether any
src/ir/lowering/global_init_compound_struct.rs:417
↓ 8 callers
Method
encode_alu
(&mut self, ops: &[Operand], mnemonic: &str, alu_op: u8)
src/backend/i686/assembler/encoder/gp_integer.rs:433
↓ 8 callers
Method
encode_avx_3op_3a_imm8
Encode AVX 3-operand in 0F3A map with imm8
src/backend/x86/assembler/encoder/avx.rs:742
↓ 8 callers
Method
encode_avx_shift
Encode AVX shift instructions (imm8 form or xmm form)
src/backend/x86/assembler/encoder/avx.rs:978
↓ 8 callers
Function
encode_fcvt_from_int
(operands: &[Operand], funct7: u32, rs2: u32)
src/backend/riscv/assembler/encoder/float.rs:131
↓ 8 callers
Function
encode_fcvt_int
(operands: &[Operand], funct7: u32, rs2: u32)
src/backend/riscv/assembler/encoder/float.rs:116
↓ 8 callers
Function
encode_fma
(operands: &[Operand], opcode: u32, fmt: u32)
src/backend/riscv/assembler/encoder/float.rs:175
↓ 8 callers
Function
encode_fp_arith
(operands: &[Operand], opcode: u32)
src/backend/arm/assembler/encoder/fp_scalar.rs:68
↓ 8 callers
Method
encode_inc_dec
Encode INC/DEC using Group 5 opcode (0xFE/0xFF), not Group 3 (0xF6/0xF7).
src/backend/x86/assembler/encoder/gp_integer.rs:733
↓ 8 callers
Function
encode_neon_ld_st_dispatch
Encode NEON LD1 (vector load, multiple structures) Dispatch LD/ST1-4: choose between "multiple structures" and "single structure (element)" encoding.
src/backend/arm/assembler/encoder/neon.rs:889
↓ 8 callers
Function
encode_neon_qshrn
── NEON shift right narrow saturating (SQSHRN/UQSHRN/SQRSHRN/UQRSHRN) ─
src/backend/arm/assembler/encoder/neon.rs:1496
↓ 8 callers
Function
encode_neon_three_diff_narrow
── NEON ADDHN/RADDHN/SUBHN/RSUBHN ────────────────────────────────────── Three-different narrowing high: Format: 0 Q U 01110 size 1 Rm opcode 00 Rn Rd
src/backend/arm/assembler/encoder/neon.rs:1514
↓ 8 callers
Function
encode_neon_two_misc_narrow
Encode NEON two-register miscellaneous narrowing: UQXTN, SQXTN, XTN Format: 0 Q U 01110 size 10000 opcode 10 Rn Rd
src/backend/arm/assembler/encoder/neon.rs:206
↓ 8 callers
Method
encode_shift
(&mut self, ops: &[Operand], mnemonic: &str, shift_op: u8)
src/backend/x86/assembler/encoder/gp_integer.rs:756
↓ 8 callers
Function
encode_shift_imm
(operands: &[Operand], funct3: u32, funct6: u32)
src/backend/riscv/assembler/encoder/base.rs:251
↓ 8 callers
Function
encode_shift_imm_w
(operands: &[Operand], funct3: u32, funct7: u32)
src/backend/riscv/assembler/encoder/base.rs:274
↓ 8 callers
Method
encode_sse_rr_rm
(&mut self, ops: &[Operand], load_opcode: &[u8], store_opcode: &[u8])
src/backend/i686/assembler/encoder/sse.rs:11
↓ 8 callers
Method
encode_sse_shift
(&mut self, ops: &[Operand], reg_opcode: &[u8], imm_ext: u8, imm_opcode: &[u8])
src/backend/x86/assembler/encoder/sse.rs:325
↓ 8 callers
Method
encode_sse_shift
(&mut self, ops: &[Operand], _reg_opcode: &[u8], imm_ext: u8, imm_opcode: &[u8])
src/backend/i686/assembler/encoder/sse.rs:159
↓ 8 callers
Method
encode_suffixless_alu
(&mut self, ops: &[Operand], alu_op: u8)
src/backend/x86/assembler/encoder/x87_misc.rs:337
↓ 8 callers
Function
f128_bytes_to_f64
Convert f128 bytes to f64 (lossy narrowing).
src/common/long_double.rs:906
↓ 8 callers
Function
f128_bytes_to_u64
Convert f128 bytes to u64 (for constant folding).
src/common/long_double.rs:1106
↓ 8 callers
Function
find_conflicting_phis
Determine which phi copies on a given predecessor edge need temporaries. A copy `dest_i = src_i` needs a temporary if `src_i` is the destination of a
src/ir/mem2reg/phi_eliminate.rs:199
↓ 8 callers
Function
find_natural_loops
Find all natural loops in the CFG. A natural loop is defined by a back edge (tail -> header) where the header dominates the tail. The loop body is th
src/passes/loop_analysis.rs:22
↓ 8 callers
Function
first_field_designator
Extract the field name from the first designator of an initializer item. Returns `None` if the item has no designators or the first is not a Field.
src/ir/lowering/global_init_helpers.rs:19
↓ 8 callers
Method
get_pointer_elem_size_from_expr
Get the element size for a pointer expression (for scaling in pointer arithmetic). For `int *p`, returns 4. For `char *s`, returns 1.
src/ir/lowering/pointer_analysis.rs:286
↓ 8 callers
Method
init_has_addr_exprs
Check if an initializer contains address expressions (recursive).
src/ir/lowering/global_init.rs:1456
↓ 8 callers
Method
is_func_ptr_variable
Check if an identifier is a function pointer variable rather than a direct function. A local variable always shadows a known function of the same name
src/ir/lowering/expr_calls.rs:57
↓ 8 callers
Method
is_inline
(&self)
src/frontend/parser/ast.rs:79
↓ 8 callers
Function
is_null_pointer_constant
Check if an AST expression is a null pointer constant per C11 6.3.2.3p3: "An integer constant expression with the value 0, or such an expression cast
src/common/const_arith.rs:467
↓ 8 callers
Function
is_reg64
Is this a 64-bit GP register?
src/backend/x86/assembler/encoder/registers.rs:98
↓ 8 callers
Method
lower_and_cast_init_expr
Lower an expression and cast it to the target type (e.g., int to float).
src/ir/lowering/stmt.rs:1056
↓ 8 callers
Method
lower_complex_to_bool
Convert a complex value (given as a pointer to {real, imag}) to _Bool. Returns (real != 0) || (imag != 0) per C11 6.3.1.2.
src/ir/lowering/complex.rs:52
↓ 8 callers
Method
lower_va_list_pointer
Get a pointer to the va_list struct from an expression. Used by va_start, va_end, va_copy builtins. Target-dependent behavior (same logic as lower_va
src/ir/lowering/expr_access.rs:1421
↓ 8 callers
Function
make_f128_infinity
(negative: bool)
src/common/long_double.rs:875
↓ 8 callers
Function
make_func_with_blocks
(blocks: Vec<BasicBlock>)
src/passes/narrow.rs:649
↓ 8 callers
Method
mark_operand_escaped
Mark an operand's value as escaped (no use-block recording).
src/backend/stack_layout/alloca_coalescing.rs:89
↓ 8 callers
Function
narrow_function
Narrow operations in a single function.
src/passes/narrow.rs:57
↓ 8 callers
Method
operand_to_rax_rdx
Load a 128-bit operand into %rax (low) and %rdx (high).
src/backend/x86/codegen/emit.rs:636
← previous
next →
401–500 of 6,057, ranked by callers