llvm-project/llvm/lib/Transforms/InstCombine
Hiroshi Yamauchi 09e539fcae [PGO] Profile guided code size optimization.
Summary:
Enable some of the existing size optimizations for cold code under PGO.

A ~5% code size saving in big internal app under PGO.

The way it gets BFI/PSI is discussed in the RFC thread

http://lists.llvm.org/pipermail/llvm-dev/2019-March/130894.html 

Note it doesn't currently touch loop passes.

Reviewers: davidxl, eraman

Reviewed By: eraman

Subscribers: mgorny, javed.absar, smeenai, mehdi_amini, eraman, zzheng, steven_wu, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59514

llvm-svn: 358422
2019-04-15 16:49:00 +00:00
..
CMakeLists.txt [InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible 2019-02-07 21:27:23 +00:00
InstCombineAddSub.cpp [InstCombine] prevent possible miscompile with negate+sdiv of vector op 2019-04-09 14:09:06 +00:00
InstCombineAndOrXor.cpp [InstCombine] Don't transform ((C1 OP zext(X)) & C2) -> zext((C1 OP X) & C2) if either zext or OP has another use. 2019-03-21 17:50:49 +00:00
InstCombineAtomicRMW.cpp [InstCombine] Extend saturating idempotent atomicrmw transform to FP 2019-03-01 19:50:36 +00:00
InstCombineCalls.cpp [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
InstCombineCasts.cpp Extra processing for BitCast + PHI in InstCombine 2019-02-09 01:44:28 +00:00
InstCombineCompares.cpp [InstCombine] Remove redundant/bogus mul_with_overflow combines 2019-04-13 19:43:35 +00:00
InstCombineInternal.h [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
InstCombineLoadStoreAlloca.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
InstCombineMulDivRem.cpp [InstCombine] canonicalize fdiv after fmul if reassociation is allowed 2019-04-15 13:23:38 +00:00
InstCombinePHI.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
InstCombineSelect.cpp [InstCombine] Use uadd.sat and usub.sat for canonicalization 2019-03-27 17:56:15 +00:00
InstCombineShifts.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Fix a nasty miscompile introduced w/masked.gather demanded elts 2019-04-12 18:26:56 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] remove overzealous assert for shuffles (PR41419) 2019-04-08 13:28:29 +00:00
InstructionCombining.cpp [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00