[LLVMdev] alias analysis in ScheduleDagInstr class

Bjorn De Sutter bjorn.desutter at elis.ugent.be
Mon Nov 14 14:44:37 PST 2011


We don't need this urgently. I mainly wanted to avoid double work.  We use LLVM as a front-end to a research CGRA compiler. 

I will not make it to the LLVM meeting.

Best,

Bjorn

On 14 Nov 2011, at 17:38, Sergei Larin wrote:

> We observed exact same problem, and I did put in place a mechanism to
> recognize and break such false dependencies right before pre-RA scheduler
> (in DAG->DAG lowering), but the immediate observed effect for our back end
> was performance reduction, since none of the current schedulers were capable
> of dealing with newly presented parallelism in BB (resulted in high reg
> pressure and "unintelligent" code sequences). That in turn prompted a
> revision of the scheduling mechanism, which I am still working on. 
> 
> If I am to submit the AA patch by itself right now, I am afraid it would
> cause negative reaction from reviewers (due to the above described issue),
> so I cherish a hope to have both patches (to use AA and newer/updated
> scheduler) presented at the same time. 
> 
> What is your timeline? How much time you can afford until you must have
> this? 
> 
> Also, are you attending the LLVM meeting in San Jose this week?
> 
> Sergei Larin
> 
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
> 
> 
> -----Original Message-----
> From: Bjorn De Sutter [mailto:bjorn.desutter at elis.ugent.be] 
> Sent: Monday, November 14, 2011 10:18 AM
> To: Sergei Larin
> Cc: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] alias analysis in ScheduleDagInstr class
> 
> Hi Sergei, thanks for considering my question. We if-convert some code, such
> that the basic block looks as follows after if-conversion:
> 
> ld char from A into R1
> p1 = R1>255? (generate the predicate)
> p1 |  R1 =  255 (conditional execution)
> st char R1 to A
> ld char from A+1 into R2
> p2 = R2>255? (generate the predicate)
> p2 |  R2 =  255 (conditional execution)
> store char R2 to A+1
> 
> The problem is that the compiler does not seem to know that the second ld
> can be scheduled before the first st.
> 
> On 14 Nov 2011, at 16:50, Sergei Larin wrote:
> 
>> I am working on something very(very) similar, what is the exact nature of
>> your question?
>> 
>> Sergei Larin
>> 
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
>> 
>> -----Original Message-----
>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
>> Behalf Of Bjorn De Sutter
>> Sent: Friday, November 11, 2011 7:59 AM
>> To: llvmdev at cs.uiuc.edu
>> Subject: [LLVMdev] alias analysis in ScheduleDagInstr class
>> 
>> In ScheduleDagInstr.cpp, a todo is mentioned to make this pass use real
>> alias analysis information. Is anybody working on this already?
>> 
>> I am working on a VLIW-like backend and have If-conversion working rather
>> well, but the problem is that independent loads and stores in the
>> if-converted blocks are not scheduled well at all. 
>> 
>> Thanks,
>> 
>> prof. Bjorn De Sutter
>> Computer Systems Lab
>> Ghent University
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> 
> 
> 





More information about the llvm-dev mailing list