[all-commits] [llvm/llvm-project] ef4da3: clang: Add byval on x86_intrcc parameter 0

Matt Arsenault via All-commits all-commits at lists.llvm.org
Mon Dec 14 13:35:10 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ef4da3c2ba8a812a695361d786e3de8a8b2cd482
      https://github.com/llvm/llvm-project/commit/ef4da3c2ba8a812a695361d786e3de8a8b2cd482
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2020-12-14 (Mon, 14 Dec 2020)

  Changed paths:
    M clang/lib/CodeGen/TargetInfo.cpp
    M clang/test/CodeGen/attr-x86-interrupt.c
    M clang/test/CodeGenCXX/attr-x86-interrupt.cpp

  Log Message:
  -----------
  clang: Add byval on x86_intrcc parameter 0

This will allow removing the special case treatment of the parameter
and avoid depending on the pointer's element type.


  Commit: 2e0e03c6a089da39039ec3f464f7cee5df86646b
      https://github.com/llvm/llvm-project/commit/2e0e03c6a089da39039ec3f464f7cee5df86646b
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2020-12-14 (Mon, 14 Dec 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Assembler/x86_intrcc.ll
    A llvm/test/Bitcode/Inputs/x86_intrcc_upgrade.bc
    M llvm/test/Bitcode/compatibility-6.0.ll
    M llvm/test/Bitcode/compatibility.ll
    A llvm/test/Bitcode/x86_intr-upgrade.test
    M llvm/test/CodeGen/X86/x86-32-intrcc.ll
    M llvm/test/CodeGen/X86/x86-64-intrcc-nosse.ll
    M llvm/test/CodeGen/X86/x86-64-intrcc.ll
    M llvm/test/CodeGen/X86/x86-interrupt_cc.ll
    M llvm/test/CodeGen/X86/x86-interrupt_cld.ll
    M llvm/test/CodeGen/X86/x86-interrupt_vzeroupper.ll
    M llvm/test/CodeGen/X86/x86-no_caller_saved_registers.ll
    A llvm/test/Verifier/x86_intr.ll

  Log Message:
  -----------
  OpaquePtr: Require byval on x86_intrcc parameter 0

Currently the backend special cases x86_intrcc and treats the first
parameter as byval. Make the IR require byval for this parameter to
remove this special case, and avoid the dependence on the pointee
element type.

Fixes bug 46672.

I'm not sure the IR is enforcing all the calling convention
constraints. clang seems to ignore the attribute for empty parameter
lists, but the IR tolerates it.


Compare: https://github.com/llvm/llvm-project/compare/7ad49aec125b...2e0e03c6a089


More information about the All-commits mailing list