[LLVMbugs] [Bug 9479] New: Register coalescing doing very poor job on EEMBC benchmark
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Mar 14 10:15:05 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=9479
Summary: Register coalescing doing very poor job on EEMBC
benchmark
Product: new-bugs
Version: 2.9
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: dpickens56 at hotmail.com
CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=6323)
--> (http://llvm.org/bugs/attachment.cgi?id=6323)
EEMBC benchmark program bitmnp01/bmark.c with include files back-substituted.
Compile the EEMBC benchmark program "bitmnp01/bmark.c" (attached) with the
SPARC target at -Os, -O2, or -O3 and observe the generated assembly file.
(Other targets show the problem as well.)
There are over a hundred unnecessary register copy instructions due to the
failure of the register coalescer. The problem also causes unnecessary
spilling. For the first sequence of such copies, look near basic block 20.
This problem makes LLVM's generated code look terrible compared to GCC.
.LBB0_20: ! %bb22
! in Loop: Header=BB0_13 Depth=2
sethi %hi(charset1.2744), %l1
st %l0, [%l1+%lo(charset1.2744)]
or %g0, 1, %l1
sethi 0, %l2
st %l2, [%fp+-120]
ld [%fp+-148], %l4
st %l2, [%l4+%lo(i1.2732)]
st %l0, [%fp+-84]
st %l0, [%fp+-88]
st %l0, [%fp+-92]
st %l0, [%fp+-96]
st %l0, [%fp+-104]
or %g0, %l0, %l4
st %l0, [%fp+-76]
st %l0, [%fp+-80]
or %g0, %l0, %l5
or %g0, %l0, %l6
or %g0, %l0, %l7
or %g0, %l0, %i0
or %g0, %l0, %i1
or %g0, %l0, %i2
or %g0, %l0, %i3
or %g0, %l0, %i4
or %g0, %l0, %i5
or %g0, %l0, %o0
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list