Skip to content

Commit 28bc39e

Browse files
andreisfrgerekon
authored andcommitted
[Xtensa] Fix wchar type. Add absent IR passes.
1 parent 3ed29bb commit 28bc39e

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

clang/lib/Basic/Targets/Xtensa.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class LLVM_LIBRARY_VISIBILITY XtensaTargetInfo : public TargetInfo {
4646
SizeType = UnsignedInt;
4747
PtrDiffType = SignedInt;
4848
IntPtrType = SignedInt;
49-
WCharType = UnsignedChar;
49+
WCharType = SignedInt;
5050
WIntType = UnsignedInt;
5151
UseZeroLengthBitfieldAlignment = true;
5252
MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32;

clang/test/Preprocessor/init.c

+8-10
Original file line numberDiff line numberDiff line change
@@ -2790,7 +2790,7 @@
27902790
// XTENSA: #define __SIZEOF_PTRDIFF_T__ 4
27912791
// XTENSA: #define __SIZEOF_SHORT__ 2
27922792
// XTENSA: #define __SIZEOF_SIZE_T__ 4
2793-
// XTENSA: #define __SIZEOF_WCHAR_T__ 1
2793+
// XTENSA: #define __SIZEOF_WCHAR_T__ 4
27942794
// XTENSA: #define __SIZEOF_WINT_T__ 4
27952795
// XTENSA: #define __SIZE_FMTX__ "X"
27962796
// XTENSA: #define __SIZE_FMTo__ "o"
@@ -2895,10 +2895,9 @@
28952895
// XTENSA: #define __UINT_LEAST8_FMTx__ "hhx"
28962896
// XTENSA: #define __UINT_LEAST8_MAX__ 255
28972897
// XTENSA: #define __UINT_LEAST8_TYPE__ unsigned char
2898-
// XTENSA: #define __WCHAR_MAX__ 255
2899-
// XTENSA: #define __WCHAR_TYPE__ unsigned char
2900-
// XTENSA: #define __WCHAR_UNSIGNED__ 1
2901-
// XTENSA: #define __WCHAR_WIDTH__ 8
2898+
// XTENSA: #define __WCHAR_MAX__ 2147483647
2899+
// XTENSA: #define __WCHAR_TYPE__ int
2900+
// XTENSA: #define __WCHAR_WIDTH__ 32
29022901
// XTENSA: #define __WINT_MAX__ 4294967295U
29032902
// XTENSA: #define __WINT_TYPE__ unsigned int
29042903
// XTENSA: #define __WINT_UNSIGNED__ 1
@@ -3093,7 +3092,7 @@
30933092
// XTENSA_FAST32: #define __SIZEOF_PTRDIFF_T__ 4
30943093
// XTENSA_FAST32: #define __SIZEOF_SHORT__ 2
30953094
// XTENSA_FAST32: #define __SIZEOF_SIZE_T__ 4
3096-
// XTENSA_FAST32: #define __SIZEOF_WCHAR_T__ 1
3095+
// XTENSA_FAST32: #define __SIZEOF_WCHAR_T__ 4
30973096
// XTENSA_FAST32: #define __SIZEOF_WINT_T__ 4
30983097
// XTENSA_FAST32: #define __SIZE_FMTX__ "X"
30993098
// XTENSA_FAST32: #define __SIZE_FMTo__ "o"
@@ -3198,10 +3197,9 @@
31983197
// XTENSA_FAST32: #define __UINT_LEAST8_FMTx__ "hhx"
31993198
// XTENSA_FAST32: #define __UINT_LEAST8_MAX__ 255
32003199
// XTENSA_FAST32: #define __UINT_LEAST8_TYPE__ unsigned char
3201-
// XTENSA_FAST32: #define __WCHAR_MAX__ 255
3202-
// XTENSA_FAST32: #define __WCHAR_TYPE__ unsigned char
3203-
// XTENSA_FAST32: #define __WCHAR_UNSIGNED__ 1
3204-
// XTENSA_FAST32: #define __WCHAR_WIDTH__ 8
3200+
// XTENSA_FAST32: #define __WCHAR_MAX__ 2147483647
3201+
// XTENSA_FAST32: #define __WCHAR_TYPE__ int
3202+
// XTENSA_FAST32: #define __WCHAR_WIDTH__ 32
32053203
// XTENSA_FAST32: #define __WINT_MAX__ 4294967295U
32063204
// XTENSA_FAST32: #define __WINT_TYPE__ unsigned int
32073205
// XTENSA_FAST32: #define __WINT_UNSIGNED__ 1

llvm/lib/Target/Xtensa/XtensaTargetMachine.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ bool XtensaPassConfig::addInstSelector() {
132132
return false;
133133
}
134134

135-
void XtensaPassConfig::addIRPasses() { addPass(createAtomicExpandPass()); }
135+
void XtensaPassConfig::addIRPasses() {
136+
addPass(createAtomicExpandPass());
137+
TargetPassConfig::addIRPasses();
138+
}
136139

137140
void XtensaPassConfig::addPreRegAlloc() {
138141
addPass(createXtensaHardwareLoops());

llvm/test/CodeGen/Xtensa/ee-intrinsics-loop.ll

+3-3
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ for.body: ; preds = %entry, %for.body
6969
; CHECK-NEXT: ee.stf.128.ip f11, f10, f9, f8, a8, 16
7070
; CHECK-NEXT: ee.stf.128.ip f8, f8, f8, f8, a8, 16
7171
; CHECK-NEXT: ee.stf.128.xp f8, f8, f8, f8, a9, a8
72-
; CHECK-NEXT: movi.n a10, 0
72+
; CHECK-NEXT: movi.n a10, 32
7373
; CHECK-NEXT: movi.n a11, 10
7474
; CHECK-NEXT: .LBB0_1: # %for.body
7575
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
@@ -79,8 +79,8 @@ for.body: ; preds = %entry, %for.body
7979
; CHECK-NEXT: ee.vmulas.s16.accx.ld.xp.qup q4, a8, a9, q0, q4, q2, q3
8080
; CHECK-NEXT: ee.ld.128.usar.xp q4, a8, a9
8181
; CHECK-NEXT: ee.vmulas.s16.accx.ld.ip.qup q3, a8, 16, q0, q3, q4, q2
82-
; CHECK-NEXT: addi.n a10, a10, 1
83-
; CHECK-NEXT: bnei a10, 32, .LBB0_1
82+
; CHECK-NEXT: addi.n a10, a10, -1
83+
; CHECK-NEXT: bnez a10, .LBB0_1
8484
; CHECK-NEXT: # %bb.2: # %for.cond.cleanup
8585
; CHECK-NEXT: movi.n a8, 0
8686
; CHECK-NEXT: wur.sar_byte a8

0 commit comments

Comments
 (0)