[all-commits] [llvm/llvm-project] 1d5fa2: [IR] Optimzie `PHINode::removeIncomingValue()` by ...

Mingjie Xu via All-commits all-commits at lists.llvm.org
Thu Dec 11 19:40:07 PST 2025


  Branch: refs/heads/users/Enna1/Opt-Phi-removeIncomingValue
  Home:   https://github.com/llvm/llvm-project
  Commit: 1d5fa2bfa3e756ea00f9ae341bbf33b7cd50e267
      https://github.com/llvm/llvm-project/commit/1d5fa2bfa3e756ea00f9ae341bbf33b7cd50e267
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/include/llvm/IR/Instructions.h
    M llvm/lib/IR/Instructions.cpp
    M llvm/lib/SandboxIR/Instruction.cpp
    M llvm/test/CodeGen/WinEH/wineh-no-demotion.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-base.ll
    M llvm/test/Transforms/Coroutines/coro-catchswitch.ll
    M llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll
    M llvm/test/Transforms/DFAJumpThreading/equivalent-states.ll
    M llvm/test/Transforms/IndVarSimplify/eliminate-backedge.ll
    M llvm/test/Transforms/Inline/inline_invoke.ll
    M llvm/test/Transforms/JumpThreading/ddt-crash.ll
    M llvm/test/Transforms/JumpThreading/fold-not-thread.ll
    M llvm/test/Transforms/JumpThreading/invalidate-lvi.ll
    M llvm/test/Transforms/LoopSimplifyCFG/phi_with_duplicating_inputs.ll
    M llvm/test/Transforms/LoopUnroll/full-unroll-one-unpredictable-exit.ll
    M llvm/test/Transforms/LoopUnroll/partial-unroll-non-latch-exit.ll
    M llvm/test/Transforms/LoopUnroll/peel-loop.ll
    M llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll
    M llvm/test/Transforms/LoopUnroll/scevunroll.ll
    M llvm/test/Transforms/LoopUnroll/unroll-header-exiting-with-phis-multiple-exiting-blocks.ll
    M llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
    M llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll
    M llvm/test/Transforms/LoopVectorize/single_early_exit.ll
    M llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
    M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
    M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll
    M llvm/test/Transforms/LowerSwitch/2014-06-23-PHIlowering.ll
    M llvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll
    M llvm/test/Transforms/MergeICmps/X86/alias-merge-blocks.ll
    M llvm/test/Transforms/MergeICmps/X86/entry-block-shuffled-2.ll
    M llvm/test/Transforms/MergeICmps/X86/entry-block-shuffled.ll
    M llvm/test/Transforms/MergeICmps/X86/pr59740.ll
    M llvm/test/Transforms/PGOProfile/chr.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll
    M llvm/test/Transforms/PhaseOrdering/switch-sext.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/inject-invariant-conditions.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-freeze.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch.ll
    M llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
    M llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll
    M llvm/test/Transforms/SimplifyCFG/HoistCode.ll
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
    M llvm/test/Transforms/SimplifyCFG/X86/debugloc-switch-powers-of-two.ll
    M llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-of-powers-of-two.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table_big.ll
    M llvm/test/Transforms/SimplifyCFG/avoid-complex-phi.ll
    M llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
    M llvm/test/Transforms/SimplifyCFG/branch-fold.ll
    M llvm/test/Transforms/SimplifyCFG/merge-phis-in-switch.ll
    M llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
    M llvm/test/Transforms/SimplifyCFG/rangereduce.ll
    M llvm/test/Transforms/SimplifyCFG/switch-dup-bbs.ll
    M llvm/test/Transforms/SimplifyCFG/switch-on-const.ll
    M llvm/test/Transforms/SimplifyCFG/switch-simplify-crash2.ll
    M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
    M llvm/test/Transforms/SimplifyCFG/switch-transformations-no-lut.ll
    M llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
    M llvm/test/Transforms/SimplifyCFG/switch_create.ll
    M llvm/test/Transforms/Util/lowerswitch.ll

  Log Message:
  -----------
  [IR] Optimzie `PHINode::removeIncomingValue()` by swapping with the last of incoming value.

