[LLVMbugs] [Bug 1953] New: Improve llvm-gcc complex code generation

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Jan 28 21:16:57 PST 2008


http://llvm.org/bugs/show_bug.cgi?id=1953

           Summary: Improve llvm-gcc complex code generation
           Product: tools
           Version: 2.2
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: sabre at nondot.org
                CC: llvmbugs at cs.uiuc.edu


llvm-gcc currently lowers code like this:

void foo(float f, _Complex float *P) {
_Complex float x = f;
*P += x;
}

into two adds.  It really should only do one add for performance and numerical
correctness (as strongly recommended in annex G of C99).  One way to do this
would be to run the complex lowering pass which 4.2 already has, but this
apparently requires "gimple ssa form", so this is not trivial.

The other way to handle this is to hack llvm-convert to somehow do this.  The
problem is that the temporaries introduced by gimplification that are not in
SSA form prevent doing correct dataflow analysis to propagate this information
through.

-Chris


-- 
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