[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-02-05 Thread via cfe-commits
https://github.com/weiguozhi closed https://github.com/llvm/llvm-project/pull/76868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-31 Thread David Li via cfe-commits
@@ -0,0 +1,131 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -mtriple=x86_64-unknown-unknown -mcpu=corei7 < %s | FileCheck %s + +; This test checks various function call behaviors between preserve_none and +;

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-31 Thread via cfe-commits
https://github.com/weiguozhi updated https://github.com/llvm/llvm-project/pull/76868 >From 90e14918a0eb13e2187f8548416ac72491d966c1 Mon Sep 17 00:00:00 2001 From: Guozhi Wei Date: Thu, 21 Dec 2023 19:04:44 + Subject: [PATCH 1/6] New calling convention preserve_none The new calling

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-31 Thread via cfe-commits
https://github.com/weiguozhi updated https://github.com/llvm/llvm-project/pull/76868 >From 90e14918a0eb13e2187f8548416ac72491d966c1 Mon Sep 17 00:00:00 2001 From: Guozhi Wei Date: Thu, 21 Dec 2023 19:04:44 + Subject: [PATCH 1/5] New calling convention preserve_none The new calling

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-30 Thread David Li via cfe-commits
https://github.com/david-xl commented: Can you increase the test coverage: 1) preserve_none caller TAIL-calls preserve_none callee -- the tail call is preserved 2) regular function TAIL-calls preserve_none callee -- the tail call should be disabled and all CSRs should be saved/restored around

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-30 Thread David Li via cfe-commits
https://github.com/david-xl edited https://github.com/llvm/llvm-project/pull/76868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-25 Thread via cfe-commits
@@ -1056,6 +1056,23 @@ def CC_Intel_OCL_BI : CallingConv<[ CCDelegateTo ]>; +def CC_X86_64_Preserve_None : CallingConv<[ + // We don't preserve general registers, so all of them can be used to pass + // arguments except + // - RBPframe pointer + // - R10

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-11 Thread via cfe-commits
@@ -2868,6 +2868,11 @@ def M68kRTD: DeclOrTypeAttr { let Documentation = [M68kRTDDocs]; } +def PreserveNone : DeclOrTypeAttr { + let Spellings = [Clang<"preserve_none">]; weiguozhi wrote: FunctionLike works for me. Thanks!

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-10 Thread Shengchen Kan via cfe-commits
@@ -1056,6 +1056,23 @@ def CC_Intel_OCL_BI : CallingConv<[ CCDelegateTo ]>; +def CC_X86_64_Preserve_None : CallingConv<[ + // We don't preserve general registers, so all of them can be used to pass + // arguments except + // - RBPframe pointer + // - R10

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-10 Thread James Y Knight via cfe-commits
@@ -1056,6 +1056,23 @@ def CC_Intel_OCL_BI : CallingConv<[ CCDelegateTo ]>; +def CC_X86_64_Preserve_None : CallingConv<[ + // We don't preserve general registers, so all of them can be used to pass + // arguments except + // - RBPframe pointer + // - R10

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-10 Thread via cfe-commits
@@ -2868,6 +2868,11 @@ def M68kRTD: DeclOrTypeAttr { let Documentation = [M68kRTDDocs]; } +def PreserveNone : DeclOrTypeAttr { + let Spellings = [Clang<"preserve_none">]; weiguozhi wrote: I tried to add ``` let Subjects = SubjectList<[Function]>; ```

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-08 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/76868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-08 Thread via cfe-commits
@@ -1056,6 +1056,22 @@ def CC_Intel_OCL_BI : CallingConv<[ CCDelegateTo ]>; +def CC_X86_64_Preserve_None : CallingConv<[ + // We don't preserve general registers, so all of them can be used to pass + // arguments except + // - RBP frame pointer

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-08 Thread via cfe-commits
https://github.com/weiguozhi updated https://github.com/llvm/llvm-project/pull/76868 >From 90e14918a0eb13e2187f8548416ac72491d966c1 Mon Sep 17 00:00:00 2001 From: Guozhi Wei Date: Thu, 21 Dec 2023 19:04:44 + Subject: [PATCH 1/2] New calling convention preserve_none The new calling

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-04 Thread via cfe-commits
@@ -416,6 +416,12 @@ added in the future: This calling convention, like the `PreserveMost` calling convention, will be used by a future version of the ObjectiveC runtime and should be considered experimental at this time. +"``preserve_nonecc``" - The

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-03 Thread Shengchen Kan via cfe-commits
@@ -1056,6 +1056,22 @@ def CC_Intel_OCL_BI : CallingConv<[ CCDelegateTo ]>; +def CC_X86_64_Preserve_None : CallingConv<[ + // We don't preserve general registers, so all of them can be used to pass + // arguments except + // - RBP frame pointer

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-03 Thread Andrew Pinski via cfe-commits
@@ -416,6 +416,12 @@ added in the future: This calling convention, like the `PreserveMost` calling convention, will be used by a future version of the ObjectiveC runtime and should be considered experimental at this time. +"``preserve_nonecc``" - The

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-03 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-debuginfo @llvm/pr-subscribers-clang Author: None (weiguozhi) Changes The new experimental calling convention preserve_none is the opposite side of existing preserve_all. It tries to preserve as few general registers as possible. So all general

[llvm] [clang] New calling convention preserve_none (PR #76868)

2024-01-03 Thread via cfe-commits
https://github.com/weiguozhi created https://github.com/llvm/llvm-project/pull/76868 The new experimental calling convention preserve_none is the opposite side of existing preserve_all. It tries to preserve as few general registers as possible. So all general registers are caller saved