[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] 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
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][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?= 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
@@ -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
@@ -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
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] 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] [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] [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] 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] 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] 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] 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] [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] 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][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][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] 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] 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] 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] 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] 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][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][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] 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] 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][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][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][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] 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-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][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][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][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][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][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][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] 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][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][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] 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][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][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] 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][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][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 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][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][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] 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][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][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][OpenCL] Only evaluate initializer once to check for zero init (PR #141474)

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

[clang] [clang][Lex] Use getBufferName() in isInPredefinedFile() (PR #141490)

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

[clang] [clang][Lex] Use getBufferName() in isInPredefinedFile() (PR #141490)

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

[clang] [clang][Lex] Use getBufferName() in isInPredefinedFile() (PR #141490)

2025-05-26 Thread Timm Baeder via cfe-commits
tbaederr wrote: http://llvm-compile-time-tracker.com/compare.php?from=0917b0525b49f0d8fe64e26947449c55db5fc00a&to=65f3db15d875c7279c95afdd2a9221ec43dc61b4&stat=instructions:u https://github.com/llvm/llvm-project/pull/141490 ___ cfe-commits mailing list

[clang] [clang][Lex] Use getBufferName() in isInPredefinedFile() (PR #141490)

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141490 I don't think this depends on #line directives, to it should be fine to use getBufferName. >From e8e0bddda7dcc5e64624912e68f5de8d7ff485eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon

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

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141483 isInPredefinedFile() will look at the presumed loc, which is comparatively slow. Move it after isInSystemFile(). http://llvm-compile-time-tracker.com/compare.php?from=843e362318e884991e517a54446b4faeacdad789&t

[clang] [clang][NFC] Call Stmt::getBeginLoc() once in DiagnoseForRangeVariable (PR #141472)

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

[clang] [clang][ExprConst][NFC] Only call getExprLoc() once (PR #141473)

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/141473 ___ 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-26 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/141471 >From 7b0a2b83146623a1674967ff4353a9eea6efd25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 26 May 2025 12:19:22 +0200 Subject: [PAT

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

2025-05-26 Thread Timm Baeder via cfe-commits
tbaederr wrote: http://llvm-compile-time-tracker.com/compare.php?from=843e362318e884991e517a54446b4faeacdad789&to=7b0a2b83146623a1674967ff4353a9eea6efd25e&stat=instructions:u https://github.com/llvm/llvm-project/pull/141471 ___ cfe-commits mailing list

[clang] [clang][OpenCL] Only evaluate initializer once to check for zero init (PR #141474)

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141474 Both Expr::isIntegerConstantExpr() and Epxr::EvaluateKnownConstInt() evaluate the expression. Just do it once and check the integer result. >From 000188d3650923c7747aeeb8f7d02786f8243bf0 Mon Sep 17 00:00:00 20

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

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141471 Reorder the precondition checks to move the costly onces last. Also, only evaluate the RHS once to get the integral value. >From 7b0a2b83146623a1674967ff4353a9eea6efd25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?

[clang] [clang][ExprConst][NFC] Only call getExprLoc() once (PR #141473)

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141473 It's potentially costly, so only do it once. >From 6aab696419ca3762237461e2be46c96015dac4ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 26 May 2025 12:17:24 +0200 Subject: [PATCH] [

[clang] [clang][NFC] Call Stmt::getBeginLoc() once in DiagnoseForRangeVariable (PR #141472)

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141472 ...Copies. Instead of three times. >From 789064d5997ace0ed145a8d15e1b00452ff33305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 26 May 2025 12:22:51 +0200 Subject: [PATCH] [clang][NFC

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

2025-05-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/141470 ... Iteration. >From 8849adcac5ffb09c72aa0e270891d508f074add3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 26 May 2025 12:21:04 +0200 Subject: [PATCH] [clang][NFC] Move Diags.isIgnor

[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] 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] 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] 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][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] 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] 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] 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 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][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][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] 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-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][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] Initialize global strings via memcpy (PR #140789)

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

[clang] [clang][NFC] Clean up ASTContext.cpp (PR #140847)

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

[clang] [clang][bytecode] Optimize classify() further (PR #140735)

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

[clang] [clang][NFC] Clean up ASTContext.cpp (PR #140847)

2025-05-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140847 Use BuiltinType::{isInteger,isSignedInteger,isUnsignedInteger} instead of doing the comparisons here. >From 8c1a0e2860725a61de4a560b63272baf4cd400b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?=

[clang] [clang][bytecode] Initialize global strings via memcpy (PR #140789)

2025-05-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140789 If we know the char width is 1, we can just copy the data over instead of going through the Pointer API. >From a4209fc8d9e93d5a7e080bd3cfab0d6cef37a102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der

[clang] [clang][bytecode][NFC] Remove Frame.cpp (PR #140750)

2025-05-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140750 The file was basically empty. The actual implementation for function frames of the two interpreter life in their own respective files. >From c6ca3e84103a6c80ea0ecd741a38ba3ce22005ae Mon Sep 17 00:00:00 2001 Fr

[clang] [clang][bytecode] Optimize classify() further (PR #140735)

2025-05-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/140735 >From a1979e88d05ed198700b90c3b5530d451cde9c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 20 May 2025 12:35:30 +0200 Subject: [PATCH] [clang][bytecode] Optimize classify() further

[clang] [clang][bytecode] Optimize classify() further (PR #140735)

2025-05-20 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/140735 Try to do as few checks as possible. Check for builtin types only once, then look at the BuiltinType Kind. For integers, we cache the int and long size, since those are used a lot and the ASTContext::getIntWid

  1   2   3   4   5   6   7   8   9   10   >