[LLVMbugs] [Bug 1164] NEW: CBE can generate name conflicts

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Sat Feb 3 15:33:39 PST 2007


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

           Summary: CBE can generate name conflicts
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Backend: C
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: sabre at nondot.org


Consider:

@G = global i32 123
@ltmp_0_1 = global i32 123

define i32 @test(i32 *%G) {
        %A = load i32* %G
        %B = load i32* @ltmp_0_1
        %C = add i32 %A, %B
        ret i32 %C
}

The CBE generated code is:

unsigned int test(unsigned int *ltmp_0_1) {
...
  ltmp_1_2 = *ltmp_0_1;     // local
  ltmp_2_2 = *(&ltmp_0_1); // global
  return (ltmp_1_2 + ltmp_2_2);
...

This is a serious bug.

A not-as-serious bug: the CBE ignores the local names of symbols, turning %A into ltmp_1_2?

-Chris



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list