[LLVMbugs] [Bug 2451] New: Anders pass asserts on extractelement/insertelement

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Jun 13 01:00:04 PDT 2008


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

           Summary: Anders pass asserts on extractelement/insertelement
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Global Analyses
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: matthijs at stdin.nl
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=1740)
 --> (http://llvm.org/bugs/attachment.cgi?id=1740)
Test case

Very easy to reproduce: Feed any program containing a insertelement or extract
element to Anders AA pass, and it asserts. I guess nobody told anders about
these instructions yet...

I've attached a small testcase, which is taken from the instcombine testcases
(test/Transforms/InstCombine/2006-03-30-ExtractElement.ll). Run with
  llvm-as <  ./2006-03-30-ExtractElement.ll | opt -anders-aa
and it gives

Unknown instruction:    %V2 = insertelement <4 x float> %V, float 1.000000e+00,
i32 3           ; <<4 x float>> [#uses=1]

Program received signal SIGABRT, Aborted.
[Switching to Thread -1211025728 (LWP 16041)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7d3f875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7d41201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0x0853e729 in (anonymous namespace)::Andersens::visitInstruction
(this=0x87c9980, I=@0x87c945c) at Andersens.cpp:1149
#4  0x0855347c in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visitInsertElementInst (this=0x87c9980, I=@0x87c945c)
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:197
#5  0x08553496 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visitInsertElement (this=0x87c9980, I=@0x87c945c)
    at /home/kooijman/src/llvm-trunk/include/llvm/Instruction.def:165
#6  0x08553b72 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit (this=0x87c9980, I=@0x87c945c)
    at /home/kooijman/src/llvm-trunk/include/llvm/Instruction.def:165
#7  0x08553c31 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit<llvm::ilist_iterator<llvm::Instruction> > (this=0x87c9980, Start=
      {<bidirectional_iterator<llvm::Instruction,int>> = {<> = {<No data
fields>}, <No data fields>}, NodePtr = 0x87ca878}, End=
      {<bidirectional_iterator<llvm::Instruction,int>> = {<> = {<No data
fields>}, <No data fields>}, NodePtr = 0x87c9488})
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:92
#8  0x08553ca8 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit (this=0x87c9980, BB=@0x87c9358)
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:107
#9  0x08553cf3 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit<llvm::ilist_iterator<llvm::BasicBlock> > (this=0x87c9980, Start=
      {<bidirectional_iterator<llvm::BasicBlock,int>> = {<> = {<No data
fields>}, <No data fields>}, NodePtr = 0x87c9380}, End=
      {<bidirectional_iterator<llvm::BasicBlock,int>> = {<> = {<No data
fields>}, <No data fields>}, NodePtr = 0x87c9380})
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:92
#10 0x08553d6a in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit (this=0x87c9980, F=@0x87c97b8)
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:103
#11 0x08553d88 in llvm::InstVisitor<(anonymous namespace)::Andersens,
void>::visit (this=0x87c9980, F=0x87c97b8)
    at /home/kooijman/src/llvm-trunk/include/llvm/Support/InstVisitor.h:112
#12 0x08541cc7 in (anonymous namespace)::Andersens::CollectConstraints
(this=0x87c9980, M=@0x87c7e30) at Andersens.cpp:1085
#13 0x08553dca in (anonymous namespace)::Andersens::runOnModule
(this=0x87c9980, M=@0x87c7e30) at Andersens.cpp:439
#14 0x08654772 in llvm::MPPassManager::runOnModule (this=0x87c80c8,
M=@0x87c7e30) at PassManager.cpp:1264
#15 0x0865492a in llvm::PassManagerImpl::run (this=0x87c8918, M=@0x87c7e30) at
PassManager.cpp:1338
#16 0x0865497d in llvm::PassManager::run (this=0xbf8f4f34, M=@0x87c7e30) at
PassManager.cpp:1370
#17 0x083958c2 in main (argc=3, argv=0xbf8f5134) at opt.cpp:431


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