[LLVMbugs] [Bug 6071] New: MIPS backend error, missing argument passing in generated code

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Jan 18 03:04:16 PST 2010


           Summary: MIPS backend error, missing argument passing in
                    generated code
           Product: libraries
           Version: 2.6
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Archive library
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: ihusar at fit.vutbr.cz
                CC: llvmbugs at cs.uiuc.edu

Created an attachment (id=4071)
 --> (http://llvm.org/bugs/attachment.cgi?id=4071)
C code

Please, assign this to the the correct component, in the backends in bugzilla,
there is no MIPS present.
For C code from some benchmark that calculates CRC compiled with web-site demo
frontend with no optimizations and then with llc -march=mips, incorrect code is
generated. (llvm v. 2.6).

Call in C code (crc.c):

crc = crc32buf(buf, 4);

is translated correctly to IR:

%1 = call i32 @crc32buf(i32* getelementptr ([4 x i32]* @buf, i32 0, i32 0), i32
4) nounwind         

but then the MIPS backend generates following code:

        .frame  $sp,48,$ra
        .mask   0x80000000,-8
        .fmask  0x00000000,0

        .set    noreorder
        .cpload $25
        .set    nomacro
        addiu   $sp, $sp, -48
        sw      $ra, 40($sp)
        .cprestore      16

        sw      $4, 20($sp)
        sw      $5, 24($sp)
        sw      $zero, 32($sp)
        lw      $4, %got(buf)($gp)
        lw      $25, %call16(crc32buf)($gp)
        jalr    $25 #call - buf poiter is in $4, value 4 should be in $5, but 
                    #this assignement was not made

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