The explicit mu-chi representation model bloats the whirl as far as memory 
consumption goes. Especially for big applications or ones where the aliasing 
info is poor. This is what Diego wrote to me last year:

Hi Dibyendu,

<...some parts deleted ...>

The solution we ended up using
is to move away from trying to represent memory aliasing in the
vdef/vuse web AT ALL.  Starting with 4.5, we are using a hybrid model.

We represent the memory SSA web (vdef/vuse) with exactly one memory
symbol, an artificial MEM variable.  To disambiguate memory conflicts
we use an alias oracle that passes must consult if they need more
precise information about two stores or a store and a load that they
need to disambiguate.

We never did find a good enough partitioning system that helped
control the memory utilization problem and was precise enough for
optimization.  There was always compile time pressure and/or lack of
precision.  So, now we've given up and decided to have a very
simplistic memory SSA web (every memory op conflicts with every other
memory op) coupled with a precise alias oracle that can do better
disambiguation.  Since the alias oracle is called with specific memory
ops, it can take advantage of flow and context information, it can
also use data dependence information (ie, from scalar evolutions) to
give you a fairly precise answer.


Diego.


From: Sun Chan [mailto:sun.c...@gmail.com]
Sent: Saturday, October 08, 2011 8:30 PM
To: Das, Dibyendu
Cc: "C. Bergström"; open64-devel
Subject: Re: [Open64-devel] LLVM to adopt WHIRL

Can you be more specific? Today's open64 tree has WHIRL that directly supports 
SSA. I am curious as to what other specifics are needed.
Sun
2011/10/8 Das, Dibyendu <dibyendu....@amd.com<mailto:dibyendu....@amd.com>>
Definitely memory-SSA representation in WHIRL needs rework. Similar to what 
Diego (Novillo) has done for gcc last year. Also, I find that modifying the 
whirl tree has its quirkiness. For example, in the LNO phase I need to update 
the DU/UD chains explicitly for every addition/deletion which is extremely 
cumbersome.

-----Original Message-----
From: "C. Bergström" 
[mailto:cbergst...@pathscale.com<mailto:cbergst...@pathscale.com>]
Sent: Saturday, October 08, 2011 3:00 PM
To: open64-devel
Subject: [Open64-devel] LLVM to adopt WHIRL


One Apple engineer seems to have come to the conclusion that LLVM IR is
in fact a compiler IR and thus needs to be changed[1].  Wow.. never saw
that coming <sarcasm />  If only some of you old time SGI guys could
school them..

WHIRL is not perfect and could certainly be improved, but many thanks
and kudos to those who developed it.  It was and imho still is what
makes MIPSPro derived compilers awesome.

I'd love to hear feedback from others about how any of the IR levels of
the compiler can be improved.  I'm sure SSA will come up, but what else
is there?  Would anyone be interested in a clean latex version of
whirl/symtab docs?

Best,

./C

[1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-October/043719.html

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net<mailto:Open64-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/open64-devel



------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net<mailto:Open64-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/open64-devel

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to