[Bug rtl-optimization/66790] Invalid uninitialized register handling in REE
derodat at adacore dot com
gcc-bugzilla@gcc.gnu.org
Thu Sep 24 07:42:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66790
--- Comment #38 from Pierre-Marie de Rodat <derodat at adacore dot com> ---
(In reply to Paolo Bonzini from comment #35)
> Is this comment obsolete? The IN bitmap is all set at first.
Yes, indeed: I removed the part you quoted.
(In reply to Paolo Bonzini from comment #35)
> Otherwise looks good.
Thank you! Does this include the DF_LIVE fix?
(In reply to Bernd Schmidt from comment #36)
> This looks better. I still don't quite understand why you're treating
> MUST_CLOBBER and MAY_CLOBBER defs differently in simulate. It looks
> like a MUST_CLOBBER produces a bit in gen which I think is not what is
> wanted.
>
> Anything wrong with writing this simply as follows?
(In reply to Paolo Bonzini from comment #37)
> Bernd is right that you have a missing 'else'.
Pastos strike back! I updated df_mir_simulate_one_insn according to your
suggestion: thank you.
Besides, Eric told me live that instead of artificially clearing the
entry basic block’s IN set, we could use the confluence_0 for that. I
did this and took this opportunity to minimize code duplication: the
df_mir_init function now just calls df_mir_reset.
> And, not as a requirement for your patch, but as a point for
> discussion - do we want a special all_ones_bitmap that doesn't take up
> memory for purposes like this? It would add two additional tests to
> each bitmap_{and,ior} operation.
Good point, although what would the following yield, then?
bitmap_clear (res);
bitmap_set_bit (res, 1);
bitmap_and_into (res, all_ones_bitmap);
I mean: we would need to represent bitmaps will all bits set but one
(and by extension: all but several).
Anyway, here's the updated patch, bootstrapped and regtested again on
x86_64-linux (plus a new testcase in gnat.dg). By the way, there's still
the MIR name, as we did not reach a consensus about a better name.
More information about the Gcc-bugs
mailing list