[all-commits] [llvm/llvm-project] e431b2: [DAG] CombineConsecutiveLoads - replace getABIType...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Aug 24 04:37:34 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e431b280c9aedfd405ec248fbb934bd88863dd2c
      https://github.com/llvm/llvm-project/commit/e431b280c9aedfd405ec248fbb934bd88863dd2c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-08-24 (Tue, 24 Aug 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/avx512-mask-op.ll
    M llvm/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
    M llvm/test/CodeGen/X86/avx512vbmi2-intrinsics-upgrade.ll
    M llvm/test/CodeGen/X86/avx512vbmi2-intrinsics.ll
    M llvm/test/CodeGen/X86/pr35982.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll
    M llvm/test/CodeGen/X86/xmulo.ll

  Log Message:
  -----------
  [DAG] CombineConsecutiveLoads - replace getABITypeAlign with allowsMemoryAccess (PR45116)

One of the cases identified in PR45116 - we don't need to limit load combines (in this case for ISD::BUILD_PAIR) to ABI alignment, we can use allowsMemoryAccess - which tests using getABITypeAlign, but also checks if a target permits (fast) misaligned memory loads by checking allowsMisalignedMemoryAccesses as a fallback.

This helps in particular for 32-bit X86 cases loading 64-bit size data, reducing codegen diffs vs x86_64.

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




More information about the All-commits mailing list