[Patch,tree-optimization]: Add new path Splitting pass on tree ssa representation
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Tue Jun 30 10:38:00 GMT 2015
On June 30, 2015 10:16:01 AM GMT+02:00, Ajit Kumar Agarwal <ajit.kumar.agarwal@xilinx.com> wrote:
>All:
>
>The below patch added a new path Splitting optimization pass on SSA
>representation. The Path Splitting optimization
>Pass moves the join block of if-then-else same as loop latch to its
>predecessors and get merged with the predecessors
>Preserving the SSA representation.
>
>The patch is tested for Microblaze and i386 target. The EEMBC/Mibench
>benchmarks is run with the Microblaze target
>And the performance gain of 9.15% and rgbcmy01_lite(EEMBC benchmarks).
>The Deja GNU tests is run for Mircroblaze
>Target and no regression is seen for Microblaze target and the new
>testcase attached are passed.
>
>For i386 bootstrapping goes through fine and the Spec cpu2000
>benchmarks is run with this patch. Following observation
>were seen with spec cpu2000 benchmarks.
>
>Ratio of path splitting change vs Ratio of not having path splitting
>change is 3653.353 vs 3652.14 for INT benchmarks.
>Ratio of path splitting change vs Ratio of not having path splitting
>change is 4353.812 vs 4345.351 for FP benchmarks.
>
>Based on comments from RFC patch following changes were done.
>
>1. Added a new pass for path splitting changes.
>2. Placed the new path Splitting Optimization pass before the copy
>propagation pass.
>3. The join block same as the Loop latch is wired into its predecessors
>so that the CFG Cleanup pass will merge the blocks
>Wired together.
>4. Copy propagation routines added for path splitting changes is not
>needed as suggested by Jeff. They are removed in the patch as
>The copy propagation in the copied join blocks will be done by the
>existing copy propagation pass and the update ssa pass.
>5. Only the propagation of phi results of the join block with the phi
>argument is done which will not be done by the existing update_ssa
>Or copy propagation pass on tree ssa representation.
>6. Added 2 tests.
> a) compilation check tests.
> b) execution tests.
The 2 tests seem to be identical, so why do you have both?
Also, please remove cleanup-tree-dump, this is now done automatically.
Thanks,
>7. Refactoring of the code for the feasibility check and finding the
>join block same as loop latch node.
More information about the Gcc-patches
mailing list