[llvm-bugs] [Bug 29164] New: amdgpu + tonga unigine vallley assert since Create subranges for new intervals resulting from live interval splitting
via llvm-bugs
llvm-bugs at lists.llvm.org
Sun Aug 28 04:17:36 PDT 2016
https://llvm.org/bugs/show_bug.cgi?id=29164
Bug ID: 29164
Summary: amdgpu + tonga unigine vallley assert since Create
subranges for new intervals resulting from live
interval splitting
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: AMDGPU
Assignee: unassignedbugs at nondot.org
Reporter: adf.lists at gmail.com
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
Created attachment 17060
--> https://llvm.org/bugs/attachment.cgi?id=17060&action=edit
R600_DEBUG=vs,ps,fs
R9285 tonga testing with unigine valley I get an assert since commit below.
R600_DEBUG=vs,ps,fs attached
valley_x64: /mnt/sdb1/Gits/llvm/include/llvm/ADT/IntervalMap.h:632: unsigned
int llvm::IntervalMapImpl::LeafNode< <template-parameter-1-1>,
<template-parameter-1-2>, <anonymous>, <template-parameter-1-4>
>::insertFrom(unsigned int&, unsigned int, KeyT, KeyT, ValT) [with KeyT =
llvm::SlotIndex; ValT = llvm::LiveInterval*; unsigned int N = 8u; Traits =
llvm::IntervalMapInfo<llvm::SlotIndex>]: Assertion `(i == Size ||
Traits::stopLess(b, start(i))) && "Overlapping insert"' failed.
commit 31a5f885bf5b8ed3107850a448660057705fd357
Author: Krzysztof Parzyszek <kparzysz at codeaurora.org>
Date: Wed Aug 24 13:37:55 2016 +0000
Create subranges for new intervals resulting from live interval splitting
The register allocator can split a live interval of a register into a set
of smaller intervals. After the allocation of registers is complete, the
rewriter will modify the IR to replace virtual registers with the corres-
ponding physical registers. At this stage, if a register corresponding
to a subregister of a virtual register is used, the rewriter will check
if that subregister is undefined, and if so, it will add the <undef> flag
to the machine operand. The function verifying liveness of the subregis-
ter would assume that it is undefined, unless any of the subranges of the
live interval proves otherwise.
The problem is that the live intervals created during splitting do not
have any subranges, even if the original parent interval did. This could
result in the <undef> flag placed on a register that is actually defined.
Differential Revision: http://reviews.llvm.org/D21189
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279625
91177308-0d34-0410-b5e6-96231b3b80d8
--
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/20160828/cdf10a98/attachment-0001.html>
More information about the llvm-bugs
mailing list