[all-commits] [llvm/llvm-project] 141202: Target ABI: improve call parameters extensions han...

Jonas Paulsson via All-commits all-commits at lists.llvm.org
Thu Sep 19 07:59:54 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 14120227a34365e829d05c1413033d235d7d272c
      https://github.com/llvm/llvm-project/commit/14120227a34365e829d05c1413033d235d7d272c
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-09-19 (Thu, 19 Sep 2024)

  Changed paths:
    M clang/include/clang/CodeGen/CGFunctionInfo.h
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/Targets/SystemZ.cpp
    M clang/test/CodeGen/SystemZ/systemz-abi-vector.c
    M clang/test/CodeGen/SystemZ/systemz-abi.c
    M clang/test/CodeGen/SystemZ/systemz-abi.cpp
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/CodeGen/TargetCallingConv.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/Attributes.td
    M llvm/include/llvm/Target/TargetOptions.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    A llvm/test/CodeGen/SystemZ/args-14.ll
    A llvm/test/CodeGen/SystemZ/args-15.ll
    A llvm/test/CodeGen/SystemZ/args-16.ll
    A llvm/test/CodeGen/SystemZ/args-17.ll
    A llvm/test/CodeGen/SystemZ/args-18.ll
    A llvm/test/CodeGen/SystemZ/args-19.ll
    A llvm/test/CodeGen/SystemZ/args-20.ll
    A llvm/test/CodeGen/SystemZ/args-21.ll
    M llvm/tools/llc/llc.cpp

  Log Message:
  -----------
  Target ABI: improve call parameters extensions handling (#100757)

For the purpose of verifying proper arguments extensions per the target's ABI,
introduce the NoExt attribute that may be used by a target when neither sign-
or zeroextension is required (e.g. with a struct in register). The purpose of
doing so is to be able to verify that there is always one of these attributes
present and by this detecting cases where sign/zero extension is actually
missing.

As a first step, this patch has the verification step done for the SystemZ
backend only, but left off by default until all known issues have been
addressed.

Other targets/front-ends can now also add NoExt attribute where needed and do
this check in the backend.



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