From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ@public.gmane.org Subject: [Bug 90887] PhiMovesPass in register allocator broken Date: Wed, 17 Jun 2015 04:44:08 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1239494070==" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org --===============1239494070== Content-Type: multipart/alternative; boundary="1434516248.86a267E1.29442"; charset="UTF-8" --1434516248.86a267E1.29442 Date: Wed, 17 Jun 2015 04:44:08 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=90887 --- Comment #5 from Ilia Mirkin --- (In reply to jr from comment #4) > I've been thinking a little about a better way to fix this inbound edge > ordering dependency. Unfortunately it seems that unless there is a way to > efficiently recompute the information there always will be an invariant that > has to be respected by graph transformations (and which attach and detach > simply cannot guarantee on their own). The way that LLVM deals with this is that the source actually contains a reference to the inbound bb as well. That way you can do whatever you want with the edges, each src of a phi node knows which bb it's coming from. It'd be a bit of a pain to introduce here... my strategy so far has been to hold my nose and just fix things up as they come, which I guess is what you've done as well. I need to look at this logic very carefully though. The fact that we were previously adding a FORWARD edge and aren't anymore is a bit worrying -- the meaning of those things is explained somewhere btw -- TREE == part of the MST; FORWARD/etc are various other edges. -- You are receiving this mail because: You are the QA Contact for the bug. You are the assignee for the bug. --1434516248.86a267E1.29442 Date: Wed, 17 Jun 2015 04:44:08 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"

Comment # 5 on bug 90887 from
(In reply to jr from comment #4)
> I've been thinking a little about a better way to fix this inbound edge
> ordering dependency. Unfortunately it seems that unless there is a way to
> efficiently recompute the information there always will be an invariant that
> has to be respected by graph transformations (and which attach and detach
> simply cannot guarantee on their own).

The way that LLVM deals with this is that the source actually contains a
reference to the inbound bb as well. That way you can do whatever you want with
the edges, each src of a phi node knows which bb it's coming from.

It'd be a bit of a pain to introduce here... my strategy so far has been to
hold my nose and just fix things up as they come, which I guess is what you've
done as well. I need to look at this logic very carefully though.

The fact that we were previously adding a FORWARD edge and aren't anymore is a
bit worrying -- the meaning of those things is explained somewhere btw -- TREE
== part of the MST; FORWARD/etc are various other edges.


You are receiving this mail because:
  • You are the QA Contact for the bug.
  • You are the assignee for the bug.
--1434516248.86a267E1.29442-- --===============1239494070== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBt YWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUK --===============1239494070==--