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

             Bug #: 14578
           Summary: Apparent miscompilation with opt -inline
                    -sroa/-scalarrepl and llc -O1
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
    Classification: Unclassified


Created attachment 9679
  --> http://llvm.org/bugs/attachment.cgi?id=9679
Testcase

The attached bitcode seems to be getting miscompiled after opt -inline -sroa
and llc -O1, on an x86-64 host. Doing opt -inline and opt -sroa separately
hides the issue.

Since both opt -inline -sroa and llc -O1 are required, I unfortunately have no
idea at what level the bug is. (Aside from the usual miscompilation caveats:
the original code itself could be at fault, or even the backend of Clang.)

I'm sorry about the large bitcode, but reducing this is a royal pain. bugpoint
doesn't help, it just moves the two global constants to a separate bitcode
file. (Or, without -disable-loop-extraction, crashes --- see Bug 14370.)

Results of various kinds of optimizations with LLVM trunk (r169915):

$ llc -O1 < misbehaviour.bc | gcc -x assembler - && ./a.out    
OK

$ opt -inline -sroa < misbehaviour.bc | llc -O0 | gcc -x assembler - && ./a.out 
OK
$ opt -inline -sroa < misbehaviour.bc | llc -O1 | gcc -x assembler - && ./a.out 
zsh: segmentation fault (core dumped)  ./a.out

$ opt -inline < misbehaviour.bc | opt -sroa | llc -O1 | gcc -x assembler - &&
./a.out
OK

$ opt -O3 < misbehaviour.bc | llc -O0 | gcc -x assembler - && ./a.out 
OK
$ opt -O3 < misbehaviour.bc | llc -O1 | gcc -x assembler - && ./a.out 
zsh: segmentation fault (core dumped)  ./a.out

Using -scalarrepl in place of -sroa affects none of these.

The error pointed out by valgrind in the segfaulting cases is "Invalid read of
size 8" on address 0x18.

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