This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: question on bitmap_set_subtract unction in pre


On Mon, Feb 6, 2012 at 7:28 PM, Richard Guenther
<richard.guenther@gmail.com> wrote:
> It's probably to have the SET in some canonical form - the resulting
I am wondering how the canonical form is maintained, since according
to the paper:
For an antileader set, it does not matter which expression represents
a value, as long as that value is live.
Could you show me where is the code maintaining such attributes?

> values are simply re-computed from the expression subtraction
> (multiple expressions may have the same value, so in
> { a, b } { 0 } - { a } { 0 } you need to either compute { } { } or { b } { 0 }
> neither which you can reach by simply subtracting both bitmaps.
Take this example, Shouldn't the expected result be:
   {b}{0} if a is defined by some known expr;
   {} {} if a is defined by some unknown expr;
which not as in gcc now. Following words are from the paper:

A temporary potentially in ANTIC_IN becomes dead if it is assigned to.
For an antileader set, it does not matter which expression represents a value,
  so long as that value is live. A temporary potentially in ANTIC_IN becomes
  dead if it is assigned to. If the assignment is from something we can make an
  expression for (as opposed to ?), that expression replaces the
temporary as the
  antileader. If the assignment is from ?, then the value is no longer
represented
  at all. Furthermore, any other expression that has that (no longer
represented)
  value as an operand also becomes dead.

In the previous expression subtraction, I don't see value depending on
tmp which is defined by unknown operation like tmp<-? is handled.

Still confused and most likely I have missed something important.
Please help, thanks very much.

-- 
Best Regards.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]