[PATCH] D95982: [CSSPGO] Unblock optimizations with pseudo probe instrumentation.

Hongtao Yu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 3 15:20:51 PST 2021


hoy created this revision.
Herald added subscribers: wenlei, hiraditya, MatzeB.
hoy requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

The IR/MIR pseudo probe intrinsics don't get materialized into real machine instructions and therefore they don't incur runtime cost directly. However, they come with indirect cost by blocking certain optimizations. Some of the blocking are intentional (such as blocking code merge) for better counts quality while the others are accidental. This change unblocks perf-critical optimizations that do not affect counts quality. They include:

1. IR InstCombine, sinking load operation to shorten lifetimes.
2. MIR LiveRangeShrink, similar to #1
3. MIR MachineSinking, similar to #1
4. MIR TwoAddressInstructionPass, i.e, opeq transform
5. MIR function argument copy elision
6. IR stack protection. (though not perf-critical but nice to have).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D95982

Files:
  llvm/lib/CodeGen/LiveRangeShrink.cpp
  llvm/lib/CodeGen/MachineBlockPlacement.cpp
  llvm/lib/CodeGen/MachineInstr.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/StackProtector.cpp
  llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
  llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
  llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95982.321243.patch
Type: text/x-patch
Size: 5823 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210203/e77bf91d/attachment.bin>


More information about the llvm-commits mailing list