https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/93902
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 commented:
As far as I understand, we want to take reference SipHash implementation with
minimal changes. I personally have no issues with taking cryptographic C code
"as is" with minimal changes. If it is the intention, LGTM with several minor
comments.
Anyway, I
@@ -0,0 +1,43 @@
+//===- llvm/unittest/Support/SipHashTest.cpp
--===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
@@ -0,0 +1,47 @@
+//===--- SipHash.h - An ABI-stable string SipHash ---*- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
@@ -0,0 +1,174 @@
+//===--- StableHash.cpp - An ABI-stable string hash
---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
@@ -0,0 +1,174 @@
+//===--- StableHash.cpp - An ABI-stable string hash
---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
@@ -0,0 +1,174 @@
+//===--- StableHash.cpp - An ABI-stable string hash
---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/84384
>From ef23d427b48687b62da9e1062886ddfcc1649b6a Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Dec 2019 20:31:25 -0500
Subject: [PATCH 1/7] Abstract serialization fixes for the Apple Clang changes.
---
@@ -607,13 +799,17 @@ class Qualifiers {
void Profile(llvm::FoldingSetNodeID &ID) const {
ID.AddInteger(Mask);
+PtrAuth.Profile(ID);
}
private:
// bits: |0 1 2|3|4 .. 5|6 .. 8|9 ... 31|
// |C R V|U|GCAttr|Lifetime|AddressSpace|
uint
@@ -194,19 +358,27 @@ class Qualifiers {
FastMask = (1 << FastWidth) - 1
};
+ Qualifiers() : Mask(0), PtrAuth() {}
+
kovdan01 wrote:
Fixed, thanks, see cfb3afe19c698aaf41fb7b492503081989896434
https://github.com/llvm/llvm-project/pull/84384
_
@@ -139,6 +141,168 @@ using CanQualType = CanQual;
#define TYPE(Class, Base) class Class##Type;
#include "clang/AST/TypeNodes.inc"
+/// Pointer-authentication qualifiers.
+class PointerAuthQualifier {
+ enum : uint32_t {
+EnabledShift = 0,
+EnabledBits = 1,
+Enabl
@@ -139,6 +141,168 @@ using CanQualType = CanQual;
#define TYPE(Class, Base) class Class##Type;
#include "clang/AST/TypeNodes.inc"
+/// Pointer-authentication qualifiers.
+class PointerAuthQualifier {
+ enum : uint32_t {
+EnabledShift = 0,
+EnabledBits = 1,
+Enabl
@@ -2196,6 +2196,16 @@ class ASTContext : public RefCountedBase {
return getQualifiedType(type.getUnqualifiedType(), Qs);
}
+ /// \brief Return a type with the given __ptrauth qualifier.
+ QualType getPointerAuthType(QualType Ty, PointerAuthQualifier PointerAuth) {
+
@@ -251,15 +423,16 @@ class Qualifiers {
}
// Deserialize qualifiers from an opaque representation.
- static Qualifiers fromOpaqueValue(unsigned opaque) {
+ static Qualifiers fromOpaqueValue(uint64_t Opaque) {
Qualifiers Qs;
-Qs.Mask = opaque;
+Qs.Mask = uin
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/84384
>From ef23d427b48687b62da9e1062886ddfcc1649b6a Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Dec 2019 20:31:25 -0500
Subject: [PATCH 1/8] Abstract serialization fixes for the Apple Clang changes.
---
kovdan01 wrote:
I've fixed the build failure
https://buildkite.com/llvm-project/github-pull-requests/builds/55986 in
clang-tidy by only taking fast qualifiers from the `uint64_t` opaque value and
casting the value to `unsigned` - see e3cb910ebce1ffa187816a20ce52e6303799665a.
It should be OK t
kovdan01 wrote:
@AaronBallman See test results from compile-time-tracker here:
https://llvm-compile-time-tracker.com/compare.php?from=693a458287d019c5c6a66fe3019d099df2978cdb&to=dbb5e29d136a18060ba6759b328ad80fa9cea649.
It looks like that there is a statistically meaningful difference, but it's
kovdan01 wrote:
> have you tried an approach where this information is stored in `ExtQuals`
> instead?
Not yet, thanks for suggestion. I'll try and let you know about results
https://github.com/llvm/llvm-project/pull/84384
___
cfe-commits mailing lis
kovdan01 wrote:
> It's also possible that merging `PointerAuthQualifier` into `Mask` inside
> `Qualifiers` would make some of the low-level handling more efficient.
I'm now applying this approach and it looks like that the overhead becomes
significantly lower. A new invariant has to be introdu
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96160
>From f891f791dfe882389d83d3c4c4fb57d67a845c04 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Tue, 18 Jun 2024 15:38:18 +0300
Subject: [PATCH 1/3] [PAC][clang][Driver] Add signed GOT flag
Add `-fptrauth-el
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96159
>From 4eeb1b4e82941681b6cafda8579d136e3e7cb09f Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Tue, 18 Jun 2024 15:37:18 +0300
Subject: [PATCH 1/2] [PAC][ELF][AArch64] Encode signed GOT flag in PAuth core
i
https://github.com/kovdan01 created
https://github.com/llvm/llvm-project/pull/100206
Implement tests for the following PAuth-related features:
- driver, preprocessor and ELF codegen tests for type_info vtable pointer
discrimination #99726;
- driver, preprocessor, and ELF codegen (emitting fun
kovdan01 wrote:
Also tagging @ojhunt
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 ready_for_review
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/100204
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1,5 +1,6 @@
// RUN: %clang_cc1 -emit-llvm-only -x c++ -std=c++11 -triple
%itanium_abi_triple -verify %s -DN=1
// RUN: %clang_cc1 -emit-llvm-only -x c++ -std=c++11 -triple
%itanium_abi_triple -verify %s -DN=2
+// RUN: %clang_cc1 -emit-llvm-only -x c++ -std=c++11 -triple
%i
https://github.com/kovdan01 commented:
Mostly LGTM, but the mangle-fail test should be fixed before merging - now it
just does not look correct (see corresponding comment for details). Otherwise,
this looks nice, and I'm OK with merging as soon as the test is fixed (and if
nobody else has othe
@@ -0,0 +1,64 @@
+// RUN: %clang_cc1 -triple arm64-apple-ios -std=c++17 -Wno-vla -fsyntax-only
-verify -fptrauth-intrinsics %s
+// RUN: %clang_cc1 -triple aarch64-linux-gnu -std=c++17 -Wno-vla -fsyntax-only
-verify -fptrauth-intrinsics %s
+
+// RUN: not %clang_cc1 -triple arm64-
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/100204
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,64 @@
+// RUN: %clang_cc1 -triple arm64-apple-ios -std=c++17 -Wno-vla -fsyntax-only
-verify -fptrauth-intrinsics %s
+// RUN: %clang_cc1 -triple aarch64-linux-gnu -std=c++17 -Wno-vla -fsyntax-only
-verify -fptrauth-intrinsics %s
+
+// RUN: not %clang_cc1 -triple arm64-
https://github.com/kovdan01 approved this pull request.
LGTM, thanks!
https://github.com/llvm/llvm-project/pull/100204
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
Buildkite failures look unrelated, so merging
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 created
https://github.com/llvm/llvm-project/pull/100480
None
>From b6604c33428a6c0e337212a0e33fbb85d2687a97 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Thu, 25 Jul 2024 01:27:47 +0300
Subject: [PATCH] [PAC][clang] Enable `-fptrauth-indirect-gotos` as part o
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/100480
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
/cherry-pick 70c6e79e6d3e897418f3556a25e22e66ff018dc4
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 milestoned
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
/cherry-pick 70c6e79
https://github.com/llvm/llvm-project/pull/100206
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
@ahmedbougacha It looks like there is some missing codegen logic. Particularly,
in `ItaniumRTTIBuilder::BuildVTablePointer`
(clang/lib/CodeGen/ItaniumCXXABI.cpp), there is the following piece of code:
```
if (auto &Schema = CGM.getCodeGenOpts().PointerAuth.CXXTypeInfoVTablePo
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96160
>From f891f791dfe882389d83d3c4c4fb57d67a845c04 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Tue, 18 Jun 2024 15:38:18 +0300
Subject: [PATCH 1/3] [PAC][clang][Driver] Add signed GOT flag
Add `-fptrauth-el
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96478
>From 5399237a71c0ccd872821034d83ea2c3a04bed3f Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Fri, 21 Jun 2024 12:32:51 +0300
Subject: [PATCH 1/2] [PAC][AArch64] Support init/fini array signing
If both `-f
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96478
>From 5399237a71c0ccd872821034d83ea2c3a04bed3f Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Fri, 21 Jun 2024 12:32:51 +0300
Subject: [PATCH 1/3] [PAC][AArch64] Support init/fini array signing
If both `-f
kovdan01 wrote:
Ping: would be glad to see feedback on the changes from those who are
interested.
https://github.com/llvm/llvm-project/pull/96478
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
kovdan01 wrote:
Ping: would be glad to see feedback on the changes from those who are
interested.
https://github.com/llvm/llvm-project/pull/96160
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
@@ -4434,16 +4433,41 @@ class CodeGenFunction : public CodeGenTypeCache {
llvm::Value *StorageAddress,
GlobalDecl SchemaDecl,
QualType SchemaType);
+
llvm:
@@ -2373,7 +2373,9 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
DestLV.setTBAAInfo(TBAAAccessInfo::getMayAliasInfo());
return EmitLoadOfLValue(DestLV, CE->getExprLoc());
}
-return Builder.CreateBitCast(Src, DstTy);
+
+llvm::Value *Result =
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/98847
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3126,3 +3137,57 @@ CodeGenFunction::EmitPointerAuthAuth(const
CGPointerAuthInfo &PointerAuth,
return EmitPointerAuthCommon(*this, PointerAuth, Pointer,
llvm::Intrinsic::ptrauth_auth);
}
+
+llvm::Value *CodeGenFunction::EmitPointerAuthSign(Q
@@ -351,3 +434,125 @@ CodeGenModule::getVTablePointerAuthInfo(CodeGenFunction
*CGF,
/* IsIsaPointer */ false,
/* AuthenticatesNullValues */ false, Discriminator);
}
+
+llvm::Value *CodeGenFunction::AuthPointerToPointerCast(
https://github.com/kovdan01 commented:
Mostly LGTM. There are several new pretty minor comments, but they can be
addressed in a follor-up PR.
The thing which is better to be addressed as a part of this PR is deleting
three unneeded member functions from `CodeGenFunction`. IMHO there is no reas
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/98847
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/97237
>From 3b4b1b1739b810d758e68f30c48b648963cff740 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Mon, 1 Jul 2024 00:50:21 +0300
Subject: [PATCH 1/7] [PAC][Driver] Implement `-mbranch-protection=pauthabi`
opti
@@ -324,6 +324,9 @@ ARMTargetInfo::ARMTargetInfo(const llvm::Triple &Triple,
case llvm::Triple::GNU:
setABI("apcs-gnu");
break;
+case llvm::Triple::PAuthTest:
kovdan01 wrote:
No, we do not need that, thanks for bringing attention to this.
https://github.com/kovdan01 approved this pull request.
https://github.com/llvm/llvm-project/pull/98276
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 approved this pull request.
LGTM, thanks @ahatanak !
https://github.com/llvm/llvm-project/pull/98847
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/97237
>From 3b4b1b1739b810d758e68f30c48b648963cff740 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Mon, 1 Jul 2024 00:50:21 +0300
Subject: [PATCH 1/8] [PAC][Driver] Implement `-mbranch-protection=pauthabi`
opti
@@ -1546,16 +1581,28 @@ static void CollectARMPACBTIOptions(const ToolChain
&TC, const ArgList &Args,
CmdArgs.push_back(
Args.MakeArgString(Twine("-msign-return-address=") + Scope));
- if (Scope != "none")
+ if (Scope != "none") {
+if (Triple.getEnvironment() ==
https://github.com/kovdan01 ready_for_review
https://github.com/llvm/llvm-project/pull/99482
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
Also tagging @ojhunt (GitHub doesn't let to add as a reviewer for some unknown
reason)
https://github.com/llvm/llvm-project/pull/99482
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listi
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/99482
>From f2709fc1530537974a7fe8036f28558b9fb30bb5 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Thu, 18 Jul 2024 15:26:30 +0300
Subject: [PATCH 1/2] [test][PAC][clang] Add missing tests against linux
triples
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/99482
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 approved this pull request.
https://github.com/llvm/llvm-project/pull/99595
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 approved this pull request.
https://github.com/llvm/llvm-project/pull/99590
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/99482
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96478
>From 5399237a71c0ccd872821034d83ea2c3a04bed3f Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Fri, 21 Jun 2024 12:32:51 +0300
Subject: [PATCH 1/4] [PAC][AArch64] Support init/fini array signing
If both `-f
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/96478
>From 5399237a71c0ccd872821034d83ea2c3a04bed3f Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Fri, 21 Jun 2024 12:32:51 +0300
Subject: [PATCH 1/4] [PAC][AArch64] Support init/fini array signing
If both `-f
https://github.com/kovdan01 approved this pull request.
https://github.com/llvm/llvm-project/pull/99741
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 commented:
LGTM with minor non-blocking nits. However, I'd prefer to wait for @asl 's
review before merging the PR. I'm OK with merging whenever @asl is.
https://github.com/llvm/llvm-project/pull/99576
___
cfe-commits maili
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/99576
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -71,6 +71,15 @@ void has_ptrauth_vtable_pointer_type_discrimination() {}
void no_ptrauth_vtable_pointer_type_discrimination() {}
#endif
+// This is always enabled when ptrauth_calls is enabled, on new enough clangs.
kovdan01 wrote:
We already have this tes
@@ -5877,119 +5882,130 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo
&CallInfo,
CallArgs.freeArgumentMemory(*this);
// Extract the return value.
- RValue Ret = [&] {
-switch (RetAI.getKind()) {
-case ABIArgInfo::CoerceAndExpand: {
- auto coercionT
@@ -1036,9 +1155,32 @@ llvm::Constant *ItaniumCXXABI::BuildMemberPointer(const
CXXMethodDecl *MD,
// least significant bit of adj then makes exactly the same
// discrimination as the least significant bit of ptr does for
// Itanium.
- MemPtr[0] = l
@@ -1036,9 +1155,32 @@ llvm::Constant *ItaniumCXXABI::BuildMemberPointer(const
CXXMethodDecl *MD,
// least significant bit of adj then makes exactly the same
// discrimination as the least significant bit of ptr does for
// Itanium.
- MemPtr[0] = l
@@ -853,6 +877,25 @@ llvm::Value *ItaniumCXXABI::EmitMemberDataPointerAddress(
"memptr.offset");
}
+// See if it's possible to return a constant signed pointer.
+static llvm::Constant *pointerAuthResignConstant(
+llvm::Value *Ptr, const C
@@ -3417,11 +3417,13 @@ uint16_t
ASTContext::getPointerAuthTypeDiscriminator(QualType T) const {
if (T->isFunctionPointerType() || T->isFunctionReferenceType())
T = T->getPointeeType();
- if (T->isFunctionType())
+ if (T->isFunctionType()) {
encodeTypeForFunction
@@ -0,0 +1,433 @@
+// RUN: %clang_cc1 -triple arm64-apple-ios -fptrauth-calls
-fptrauth-intrinsics -emit-llvm -std=c++11 -O1 -disable-llvm-passes -o - %s |
FileCheck -check-prefixes=CHECK,NODEBUG %s
+// RUN: %clang_cc1 -triple arm64-apple-ios -fptrauth-calls
-fptrauth-intrinsic
@@ -365,6 +365,40 @@ llvm::Constant
*CodeGenModule::getFunctionPointer(GlobalDecl GD,
return getFunctionPointer(getRawFunctionPointer(GD, Ty), FuncType);
}
+CGPointerAuthInfo CodeGenModule::getMemberFunctionPointerAuthInfo(QualType FT)
{
+ assert(FT->getAs() && "MemberPoi
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/99726
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 approved this pull request.
LGTM, thanks!
https://github.com/llvm/llvm-project/pull/99726
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,87 @@
+// RUN: %clang_cc1 -DENABLE_TID=0 -I%S -std=c++11 -triple=arm64e-apple-darwin \
+// RUN: -fptrauth-calls -fptrauth-intrinsics \
+// RUN: -fptrauth-vtable-pointer-type-discrimination \
+// RUN: -fptrauth-vtable-pointer-address-discrimination \
+// RUN: %s
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/99726
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
kovdan01 wrote:
Ping: would be glad to see feedback on the changes from those who are
interested.
Tagging @MaskRay @smithp35
https://github.com/llvm/llvm-project/pull/96160
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.o
kovdan01 wrote:
Ping: would be glad to see feedback on the changes from those who are
interested.
https://github.com/llvm/llvm-project/pull/96478
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
@@ -89,6 +89,9 @@ namespace llvm {
/// info. Return true if module is modified.
bool UpgradeDebugInfo(Module &M);
+ /// Copies module attributes to the functions in the module.
+ void CopyModuleAttrToFunctions(Module &M);
kovdan01 wrote:
Nit: it's proba
@@ -0,0 +1,35 @@
+; This file contains the new semantic of the branch-target-enforcement,
sign-return-address.
+; Used for test mixing a mixed link case and also verify the import too in llc.
+
+; RUN: llc %s -o - | FileCheck %s
+
+target datalayout = "e-m:e-i8:8:32-i16:16:32-i64
@@ -5278,6 +5278,106 @@ void llvm::UpgradeFunctionAttributes(Function &F) {
}
}
+// Check if the module attribute is present and set to one.
+static bool isModuleAttributeOne(Module &M, const StringRef &ModAttr) {
+ const auto *Attr =
+ mdconst::extract_or_null(M.getMo
@@ -0,0 +1,35 @@
+; This file contains the new semantic of the branch-target-enforcement,
sign-return-address.
+; Used for test mixing a mixed link case and also verify the import too in llc.
+
+; RUN: llc %s -o - | FileCheck %s
kovdan01 wrote:
I suppose it migh
@@ -5278,6 +5278,106 @@ void llvm::UpgradeFunctionAttributes(Function &F) {
}
}
+// Check if the module attribute is present and set to one.
+static bool isModuleAttributeOne(Module &M, const StringRef &ModAttr) {
+ const auto *Attr =
+ mdconst::extract_or_null(M.getMo
@@ -0,0 +1,35 @@
+; This file contains the new semantic of the branch-target-enforcement,
sign-return-address.
kovdan01 wrote:
Nit: in llvm/test/Bitcode/upgrade-branch-protection.ll, you use ';;' for actual
comments and ';' for special RUN and CHECK lines. New
@@ -0,0 +1,86 @@
+;; Test verifies inlining happens cross module when module flags are upgraded.
+;; `foo` and `main` are both old semantic while bar is the new semantic.
+;; Regression test for #82763
+
+; RUN: split-file %s %t
+; RUN: opt -module-summary %t/foo.s -o %t/foo.o
+;
@@ -0,0 +1,35 @@
+; This file contains the new semantic of the branch-target-enforcement,
sign-return-address.
+; Used for test mixing a mixed link case and also verify the import too in llc.
+
+; RUN: llc %s -o - | FileCheck %s
+
+target datalayout = "e-m:e-i8:8:32-i16:16:32-i64
kovdan01 wrote:
> Does this need a clang command line option at this point? Would it be
> possible to live with a {{-mllvm}} option to turn on signed GOT? I would
> expect signed GOT (or not) would be part of a higher-level signing schema and
> not toggled at a low-level via clang.
>
> I know
kovdan01 wrote:
> and lack of upstream runtime linker (rtld) support
@MaskRay We actually have proof-of-concept support for musl
https://github.com/access-softek/musl/commit/cbf25fbb2aaff125e232d5126dce7936f70a6453
(probably not ready for meaningful production usage though), and the signed
GO
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/97237
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -71,6 +71,15 @@ void has_ptrauth_vtable_pointer_type_discrimination() {}
void no_ptrauth_vtable_pointer_type_discrimination() {}
#endif
+// This is always enabled when ptrauth_calls is enabled, on new enough clangs.
kovdan01 wrote:
> Weird mismerge I guess
@@ -1036,9 +1155,32 @@ llvm::Constant *ItaniumCXXABI::BuildMemberPointer(const
CXXMethodDecl *MD,
// least significant bit of adj then makes exactly the same
// discrimination as the least significant bit of ptr does for
// Itanium.
- MemPtr[0] = l
@@ -1036,9 +1155,32 @@ llvm::Constant *ItaniumCXXABI::BuildMemberPointer(const
CXXMethodDecl *MD,
// least significant bit of adj then makes exactly the same
// discrimination as the least significant bit of ptr does for
// Itanium.
- MemPtr[0] = l
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/84384
>From ef23d427b48687b62da9e1062886ddfcc1649b6a Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Dec 2019 20:31:25 -0500
Subject: [PATCH 1/9] Abstract serialization fixes for the Apple Clang changes.
---
kovdan01 wrote:
@AaronBallman @rjmccall Please see 53485b1e7f7c60253b8734e95ae9b9a04e9e7a95
commit which makes `Mask` 64-bit and removes separate `PtrAuth` field in
`Qualifiers`. The performance becomes better:
- before
https://llvm-compile-time-tracker.com/compare.php?from=3ae10fde39419d7c98
kovdan01 wrote:
@MaskRay Please see fixes for your previous comments in several latest commits.
Would be glad to see new feedback on the PR. Note: the buildkite failure on
Windows is flang-related and not related to these changes.
https://github.com/llvm/llvm-project/pull/85235
___
101 - 200 of 410 matches
Mail list logo