[LLVMbugs] [Bug 17529] New: Assertion `!hasInterval(Reg) && "Interval already exists!"' failed.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Oct 9 17:17:26 PDT 2013


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

            Bug ID: 17529
           Summary: Assertion `!hasInterval(Reg) && "Interval already
                    exists!"' failed.
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: PTX
          Assignee: unassignedbugs at nondot.org
          Reporter: maemarcus at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

As of r192159 NVPTX backend crashes on a reduced test case:

$ llc --version
LLVM (http://llvm.org/):
  LLVM version 3.4svn
  DEBUG build with assertions.
  Built Oct  9 2013 (00:05:24).
  Default target: x86_64-unknown-linux-gnu
  Host CPU: core-avx-i

  Registered Targets:
    nvptx   - NVIDIA PTX 32-bit
    nvptx64 - NVIDIA PTX 64-bit
    x86     - 32-bit X86: Pentium-Pro and above
    x86-64  - 64-bit X86: EM64T and AMD64

$ opt bugpoint-reduced-simplified.bc -S -o -
; ModuleID = 'bugpoint-reduced-simplified.bc'
target datalayout =
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
target triple = "nvptx64-nvidia-cuda"

; Function Attrs: nounwind
define ptx_device void @kernelgen_memcpy(i8* nocapture %dst) #0 {
entry:
  br i1 undef, label %for.end, label %vector.body

vector.body:                                      ; preds = %vector.body,
%entry
  %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ]
  %scevgep9 = getelementptr i8* %dst, i64 %index
  %scevgep910 = bitcast i8* %scevgep9 to <4 x i8>*
  store <4 x i8> undef, <4 x i8>* %scevgep910, align 1
  %index.next = add i64 %index, 4
  %0 = icmp eq i64 undef, %index.next
  br i1 %0, label %middle.block, label %vector.body

middle.block:                                     ; preds = %vector.body
  br i1 undef, label %for.end, label %for.body.preheader1

for.body.preheader1:                              ; preds = %middle.block
  %scevgep2 = getelementptr i8* %dst, i64 0
  br label %for.body

for.body:                                         ; preds = %for.body,
%for.body.preheader1
  %lsr.iv3 = phi i8* [ %scevgep2, %for.body.preheader1 ], [ %scevgep4,
%for.body ]
  store i8 undef, i8* %lsr.iv3, align 1
  %scevgep4 = getelementptr i8* %lsr.iv3, i64 1
  br label %for.body

for.end:                                          ; preds = %middle.block,
%entry
  ret void
}

attributes #0 = { nounwind "less-precise-fpmad"="false"
"no-frame-pointer-elim"="false" "no-infs-fp-math"="false"
"no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8"
"unsafe-fp-math"="false" "use-soft-float"="false" }

$ llc bugpoint-reduced-simplified.bc -o -
//
// Generated by LLVM NVPTX Back-End
//

.version 3.1
.target sm_20
.address_size 64

kernelgen-llc:
/home/marcusmae/rpmbuild/BUILD/llvm/build/include/llvm/CodeGen/LiveIntervalAnalysis.h:122:
llvm::LiveInterval& llvm::LiveIntervals::createEmptyInterval(unsigned int):
Assertion `!hasInterval(Reg) && "Interval already exists!"' failed.
0  libLLVM-3.4svn.so 0x00007fda48616945 llvm::sys::PrintStackTrace(_IO_FILE*) +
38
1  libLLVM-3.4svn.so 0x00007fda48616bc2
2  libLLVM-3.4svn.so 0x00007fda48616621
3  libpthread.so.0   0x00007fda46f0fcb0
4  libc.so.6         0x00007fda46248425 gsignal + 53
5  libc.so.6         0x00007fda4624bb8b abort + 379
6  libc.so.6         0x00007fda462410ee
7  libc.so.6         0x00007fda46241192
8  libLLVM-3.4svn.so 0x00007fda47ceafea
9  libLLVM-3.4svn.so 0x00007fda47ec54b7
10 libLLVM-3.4svn.so 0x00007fda47ec32fa
11 libLLVM-3.4svn.so 0x00007fda47da9c5d
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 95
12 libLLVM-3.4svn.so 0x00007fda48017482
llvm::FPPassManager::runOnFunction(llvm::Function&) + 290
13 libLLVM-3.4svn.so 0x00007fda480175f2
llvm::FPPassManager::runOnModule(llvm::Module&) + 84
14 libLLVM-3.4svn.so 0x00007fda48017946
llvm::MPPassManager::runOnModule(llvm::Module&) + 556
15 libLLVM-3.4svn.so 0x00007fda48017f3c
llvm::PassManagerImpl::run(llvm::Module&) + 244
16 libLLVM-3.4svn.so 0x00007fda48018147 llvm::PassManager::run(llvm::Module&) +
39
17 kernelgen-llc     0x000000000040ee58
18 kernelgen-llc     0x000000000040df37 main + 237
19 libc.so.6         0x00007fda4623376d __libc_start_main + 237
20 kernelgen-llc     0x000000000040d859
Stack dump:
0.    Program arguments: kernelgen-llc bugpoint-reduced-simplified.bc -o - 
1.    Running pass 'Function Pass Manager' on module
'bugpoint-reduced-simplified.bc'.
2.    Running pass 'Eliminate PHI nodes for register allocation, intelligently'
on function '@kernelgen_memcpy'
Aborted (core dumped)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131010/3719379a/attachment.html>


More information about the llvm-bugs mailing list