On 03/23/2016 03:14 AM, Richard Biener wrote:
On Wed, Mar 23, 2016 at 8:49 AM, Jeff Law <l...@redhat.com> wrote:
This patch contains two parts. First is a bit of raw infrastructure in
bitmap.c. That change factors out the code to count the bits set in a given
BITMAP_WORD and uses that new function from bitmap_count_bits.
It also introduces bitmap_count_unique_bits which counts the unique bits set
across two bitmaps.
The second patch introduces the new tiebreaker in the coalescer and utilizes
the new bitmap_count_unique_bits in the process. The major change since V1
is lazily counting those bits only when the major sort keys are the same for
two coalesce_pairs. And we include the data for the new heuristic in the
debugging dumps.
As I feared building a good testcase for this is a major PITA. Testing for
a specific set of coalescings is not easy at all and IMHO is going to be way
too fragile.
I did verify by hand that the test in 64058 and its duplicate were fixed by
various iterations of this patch using trunk compilers reported in those
BZs. Spot checking other tests showed a small, but consistent improvement
in the generated code (fewer copies).
Bootstrapped and regression tested on x86-64-linux-gnu. OK for the trunk
now?
+ssa_conflicts *conflicts_;
+var_map map_;
please make those 'static'. Ok with this change.
Thanks. Updated and installed.
jeff