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
@@ -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
+; n
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 conventi
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 conventi
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
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
@@ -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
@@ -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!
https://github.com/llvm/llvm-pro
@@ -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
@@ -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
@@ -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]>;
```
But
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
@@ -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
weiguoz
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 conventi
@@ -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 `PreserveNone`
@@ -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
KanRobe
@@ -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 `PreserveNone`
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 registe
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 registe
19 matches
Mail list logo