Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-11-14 Thread Vincent Lejeune
This patch is : reviewed-by: Vincent Lejeune - Mail original - > De : Tom Stellard > À : Vincent Lejeune > Cc : "mesa-dev@lists.freedesktop.org" ; > "llvm-comm...@cs.uiuc.edu" ; Tom Stellard > > Envoyé le : Jeudi 14 novembre 2013 1h53 > Objet : Re: [PATCH] R600: Make sure OQAP defs

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-11-12 Thread Tom Stellard
Hi Vincent, Here is an updated patch where I added a call to SubstituteKCacheBank() in canClauseLocalKillFitInClause() This should prevent OQAP uses and defs from being split because of constant bank limitations. Maybe we can leave the ScheduleDAGMutation optimization as a future TODO. -Tom On

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-11-03 Thread Vincent Lejeune
I have put some comments below but otherwise the patch is reviewed-by: Vincent Lejeune >-- next part -- >>From 2eb4673e3184af0e077cbe30a594602441e8d98e Mon Sep 17 00:00:00 2001 >From: >>Tom Stellard >Date: Thu, 5 Sep 2013 08:59:32 -0700 >Subject: [PATCH] R600: Fix sched

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-10-30 Thread Tom Stellard
Hi Vincent, It turns out that it's not possible to correctly schedule uses and defs of the OQAP register without proper alias analysis in the MachineScheduler. See the explanation in the lds-output-queue.ll test case. Here is an updated patch that fixes all the outstanding LDS scheduling bugs th

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-10-25 Thread Vincent Lejeune
This patch should work when checking than no OQAP is used before beeing queued, assuming that a value in OQAP is consumed and cannot be read twice. However I'm not sure I cover all LDS instructions that queues a value, I only use LDS_RET_READ in switch case. Vincent - Mail original -

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-10-22 Thread Tom Stellard
Hi Vincent, Here is an updated patch. I wasn't sure where to put the assertion to check that UnscheduledNoLiveOut{Defs,Uses} is empty when switching to a new clause. I tried adding it to R600SchedStartegy::schedNode() behind the if (NextInstKind != CurInstKind) condition, but it always failed. A

Re: [Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-10-21 Thread Vincent Lejeune
- Mail original - > De : Tom Stellard > À : llvm-comm...@cs.uiuc.edu > Cc : mesa-dev@lists.freedesktop.org; Tom Stellard > Envoyé le : Vendredi 11 octobre 2013 20h10 > Objet : [PATCH] R600: Make sure OQAP defs and uses happen in the same clause > > From: Tom Stellard > > Reading th

[Mesa-dev] [PATCH] R600: Make sure OQAP defs and uses happen in the same clause

2013-10-11 Thread Tom Stellard
From: Tom Stellard Reading the special OQAP register pops the top value off the LDS input queue and returns it to the instruction. This queue is invalidated at the end of an ALU clause and leaving values in the queue can lead to GPU hangs. This means that if we load a value into the queue, we m