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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to