[PATCH] D36619: [MachineCombiner] Update instruction depths incrementally for large BBs.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 21 05:31:46 PDT 2017


fhahn updated this revision to Diff 111958.
fhahn marked an inline comment as done.
fhahn added a comment.

Thanks for having a look!
Address review comments.

As for  data for your compile-time improvements: I was looking into compile-time outliers for a proprietary benchmark suite, so unfortunately I cannot share the source. There was a module with a few large basic block (one with ~35000 instructions and a couple with > 3000 instructions), with lots of combinable instructions on AArch64 . Without this patch, time-passes on llc shows

  Total Execution Time: 18.2227 seconds (18.2513 wall clock)
  
   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
  14.0113 ( 77.4%)   0.0338 ( 28.5%)  14.0451 ( 77.1%)  14.0672 ( 77.1%)  Machine InstCombiner
   2.0149 ( 11.1%)   0.0552 ( 46.5%)   2.0701 ( 11.4%)   2.0726 ( 11.4%)  Greedy Register Allocator
   0.9370 (  5.2%)   0.0184 ( 15.5%)   0.9554 (  5.2%)   0.9577 (  5.2%)  AArch64 Instruction Selection
   0.3403 (  1.9%)   0.0010 (  0.8%)   0.3413 (  1.9%)   0.3417 (  1.9%)  Machine Instruction Scheduler

With this patch

  Total Execution Time: 4.9057 seconds (4.9158 wall clock)
  
   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   2.0272 ( 42.1%)   0.0612 ( 64.8%)   2.0884 ( 42.6%)   2.0931 ( 42.6%)  Greedy Register Allocator
   0.9621 ( 20.0%)   0.0190 ( 20.1%)   0.9810 ( 20.0%)   0.9829 ( 20.0%)  AArch64 Instruction Selection
   0.6782 ( 14.1%)   0.0021 (  2.2%)   0.6803 ( 13.9%)   0.6812 ( 13.9%)  Machine InstCombiner


https://reviews.llvm.org/D36619

Files:
  lib/CodeGen/MachineCombiner.cpp
  test/CodeGen/AArch64/machine-combiner.ll
  test/CodeGen/X86/machine-combiner.ll
  test/CodeGen/X86/mul-constant-result.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36619.111958.patch
Type: text/x-patch
Size: 11595 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170821/df00381e/attachment.bin>


More information about the llvm-commits mailing list