[PATCH] D67120: [PGO] Profile guided code size optimization (continued).

Hiroshi Yamauchi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 3 11:23:40 PDT 2019


yamauchi created this revision.
yamauchi added a reviewer: davidxl.
Herald added subscribers: jsji, tpr, MaskRay, haicheng, kbarton, aheejin, eraman, jgravelle-google, sbc100, javed.absar, mgorny, nhaehnle, jvesely, nemanjai, dschuff, arsenm, qcolombet, MatzeB.
Herald added a project: LLVM.
Herald added a subscriber: wuzish.

This follows up D59514 <https://reviews.llvm.org/D59514>.

Enable more of the existing size optimizations for colder code under PGO.

Up to ~11% code size savings and up to ~2.5% performance improvement (due to
reduced icache misses) for large internal apps.


Repository:
  rL LLVM

https://reviews.llvm.org/D67120

Files:
  include/llvm/Analysis/ProfileSummaryInfo.h
  include/llvm/Analysis/TargetTransformInfo.h
  include/llvm/Analysis/TargetTransformInfoImpl.h
  include/llvm/CodeGen/AsmPrinter.h
  include/llvm/CodeGen/BasicTTIImpl.h
  include/llvm/CodeGen/ExecutionDomainFix.h
  include/llvm/CodeGen/LiveRangeEdit.h
  include/llvm/CodeGen/MachineSizeOpts.h
  include/llvm/CodeGen/SelectionDAG.h
  include/llvm/CodeGen/SelectionDAGISel.h
  include/llvm/CodeGen/SwitchLoweringUtils.h
  include/llvm/CodeGen/TailDuplicator.h
  include/llvm/CodeGen/TargetInstrInfo.h
  include/llvm/CodeGen/TargetLowering.h
  include/llvm/Transforms/Utils/SizeOpts.h
  lib/Analysis/InlineCost.cpp
  lib/Analysis/ProfileSummaryInfo.cpp
  lib/Analysis/TargetTransformInfo.cpp
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/BranchFolding.cpp
  lib/CodeGen/BranchFolding.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGenPrepare.cpp
  lib/CodeGen/ExecutionDomainFix.cpp
  lib/CodeGen/ExpandMemCmp.cpp
  lib/CodeGen/GlobalISel/IRTranslator.cpp
  lib/CodeGen/IfConversion.cpp
  lib/CodeGen/InlineSpiller.cpp
  lib/CodeGen/LiveRangeEdit.cpp
  lib/CodeGen/MachineBlockPlacement.cpp
  lib/CodeGen/MachineCSE.cpp
  lib/CodeGen/MachineCombiner.cpp
  lib/CodeGen/MachineSizeOpts.cpp
  lib/CodeGen/PeepholeOptimizer.cpp
  lib/CodeGen/RegAllocBasic.cpp
  lib/CodeGen/RegAllocGreedy.cpp
  lib/CodeGen/RegAllocPBQP.cpp
  lib/CodeGen/RegisterCoalescer.cpp
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  lib/CodeGen/SplitKit.cpp
  lib/CodeGen/SplitKit.h
  lib/CodeGen/SwitchLoweringUtils.cpp
  lib/CodeGen/TailDuplication.cpp
  lib/CodeGen/TailDuplicator.cpp
  lib/CodeGen/TargetInstrInfo.cpp
  lib/CodeGen/TwoAddressInstructionPass.cpp
  lib/Target/AArch64/AArch64InstrInfo.cpp
  lib/Target/AArch64/AArch64InstrInfo.h
  lib/Target/AMDGPU/GCNDPPCombine.cpp
  lib/Target/AMDGPU/SIFoldOperands.cpp
  lib/Target/AMDGPU/SIInsertSkips.cpp
  lib/Target/AMDGPU/SIInstrInfo.cpp
  lib/Target/AMDGPU/SIInstrInfo.h
  lib/Target/AMDGPU/SIShrinkInstructions.cpp
  lib/Target/ARM/ARMBaseInstrInfo.cpp
  lib/Target/ARM/ARMBaseInstrInfo.h
  lib/Target/ARM/Thumb2SizeReduction.cpp
  lib/Target/PowerPC/PPCInstrInfo.cpp
  lib/Target/PowerPC/PPCInstrInfo.h
  lib/Target/SystemZ/SystemZInstrInfo.cpp
  lib/Target/SystemZ/SystemZInstrInfo.h
  lib/Target/SystemZ/SystemZShortenInst.cpp
  lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
  lib/Target/WebAssembly/WebAssemblyInstrInfo.h
  lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
  lib/Target/X86/X86FastISel.cpp
  lib/Target/X86/X86FixupBWInsts.cpp
  lib/Target/X86/X86ISelDAGToDAG.cpp
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86InstrInfo.cpp
  lib/Target/X86/X86InstrInfo.h
  lib/Target/X86/X86InstrInfo.td
  lib/Target/X86/X86OptimizeLEAs.cpp
  lib/Target/X86/X86PadShortFunction.cpp
  lib/Transforms/Utils/SizeOpts.cpp
  test/CodeGen/AArch64/O0-pipeline.ll
  test/CodeGen/AArch64/O3-pipeline.ll
  test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll
  test/CodeGen/ARM/O3-pipeline.ll
  test/CodeGen/X86/O0-pipeline.ll
  test/CodeGen/X86/O3-pipeline.ll
  unittests/CodeGen/AArch64SelectionDAGTest.cpp
  utils/TableGen/GlobalISelEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67120.218502.patch
Type: text/x-patch
Size: 180459 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190903/3b720c38/attachment-0001.bin>


More information about the llvm-commits mailing list