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