vicis-core 0.2.0

Manipulate LLVM-IR in Pure Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use vicis_core::ir::{function::builder::Builder, module::Module, types::I32};

#[test]
fn build() {
    let mut module = Module::default();
    let int = I32;

    let func_id = module.create_function("func", int, vec![], false);
    let func = &mut module.functions_mut()[func_id];

    let mut builder = Builder::new(func);
    let entry = builder.create_block();
    builder.switch_to_block(entry);
    let forty_two = builder.value(42i32);
    builder.inst().ret(forty_two);

    insta::assert_debug_snapshot!(module);
}