[PATCH] D110847: [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 3.

Hongtao Yu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 30 09:25:10 PDT 2021


hoy created this revision.
hoy added reviewers: wenlei, wlei, wmi.
Herald added subscribers: ormris, dexonsmith, modimo, asbirlea, george.burgess.iv, haicheng, hiraditya, eraman.
hoy requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This patch continues unblocking optimizations that are blocked by pseudo probe instrumentation.

Not exactly like DbgIntrinsics, PseudoProbe intrinsic has other attributes (such as mayread, maywrite, mayhaveSideEffect) that can block optimizations. The issues fixed are:

- Flipped default param of getFirstNonPHIOrDbg API to skip pseudo probes
- Unblocked CSE by avoiding pseudo probe from clobbering memory SSA
- Unblocked induction variable simpliciation
- Allow empty loop deletion by treating probe intrinsic isDroppable
- Some refactoring.


https://reviews.llvm.org/D110847

Files:
  llvm/include/llvm/IR/BasicBlock.h
  llvm/lib/Analysis/InlineCost.cpp
  llvm/lib/Analysis/MemorySSA.cpp
  llvm/lib/CodeGen/Analysis.cpp
  llvm/lib/IR/User.cpp
  llvm/lib/Transforms/IPO/GlobalDCE.cpp
  llvm/lib/Transforms/IPO/GlobalOpt.cpp
  llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
  llvm/lib/Transforms/Utils/CloneFunction.cpp
  llvm/lib/Transforms/Utils/SimplifyCFG.cpp
  llvm/lib/Transforms/Vectorize/VectorCombine.cpp
  llvm/test/Transforms/SampleProfile/pseudo-probe-cse.ll
  llvm/test/Transforms/SampleProfile/pseudo-probe-loop-deletion.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D110847.376246.patch
Type: text/x-patch
Size: 13765 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210930/51ec8087/attachment.bin>


More information about the llvm-commits mailing list