This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/88349] New: [9 regression][MIPS] Redundant store instructions generated start with r266385
- From: "paul.hua.gm at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 04 Dec 2018 10:12:21 +0000
- Subject: [Bug rtl-optimization/88349] New: [9 regression][MIPS] Redundant store instructions generated start with r266385
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88349
Bug ID: 88349
Summary: [9 regression][MIPS] Redundant store instructions
generated start with r266385
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: paul.hua.gm at gmail dot com
Target Milestone: ---
paulhua@gcc122:~/test/debug_mult-16$ cat mult-16.i
typedef int DI __attribute__((mode(DI)));
typedef int SI __attribute__((mode(SI)));
__attribute__((mips16)) SI
f (SI x, SI y)
{
return ((DI) x * y) >> 32;
}
good asm:
f:
.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
.mask 0x00000000,0
.fmask 0x00000000,0
mult $4,$5
mfhi $3
.set noreorder
.set nomacro
jr $31
move $2,$3
.set macro
.set reorder
bad asm:
f:
.frame $sp,16,$31 # vars= 8, regs= 0/0, args= 0, gp= 8
.mask 0x00000000,0
.fmask 0x00000000,0
addiu $sp,-16
mult $4,$5
mflo $2
mfhi $3
sw $2,8($sp)
sw $3,12($sp)
lw $2,12($sp)
.set noreorder
.set nomacro
jr $31
addiu $sp,16
.set macro
.set reorder
cmd:
paulhua@gcc122:~/test/debug_mult-16$ ~/build/gcc-r266385_obj/gcc/cc1
-fpreprocessed mult-16.i -mel -quiet -dumpbase mult-16.c -mabi=32 -mgp32
-mlong32 -mno-micromips -march=mips64r2 -mllsc -mips64r2 -mno-shared
-auxbase-strip mult-16.s -O1 -version -fdiagnostics-color=never
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fexpensive-optimizations -ffat-lto-objects -fno-ident -o new.s
cross-gcc configure:
configure MISSING=texinfo MAKEINFO=missing --target=mips64el-linux-gnu
--enable-languages=c,c++