[all-commits] [llvm/llvm-project] 8ba582: [SVE] Ensure SVE call operands passed via memory a...

paulwalker-arm via All-commits all-commits at lists.llvm.org
Thu Sep 14 04:59:11 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8ba5820e7a80278fa65e1dd1baae5b09bd98a724
      https://github.com/llvm/llvm-project/commit/8ba5820e7a80278fa65e1dd1baae5b09bd98a724
  Author: paulwalker-arm <paul.walker at arm.com>
  Date:   2023-09-14 (Thu, 14 Sep 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/arm64ec-varargs.ll
    M llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll

  Log Message:
  -----------
  [SVE] Ensure SVE call operands passed via memory are correctly initialised. (#66070)

The stores created when passing operands via memory don't typically
maintain the chain, because they can be done in any order. Instead,
a new chain is created based on all collated stores. SVE parameters
passed via memory don't follow this idiom and try to maintain the
chain, which unfortunately can result in them being incorrectly
deadcoded when the chain is recreated.

This patch brings the SVE side in line with the non-SVE side to
ensure no stores become lost whilst also allowing greater flexibility
when ordering the stores.




More information about the All-commits mailing list