[clang] [clang][NFC] Clean up SemaChecking.cpp (PR #141041)

2025-05-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141041 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Check lifetime of all ptr bases in placement-new (PR #141272)

2025-05-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141272 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Recursively start lifetimes as well (PR #141742)

2025-05-28 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141742 The constructor starts the lifetime of all the subobjects. >From 11f8d2e4c3282a9b49f9cf08b7d16f6c32e08134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 28 May 2025 11:27:39 +0200 Subj

[clang] [clang][Sema] Cleanup and optimize DiagnoseAssignmentEnum (PR #141471)

2025-05-27 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141471 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Lex][NFC] Reorder SrcMgr checks in CheckMacroName (PR #141483)

2025-05-27 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141483 >From fc2a7157b912b4eff6e9921b797b01792506a72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 26 May 2025 14:05:24 +0200 Subject: [PAT

[clang] [clang][bytecode] Diagnose failed constexpr assertions differently (PR #140000)

2025-05-15 Thread Timm Baeder via cfe-commits
@@ -851,6 +851,19 @@ bool CheckCallable(InterpState &S, CodePtr OpPC, const Function *F) { if (F->isLambdaStaticInvoker()) return true; + // Diagnose failed assertions specially. + if (S.Current->getLocation(OpPC).isMacroID() && + F->getDecl()->getIdentifier()) {

[clang] [clang][bytecode] Fix discarded LValueToRValueBitCasts (PR #140034)

2025-05-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140034 We handle discarding fine, but we used to ignore all discarded cast expressions. Handle bitcasts differently. Rate limit · GitHub body { background-color: #f6f8f

[clang] [clang][bytecode] Check destructors for temporaries (PR #140039)

2025-05-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140039 Also, increase the EvalID in isPotentialConstantExpr(), since this is its own evaluation. Rate limit · GitHub body { background-color: #f6f8fa; color: #2

[clang] [clang][bytecode] Fix discarded LValueToRValueBitCasts (PR #140034)

2025-05-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/140034 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Check dtor calls for one-past-end pointers (PR #140047)

2025-05-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140047 None >From abf8f9f5411f8ee9ee9df31ce1a5faaf0b6e8f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 15 May 2025 12:50:56 +0200 Subject: [PATCH] [clang][bytecode] Check dtor calls for on

[clang] [clang][bytecode] Check destructors for temporaries (PR #140039)

2025-05-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/140039 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix self-init diagnostics in C++23 (PR #141044)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141044 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Optimize some `getBeginLoc` implementations (PR #141058)

2025-05-22 Thread Timm Baeder via cfe-commits
@@ -2901,34 +2907,43 @@ class CallExpr : public Expr { // // * An optional of type FPOptionsOverride. // - // Note that we store the offset in bytes from the this pointer to the start - // of the trailing objects. It would be perfectly possible to compute it - // based

[clang] [clang][bytecode] Fix AccessKinds in placement new CheckStore() call (PR #141123)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141123 CheckStore is for assignments, but we're constructing something here, so pass AK_Construct instead. We already diagnosed the test case, but as an assignment. >From dc798c13b85c7730a99b987c334e550f11d8a51c Mon

[clang] [clang][bytecode] Change diagnostics for self-initialization (PR #141006)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141006 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Change diagnostics for self-initialization (PR #141006)

2025-05-21 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141006 Change the diagnostics when reading from the variable we're currently initializing do be the same as the one the current interpreter emits. >From 4a9c9a11f80de2306d07a836ec704aa6b3d7f35a Mon Sep 17 00:00:00 20

[clang] [clang][bytecode] Change diagnostics for self-initialization (PR #141006)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141006 >From 4f64271943f796cd6f4aa41a613d058766d61e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 22 May 2025 06:52:09 +0200 Subject: [PATCH] [clang][bytecode] Change diagnostics for self-i

[clang] [clang][NFC] Clean up SemaChecking.cpp (PR #141041)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141041 Make pointer parameters const, remove some unused parameters, fix coding style, etc. >From a79f0474700c1b96b98ef4d05c30816b48742e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 22 M

[clang] [clang][bytecode] Fix self-init diagnostics in C++23 (PR #141044)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141044 None >From bbd228b43194e37e0b5441c3f682a35ff27171b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 22 May 2025 13:34:33 +0200 Subject: [PATCH] [clang][bytecode] Fix self-init diagnosti

[clang] [clang][bytecode] Fix AccessKinds in placement new CheckStore() call (PR #141123)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141123 >From 007962efa820248c12dc7fc2c84de67cf54e5c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 22 May 2025 21:01:55 +0200 Subject: [PATCH] [clang][bytecode] Fix AccessKinds in placement

[clang] [clang][bytecode] Diagnose placement-new'ing to a temporary (PR #141099)

2025-05-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141099 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Check lifetime of all ptr bases in placement-new (PR #141272)

2025-05-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141272 placement-new'ing an object with a dead base object is not allowed, so we need to check all the pointer bases. >From b926faa034774260871133e1eaa415f4b0bb8721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C

[clang] [clang][bytecode] Check lifetime of all ptr bases in placement-new (PR #141272)

2025-05-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141272 >From 9a8f1f46b1a4e9610b1c3e6d1124ba6321896da9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 23 May 2025 19:41:59 +0200 Subject: [PATCH] [clang][bytecode] Check lifetime of all ptr bas

[clang] [clang][bytecode] Fix AccessKinds in placement new CheckStore() call (PR #141123)

2025-05-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141123 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Basic] Optimize getDiagnosticSeverity() (PR #141950)

2025-06-02 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Don't get the expr without emitting a diagnostic (PR #141953)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141953 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Only check expr in CheckThis() if we have to (PR #141951)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141951 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Make some builtins no-ops (PR #141952)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141952 >From f1c2dbfd29b201baf644d7f7e5ee5dd2a9f1f744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 29 May 2025 13:48:15 +0200 Subject: [PATCH] [clang][bytecode] Make some builtins no-ops Fo

[clang] [clang][Basic] Optimize getDiagnosticSeverity() (PR #141950)

2025-05-29 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/141950 >From 1946e68dab09b4eec02a742e61d2928abd5fc60e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 29 May 2025 13:00:07 +0200 Subject: [PAT

[clang] [clang][bytecode] Make some builtins no-ops (PR #141952)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141952 For some builtins, we dont' need to do anything, but due to the cleanup code being the same for all builtins, we still had to duplicate the value on the stack. Remove that and get rid of all the unnecessary pr

[clang] [clang][bytecode] Don't get the expr without emitting a diagnostic (PR #141953)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141953 None >From b3041c31a49852d7211de7fdcbc320258ed55d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 29 May 2025 14:20:45 +0200 Subject: [PATCH] [clang][bytecode] Don't get the expr with

[clang] [clang][Basic] Optimize getDiagnosticSeverity() (PR #141950)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141950 Try not to call getDiagInfo() as often and only do it if we really have to. >From 1946e68dab09b4eec02a742e61d2928abd5fc60e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 29 May 2025 13

[clang] [clang][bytecode] Only check expr in CheckThis() if we have to (PR #141951)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141951 Pre C++11, we dont't need to get the value of IsImplicit. >From 3cdc0e88a50dae1299532342fc39ccb88f9dd564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 29 May 2025 13:48:09 +0200 Subje

[clang] [clang][Lex][NFC] Reorder SrcMgr checks in CheckMacroName (PR #141483)

2025-05-29 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141483 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Make some builtins no-ops (PR #141952)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141952 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Simplify diagnoseUnknownDecl if we're not diagnosing (PR #141910)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141910 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Cleanup and optimize DiagnoseAssignmentEnum (PR #141471)

2025-05-29 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: > How are you coming up w/ the target for your improvements? Is this something > other folks could try and try and find some inspiration? I ran the `SemaExpr.cpp` compilation command from the `compile_commands.json` through va

[clang] [clang][bytecode] Simplify diagnoseUnknownDecl if we're not diagnosing (PR #141910)

2025-05-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141910 See the added comment. This improves compile times a bit: https://llvm-compile-time-tracker.com/compare.php?from=ac62f73f19ae9fb415d3fc423949b8d7543e8717&to=0d6cf47197a4ee11cdd1ee4a48ea38a2907c3d45&stat=instruc

[clang] [Clang] Fix crash on template-specialization (PR #142338)

2025-06-02 Thread Timm Baeder via cfe-commits
@@ -5120,6 +5121,10 @@ bool Sema::addInstantiatedParametersToScope( // Simple case: not a parameter pack. assert(FParamIdx < Function->getNumParams()); ParmVarDecl *FunctionParam = Function->getParamDecl(FParamIdx); + DeclarationName name = FunctionParam-

[clang] [clang][Sema] Optimize ~SemaDiagnosticBuilder (PR #142252)

2025-05-30 Thread Timm Baeder via cfe-commits
tbaederr wrote: The original code looks like the ordering with the `ImmediateDiag.reset()` call matters, but it doesn't seem like it does. https://github.com/llvm/llvm-project/pull/142252 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:/

[clang] [clang][Sema] Optimize ~SemaDiagnosticBuilder (PR #142252)

2025-05-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/142252 Call getDiagnosticLevel(), which is expensive, only if ShowCallStack is set. Small gains: https://llvm-compile-time-tracker.com/compare.php?from=843e362318e884991e517a54446b4faeacdad789&to=5cef0c18466318a426924

[clang] [clang][bytecode] Save Constexpr bit in Function (PR #142793)

2025-06-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/142793 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Remove some unused code (PR #142580)

2025-06-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/142580 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Remove some unused code (PR #142580)

2025-06-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/142580 Remove unused functions and add tests for fixed-point to bool casts, which work. >From 113466cd964229100f5ff6d8e9672cde817992c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 3 Jun 202

[clang] [clang][Sema] Optimize ~SemaDiagnosticBuilder (PR #142252)

2025-05-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/142252 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-19 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: Can you try applying ```diff diff --git i/clang/lib/AST/ByteCode/IntegralAP.h w/clang/lib/AST/ByteCode/IntegralAP.h index 0280ea072ca9..4c1fb61e3e15 100644 --- i/clang/lib/AST/ByteCode/IntegralAP.h +++ w

[clang] [clang][bytecode] Fix calling operator new with nothrow/align parameter (PR #144271)

2025-06-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/144271 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Reapply "Reapply "[clang][bytecode] Allocate IntegralAP and Floating … (PR #145014)

2025-06-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/145014 …types usi… (#144676)" This reverts commit 68471d29eed2c49f9b439e505b3f24d387d54f97. IntegralAP contains a union: union { uint64_t *Memory = nullptr; uint64_t Val; }; On 64bit systems, both Memory

[clang] Reapply "Reapply "[clang][bytecode] Allocate IntegralAP and Floating … (PR #145014)

2025-06-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/145014 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix assignInteger() with allocated primtypes (PR #145302)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/145302 None >From 33eadba2a8d300be67cab69540537589400f7b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 23 Jun 2025 12:00:20 +0200 Subject: [PATCH] [clang][bytecode] Fix assignInteger() wit

[clang] [clang][bytecode] Fix assignInteger() with allocated primtypes (PR #145302)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/145302 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix shifts with an allocated RHS (PR #145280)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/145280 This was broken before because we ended up using a constructor that was disabled via assert(false). Use ShiftAP() if either LHS or RHS is allocated. >From 58751e9c9b5d9c2437c6a3a6f22b16c5aba8b8ab Mon Sep 17 00

[clang] [clang][bytecode] Fix shifts with an allocated RHS (PR #145280)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/145280 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix IntegralAP::{isMin,isMax} (PR #145339)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/145339 We need to take signeness into account here. >From fade41f6df27da0c20751276aa8586bb1540bbf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 23 Jun 2025 17:10:20 +0200 Subject: [PATCH] [

[clang] [Serialization] Remove delta encoding optimization (PR #145670)

2025-06-25 Thread Timm Baeder via cfe-commits
@@ -733,16 +731,14 @@ class ASTWriter : public ASTDeserializationListener, void AddFileID(FileID FID, RecordDataImpl &Record); /// Emit a source location. - void AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record, - LocSeq *Seq = nullptr)

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-17 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/144246 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailma

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
@@ -4674,10 +4677,7 @@ VarCreationState Compiler::visitVarDecl(const VarDecl *VD, if (!visitInitializer(Init)) return false; - if (!this->emitFinishInit(Init)) -return false; - - return this->emitPopPtr(Init); + return this->emitFinishInit

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
@@ -17,63 +17,80 @@ #include "clang/AST/APValue.h" #include "llvm/ADT/APFloat.h" +// XXX This is just a debugging help. Setting this to 1 will heap-allocate ALL +// floating values. +#define ALLOCATE_ALL 0 + namespace clang { namespace interp { using APFloat = llvm::APFlo

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/144246 >From 9801280bab3f751995c6bc7838ccbadb09d8d208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 10 Jun 2025 14:45:39 +0200 Subject: [PAT

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
@@ -17,63 +17,80 @@ #include "clang/AST/APValue.h" #include "llvm/ADT/APFloat.h" +// XXX This is just a debugging help. Setting this to 1 will heap-allocate ALL +// floating values. +#define ALLOCATE_ALL 0 + tbaederr wrote: I didn't have any plan for it, I ju

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr edited https://github.com/llvm/llvm-project/pull/144246 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [analyzer] Fix a false memory leak reports involving placement new (PR #144341)

2025-06-16 Thread Timm Baeder via cfe-commits
@@ -1371,6 +1371,19 @@ void MallocChecker::checkIfFreeNameIndex(ProgramStateRef State, C.addTransition(State); } +bool isVoidStar(QualType T) { + return !T.isNull() && T->isPointerType() && T->getPointeeType()->isVoidType(); tbaederr wrote: There's `isVo

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/144246 >From 9801280bab3f751995c6bc7838ccbadb09d8d208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 10 Jun 2025 14:

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-16 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: @@ -17,63 +17,80 @@ #include "clang/AST/APValue.h" #include "llvm/ADT/APFloat.h" +// XXX This is just a debugging help. Setting this to 1 will heap-allocate ALL +// floating values. +#define ALLOCATE_A

[clang] [Clang][NFC][ByteCode] Initialize Function HasBody in constructor (PR #143443)

2025-06-09 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/143443 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Remove incorrect assertion (PR #145341)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/145341 P.block() will assert that P is a block pointer, which it doesn't have to be here. >From 598d2a9d4c5e31749e79c35802d4b3b3ca8773be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 23 Jun

[clang] [clang][bytecode] Fix IntegralAP::{isMin,isMax} (PR #145339)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/145339 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Remove incorrect assertion (PR #145341)

2025-06-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/145341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix IntegralAP::{isMin,isMax} (PR #145339)

2025-06-24 Thread Timm Baeder via cfe-commits
tbaederr wrote: Yes, you need https://github.com/llvm/llvm-project/commit/0e461d1781f1c67cc2724150c6da848f6ea75f3a as well https://github.com/llvm/llvm-project/pull/145339 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-14 Thread Timm Baeder via cfe-commits
tbaederr wrote: Formatting seems to be a difference in clang-format versions. I already formatted the patch locally. https://github.com/llvm/llvm-project/pull/144246 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bi

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-14 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr edited https://github.com/llvm/llvm-project/pull/144246 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-14 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/144246 Both `APInt` and `APFloat` will heap-allocate memory themselves using the system allocator when the size of their data exceeds 64 bits. This is why clang has `APNumericStorage`, which allocates its memory usin

[clang] [clang][bytecode] Avoid revisiting decomposition decl in visitDeclRef (PR #144226)

2025-06-14 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,8 @@ +// RUN: %clang_cc1 -std=c++17 -verify %s -fexperimental-new-constant-interpreter +// RUN: %clang_cc1 -std=c++17 -verify %s + +void f1() { tbaederr wrote: Add this test in its own namespace to `cxx17.cpp` please. https://github.com/llvm/llvm-pro

[clang] [clang][bytecode] Allocate IntegralAP and Floating types using an allocator (PR #144246)

2025-06-14 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/144246 >From 0f737d3293bf079baf794101d8cd5f92a86e5117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 10 Jun 2025 14:45:39 +0200 Subject: [PATCH] intap --- clang/lib/AST/ByteCode/Compiler.cpp

[clang] [clang][bytecode] Avoid revisiting decomposition decl in visitDeclRef (PR #144226)

2025-06-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. LGTM, thanks! https://github.com/llvm/llvm-project/pull/144226 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix calling operator new with nothrow/align parameter (PR #144271)

2025-06-15 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/144271 Discard all the parameters we don't care about. >From 56ef41ba741fc71d797b1d6768d6fb8211c71bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 15 Jun 2025 19:26:16 +0200 Subject: [PATCH

[clang] [libcxx] [Clang] Add __builtin_invoke and use it in libc++ (PR #116709)

2025-06-13 Thread Timm Baeder via cfe-commits
@@ -4272,6 +4272,12 @@ def MoveIfNsoexcept : CxxLibBuiltin<"utility"> { let Namespace = "std"; } +def Invoke : Builtin { + let Spellings = ["__builtin_invoke"]; + let Attributes = [CustomTypeChecking, Constexpr]; tbaederr wrote: There are no changes to `E

[clang] [clang][bytecode] Avoid revisiting decomposition decl in visitDeclRef (PR #144226)

2025-06-15 Thread Timm Baeder via cfe-commits
@@ -141,3 +141,13 @@ template constexpr auto c() { } auto y = c<1>(); // both-note {{in instantiation of function template specialization 'c<1>' requested here}} + +namespace non_constexpr_structured_binding { + +void f1() { + int arr[2] = {}; + auto [a, b] = arr; + stati

[clang] [clang][bytecode] Avoid revisiting decomposition decl in visitDeclRef (PR #144226)

2025-06-15 Thread Timm Baeder via cfe-commits
@@ -141,3 +141,11 @@ template constexpr auto c() { } auto y = c<1>(); // both-note {{in instantiation of function template specialization 'c<1>' requested here}} + +namespace non_constexpr_structured_binding { tbaederr wrote: You forgot the namespace name

[clang] [Clang][ByteCode][NFC] Misc minor performance fixes (PR #145988)

2025-06-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/145988 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Partially address string literal uniqueness (PR #142555)

2025-06-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/142555 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Remove separate evaluation step for static class member init. (PR #142713)

2025-06-03 Thread Timm Baeder via cfe-commits
tbaederr wrote: Could you run this through the compile time tracker? https://github.com/llvm/llvm-project/pull/142713 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode][NFC] Cache more integer type sizes (PR #142720)

2025-06-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/142720 None >From 22f7f0a3b1a5b740377ce56ea0532b6d4a866aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 4 Jun 2025 07:05:29 +0200 Subject: [PATCH] [clang][bytecode][NFC] Cache more integer

[clang] [clang][bytecode][NFC] Cache more integer type sizes (PR #142720)

2025-06-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/142720 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Save Constexpr bit in Function (PR #142793)

2025-06-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/142793 Rename isConstexpr to isValid, the former was always a bad name. Save a constexpr bit in Function so we don't have to access the decl in CheckCallable. >From f5dbb8228c19e5dd95bd4da65fe4c6f394df32c2 Mon Sep 17

[clang] [clang][bytecode] Pop builtin args from the stack while evaluating (PR #142832)

2025-06-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/142832 Instead of just peek()ing the values when evaluating the builtins and later classify()ing all the call args once again to remove them, just do it while evaluating. This saves quite a bit of code. >From 77e619

[clang] [clang][bytecode] Pop builtin args from the stack while evaluating (PR #142832)

2025-06-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/142832 >From 7cb647229d8c2e47de60f7b1bd13423155e8456b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 4 Jun 2025 15:10:55 +0200 Subject: [PATCH] [clang][bytecode] Pop builtin args from the stac

[clang] [clang][bytecode] Partially address string literal uniqueness (PR #142555)

2025-06-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/142555 >From a98453657b881d8cacebac99551becf85168649f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 3 Jun 2025 09:24:57 +0200 Subject: [PATCH] [clang][bytecode] Partially address string liter

[clang] [clang][NFC] Move Diags.isIgnored check later in checkForRedundantLoop (PR #141470)

2025-05-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141470 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Recursively start lifetimes as well (PR #141742)

2025-05-28 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141742 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Make some builtins no-ops (PR #141952)

2025-05-30 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ah, sorry about that. Thanks. https://github.com/llvm/llvm-project/pull/141952 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Move Diags.isIgnored check later in checkForRedundantLoop (PR #141470)

2025-05-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr edited https://github.com/llvm/llvm-project/pull/141470 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Move Diags.isIgnored check later in checkForRedundantLoop (PR #141470)

2025-05-30 Thread Timm Baeder via cfe-commits
tbaederr wrote: > Can you elaborate in your summary. > > I am guessing because the other checks are a lot cheaper and this overall > improves performance? Yep. Updated the description. https://github.com/llvm/llvm-project/pull/141470 ___ cfe-commits

[clang] [clang] Check constexpr int->enum conversions consistently. (PR #143034)

2025-06-06 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/143034 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][ByteCode][NFC] Move APInt into pushInteger since it is being passed by value (PR #143578)

2025-06-11 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/143578 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] increase default constexpr step limit (PR #143785)

2025-06-11 Thread Timm Baeder via cfe-commits
tbaederr wrote: The linked standard says: > Full-expressions evaluated within a core constant expression > ([[expr.const]](https://eel.is/c++draft/expr.const)) [1 048  > 576][.](https://eel.is/c++draft/implimits#1.39.sentence-1) Is that actually what the "steps" in clang refer to? We seem to ch

[clang] [clang][bytecode] Misc union fixes (PR #146824)

2025-07-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/146824 First, don't forget to also activate fields which are bitfields on assignment. Second, when deactivating fields, recurse into records. >From 590c6778439fd1410ce17793ddeb03de055771e0 Mon Sep 17 00:00:00 2001 Fr

[clang] [clang][test] Avoid some C++14 warnings in discrim-union.cpp (PR #146829)

2025-07-03 Thread Timm Baeder via cfe-commits
tbaederr wrote: yes, done. https://github.com/llvm/llvm-project/pull/146829 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][test] Avoid some C++14 warnings in discrim-union.cpp (PR #146829)

2025-07-03 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/146829 >From c193cfbdd9215ee1dbd84e00ecb47a51542da98b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 3 Jul 2025 09:57:40 +0200 Subject: [PATCH] [clang][test] Avoid some C++14 warnings in discr

[clang] [Clang] Fix evaluation context of lambdas appearing in discarded statements (PR #146857)

2025-07-03 Thread Timm Baeder via cfe-commits
@@ -18252,6 +18252,11 @@ static bool isImplicitlyDefinableConstexprFunction(FunctionDecl *Func) { if (Func->isImplicitlyInstantiable() || !Func->isUserProvided()) return true; + + // Lambda conversion operators are never user provided tbaederr wrote:

<    22   23   24   25   26   27   28   29   >