[−][src]Module rustc_codegen_llvm::base
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Codegen the completed AST to the LLVM IR.
Some functions here, such as codegen_block and codegen_expr, return a value -- the result of the codegen to LLVM -- while others, such as codegen_fn and mono_item, are called only for the side effect of adding a particular definition to the LLVM IR output we're producing.
Hopefully useful general knowledge about codegen:
- There's no way to find out the Ty type of a Value. Doing so
would be "trying to get the eggs out of an omelette" (credit:
pcwalton). You can, instead, find out its llvm::Type by calling val_ty,
but one llvm::Type corresponds to many
Ty
s; for instance, tup(int, int, int) and rec(x=int, y=int, z=int) will have the same llvm::Type.
Modules
temp_stable_hash_impls |
[ Experimental ]
|
Structs
StatRecorder |
[ Experimental ]
|
ValueIter |
[ Experimental ]
|
Enums
CguReUsable |
[ Experimental ]
|
Functions
assert_and_save_dep_graph |
[ Experimental ]
|
bin_op_to_fcmp_predicate |
[ Experimental ]
|
bin_op_to_icmp_predicate |
[ Experimental ]
|
call_assume |
[ Experimental ]
|
call_memcpy |
[ Experimental ]
|
call_memset |
[ Experimental ]
|
cast_shift_expr_rhs |
[ Experimental ]
|
cast_shift_rhs |
[ Experimental ]
|
codegen_crate |
[ Experimental ]
|
codegen_instance |
[ Experimental ]
|
coerce_unsized_into |
[ Experimental ] Coerce |
collect_and_partition_mono_items |
[ Experimental ]
|
compare_simd_types |
[ Experimental ]
|
compile_codegen_unit |
[ Experimental ]
|
determine_cgu_reuse |
[ Experimental ]
|
from_immediate |
[ Experimental ]
|
is_codegened_item |
[ Experimental ]
|
iter_globals |
[ Experimental ]
|
linkage_to_llvm |
[ Experimental ]
|
maybe_create_entry_wrapper |
[ Experimental ] Create the |
memcpy_ty |
[ Experimental ]
|
provide |
[ Experimental ]
|
provide_extern |
[ Experimental ]
|
set_link_section |
[ Experimental ]
|
to_immediate |
[ Experimental ]
|
to_immediate_scalar |
[ Experimental ]
|
unsize_thin_ptr |
[ Experimental ] Coerce |
unsized_info |
[ Experimental ] Retrieve the information we are losing (making dynamic) in an unsizing adjustment. |
visibility_to_llvm |
[ Experimental ]
|
wants_msvc_seh |
[ Experimental ] Returns whether this session's target will use SEH-based unwinding. |
write_metadata |
[ Experimental ]
|