MCPcopy Create free account

hub / github.com/anthropics/claudes-c-compiler / functions

Functions6,057 in github.com/anthropics/claudes-c-compiler

↓ 3 callersMethodalignof_type_spec
Compute alignof for a type specifier.
src/frontend/sema/const_eval.rs:921
↓ 3 callersFunctionalu_mnemonic
Map an ALU binary op (Add/Sub/And/Or/Xor) to its x86 mnemonic base.
src/backend/x86/codegen/emit.rs:137
↓ 3 callersMethodanalyze_compound_stmt
(&mut self, compound: &CompoundStmt)
src/frontend/sema/analysis.rs:796
↓ 3 callersMethodapply
Apply mode to a type specifier, preserving signedness.
src/frontend/parser/parse.rs:33
↓ 3 callersFunctionapply_one_reloc
Apply a single AArch64 relocation.
src/backend/arm/linker/reloc.rs:195
↓ 3 callersFunctionassemble
Assemble AArch64 assembly text into an ELF object file. This is the default assembler (used when the `gcc_assembler` feature is disabled).
src/backend/arm/assembler/mod.rs:23
↓ 3 callersMethodassemble_with_extra
Assemble text to object file with dynamic extra arguments. Used to pass through -mabi= and -march= flags from the CLI. When the `gcc_assembler` Cargo
src/backend/mod.rs:347
↓ 3 callersMethodassembler_config
(&self)
src/backend/mod.rs:234
↓ 3 callersMethodat_eof
(&self)
src/frontend/parser/parse.rs:402
↓ 3 callersMethodbinding
(&self)
src/backend/linker_common/types.rs:41
↓ 3 callersFunctionbinop_self
Create a BinOp with both operands being Value(1).
src/passes/simplify.rs:1659
↓ 3 callersMethodbit_length
Get the number of significant bits.
src/common/long_double.rs:141
↓ 3 callersMethodbuild_compound_scope
Build a local scope from declarations in a compound statement. Scans declarations in order, resolving typeof expressions against earlier declarations
src/ir/lowering/expr_types.rs:1373
↓ 3 callersFunctionbuild_eh_frame_hdr
Build .eh_frame_hdr data from the merged .eh_frame section. `eh_frame_data`: the merged .eh_frame section bytes `eh_frame_vaddr`: virtual address whe
src/backend/linker_common/eh_frame.rs:59
↓ 3 callersFunctionbuild_full_ctype_with_base
Build a full CType from an already-resolved base type and derived declarators. Use this instead of `build_full_ctype` when the base type has already b
src/common/type_builder.rs:213
↓ 3 callersFunctionbuild_sorted_candidates
Build a sorted list of allocation candidates from live intervals. Filters by eligibility, minimum span length, and call-spanning behavior: - `spans_c
src/backend/regalloc.rs:504
↓ 3 callersMethodcheck_pointer_float_conversion
Check for invalid implicit conversions between pointer and floating-point types. C11 6.5.16.1p1: pointer types cannot be implicitly converted to/from
src/frontend/sema/analysis.rs:1673
↓ 3 callersMethodclassify_constraint
Multi-alternative constraint parsing (e.g., "rm", "ri") matching x86 behavior. Priority: specific register > GP register > FP register > memory > imme
src/backend/arm/codegen/asm_emitter.rs:49
↓ 3 callersMethodclassify_riscv_float_fields
Classify this struct for the RISC-V LP64D hardware floating-point calling convention. The RISC-V psABI specifies that small structs (≤ 2×XLEN = 16 by
src/common/types.rs:848
↓ 3 callersFunctioncollect_block_body
Collect the body lines of a .rept/.irp block, handling nesting. Returns the body lines and advances i past the closing .endr.
src/backend/arm/assembler/parser.rs:218
↓ 3 callersMethodcollect_compound_init_element
Collect a single compound initializer element, handling nested lists.
src/ir/lowering/global_init.rs:1791
↓ 3 callersMethodcollect_enum_constants_scoped
Collect enum constants from a type specifier, using scoped insertion.
src/ir/lowering/lower.rs:1240
↓ 3 callersFunctioncombined_local_pass
(store: &mut LineStore, infos: &mut [LineInfo])
src/backend/x86/codegen/peephole/passes/local_patterns.rs:19
↓ 3 callersMethodcompile_to_assembly
Core pipeline: preprocess, lex, parse, sema, lower, optimize, codegen. Set `CCC_TIME_PHASES=1` in the environment to print per-phase timing to stderr
src/driver/pipeline.rs:902
↓ 3 callersMethodcompile_with_gcc_m16
( &self, input_file: &str, output_path: &str, mode: GccM16Mode, )
src/driver/external_tools.rs:44
↓ 3 callersMethodcomplex_component_type
Get the component type for a complex type (e.g., ComplexFloat -> Float).
src/common/types.rs:1459
↓ 3 callersMethodcompound_can_fall_through
Check whether a compound statement (function body) can fall through without executing a return statement. Used by `-Wreturn-type` to detect non-void f
src/frontend/sema/analysis.rs:922
↓ 3 callersMethodcompute_init_list_array_size
Compute the effective array size from an initializer list with potential designators. Returns the minimum array size needed to hold all designated (an
src/ir/lowering/const_eval_init_size.rs:69
↓ 3 callersMethodcompute_unsigned_overflow
Compute unsigned overflow flag for add/sub/mul.
src/ir/lowering/expr_builtins_overflow.rs:431
↓ 3 callersFunctionconst_power_of_two
Return the log2 of a positive i64 value if it is a power of 2, or None otherwise.
src/passes/simplify.rs:747
↓ 3 callersFunctionconvert_param_decls_to_ctypes
Convert a ParamDecl list to a list of (CType, Option<name>) pairs. Uses the provided `TypeConvertContext` to resolve each parameter's type.
src/common/type_builder.rs:173
↓ 3 callersFunctioncount_eh_frame_fdes
.eh_frame_hdr builder for stack unwinding. Builds the .eh_frame_hdr section pointed to by PT_GNU_EH_FRAME. Contains a binary search table mapping PC
src/backend/linker_common/eh_frame.rs:20
↓ 3 callersMethodcount_subscript_depth
Count the subscript nesting depth from the base expression. For Identifier: depth = 0 For ArraySubscript(Identifier, _): depth = 1 For ArraySubscript(
src/ir/lowering/lvalue.rs:590
↓ 3 callersFunctioncsr_name_to_num
(name: &str)
src/backend/riscv/assembler/encoder/system.rs:74
↓ 3 callersMethodcurrent_file
Get the current source file name for diagnostic purposes. Returns the top of the include stack (the file currently being preprocessed), falling back t
src/frontend/preprocessor/pipeline.rs:649
↓ 3 callersFunctioneliminate_dead_reg_moves
(store: &LineStore, infos: &mut [LineInfo])
src/backend/x86/codegen/peephole/passes/dead_code.rs:19
↓ 3 callersFunctioneliminate_dead_stores
(store: &LineStore, infos: &mut [LineInfo])
src/backend/x86/codegen/peephole/passes/dead_code.rs:145
↓ 3 callersMethodemit_acc_to_secondary
(&mut self)
src/backend/arm/codegen/emit.rs:1830
↓ 3 callersMethodemit_add_secondary_to_acc
(&mut self)
src/backend/arm/codegen/emit.rs:1828
↓ 3 callersMethodemit_alloca_addr_to
Compute the address of an alloca into `reg`, handling over-aligned allocas.
src/backend/x86/codegen/memory.rs:218
↓ 3 callersMethodemit_alloca_addr_to
Compute the address of an alloca into `reg`, handling over-aligned allocas.
src/backend/i686/codegen/memory.rs:380
↓ 3 callersMethodemit_alloca_aligned_addr_impl
(&mut self, slot: StackSlot, val_id: u32)
src/backend/x86/codegen/memory.rs:323
↓ 3 callersMethodemit_atomic_xchg
Emit an atomic exchange (xchg) instruction, returning the old value.
src/ir/lowering/expr_atomics.rs:312
↓ 3 callersMethodemit_branch_nonzero
(&mut self, label: &str)
src/backend/arm/codegen/emit.rs:1752
↓ 3 callersMethodemit_branch_to_block
Emit an unconditional branch to a BlockId, avoiding String allocation.
src/backend/traits.rs:1054
↓ 3 callersMethodemit_call_instruction
Emit the actual call instruction (direct, indirect via fptr, or general indirect). Returns the effective return type for narrowing.
src/ir/lowering/expr_calls.rs:717
↓ 3 callersMethodemit_call_store_result
Store the function's return value from ABI registers to the destination slot. Default implementation dispatches by return type to small primitives: -
src/backend/traits.rs:606
↓ 3 callersMethodemit_cast_instrs_impl
Emit scalar cast instructions (non-F64/F128, non-64-bit integer). Operates on value already in eax, result left in eax.
src/backend/i686/codegen/casts.rs:482
↓ 3 callersMethodemit_cast_instrs_x86
Emit x86-64 instructions for a type cast that operates on the primary accumulator (%rax). Used internally by both `emit_cast_instrs` (trait method) an
src/backend/x86/codegen/f128.rs:242
↓ 3 callersFunctionemit_const_data
(out: &mut AsmOutput, c: &IrConst, ty: IrType, ptr_dir: PtrDirective)
src/backend/common.rs:1582
↓ 3 callersMethodemit_copy_slot_to_stack
Copy `n_bytes` from stack slot to call stack area, 4 bytes at a time.
src/backend/i686/codegen/emit.rs:1100
↓ 3 callersMethodemit_data_symbol_ref
Emit a symbol reference with a relocation.
src/backend/elf/writer_base.rs:580
↓ 3 callersMethodemit_data_values
Emit typed data values (Long or Quad) with proper relocations.
src/backend/arm/assembler/elf_writer.rs:550
↓ 3 callersMethodemit_eax_to_stack_zeroed
Fallback: store eax to stack, zero-fill remaining bytes.
src/backend/i686/codegen/emit.rs:1118
↓ 3 callersMethodemit_epilogue_and_ret_impl
(&mut self, frame_size: i64)
src/backend/x86/codegen/prologue.rs:405
↓ 3 callersMethodemit_evex
Emit EVEX 4-byte prefix. Parameters match VEX but with additional EVEX-specific fields. ll: 00=128, 01=256, 10=512 TODO: z (merge-masking) and aaa (op
src/backend/x86/assembler/encoder/avx.rs:39
↓ 3 callersMethodemit_f128_operand_to_a0_a1
Load an F128 operand into a0:a1 with full precision.
src/backend/riscv/codegen/f128.rs:346
↓ 3 callersMethodemit_i128_binop
Emit an i128 binary operation. Default dispatches to per-op primitives.
src/backend/traits.rs:1325
↓ 3 callersMethodemit_instr_sym_base_reg
(&mut self, mnemonic: &str, symbol: &str, base: &str, reg: &str)
src/backend/common.rs:1024
↓ 3 callersMethodemit_int_cmp_insn_typed
Emit a comparison instruction, optionally using 32-bit form for I32/U32 types. When `use_32bit` is true, emits `cmpl` with 32-bit register names inste
src/backend/x86/codegen/emit.rs:294
↓ 3 callersMethodemit_load_from_reg
Emit load from an arbitrary base register with offset, handling large offsets via x17. For offsets that exceed the ARM64 unsigned immediate range, mat
src/backend/arm/codegen/emit.rs:847
↓ 3 callersMethodemit_load_ptr_from_slot_impl
(&mut self, slot: StackSlot, val_id: u32)
src/backend/x86/codegen/memory.rs:194
↓ 3 callersMethodemit_rv_binary_128
Emit 128-bit binary op (or, and, xor) using two 64-bit operations.
src/backend/riscv/codegen/intrinsics.rs:296
↓ 3 callersMethodemit_sse_binary_128
Emit SSE binary 128-bit op: load xmm0 from arg0 ptr, xmm1 from arg1 ptr, apply the given SSE instruction, store result xmm0 to dest_ptr.
src/backend/x86/codegen/intrinsics.rs:104
↓ 3 callersMethodemit_sse_binary_128
Emit a binary SSE 128-bit operation: load two 128-bit operands from pointers, apply the operation, and store the result to dest_ptr.
src/backend/i686/codegen/intrinsics.rs:538
↓ 3 callersMethodemit_stp_to_sp
Emit `stp reg1, reg2, [base, #offset]` handling large offsets. Uses x19 frame base for large frames when possible.
src/backend/arm/codegen/emit.rs:754
↓ 3 callersMethodemit_visibility
Emit a visibility directive (.hidden, .protected, .internal) if the symbol has non-default visibility. No-op if `visibility` is None or "default".
src/backend/state.rs:278
↓ 3 callersMethodemit_vla_restore_for_scope_exit
Emit StackRestore for VLA deallocation when exiting scopes via break/continue. Checks all scopes from `target_depth` to the current depth for VLA sta
src/ir/lowering/stmt_control_flow.rs:200
↓ 3 callersMethodemit_warning
Emit a warning diagnostic with a source span. Uses RefCell for interior mutability so this can be called from &self methods.
src/ir/lowering/lower.rs:324
↓ 3 callersMethodencode_avx_2op_38
Encode AVX 2-operand in 0F38 map (e.g., vpabsb src, dst with vvvv=0)
src/backend/x86/assembler/encoder/avx.rs:344
↓ 3 callersMethodencode_avx_4op_3a
Encode AVX 4-operand instruction in 0F3A map (vblendvps, vblendvpd, vpblendvb) AT&T: $imm/mask, src, vvvv, dst -> actually: src_mask, src, vvvv, dst I
src/backend/x86/assembler/encoder/avx.rs:1189
↓ 3 callersMethodencode_avx_extract_byte
Encode AVX extract byte/dword (vpextrb, vpextrd) via 0F3A map
src/backend/x86/assembler/encoder/avx.rs:1302
↓ 3 callersFunctionencode_bitmask_imm
Encode a bitmask immediate for AArch64. Returns (N, immr, imms) if the value is a valid bitmask immediate.
src/backend/arm/assembler/encoder/data_processing.rs:505
↓ 3 callersMethodencode_bmi2_rorx
Encode BMI2 rorx (rotate right logical with immediate). AT&T syntax: `rorxq $imm8, %r/m, %dst` ops[0] = immediate ops[1] = source r/m ops[2] = destina
src/backend/x86/assembler/encoder/avx.rs:1419
↓ 3 callersMethodencode_bmi_andn
Encode BMI1 ANDN: andnl %src2, %src1, %dst → dst = ~src1 & src2 AT&T operand order: ops[0]=src2(r/m), ops[1]=src1(vvvv), ops[2]=dst(reg)
src/backend/x86/assembler/encoder/avx.rs:1379
↓ 3 callersMethodencode_bswap
(&mut self, ops: &[Operand], size: u8)
src/backend/x86/assembler/encoder/gp_integer.rs:863
↓ 3 callersFunctionencode_csr
(operands: &[Operand], funct3: u32)
src/backend/riscv/assembler/encoder/system.rs:40
↓ 3 callersFunctionencode_csri
(operands: &[Operand], funct3: u32)
src/backend/riscv/assembler/encoder/system.rs:56
↓ 3 callersMethodencode_lea
(&mut self, ops: &[Operand], size: u8)
src/backend/x86/assembler/encoder/gp_integer.rs:321
↓ 3 callersMethodencode_mem_only
Encode memory-only instructions (INVLPG, FXSAVE, FXRSTOR, etc.): opcode /ext
src/backend/x86/assembler/encoder/system.rs:321
↓ 3 callersMethodencode_mov_cr
Encode MOV to/from control register: 0F 20 /r (read) or 0F 22 /r (write)
src/backend/x86/assembler/encoder/system.rs:136
↓ 3 callersMethodencode_mov_dr
Encode MOV to/from debug register: 0F 21 /r (read) or 0F 23 /r (write)
src/backend/x86/assembler/encoder/system.rs:171
↓ 3 callersMethodencode_mov_seg
Encode MOV to/from segment register
src/backend/i686/assembler/encoder/system.rs:274
↓ 3 callersMethodencode_movsx
(&mut self, ops: &[Operand], src_size: u8, dst_size: u8)
src/backend/i686/assembler/encoder/gp_integer.rs:272
↓ 3 callersMethodencode_movzx
(&mut self, ops: &[Operand], src_size: u8, dst_size: u8)
src/backend/x86/assembler/encoder/gp_integer.rs:284
↓ 3 callersMethodencode_movzx
(&mut self, ops: &[Operand], src_size: u8, dst_size: u8)
src/backend/i686/assembler/encoder/gp_integer.rs:302
↓ 3 callersFunctionencode_neon_float_elem
── NEON float by-element ────────────────────────────────────────────────
src/backend/arm/assembler/encoder/neon.rs:1613
↓ 3 callersFunctionencode_neon_ldnr
── NEON LD2R/LD3R/LD4R ──────────────────────────────────────────────────
src/backend/arm/assembler/encoder/neon.rs:1528
↓ 3 callersMethodencode_setcc
(&mut self, ops: &[Operand], mnemonic: &str)
src/backend/x86/assembler/encoder/gp_integer.rs:915
↓ 3 callersMethodencode_sse_store
(&mut self, ops: &[Operand], opcode: &[u8])
src/backend/x86/assembler/encoder/sse.rs:101
↓ 3 callersMethodencode_sse_store_only
Encode SSE store-only instructions (xmm -> mem).
src/backend/i686/assembler/encoder/sse.rs:248
↓ 3 callersMethodencode_system_reg
Encode system register instructions (LLDT, LTR, STR, SLDT): opcode /ext These take a 16-bit register or memory operand.
src/backend/x86/assembler/encoder/system.rs:296
↓ 3 callersFunctionencode_zbb_unary_w
Encode a Zbb unary word instruction (clzw, ctzw, cpopw). These are I-type on OP-IMM-32 with funct3=001.
src/backend/riscv/assembler/encoder/base.rs:309
↓ 3 callersMethoderrors
Get preprocessing errors.
src/frontend/preprocessor/pipeline.rs:637
↓ 3 callersFunctioneval_add
(tokens: &[ExprToken], pos: &mut usize)
src/backend/asm_expr.rs:165
↓ 3 callersMethodeval_case_constant
Evaluate a case constant and truncate to the switch expression type.
src/ir/lowering/stmt_switch.rs:190
↓ 3 callersMethodeval_complex_const_public
Public wrapper for eval_complex_const, used by global_init for complex array elements.
src/ir/lowering/complex.rs:755
↓ 3 callersFunctioneval_if_condition
Evaluate a `.if` condition expression using the shared implementation. Supports: `==`, `!=`, `>`, `>=`, `<`, `<=`, `||`, `&&`, parentheses.
src/backend/arm/assembler/parser.rs:443
↓ 3 callersFunctioneval_if_expr
Evaluate a `.if` expression for the x86 assembler. Resolves `.set` symbols and x86 register names (%rsp, %rbp, etc.) before evaluating the expression
src/backend/x86/assembler/parser.rs:2126
↓ 3 callersFunctioneval_mul
(tokens: &[ExprToken], pos: &mut usize)
src/backend/asm_expr.rs:177
← previousnext →1,001–1,100 of 6,057, ranked by callers