Add an optional argument `KeepIncomingOrder` defaults true, when `KeepIncomingOrder` is true,
the new implementation simply moves the last incoming value and block into the position of the element being removed.

This improve compile-time for PHI nodes with many predecessors.


  Commit: deb8969ed19da81bf17906dcb4eee230f859ba34
      https://github.com/llvm/llvm-project/commit/deb8969ed19da81bf17906dcb4eee230f859ba34
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll

  Log Message:
  -----------
  update llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll


  Commit: 5dfa72fa5802645ba906a54528dc930ce0e506a9
      https://github.com/llvm/llvm-project/commit/5dfa72fa5802645ba906a54528dc930ce0e506a9
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll

  Log Message:
  -----------
  update llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll


  Commit: 70826b7ce9dbd86a0ab31f2e4c450423541263fe
      https://github.com/llvm/llvm-project/commit/70826b7ce9dbd86a0ab31f2e4c450423541263fe
  Author: int-zjt <zhangjiatong.0 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/CloneFunction.cpp

  Log Message:
  -----------
  [CloneFunciton] Optimize PHI incoming value removal using reverse iteration


  Commit: 88ef263f53243098539f5a678844841a1099b2c2
      https://github.com/llvm/llvm-project/commit/88ef263f53243098539f5a678844841a1099b2c2
  Author: int-zjt <zhangjiatong.0 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/CloneFunction.cpp

  Log Message:
  -----------
  clang format


  Commit: d7f9dd09f1d71cb5177132511328f4e95ab5e55d
      https://github.com/llvm/llvm-project/commit/d7f9dd09f1d71cb5177132511328f4e95ab5e55d
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/CloneFunction.cpp

  Log Message:
  -----------
  Merge remote-tracking branch 'zjt/remove_incomming_value_clone_function' into users/Enna1/Opt-Phi-removeIncomingValue


  Commit: 50d833af1f4d4b75d3da9cd8b9a089532a9f9b49
      https://github.com/llvm/llvm-project/commit/50d833af1f4d4b75d3da9cd8b9a089532a9f9b49
  Author: int-zjt <zhangjiatong.0 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp

  Log Message:
  -----------
  [CodeExtractor] Optimize PHI incoming value removal using reverse iteration


  Commit: a7784c45a81b524bf5558df0831fa63c509ad42d
      https://github.com/llvm/llvm-project/commit/a7784c45a81b524bf5558df0831fa63c509ad42d
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp

  Log Message:
  -----------
  Merge remote-tracking branch 'zjt/remove_incomming_value_code_extractor' into users/Enna1/Opt-Phi-removeIncomingValue


  Commit: 85f8b7692df78b1202de65e529f61e9f0f277d67
      https://github.com/llvm/llvm-project/commit/85f8b7692df78b1202de65e529f61e9f0f277d67
  Author: int-zjt <zhangjiatong.0 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  Log Message:
  -----------
  [LoopRotate] Simplify PHINode::removeIncomingValue usage


  Commit: 8df02655363eefbf6617d7a92903e71fb603c293
      https://github.com/llvm/llvm-project/commit/8df02655363eefbf6617d7a92903e71fb603c293
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  Log Message:
  -----------
  Merge remote-tracking branch 'zjt/remove_incomming_value_loop_rotation' into users/Enna1/Opt-Phi-removeIncomingValue


  Commit: b8491afb1cc69d88b2202fcc83a353a9d53bcd96
      https://github.com/llvm/llvm-project/commit/b8491afb1cc69d88b2202fcc83a353a9d53bcd96
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp

  Log Message:
  -----------
  Merge remote-tracking branch 'upstream/users/Enna1/MVE-Phi-removeIncomingValue' into users/Enna1/Opt-Phi-removeIncomingValue


  Commit: 673383ad47028b9be5fcd39966d4076524cd8958
      https://github.com/llvm/llvm-project/commit/673383ad47028b9be5fcd39966d4076524cd8958
  Author: xumingjie.enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M llvm/lib/CodeGen/WinEHPrepare.cpp

  Log Message:
  -----------
  Merge remote-tracking branch 'upstream/users/Enna1/WinEH-removeIncomingValueIf' into users/Enna1/Opt-Phi-removeIncomingValue


Compare: https://github.com/llvm/llvm-project/compare/91171342f1d6...673383ad4702

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list