@@ -23,15 +23,21 @@ pub enum OptimizationDiagnosticKind {
23
23
OptimizationRemark ,
24
24
OptimizationMissed ,
25
25
OptimizationAnalysis ,
26
+ OptimizationAnalysisFPCommute ,
27
+ OptimizationAnalysisAliasing ,
26
28
OptimizationFailure ,
29
+ OptimizationRemarkOther ,
27
30
}
28
31
29
32
impl OptimizationDiagnosticKind {
30
33
pub fn describe ( self ) -> & ' static str {
31
34
match self {
32
- OptimizationRemark => "remark" ,
35
+ OptimizationRemark |
36
+ OptimizationRemarkOther => "remark" ,
33
37
OptimizationMissed => "missed" ,
34
38
OptimizationAnalysis => "analysis" ,
39
+ OptimizationAnalysisFPCommute => "floating-point" ,
40
+ OptimizationAnalysisAliasing => "aliasing" ,
35
41
OptimizationFailure => "failure" ,
36
42
}
37
43
}
@@ -58,11 +64,11 @@ impl OptimizationDiagnostic {
58
64
message : ptr:: null_mut ( ) ,
59
65
} ;
60
66
61
- super :: LLVMUnpackOptimizationDiagnostic ( di,
62
- & mut opt. pass_name ,
63
- & mut opt. function ,
64
- & mut opt. debug_loc ,
65
- & mut opt. message ) ;
67
+ super :: LLVMRustUnpackOptimizationDiagnostic ( di,
68
+ & mut opt. pass_name ,
69
+ & mut opt. function ,
70
+ & mut opt. debug_loc ,
71
+ & mut opt. message ) ;
66
72
67
73
opt
68
74
}
@@ -84,10 +90,10 @@ impl InlineAsmDiagnostic {
84
90
instruction : ptr:: null_mut ( ) ,
85
91
} ;
86
92
87
- super :: LLVMUnpackInlineAsmDiagnostic ( di,
88
- & mut opt. cookie ,
89
- & mut opt. message ,
90
- & mut opt. instruction ) ;
93
+ super :: LLVMRustUnpackInlineAsmDiagnostic ( di,
94
+ & mut opt. cookie ,
95
+ & mut opt. message ,
96
+ & mut opt. instruction ) ;
91
97
92
98
opt
93
99
}
@@ -103,24 +109,39 @@ pub enum Diagnostic {
103
109
104
110
impl Diagnostic {
105
111
pub unsafe fn unpack ( di : DiagnosticInfoRef ) -> Diagnostic {
106
- let kind = super :: LLVMGetDiagInfoKind ( di) ;
112
+ use super :: DiagnosticKind as Dk ;
113
+ let kind = super :: LLVMRustGetDiagInfoKind ( di) ;
107
114
108
115
match kind {
109
- super :: DK_InlineAsm => InlineAsm ( InlineAsmDiagnostic :: unpack ( di) ) ,
116
+ Dk :: InlineAsm => InlineAsm ( InlineAsmDiagnostic :: unpack ( di) ) ,
110
117
111
- super :: DK_OptimizationRemark => {
118
+ Dk :: OptimizationRemark => {
112
119
Optimization ( OptimizationDiagnostic :: unpack ( OptimizationRemark , di) )
113
120
}
114
-
115
- super :: DK_OptimizationRemarkMissed => {
121
+ Dk :: OptimizationRemarkOther => {
122
+ Optimization ( OptimizationDiagnostic :: unpack ( OptimizationRemarkOther , di) )
123
+ }
124
+ Dk :: OptimizationRemarkMissed => {
116
125
Optimization ( OptimizationDiagnostic :: unpack ( OptimizationMissed , di) )
117
126
}
118
127
119
- super :: DK_OptimizationRemarkAnalysis => {
128
+ Dk :: OptimizationRemarkAnalysis => {
120
129
Optimization ( OptimizationDiagnostic :: unpack ( OptimizationAnalysis , di) )
121
130
}
122
131
123
- super :: DK_OptimizationFailure => {
132
+
133
+ Dk :: OptimizationRemarkAnalysisFPCommute => {
134
+ Optimization ( OptimizationDiagnostic :: unpack (
135
+ OptimizationAnalysisFPCommute , di) )
136
+ }
137
+
138
+ Dk :: OptimizationRemarkAnalysisAliasing => {
139
+ Optimization ( OptimizationDiagnostic :: unpack (
140
+ OptimizationAnalysisAliasing , di) )
141
+ }
142
+
143
+
144
+ Dk :: OptimizationFailure => {
124
145
Optimization ( OptimizationDiagnostic :: unpack ( OptimizationFailure , di) )
125
146
}
126
147
0 commit comments