[PATCH] D35411: [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it can destroy canonical loop structure.

Balaram Makam via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 14 15:07:00 PDT 2017


bmakam marked an inline comment as done.
bmakam added a comment.

In https://reviews.llvm.org/D35411#809870, @efriedma wrote:

> I'm sort of worried this could have unexpected consequences; do you have performance numbers?  (LLVM testsuite or SPEC)


I was targeting to unroll a hot loop in spec2017/gcc. In addition to unrolling the hot loop in spec2017/gcc which yielded 2% improvement, I observed a loop interleaved in povray which yielded 6-7% improvement.
Here are the full perf results for SPEC on Falkor with https://reviews.llvm.org/owners/package/3/ config:

  Benchmark                Diff (%)  
  ----------------------- ----------
  spec2006/bzip2:ref       -2.18
  spec2017/omnetpp:ref     -1.2
  spec2006/perlbench:ref   -1.07
  spec2000/equake:ref      -0.89
  spec2000/art:ref         -0.79
  spec2017/leela:ref       -0.67
  spec2000/bzip2:ref       0.77
  spec2006/namd:ref        0.84
  spec2017/xz:ref          0.89
  spec2000/gcc:ref         0.9
  spec2006/mcf:ref         1.07
  spec2017/deepsjeng:ref   1.62
  spec2000/crafty:ref      1.62
  spec2017/gcc:ref         2.18
  spec2006/dealII:ref      3.73
  spec2017/blender:ref     4.78
  spec2006/povray:ref      6.25
  spec2017/povray:ref      6.85
  spec2000/gap:ref         7.15


https://reviews.llvm.org/D35411





More information about the llvm-commits mailing list