[LLVMbugs] [Bug 11063] New: Inliner incorrectly removes non-dead code w/ lazy bitcode
    bugzilla-daemon at llvm.org 
    bugzilla-daemon at llvm.org
       
    Tue Oct  4 18:40:51 PDT 2011
    
    
  
http://llvm.org/bugs/show_bug.cgi?id=11063
           Summary: Inliner incorrectly removes non-dead code w/ lazy
                    bitcode
           Product: new-bugs
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: boulos at cs.stanford.edu
                CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=7402)
 --> (http://llvm.org/bugs/attachment.cgi?id=7402)
bitcode loading app
This is a simpler test case from the one I posted in July
(http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-July/041187.html).
The setup is that I've got some simple bitcode with a template in it, which
causes a function to be marked linkonce_odr. If I load the bitcode via
getLazyBitcodeModule() though and then optimize the module with the Inliner, it
incorrectly treats the templated code as dead because it sees no callsites (and
it's linkonce_odr).
The original input (bitcode_input.cc) was:
template<typename T>
class SomeContainer {
public:
   T* getPtr() { return data; }
   T* data;
};
extern "C"
float* RunStuff(void) {
   SomeContainer<float> emptyContainer;
   return emptyContainer.getPtr();
}
To reproduce:
clang++ -emit-llvm -c bitcode_input.cc -o test.bc
clang++ `llvm-config --cxxflags --ldflags --libs` load_bitcode.cc
./a.out
-- 
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