[PATCH] D17235: [Greedy Regalloc] Reg splitting based on loops

Wei Mi via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 17 14:01:45 PST 2016


wmi updated this revision to Diff 48236.
wmi added a comment.

LoopBase<BlockT, LoopT>::getExitBlocks needs to iterate all the blocks inside the loop everytime it is called. Because getExitBlocks gets called many times in loop based reg splitting, it is better to cache the ExitBlocks for every loop (Used a map LoopExitBlocks in RAGreedy).

With this change, the compile time increase drops from 0.8% to 0.43% when -split-spill-mode=size is on.


Repository:
  rL LLVM

http://reviews.llvm.org/D17235

Files:
  include/llvm/CodeGen/Passes.h
  include/llvm/InitializePasses.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/Passes.cpp
  lib/CodeGen/RegAllocGreedy.cpp
  lib/CodeGen/SplitCritEdges.cpp
  lib/CodeGen/SplitKit.cpp
  lib/CodeGen/SplitKit.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17235.48236.patch
Type: text/x-patch
Size: 33997 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160217/c842a497/attachment.bin>


More information about the llvm-commits mailing list