[all-commits] [llvm/llvm-project] 75e50f: Use update_llc_test_checks for the switch.ll test; ...
    Matthias Braun via All-commits 
    all-commits at lists.llvm.org
       
    Tue May 10 10:01:46 PDT 2022
    
    
  
  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 75e50f70c6fd461cae915fc4983faf4127a6059f
      https://github.com/llvm/llvm-project/commit/75e50f70c6fd461cae915fc4983faf4127a6059f
  Author: Matthias Braun <matze at braunis.de>
  Date:   2022-05-10 (Tue, 10 May 2022)
  Changed paths:
    A llvm/test/CodeGen/X86/switch-phi-const.ll
    M llvm/test/CodeGen/X86/switch.ll
  Log Message:
  -----------
  Use update_llc_test_checks for the switch.ll test; add new test
- Change `switch.ll` test to a style suitable for
  `tools/update_llc_test_checks.py`.
- Precommit test for upcoming changes:
  - Add `switch_i8` to `test/CodeGen/X86/switch.ll`.
  - Add `test/CodeGen/X86/switch-phi-const.ll`.
Differential Revision: https://reviews.llvm.org/D124893
  Commit: cd19af74c031f0f538050d00b26bab3fbca07414
      https://github.com/llvm/llvm-project/commit/cd19af74c031f0f538050d00b26bab3fbca07414
  Author: Matthias Braun <matze at braunis.de>
  Date:   2022-05-10 (Tue, 10 May 2022)
  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/test/CodeGen/X86/2008-12-01-loop-iv-used-outside-loop.ll
    M llvm/test/CodeGen/X86/SwitchLowering.ll
    M llvm/test/CodeGen/X86/conditional-tailcall.ll
    M llvm/test/CodeGen/X86/switch-phi-const.ll
    M llvm/test/CodeGen/X86/switch.ll
    M llvm/test/CodeGen/X86/tail-dup-multiple-latch-loop.ll
    M llvm/test/CodeGen/X86/tail-opts.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/widen_switch.ll
  Log Message:
  -----------
  Avoid 8 and 16bit switch conditions on x86
This adds a `TargetLoweringBase::getSwitchConditionType` callback to
give targets a chance to control the type used in
`CodeGenPrepare::optimizeSwitchInst`.
Implement callback for X86 to avoid i8 and i16 types where possible as
they often incur extra zero-extensions.
This is NFC for non-X86 targets.
Differential Revision: https://reviews.llvm.org/D124894
  Commit: f0ea9c9cec7f7b632ef7894ff7b3859269de611b
      https://github.com/llvm/llvm-project/commit/f0ea9c9cec7f7b632ef7894ff7b3859269de611b
  Author: Matthias Braun <matze at braunis.de>
  Date:   2022-05-10 (Tue, 10 May 2022)
  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
    M llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll
    M llvm/test/CodeGen/X86/switch-phi-const.ll
    A llvm/test/Transforms/CodeGenPrepare/X86/switch-phi-const.ll
  Log Message:
  -----------
  CodeGenPrepare: Replace constant PHI arguments with switch condition value
We often see code like the following after running SCCP:
    switch (x) { case 42: phi(42, ...); }
This tends to produce bad code as we currently materialize the constant
phi-argument in the switch-block. This increases register pressure and
if the pattern repeats for `n` case statements, we end up generating `n`
constant values.
This changes CodeGenPrepare to catch this pattern and revert it back to:
    switch (x) { case 42: phi(x, ...); }
Differential Revision: https://reviews.llvm.org/D124552
Compare: https://github.com/llvm/llvm-project/compare/3137ca80b9ef...f0ea9c9cec7f
    
    
More information about the All-commits
mailing list