[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-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] [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
@@ -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 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] 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] 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] [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] [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] [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-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] [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] [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] [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] [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] [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-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
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] [Docs] Fix typo in TypeSanitizer.rst "tale" -> "table" (NFC) (PR #126721)

2025-02-11 Thread Florian Hahn via cfe-commits
https://github.com/fhahn commented: Great, thanks for fixing this! https://github.com/llvm/llvm-project/pull/126721 ___ 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-31 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed 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-31 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited 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-30 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/122116 >From 04ae49a9c6680c6c9f2f9f482fc1f25fffd0d4d5 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 8 Jan 2025 13:07:01 + Subject: [PATCH 1/8] [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-30 Thread Florian Hahn via cfe-commits
@@ -2489,6 +2489,81 @@ are listed below. $ clang -fuse-ld=lld -Oz -Wl,--icf=safe -fcodegen-data-use code.cc +Strict Aliasing +--- + +The C and C++ standards require accesses to objects in memory to use l-values of +an appropriate type for the object. This is

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

2025-01-30 Thread Florian Hahn via cfe-commits
@@ -5272,6 +5296,8 @@ The Visual C++ Toolset has a slightly more elaborate mechanism for detection. Restrictions and Limitations compared to Clang -- +.. _clang_cl_strict_aliasing: + Strict Aliasing fhahn wrote: I

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

2025-01-30 Thread Florian Hahn via cfe-commits
@@ -2489,6 +2489,81 @@ are listed below. $ clang -fuse-ld=lld -Oz -Wl,--icf=safe -fcodegen-data-use code.cc +Strict Aliasing +--- + +The C and C++ standards require accesses to objects in memory to use l-values of +an appropriate type for the object. This is

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

2025-01-30 Thread Florian Hahn via cfe-commits
@@ -2489,6 +2489,81 @@ are listed below. $ clang -fuse-ld=lld -Oz -Wl,--icf=safe -fcodegen-data-use code.cc +Strict Aliasing +--- + +The C and C++ standards require accesses to objects in memory to use l-values of +an appropriate type for the object. This is

[clang] Fix link to TySan issues page (PR #125052)

2025-01-30 Thread Florian Hahn via cfe-commits
fhahn wrote: > ⚠️ We detected that you are using a GitHub private e-mail address to > contribute to the repo. Please turn off [Keep my email addresses > private](https://github.com/settings/emails) setting in your account. See > [LLVM > Discourse](https://discourse.llvm.org/t/hidden-emails-on

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

2025-01-29 Thread Florian Hahn via cfe-commits
@@ -2489,6 +2489,30 @@ 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 +cases C and C++ rules diverge, the more conser

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

2025-01-29 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/122116 >From bac0f4a9dfbf375d876bc84c4474a533cbecec0e Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 8 Jan 2025 13:07:01 + Subject: [PATCH 1/7] [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-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] [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] [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
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
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
fhahn wrote: > Okay, so if the ultimate pointee type is `void`, we're basically treating > that as a generic pointer, no matter what the pointer depth is? I guess that > makes sense. > > > What would be a good place to document this? > > Hmm, I was hoping that we would have a section in the m

[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/4] [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
https://github.com/fhahn approved this pull request. LGTM, thanks 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 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
@@ -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
@@ -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] [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
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] [TySan] Add initial documentation for Type Sanitizer (PR #123595)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/123595 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,153 @@ + +TypeSanitizer + + +.. contents:: + :local: + +Introduction + + +TypeSanitizer is a detector for strict type aliasing violations. It consists of a compiler +instrumentation module and a run-time library. The tool d

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

2025-01-20 Thread Florian Hahn via cfe-commits
https://github.com/fhahn commented: Thanks for putting this up! https://github.com/llvm/llvm-project/pull/123595 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { + // Alloca could have been renamed for uniqueness. Its true name will have been + // recorded as an annotation. + if (AI->hasMetadata(LLVMContext::MD_

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { fhahn wrote: ```suggestion static StringRef getAllocaName(AllocaInst *AI) { ``` https://github.com/llvm/llvm-project/pull/119387 ___

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3425,12 +3446,14 @@ void FunctionStackPoisoner::processStaticAllocas() { ArgInitInst->moveBefore(InsBefore); // If we have a call to llvm.localescape, keep it in the entry block. - if (LocalEscapeCall) LocalEscapeCall->moveBefore(InsBefore); + if (LocalEscapeCall)

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -134,6 +134,12 @@ llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, Alloca = new llvm::AllocaInst(Ty, CGM.getDataLayout().getAllocaAddrSpace(), ArraySize, Name, AllocaInsertPt->getIterator()); + llvm::errs() << "Al

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { + // Alloca could have been renamed for uniqueness. Its true name will have been + // recorded as an annotation. + if (AI->hasMetadata(LLVMContext::MD_

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { + // Alloca could have been renamed for uniqueness. Its true name will have been + // recorded as an annotation. + if (AI->hasMetadata(LLVMContext::MD_

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { + // Alloca could have been renamed for uniqueness. Its true name will have been + // recorded as an annotation. + if (AI->hasMetadata(LLVMContext::MD_

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-20 Thread Florian Hahn via cfe-commits
@@ -3391,6 +3391,27 @@ static void findStoresToUninstrumentedArgAllocas( } } +StringRef getAllocaName(AllocaInst *AI) { + // Alloca could have been renamed for uniqueness. Its true name will have been + // recorded as an annotation. + if (AI->hasMetadata(LLVMContext::MD_

[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] [llvm] [Clang] Add __builtin_assume_dereferenceable to encode deref assumption. (PR #121789)

2025-01-09 Thread Florian Hahn via cfe-commits
@@ -2761,6 +2761,41 @@ etc.). Query for this feature with ``__has_builtin(__builtin_assume_separate_storage)``. +``__builtin_assume_dereferenceable`` +- + +``__builtin_assume_derefernceable`` is used to provide the optimizer with the -

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

2025-01-09 Thread Florian Hahn via cfe-commits
@@ -2761,6 +2761,41 @@ etc.). Query for this feature with ``__has_builtin(__builtin_assume_separate_storage)``. +``__builtin_assume_dereferenceable`` +- + +``__builtin_assume_derefernceable`` is used to provide the optimizer with the +know

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

2025-01-09 Thread Florian Hahn via cfe-commits
@@ -2761,6 +2761,41 @@ etc.). Query for this feature with ``__has_builtin(__builtin_assume_separate_storage)``. +``__builtin_assume_dereferenceable`` +- + +``__builtin_assume_derefernceable`` is used to provide the optimizer with the +know

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

2025-01-09 Thread Florian Hahn via cfe-commits
@@ -0,0 +1,36 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s + +// CHECK-LABEL: @test1( +// CHECK-NEXT: entry: +// CHECK-NEXT:[[A_ADDR:%.*]] = alloca ptr,

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

2025-01-09 Thread Florian Hahn via cfe-commits
@@ -839,6 +839,12 @@ def BuiltinAssumeAligned : Builtin { let Prototype = "void*(void const*, size_t, ...)"; } +def BuiltinAssumeDereferenceable : Builtin { + let Spellings = ["__builtin_assume_dereferenceable"]; + let Attributes = [NoThrow, Const, Constexpr];

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

2025-01-09 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/121789 >From 2c7c9bbf17f5c3c78c85dc91540004d75707ebe5 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Mon, 6 Jan 2025 13:39:55 + Subject: [PATCH 1/4] [Clang] Add __builtin_assume_dereferenceable to encode deref as

[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] [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
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-08 Thread Florian Hahn via cfe-commits
https://github.com/fhahn created https://github.com/llvm/llvm-project/pull/122116 While there are no special rules in the standards regarding void pointers and strict aliasing, emitting distinct tags for void pointers break some common idioms and there is no good alternative to re-write the co

[clang] 346fad5 - [TBAA] Simplify checks for unnamed struct case, where anyptr is used.

2025-01-08 Thread Florian Hahn via cfe-commits
Author: Florian Hahn Date: 2025-01-08T14:08:28Z New Revision: 346fad5c2c28d0cd39475ae979ee468a420ebed7 URL: https://github.com/llvm/llvm-project/commit/346fad5c2c28d0cd39475ae979ee468a420ebed7 DIFF: https://github.com/llvm/llvm-project/commit/346fad5c2c28d0cd39475ae979ee468a420ebed7.diff LOG:

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

2025-01-08 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/121789 >From 596d1346eb806e4c276042e50cca7514d3335f54 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Mon, 6 Jan 2025 13:39:55 + Subject: [PATCH 1/3] [Clang] Add __builtin_assume_dereferenceable to encode deref as

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

2025-01-08 Thread Florian Hahn via cfe-commits
@@ -2761,6 +2761,41 @@ etc.). Query for this feature with ``__has_builtin(__builtin_assume_separate_storage)``. +``__builtin_assume_dereferenceable`` +- + +``__builtin_assume_derefernceable`` is used to provide the optimizer with the +know

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

2025-01-08 Thread Florian Hahn via cfe-commits
@@ -2761,6 +2761,41 @@ etc.). Query for this feature with ``__has_builtin(__builtin_assume_separate_storage)``. +``__builtin_assume_dereferenceable`` +- + +``__builtin_assume_derefernceable`` is used to provide the optimizer with the +know

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

2025-01-08 Thread Florian Hahn via cfe-commits
@@ -839,6 +839,12 @@ def BuiltinAssumeAligned : Builtin { let Prototype = "void*(void const*, size_t, ...)"; } +def BuiltinAssumeDereferenceable : Builtin { + let Spellings = ["__builtin_assume_dereferenceable"]; + let Attributes = [NoThrow, Const, Constexpr];

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

2025-01-08 Thread Florian Hahn via cfe-commits
@@ -3726,6 +3726,16 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, AlignmentCI, OffsetValue); return RValue::get(PtrValue); } + case Builtin::BI__builtin_assume_dereferenceable: { +const Expr *Ptr = E-

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

2025-01-08 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/121789 >From 596d1346eb806e4c276042e50cca7514d3335f54 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Mon, 6 Jan 2025 13:39:55 + Subject: [PATCH 1/2] [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] [TySan] Don't report globals with incomplete types. (PR #121922)

2025-01-07 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/121922 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-07 Thread Florian Hahn via cfe-commits
@@ -3430,13 +3430,15 @@ void FunctionStackPoisoner::processStaticAllocas() { SmallVector SVD; SVD.reserve(AllocaVec.size()); for (AllocaInst *AI : AllocaVec) { -ASanStackVariableDescription D = {AI->getName().data(), - ASan.getAllo

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-07 Thread Florian Hahn via cfe-commits
@@ -3430,13 +3430,15 @@ void FunctionStackPoisoner::processStaticAllocas() { SmallVector SVD; SVD.reserve(AllocaVec.size()); for (AllocaInst *AI : AllocaVec) { -ASanStackVariableDescription D = {AI->getName().data(), - ASan.getAllo

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-07 Thread Florian Hahn via cfe-commits
@@ -53,3 +53,4 @@ LLVM_FIXED_MD_KIND(MD_DIAssignID, "DIAssignID", 38) LLVM_FIXED_MD_KIND(MD_coro_outside_frame, "coro.outside.frame", 39) LLVM_FIXED_MD_KIND(MD_mmra, "mmra", 40) LLVM_FIXED_MD_KIND(MD_noalias_addrspace, "noalias.addrspace", 41) +LLVM_FIXED_MD_KIND(MD_unaltered_n

[clang] [compiler-rt] [llvm] [ASan] Add metadata to renamed instructions so ASan doesn't use the i… (PR #119387)

2025-01-07 Thread Florian Hahn via cfe-commits
@@ -3430,13 +3430,15 @@ void FunctionStackPoisoner::processStaticAllocas() { SmallVector SVD; SVD.reserve(AllocaVec.size()); for (AllocaInst *AI : AllocaVec) { -ASanStackVariableDescription D = {AI->getName().data(), - ASan.getAllo

[clang] [TySan] Don't report globals with incomplete types. (PR #121922)

2025-01-07 Thread Florian Hahn via cfe-commits
https://github.com/fhahn created https://github.com/llvm/llvm-project/pull/121922 Type metadata for incomplete types should also get handled at the place they are defined. Fixes https://github.com/llvm/llvm-project/issues/121014. >From d5f66784891b0bd1d8a23060ec104b3a7d07dbec Mon Sep 17 00:00

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

2025-01-06 Thread Florian Hahn via cfe-commits
https://github.com/fhahn created https://github.com/llvm/llvm-project/pull/121789 This patch adds a new __builtin_assume_dereferenceable to encode dereferenceability of a pointer using llvm.assume with an operand bundle. For now the builtin only accepts constant sizes, I am planning to drop th

[clang] [clang] Restrict use of scalar types in vector builtins (PR #119423)

2025-01-06 Thread Florian Hahn via cfe-commits
fhahn wrote: Would be good to also update the documentation for the builtins the clarify the behavior. https://github.com/llvm/llvm-project/pull/119423 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/list

[clang] [llvm] [tysan] Convert TySan from function+module pass to just module pass (PR #120667)

2024-12-28 Thread Florian Hahn via cfe-commits
https://github.com/fhahn approved this pull request. LGTM, thanks! https://github.com/llvm/llvm-project/pull/120667 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [TySan] Don't report globals with external storage. (PR #120565)

2024-12-19 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/120565 >From 75b6f8923dcb386d3520dbde762f3855af73aed4 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Thu, 19 Dec 2024 11:39:20 + Subject: [PATCH] [TySan] Don't report globals with external storage. Globals with e

[clang] [llvm] [TySan] A Type Sanitizer (Clang) (PR #76260)

2024-12-19 Thread Florian Hahn via cfe-commits
@@ -105,11 +106,32 @@ void SanitizerMetadata::reportGlobal(llvm::GlobalVariable *GV, GV, Loc, Ty, "init"); GV->setSanitizerMetadata(Meta); + + if (Ty.isNull() || !CGM.getLangOpts().Sanitize.has(SanitizerKind::Type) ||

[clang] [TySan] Don't report globals with external storage. (PR #120565)

2024-12-19 Thread Florian Hahn via cfe-commits
https://github.com/fhahn created https://github.com/llvm/llvm-project/pull/120565 Globals with external storage should have been initialized where they are defined. Fixes https://github.com/llvm/llvm-project/issues/120448 >From a12283a7da8da16053f02ecf4f41c2eaa06717cd Mon Sep 17 00:00:00 2001

[clang] [llvm] [LLVM][PhaseOrdering] Run CSE after InstCombine has cleaned the result of vectorisation. (PR #120443)

2024-12-18 Thread Florian Hahn via cfe-commits
@@ -1306,6 +1306,10 @@ void PassBuilder::addVectorPasses(OptimizationLevel Level, } // Cleanup after the loop optimization passes. FPM.addPass(InstCombinePass()); + // InstCombine can create CSE opportunities when it cleans the result of loop + // vectorization. They o

[clang] [compiler-rt] [llvm] [TySan] A Type Sanitizer (Runtime Library) (PR #76261)

2024-12-17 Thread Florian Hahn via cfe-commits
fhahn wrote: > I guess there are no release notes or manual b/c this is not ready to be used > by general users on the command line and that will come via another PR? I added a release note as part of the Clang patch to the `Sanitizers` section: https://clang.llvm.org/docs/ReleaseNotes.html#sa

[clang] [compiler-rt] [llvm] [TySan] A Type Sanitizer (Runtime Library) (PR #76261)

2024-12-17 Thread Florian Hahn via cfe-commits
fhahn wrote: AFAICT this is happening at each place that includes the file, e.g. also if you build AddressSanitizer. Not sure what the best way forward here is as this is not related to TypeSanitizer, but seems to impact all sanitizers? https://github.com/llvm/llvm-project/pull/76261 _

[clang] [compiler-rt] [llvm] [TySan] A Type Sanitizer (Runtime Library) (PR #76261)

2024-12-17 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/76261 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

  1   2   3   4   5   6   7   >