https://github.com/fhahn approved this pull request.
LGTM thanks!
I think it would be great to add a paragraph or link to a doc about how it
works as suggested by @vitalybuka but this could also be done as follow-up
https://github.com/llvm/llvm-project/pull/123595
_
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/122116
>From adbcc4fc5044d82bd983671ef5442142a3f498fe Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Wed, 8 Jan 2025 13:07:01 +
Subject: [PATCH 1/5] [TBAA] Don't emit pointer-tbaa for void pointers.
While there a
fhahn wrote:
> I could add a link to your initial pull request? You have a decent writeup
> there on how it works.
It's probably better to add a paragraph instead of linking to a PR. Of course
the description can be taken from the PR
https://github.com/llvm/llvm-project/pull/123595
_
fhahn wrote:
I updated the PR to not depend on
https://github.com/llvm/llvm-project/pull/123595, if it lands before, I'll add
back the reference to the TypeSanitizer doc
https://github.com/llvm/llvm-project/pull/122116
___
cfe-commits mailing list
cf
@@ -2486,6 +2486,23 @@ are listed below.
$ clang -fuse-ld=lld -Oz -Wl,--icf=safe -fcodegen-data-use code.cc
+Strict Aliasing
+---
+
+Clang by default applies C/C++'s strict aliasing rules during optimizations. In
fhahn wrote:
Thanks updated.
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/122116
>From 9a637043f00ad388971cd6d4247510510fca31c8 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Wed, 8 Jan 2025 13:07:01 +
Subject: [PATCH 1/6] [TBAA] Don't emit pointer-tbaa for void pointers.
While there a
@@ -526,6 +526,11 @@ static AttributeSet
getIntrinsicArgAttributeSet(LLVMContext &C, unsigned ID) {
)",
ID);
for (const CodeGenIntrinsic::ArgAttribute &Attr : Attrs) {
+if (Attr.Kind == CodeGenIntrinsic::NoCapture) {
fhahn wro
@@ -526,6 +526,11 @@ static AttributeSet
getIntrinsicArgAttributeSet(LLVMContext &C, unsigned ID) {
)",
ID);
for (const CodeGenIntrinsic::ArgAttribute &Attr : Attrs) {
+if (Attr.Kind == CodeGenIntrinsic::NoCapture) {
fhahn wro
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/123181
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/fhahn commented:
Just double checking, do we have a test for the auto-upgrade?
https://github.com/llvm/llvm-project/pull/123181
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
@@ -1015,7 +1015,7 @@ struct OperandBundleUse {
/// has the attribute A.
bool operandHasAttr(unsigned Idx, Attribute::AttrKind A) const {
if (isDeoptOperandBundle())
- if (A == Attribute::ReadOnly || A == Attribute::NoCapture)
fhahn wrote:
This ca
fhahn wrote:
> Looks like this is causing a crash when building with sanitizers enabled on
> macOS
>
> Reduced reproducer: https://llvm.godbolt.org/z/fn83n4oz4
>
> End-to-end crash on GreenDragon:
> https://green.lab.llvm.org/job/llvm.org/job/clang-stage2-cmake-RgSan/664/console
Looked like
fhahn wrote:
Looks like this is causing a crash when building with sanitizers enabled on
macOS
Reduced reproducer: https://llvm.godbolt.org/z/fn83n4oz4
End-to-end crash on GreenDragon:
https://green.lab.llvm.org/job/llvm.org/job/clang-stage2-cmake-RgSan/664/console
https://github.com/llvm/ll
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/121789
>From efd38085120304c434487bf4a58a025086698180 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Mon, 6 Jan 2025 13:39:55 +
Subject: [PATCH 1/5] [Clang] Add __builtin_assume_dereferenceable to encode
deref as
Author: Florian Hahn
Date: 2025-01-08T11:54:02Z
New Revision: 9fc152d25ea1610efe2824c763e96e790d520910
URL:
https://github.com/llvm/llvm-project/commit/9fc152d25ea1610efe2824c763e96e790d520910
DIFF:
https://github.com/llvm/llvm-project/commit/9fc152d25ea1610efe2824c763e96e790d520910.diff
LOG:
fhahn wrote:
@pinskia thanks for sharing the GCC context!
https://github.com/llvm/llvm-project/pull/122116
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/122116
>From befe3a63d95712bf450ad1af360a8fb50c655a12 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Wed, 8 Jan 2025 13:07:01 +
Subject: [PATCH 1/2] [TBAA] Don't emit pointer-tbaa for void pointers.
While there a
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/122116
>From 9d05f760c524fd23e6f160ec2f65c7a5ccdde52e Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Wed, 8 Jan 2025 13:07:01 +
Subject: [PATCH 1/3] [TBAA] Don't emit pointer-tbaa for void pointers.
While there a
fhahn wrote:
What would be a good place to document this?
https://github.com/llvm/llvm-project/pull/122116
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
fhahn wrote:
Just rebased the PR and
> > I feel like this is a property that needs to propagate through types
>
> You mean, similar to the way trivial_abi works? That makes sense.
I am not sure about propagating. I added some documentation to make the spec of
the attribute clearer.
Specific
https://github.com/fhahn created
https://github.com/llvm/llvm-project/pull/131885
None
>From fb1120b5a4abd716f6071ce8c7cfc81e725e9030 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Fri, 14 Mar 2025 15:40:47 +
Subject: [PATCH] [IRGen] Mark pointers as noalias when passing trivial types
Author: Florian Hahn
Date: 2025-03-31T22:27:59+01:00
New Revision: 32f24029c72dae175c9e2cc81f931f065a2ba347
URL:
https://github.com/llvm/llvm-project/commit/32f24029c72dae175c9e2cc81f931f065a2ba347
DIFF:
https://github.com/llvm/llvm-project/commit/32f24029c72dae175c9e2cc81f931f065a2ba347.diff
Author: Florian Hahn
Date: 2025-04-01T08:45:46+01:00
New Revision: 64d493f987dc24b3d7e45daade9b0e8bfa1cc471
URL:
https://github.com/llvm/llvm-project/commit/64d493f987dc24b3d7e45daade9b0e8bfa1cc471
DIFF:
https://github.com/llvm/llvm-project/commit/64d493f987dc24b3d7e45daade9b0e8bfa1cc471.diff
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/95004
>From c3b6943c236990c9f0ba363b4335b3c0e048ef2c Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Mon, 10 Jun 2024 16:54:02 +0100
Subject: [PATCH 1/2] [clang] Add value_type attr, use it to add noalias when
pass-by-
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/95004
>From c3b6943c236990c9f0ba363b4335b3c0e048ef2c Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Mon, 10 Jun 2024 16:54:02 +0100
Subject: [PATCH 1/3] [clang] Add value_type attr, use it to add noalias when
pass-by-
@@ -9242,3 +9242,15 @@ Declares that a function potentially allocates heap
memory, and prevents any pot
of ``nonallocating`` by the compiler.
}];
}
+
+def ValueTypeDocs : Documentation {
+ let Category = DocCatDecl;
+ let Content = [{
+The ``value_type`` attribute can be u
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/131885
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/121789
>From b7b0a7a8a04e579c512c13bf114613ced56b8fe5 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Mon, 6 Jan 2025 13:39:55 +
Subject: [PATCH 1/5] [Clang] Add __builtin_assume_dereferenceable to encode
deref as
fhahn wrote:
https://github.com/llvm/llvm-project/pull/126117 has landed now which adjusted
the semantics of dereferenceable assume bundles and I think it should be safe
to go ahead with exposing this in Clang.
Unless there are any further concerns I am planning on submitting this soon :)
htt
@@ -2761,6 +2761,47 @@ etc.).
Query for this feature with
``__has_builtin(__builtin_assume_separate_storage)``.
+``__builtin_assume_dereferenceable``
+-
+
+``__builtin_assume_dereferenceable`` is used to provide the optimizer with the
+kno
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/121789
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/125050
>From 3133b6bf495e82ec63a29ab639ab91ddd7421464 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Thu, 30 Jan 2025 11:33:12 +
Subject: [PATCH 1/7] [MergeFuncs] Don't introduce calls to weak_odr functions.
Avoi
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/125050
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Florian Hahn
Date: 2025-04-01T09:28:46+01:00
New Revision: 9e5bfbf77db0945f59c0d18012a8e6d43c711b3a
URL:
https://github.com/llvm/llvm-project/commit/9e5bfbf77db0945f59c0d18012a8e6d43c711b3a
DIFF:
https://github.com/llvm/llvm-project/commit/9e5bfbf77db0945f59c0d18012a8e6d43c711b3a.diff
@@ -138,6 +139,9 @@ class EquivalenceClasses {
/// ECValues, it just keeps the key as part of the value.
std::set TheMapping;
+ /// List of all members, used to provide a determinstic iteration order.
+ SmallVector Members;
fhahn wrote:
This is where th
https://github.com/fhahn updated
https://github.com/llvm/llvm-project/pull/134075
>From 10afe2fb4743c0fccaad2797fffca174736a0997 Mon Sep 17 00:00:00 2001
From: Florian Hahn
Date: Sat, 29 Mar 2025 20:20:39 +
Subject: [PATCH 1/2] [EquivalenceClasses] Use SmallVector for deterministic
iterati
https://github.com/fhahn created
https://github.com/llvm/llvm-project/pull/134075
Currently iterators over EquivalenceClasses will iterate over std::set, which
guarantees the order specified by the comperator. Unfortunately in many cases,
EquivalenceClasses are used with pointers, so iterating
@@ -138,6 +139,9 @@ class EquivalenceClasses {
/// ECValues, it just keeps the key as part of the value.
std::set TheMapping;
+ /// List of all members, used to provide a determinstic iteration order.
+ SmallVector Members;
fhahn wrote:
Shared it here h
https://github.com/fhahn commented:
> > I just got a case:
> > ```
> > class A {
> > public:
> >class B {
> >public:
> > B(A *);
> >
> > // some non static data fields
> >};
> > Does this a valid prove that this optimization is not valid ?
>
> This example is fine
601 - 639 of 639 matches
Mail list logo