pliron_llvm/llvm_sys/
target.rs1use llvm_sys::target::{
7 LLVM_InitializeAllAsmParsers, LLVM_InitializeAllAsmPrinters, LLVM_InitializeAllDisassemblers,
8 LLVM_InitializeAllTargetInfos, LLVM_InitializeAllTargetMCs, LLVM_InitializeAllTargets,
9 LLVM_InitializeNativeAsmParser, LLVM_InitializeNativeAsmPrinter,
10 LLVM_InitializeNativeDisassembler, LLVM_InitializeNativeTarget,
11};
12
13use crate::llvm_sys::ToBool;
14
15pub fn llvm_initialize_all_target_infos() {
17 unsafe {
18 LLVM_InitializeAllTargetInfos();
19 }
20}
21
22pub fn llvm_initialize_all_targets() {
24 unsafe {
25 LLVM_InitializeAllTargets();
26 }
27}
28
29pub fn llvm_initialize_all_target_mcs() {
31 unsafe {
32 LLVM_InitializeAllTargetMCs();
33 }
34}
35
36pub fn llvm_initialize_all_asm_printers() {
38 unsafe {
39 LLVM_InitializeAllAsmPrinters();
40 }
41}
42
43pub fn llvm_initialize_all_asm_parsers() {
45 unsafe {
46 LLVM_InitializeAllAsmParsers();
47 }
48}
49
50pub fn llvm_initialize_all_disassemblers() {
52 unsafe {
53 LLVM_InitializeAllDisassemblers();
54 }
55}
56
57pub fn llvm_initialize_native_target() -> Result<(), String> {
59 if !unsafe { LLVM_InitializeNativeTarget().to_bool() } {
60 Ok(())
61 } else {
62 Err("Failed to initialize native target".to_string())
63 }
64}
65
66pub fn llvm_initialize_native_asm_parser() -> Result<(), String> {
68 if !unsafe { LLVM_InitializeNativeAsmParser().to_bool() } {
69 Ok(())
70 } else {
71 Err("Failed to initialize native asm parser".to_string())
72 }
73}
74
75pub fn llvm_initialize_native_asm_printer() -> Result<(), String> {
77 if !unsafe { LLVM_InitializeNativeAsmPrinter().to_bool() } {
78 Ok(())
79 } else {
80 Err("Failed to initialize native asm printer".to_string())
81 }
82}
83
84pub fn llvm_initialize_native_disassembler() -> Result<(), String> {
86 if !unsafe { LLVM_InitializeNativeDisassembler().to_bool() } {
87 Ok(())
88 } else {
89 Err("Failed to initialize native disassembler".to_string())
90 }
91}
92
93pub fn initialize_native() -> Result<(), String> {
95 llvm_initialize_native_target()?;
96 llvm_initialize_native_asm_printer()?;
97 llvm_initialize_native_asm_parser()?;
98 llvm_initialize_native_disassembler()?;
99 Ok(())
100}
101
102pub fn initialize_all() {
104 llvm_initialize_all_target_infos();
105 llvm_initialize_all_targets();
106 llvm_initialize_all_target_mcs();
107 llvm_initialize_all_asm_printers();
108 llvm_initialize_all_asm_parsers();
109 llvm_initialize_all_disassemblers();
110}