llvm_sys/transforms/
pass_builder.rs

1#![allow(non_snake_case)]
2
3use crate::error::LLVMErrorRef;
4use crate::prelude::*;
5use crate::target_machine::LLVMTargetMachineRef;
6
7#[derive(Debug)]
8pub enum LLVMOpaquePassBuilderOptions {}
9pub type LLVMPassBuilderOptionsRef = *mut LLVMOpaquePassBuilderOptions;
10
11extern "C" {
12    pub fn LLVMRunPasses(
13        M: LLVMModuleRef,
14        Passes: *const ::libc::c_char,
15        TM: LLVMTargetMachineRef,
16        Options: LLVMPassBuilderOptionsRef,
17    ) -> LLVMErrorRef;
18    /// Construct and run a set of passes over a function.
19    ///
20    /// This function behaves the same as LLVMRunPasses, but operates on a single
21    /// function instead of an entire module.
22    pub fn LLVMRunPassesOnFunction(
23        F: LLVMValueRef,
24        Passes: *const ::libc::c_char,
25        TM: LLVMTargetMachineRef,
26        Options: LLVMPassBuilderOptionsRef,
27    ) -> LLVMErrorRef;
28    pub fn LLVMCreatePassBuilderOptions() -> LLVMPassBuilderOptionsRef;
29    pub fn LLVMPassBuilderOptionsSetVerifyEach(
30        Options: LLVMPassBuilderOptionsRef,
31        VerifyEach: LLVMBool,
32    );
33    pub fn LLVMPassBuilderOptionsSetDebugLogging(
34        Options: LLVMPassBuilderOptionsRef,
35        DebugLogging: LLVMBool,
36    );
37    pub fn LLVMPassBuilderOptionsSetAAPipeline(
38        Options: LLVMPassBuilderOptionsRef,
39        AAPipeline: *const ::libc::c_char,
40    );
41    pub fn LLVMPassBuilderOptionsSetLoopInterleaving(
42        Options: LLVMPassBuilderOptionsRef,
43        LoopInterleaving: LLVMBool,
44    );
45    pub fn LLVMPassBuilderOptionsSetLoopVectorization(
46        Options: LLVMPassBuilderOptionsRef,
47        LoopVectorization: LLVMBool,
48    );
49    pub fn LLVMPassBuilderOptionsSetSLPVectorization(
50        Options: LLVMPassBuilderOptionsRef,
51        SLPVectorization: LLVMBool,
52    );
53    pub fn LLVMPassBuilderOptionsSetLoopUnrolling(
54        Options: LLVMPassBuilderOptionsRef,
55        LoopUnrolling: LLVMBool,
56    );
57    pub fn LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll(
58        Options: LLVMPassBuilderOptionsRef,
59        ForgetAllSCEVInLoopUnroll: LLVMBool,
60    );
61    pub fn LLVMPassBuilderOptionsSetLicmMssaOptCap(
62        Options: LLVMPassBuilderOptionsRef,
63        LicmMssaOptCap: ::libc::c_uint,
64    );
65    pub fn LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap(
66        Options: LLVMPassBuilderOptionsRef,
67        LicmMssaNoAccForPromotionCap: ::libc::c_uint,
68    );
69    pub fn LLVMPassBuilderOptionsSetCallGraphProfile(
70        Options: LLVMPassBuilderOptionsRef,
71        CallGraphProfile: LLVMBool,
72    );
73    pub fn LLVMPassBuilderOptionsSetMergeFunctions(
74        Options: LLVMPassBuilderOptionsRef,
75        MergeFunctions: LLVMBool,
76    );
77    pub fn LLVMPassBuilderOptionsSetInlinerThreshold(
78        Options: LLVMPassBuilderOptionsRef,
79        Threshold: ::libc::c_int,
80    );
81    pub fn LLVMDisposePassBuilderOptions(Options: LLVMPassBuilderOptionsRef);
82}