This commit refactors the syntax of "ugly" attribute/type formats to not use strings for wrapping. This means that moving forward attirbutes and type formats will always need to be in some recognizable form, i.e. if they use incompatible characters they will need to manually wrap those in a string, the framework will no longer do it automatically. This has the benefit of greatly simplifying how parsing attributes/types work, given that we currently rely on some extremely complicated nested parser logic which is quite problematic for a myriad of reasons; unecessary complexity(we create a nested source manager/lexer/etc.), diagnostic locations can be off/wrong given string escaping, etc. Differential Revision: https://reviews.llvm.org/D118505
62 lines
1.8 KiB
MLIR
62 lines
1.8 KiB
MLIR
// RUN: mlir-opt %s -split-input-file -verify-diagnostics
|
|
|
|
// -----
|
|
// Unrecognized token: missing storage type maximum
|
|
// expected-error@+1 {{expected ':'}}
|
|
!qalias = !quant.any<i8<16>:f32>
|
|
|
|
// -----
|
|
// Unrecognized token: missing closing angle bracket
|
|
// expected-error@+1 {{unbalanced '<' character in pretty dialect name}}
|
|
!qalias = !quant<any<i8<-4:3:f32>>
|
|
|
|
// -----
|
|
// Unrecognized token: missing type colon
|
|
// expected-error@+1 {{expected '>'}}
|
|
!qalias = !quant.any<i8<-4:3>f32>
|
|
|
|
// -----
|
|
// Unrecognized storage type: illegal prefix
|
|
// expected-error@+1 {{illegal storage type prefix}}
|
|
!qalias = !quant.any<int8<-4:3>:f32>
|
|
|
|
// -----
|
|
// Unrecognized storage type: no width
|
|
// expected-error@+1 {{illegal storage type prefix}}
|
|
!qalias = !quant.any<i<-4:3>:f32>
|
|
|
|
// -----
|
|
// Unrecognized storage type: storage size > 32
|
|
// expected-error@+1 {{illegal storage type size: 33}}
|
|
!qalias = !quant.any<i33:f32>
|
|
|
|
// -----
|
|
// Unrecognized storage type: storage size < 0
|
|
// expected-error@+1 {{illegal storage type size: 1024}}
|
|
!qalias = !quant.any<i1024<-4:3>:f32>
|
|
|
|
// -----
|
|
// Unrecognized storage type: storage size
|
|
// expected-error@+1 {{invalid integer width}}
|
|
!qalias = !quant.any<i0123123123123123<-4:3>:f32>
|
|
|
|
// -----
|
|
// Illegal storage min/max: max - min < 0
|
|
// expected-error@+1 {{illegal storage min and storage max: (2:1)}}
|
|
!qalias = !quant.any<i8<2:1>:f32>
|
|
|
|
// -----
|
|
// Illegal storage min/max: max - min == 0
|
|
// expected-error@+1 {{illegal storage min and storage max: (1:1)}}
|
|
!qalias = !quant.any<i8<1:1>:f32>
|
|
|
|
// -----
|
|
// Illegal storage min/max: max > defaultMax
|
|
// expected-error@+1 {{illegal storage type maximum: 9}}
|
|
!qalias = !quant.any<i4<-1:9>:f32>
|
|
|
|
// -----
|
|
// Illegal storage min/max: min < defaultMin
|
|
// expected-error@+1 {{illegal storage type minimum: -9}}
|
|
!qalias = !quant.any<i4<-9:1>:f32>
|