1use crate::prelude::LLVMBool;
3
4#[repr(C)]
5pub enum LLVMRemarkType {
6 LLVMRemarkTypeUnknown,
7 LLVMRemarkTypePassed,
8 LLVMRemarkTypeMissed,
9 LLVMRemarkTypeAnalysis,
10 LLVMRemarkTypeAnalysisFPCommute,
11 LLVMRemarkTypeAnalysisAliasing,
12 LLVMRemarkTypeFailure,
13}
14
15pub enum LLVMRemarkOpaqueString {}
16
17pub type LLVMRemarkStringRef = *mut LLVMRemarkOpaqueString;
19
20extern "C" {
21 pub fn LLVMRemarkStringGetData(String: LLVMRemarkStringRef) -> *const ::libc::c_char;
23
24 pub fn LLVMRemarkStringGetLen(String: LLVMRemarkStringRef) -> u32;
26}
27
28pub enum LLVMRemarkOpaqueDebugLoc {}
29
30pub type LLVMRemarkDebugLocRef = *mut LLVMRemarkOpaqueDebugLoc;
32
33extern "C" {
34 pub fn LLVMRemarkDebugLocGetSourceFilePath(DL: LLVMRemarkDebugLocRef) -> LLVMRemarkStringRef;
36
37 pub fn LLVMRemarkDebugLocGetSourceLine(DL: LLVMRemarkDebugLocRef) -> u32;
39
40 pub fn LLVMRemarkDebugLocGetSourceColumn(DL: LLVMRemarkDebugLocRef) -> u32;
42}
43
44pub enum LLVMRemarkOpaqueArg {}
45
46pub type LLVMRemarkArgRef = *mut LLVMRemarkOpaqueArg;
50
51extern "C" {
52 pub fn LLVMRemarkArgGetKey(Arg: LLVMRemarkArgRef) -> LLVMRemarkStringRef;
55
56 pub fn LLVMRemarkArgGetValue(Arg: LLVMRemarkArgRef) -> LLVMRemarkStringRef;
58
59 pub fn LLVMRemarkArgGetDebugLoc(Arg: LLVMRemarkArgRef) -> LLVMRemarkDebugLocRef;
61}
62
63pub enum LLVMRemarkOpaqueEntry {}
64pub type LLVMRemarkEntryRef = *mut LLVMRemarkOpaqueEntry;
66
67extern "C" {
68 pub fn LLVMRemarkEntryDispose(Remark: LLVMRemarkEntryRef);
70
71 pub fn LLVMRemarkEntryGetType(Remark: LLVMRemarkEntryRef) -> LLVMRemarkType;
74
75 pub fn LLVMRemarkEntryGetPassName(Remark: LLVMRemarkEntryRef) -> LLVMRemarkStringRef;
77
78 pub fn LLVMRemarkEntryGetRemarkName(Remark: LLVMRemarkEntryRef) -> LLVMRemarkStringRef;
80
81 pub fn LLVMRemarkEntryGetFunctionName(Remark: LLVMRemarkEntryRef) -> LLVMRemarkStringRef;
83
84 pub fn LLVMRemarkEntryGetDebugLoc(Remark: LLVMRemarkEntryRef) -> LLVMRemarkDebugLocRef;
86
87 pub fn LLVMRemarkEntryGetHotness(Remark: LLVMRemarkEntryRef) -> u64;
89
90 pub fn LLVMRemarkEntryGetNumArgs(Remark: LLVMRemarkEntryRef) -> u32;
92
93 pub fn LLVMRemarkEntryGetFirstArg(Remark: LLVMRemarkEntryRef) -> LLVMRemarkArgRef;
95
96 pub fn LLVMRemarkEntryGetNextArg(
98 It: LLVMRemarkArgRef,
99 Remark: LLVMRemarkEntryRef,
100 ) -> LLVMRemarkArgRef;
101}
102
103pub enum LLVMRemarkOpaqueParser {}
104pub type LLVMRemarkParserRef = *mut LLVMRemarkOpaqueParser;
105
106extern "C" {
107 pub fn LLVMRemarkParserCreateYAML(Buf: *const ::libc::c_void, Size: u64)
110 -> LLVMRemarkParserRef;
111
112 pub fn LLVMRemarkParserCreateBitstream(
113 Buf: *const ::libc::c_void,
114 Size: u64,
115 ) -> LLVMRemarkParserRef;
116
117 pub fn LLVMRemarkParserGetNext(Parser: LLVMRemarkParserRef) -> LLVMRemarkEntryRef;
119
120 pub fn LLVMRemarkParserHasError(Parser: LLVMRemarkParserRef) -> LLVMBool;
122
123 pub fn LLVMRemarkParserGetErrorMessage(Parser: LLVMRemarkParserRef) -> *const ::libc::c_char;
125
126 pub fn LLVMRemarkParserDispose(Parser: LLVMRemarkParserRef);
127}
128
129pub const REMARKS_API_VERSION: u32 = 1;
130
131extern "C" {
132 pub fn LLVMRemarkVersion() -> u32;
134}