[PATCH][RFC] tree-optimization/100801 - perform final value replacement from VRP

Aldy Hernandez aldyh@redhat.com
Tue Jun 1 13:58:29 GMT 2021


I have some old numbers from late April.

VRP vs ranger was more difficult to compare than evrp, since the
gimple is different (ASSERT_EXPRs).  What I did was run a late evrp
pass before each VRP pass and compared branches that were folded, for
an estimate.

On it's own VRP1 could fold 5482 branches versus 6338 for a late evrp
pass running before VRP1, so 15% more.  If late evrp runs before VRP1,
VRP1 can find something late evrp can't in 77 out of 388 .ii files
distilled from a bootstrap.  So, VRP1 can fold a branch in 1 out of 5
files.

For VRP2, the numbers are 376 branches on its own versus 467 for late
evrp2.  That's 24% more branches for late evrp2.  VRP2 can find
something late evrp2 can't in 199 out of 388 files, so one in every 2
files.

I didn't dig deep into the VRP[12] foldable branches.  Some of them
looked like duplicates, and others looked like stuff we could get with
minor tweaks with range-ops.  But I really don't have hard data here.

And yes, I agree, we should re-run these stats when the dust settles
in the next week or two.

Aldy



More information about the Gcc-patches mailing list