[clang] [TySan] Add initial documentation for Type Sanitizer (PR #123595)

2025-01-28 Thread Florian Hahn via cfe-commits
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 _

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-28 Thread Florian Hahn via cfe-commits
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

[clang] [TySan] Add initial documentation for Type Sanitizer (PR #123595)

2025-01-28 Thread Florian Hahn via cfe-commits
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 _

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-28 Thread Florian Hahn via cfe-commits
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

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-28 Thread Florian Hahn via cfe-commits
@@ -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.

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-28 Thread Florian Hahn via cfe-commits
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

[clang] [flang] [llvm] [IR] Convert from nocapture to captures(none) (PR #123181)

2025-01-21 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [flang] [llvm] [IR] Convert from nocapture to captures(none) (PR #123181)

2025-01-21 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [flang] [llvm] [IR] Convert from nocapture to captures(none) (PR #123181)

2025-01-21 Thread Florian Hahn via cfe-commits
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

[clang] [flang] [llvm] [IR] Convert from nocapture to captures(none) (PR #123181)

2025-01-21 Thread Florian Hahn via 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

[clang] [flang] [llvm] [IR] Convert from nocapture to captures(none) (PR #123181)

2025-01-21 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [llvm] Add the initializes attribute inference (PR #117104)

2025-01-18 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] Add the initializes attribute inference (PR #117104)

2025-01-15 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-01-10 Thread Florian Hahn via cfe-commits
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

[clang] 9fc152d - [TBAA] Add Clang pointer TBAA test with void *.

2025-01-08 Thread Florian Hahn via cfe-commits
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:

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-09 Thread Florian Hahn via cfe-commits
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

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-09 Thread Florian Hahn via 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

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-09 Thread Florian Hahn via cfe-commits
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

[clang] [TBAA] Don't emit pointer-tbaa for void pointers. (PR #122116)

2025-01-09 Thread Florian Hahn via cfe-commits
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

[clang] [clang] Add value_type attr, use it to add noalias when pass-by-value. (PR #95004)

2025-03-15 Thread Florian Hahn via 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

[clang] [IRGen] Mark pointers as noalias when passing trivial types by value. (PR #131885)

2025-03-18 Thread Florian Hahn via cfe-commits
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

[clang] 32f2402 - Reapply "[EquivalenceClasses] Replace findValue with contains (NFC)."

2025-03-31 Thread Florian Hahn via cfe-commits
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

[clang] 64d493f - [EquivalenceClasses] Return ECValue directly from insert (NFC).

2025-04-01 Thread Florian Hahn via cfe-commits
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

[clang] [clang] Add value_type attr, use it to add noalias when pass-by-value. (PR #95004)

2025-03-14 Thread Florian Hahn via cfe-commits
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-

[clang] [clang] Add value_type attr, use it to add noalias when pass-by-value. (PR #95004)

2025-03-15 Thread Florian Hahn via cfe-commits
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-

[clang] [clang] Add value_type attr, use it to add noalias when pass-by-value. (PR #95004)

2025-03-17 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [IRGen] Mark pointers as noalias when passing trivial types by value. (PR #131885)

2025-05-05 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-02-13 Thread Florian Hahn via 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

[clang] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-02-13 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-02-13 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-02-14 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [MergeFuncs] Don't introduce calls to (linkonce,weak)_odr functions. (PR #125050)

2025-02-25 Thread Florian Hahn via 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

[clang] [llvm] [MergeFuncs] Don't introduce calls to (linkonce,weak)_odr functions. (PR #125050)

2025-02-25 Thread Florian Hahn via cfe-commits
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

[clang] 9e5bfbf - [EquivalenceClasses] Update member_begin to take ECValue (NFC).

2025-04-04 Thread Florian Hahn via 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

[clang] [llvm] [EquivalenceClasses] Use SmallVector for deterministic iteration order. (PR #134075)

2025-04-02 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [llvm] [EquivalenceClasses] Use SmallVector for deterministic iteration order. (PR #134075)

2025-04-02 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [EquivalenceClasses] Use SmallVector for deterministic iteration order. (PR #134075)

2025-04-02 Thread Florian Hahn via cfe-commits
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

[clang] [llvm] [EquivalenceClasses] Use SmallVector for deterministic iteration order. (PR #134075)

2025-04-03 Thread Florian Hahn via cfe-commits
@@ -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

[clang] [Clang] Add `noalias` to `this` pointer in C++ constructors (PR #136792)

2025-05-15 Thread Florian Hahn via cfe-commits
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

<    2   3   4   5   6   7