[all-commits] [llvm/llvm-project] 181231: [CSSPGO] Flip SkipPseudoOp to true for MIR APIs.

Hongtao Yu via All-commits all-commits at lists.llvm.org
Mon Apr 19 17:55:58 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1812319292e0041e7e32ad7b61d7252a450b95c2
      https://github.com/llvm/llvm-project/commit/1812319292e0041e7e32ad7b61d7252a450b95c2
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2021-04-19 (Mon, 19 Apr 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/CodeGen/IfConversion.cpp
    M llvm/lib/CodeGen/MachineBasicBlock.cpp

  Log Message:
  -----------
  [CSSPGO] Flip SkipPseudoOp to true for MIR APIs.

Flipping the default value of SkipPseudoOp to true for those MIR APIs to favor maximum performance. Note that certain spots like branch folding and MIR if-conversion is are disabled for better counts quality. For these two optimizations, this is a no-diff change.

The counts quality with SPEC2017 before/after this change is unchanged.

Reviewed By: wmi

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


  Commit: b98807df05cb4cd728e744c3349a9dfd341f6f61
      https://github.com/llvm/llvm-project/commit/b98807df05cb4cd728e744c3349a9dfd341f6f61
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2021-04-19 (Mon, 19 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/LexicalScopes.cpp
    M llvm/lib/CodeGen/LiveDebugVariables.cpp
    M llvm/lib/CodeGen/LiveIntervals.cpp
    M llvm/lib/CodeGen/LiveRangeShrink.cpp
    M llvm/lib/CodeGen/LiveVariables.cpp
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/CodeGen/MachineSink.cpp
    M llvm/lib/CodeGen/RegAllocGreedy.cpp
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    M llvm/lib/CodeGen/RegisterPressure.cpp
    M llvm/lib/CodeGen/RegisterScavenging.cpp
    M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
    M llvm/lib/CodeGen/SlotIndexes.cpp
    M llvm/lib/CodeGen/SplitKit.cpp
    A llvm/test/Transforms/SampleProfile/pseudo-probe-slotindex.ll

  Log Message:
  -----------
  [CSSPGO] Exclude pseudo probes from slot index

Pseudo probe are currently given a slot index like other regular instructions. This affects register pressure and lifetime weight computation because of enlarged lifetime length with pseudo probe instructions. As a consequence, program could get different code generated w/ and w/o pseudo probes. I'm closing the gap by excluding pseudo probes from stack index and downstream register allocation related passes.

Reviewed By: wmi

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


Compare: https://github.com/llvm/llvm-project/compare/fbb9132e71a2...b98807df05cb


More information about the All-commits mailing list