[PATCH] D30128: [LazyMachineBFI] Reimplement with getAnalysisIfAvailable

Adam Nemet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 17 16:52:35 PST 2017


anemet created this revision.
Herald added a subscriber: fhahn.

Since LoopInfo is not available in machine passes as universally as in IR
passes, using the same approach for OptimizationRemarkEmitter as we did for IR
will run LoopInfo and DominatorTree unnecessarily.  (LoopInfo is not used
lazily by ORE.)

To fix this, I am modifying the approach I took in https://reviews.llvm.org/D29836.  LazyMachineBFI now
uses its client passes including MachineBFI itself that are available or
otherwise compute them on the fly.

So for example the GreedyRegAlloc since it's already using MBFI will reuse
that instance.  On the other hand, AsmPrinter in Justin's patch will generate
DT, LI and finally BFI on the fly.

(I am of course wondering now if the simplicity of this approach is even
preferable in IR.  I will do some experiments.)

Testing is provided by an updated version of https://reviews.llvm.org/D29837 which requires Justin
patch to ORE to the AsmPrinter.


https://reviews.llvm.org/D30128

Files:
  include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
  include/llvm/CodeGen/MachineBlockFrequencyInfo.h
  lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
  lib/CodeGen/MachineBlockFrequencyInfo.cpp
  lib/CodeGen/MachineOptimizationRemarkEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30128.88994.patch
Type: text/x-patch
Size: 8908 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170218/61e26b54/attachment.bin>


More information about the llvm-commits mailing list