[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


           Summary: Register coalescing doing very poor job on EEMBC
           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