[LLVMbugs] [Bug 14710] New: LTO bug on compiling llvm-as

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Dec 24 20:38:31 PST 2012


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

             Bug #: 14710
           Summary: LTO bug on compiling llvm-as
           Product: tools
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: lto
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: alonzakai at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Attached are .ll files produced in the following manner:

emcc-0-basebc.ll: compile llvm-as to bitcode
emcc-1-opt.ll: run opt on that with -O1
emcc-2-linktime.ll: run opt on that with -strip-debug -disable-inlining
-disable-internalize -internalize -internalize-public-api-list=main
-std-link-opts

The step from 1 to 2 breaks the output. Debugging it, the issue is that

define internal fastcc void @_ZL13CopyStringRefPcN4llvm9StringRefE(i8*
nocapture %Memory, %"class.llvm::StringRef"* nocapture byval align 4 %Data)
nounwind {
  tail call void @emscripten_autodebug_i32(i32 -1, i32 739504) nounwind
  %1 = tail call i8* @_ZNK4llvm9StringRef4dataEv(%"class.llvm::StringRef"*
%Data)
[..]

is transformed into

define internal fastcc void @_ZL13CopyStringRefPcN4llvm9StringRefE(i8*
nocapture %Memory, i8* %Data.0, i32 %Data.1) nounwind {
  %Data = alloca %"class.llvm::StringRef", align 8
  tail call fastcc void @emscripten_autodebug_i32(i32 -1, i32 739504) nounwind
  %1 = tail call fastcc i8*
@_ZNK4llvm9StringRef4dataEv(%"class.llvm::StringRef"* %Data)
[..]

Note how %Data was converted into two separate variables %Data.0 and %Data.1
(StringRefs have two properties, a buffer and a length) by LTO, however, those
two variables are not used, instead %Data is allocated on the stack (and never
assigned to, so it contains random data).

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