[−][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
Tys; 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 ]
|