@@ -16,22 +16,29 @@ pub use self::Diagnostic::*;
1616use libc:: { c_char, c_uint} ;
1717use std:: ptr;
1818
19- use { DebugLocRef , DiagnosticInfoRef , TwineRef , ValueRef } ;
19+ use { DiagnosticInfoRef , TwineRef , ValueRef } ;
20+ use ffi:: DebugLocRef ;
2021
2122#[ derive( Copy , Clone ) ]
2223pub enum OptimizationDiagnosticKind {
2324 OptimizationRemark ,
2425 OptimizationMissed ,
2526 OptimizationAnalysis ,
27+ OptimizationAnalysisFPCommute ,
28+ OptimizationAnalysisAliasing ,
2629 OptimizationFailure ,
30+ OptimizationRemarkOther ,
2731}
2832
2933impl OptimizationDiagnosticKind {
3034 pub fn describe ( self ) -> & ' static str {
3135 match self {
32- OptimizationRemark => "remark" ,
36+ OptimizationRemark |
37+ OptimizationRemarkOther => "remark" ,
3338 OptimizationMissed => "missed" ,
3439 OptimizationAnalysis => "analysis" ,
40+ OptimizationAnalysisFPCommute => "floating-point" ,
41+ OptimizationAnalysisAliasing => "aliasing" ,
3542 OptimizationFailure => "failure" ,
3643 }
3744 }
@@ -58,11 +65,11 @@ impl OptimizationDiagnostic {
5865 message : ptr:: null_mut ( ) ,
5966 } ;
6067
61- super :: LLVMUnpackOptimizationDiagnostic ( di,
62- & mut opt. pass_name ,
63- & mut opt. function ,
64- & mut opt. debug_loc ,
65- & mut opt. message ) ;
68+ super :: LLVMRustUnpackOptimizationDiagnostic ( di,
69+ & mut opt. pass_name ,
70+ & mut opt. function ,
71+ & mut opt. debug_loc ,
72+ & mut opt. message ) ;
6673
6774 opt
6875 }
@@ -84,10 +91,10 @@ impl InlineAsmDiagnostic {
8491 instruction : ptr:: null_mut ( ) ,
8592 } ;
8693
87- super :: LLVMUnpackInlineAsmDiagnostic ( di,
88- & mut opt. cookie ,
89- & mut opt. message ,
90- & mut opt. instruction ) ;
94+ super :: LLVMRustUnpackInlineAsmDiagnostic ( di,
95+ & mut opt. cookie ,
96+ & mut opt. message ,
97+ & mut opt. instruction ) ;
9198
9299 opt
93100 }
@@ -103,24 +110,39 @@ pub enum Diagnostic {
103110
104111impl Diagnostic {
105112 pub unsafe fn unpack ( di : DiagnosticInfoRef ) -> Diagnostic {
106- let kind = super :: LLVMGetDiagInfoKind ( di) ;
113+ use super :: DiagnosticKind as Dk ;
114+ let kind = super :: LLVMRustGetDiagInfoKind ( di) ;
107115
108116 match kind {
109- super :: DK_InlineAsm => InlineAsm ( InlineAsmDiagnostic :: unpack ( di) ) ,
117+ Dk :: InlineAsm => InlineAsm ( InlineAsmDiagnostic :: unpack ( di) ) ,
110118
111- super :: DK_OptimizationRemark => {
119+ Dk :: OptimizationRemark => {
112120 Optimization ( OptimizationDiagnostic :: unpack ( OptimizationRemark , di) )
113121 }
114-
115- super :: DK_OptimizationRemarkMissed => {
122+ Dk :: OptimizationRemarkOther => {
123+ Optimization ( OptimizationDiagnostic :: unpack ( OptimizationRemarkOther , di) )
124+ }
125+ Dk :: OptimizationRemarkMissed => {
116126 Optimization ( OptimizationDiagnostic :: unpack ( OptimizationMissed , di) )
117127 }
118128
119- super :: DK_OptimizationRemarkAnalysis => {
129+ Dk :: OptimizationRemarkAnalysis => {
120130 Optimization ( OptimizationDiagnostic :: unpack ( OptimizationAnalysis , di) )
121131 }
122132
123- super :: DK_OptimizationFailure => {
133+
134+ Dk :: OptimizationRemarkAnalysisFPCommute => {
135+ Optimization ( OptimizationDiagnostic :: unpack (
136+ OptimizationAnalysisFPCommute , di) )
137+ }
138+
139+ Dk :: OptimizationRemarkAnalysisAliasing => {
140+ Optimization ( OptimizationDiagnostic :: unpack (
141+ OptimizationAnalysisAliasing , di) )
142+ }
143+
144+
145+ Dk :: OptimizationFailure => {
124146 Optimization ( OptimizationDiagnostic :: unpack ( OptimizationFailure , di) )
125147 }
126148
0 commit comments