[clang] [clang][bytecode] Overrride locs for certain CXXConstructExprs (PR #152185)

2025-08-05 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/152185 Do it only if we will end up skipping the initializer anyway because it's a trivial copy or move constructor. >From 293e92d5f2273d7aedcc0567bda17f46e048ae35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3

[clang] [clang][bytecode] Disable location tracking for implicit field inits (PR #150190)

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

[clang] [clang][bytecode][NFC] Add a c++11 test case (PR #152104)

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

[clang] [clang][bytecode][NFC] Add a c++11 test case (PR #152104)

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

[clang] [clang][bytecode][NFC] Add a c++11 test test (PR #152104)

2025-08-05 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/152104 This test case breaks when ignoring trivial CXXConstructExprs of array types, so make sure we don't do that. >From 3c1e088032fb1ef34fb8b64447b4e00adfa11493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=

[clang] [clang][bytecode] Call CheckLocalLoad in GetLocal (PR #152090)

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

[clang] [clang][bytecode] Call CheckLocalLoad in GetLocal (PR #152090)

2025-08-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/152090 I forgot to call this here as well. It was only used in the EvalEmitter implementation of the function. Also fix a problem where we didn't diagnose out-of-lifetime reads here. >From 1203ec58f331b7a0753be6bbaa

[clang] [clang][bytecode][NFC] Only collect non-null args if we have to (PR #152074)

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

[clang] [clang][bytecode][NFC] Only collect non-null args if we have to (PR #152074)

2025-08-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/152074 >From 3bcb6a3d737dfcfe083286be3d664baf7c254ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 5 Aug 2025 06:25:55 +0200 Subject: [PATCH] [clang][bytecode][NFC] Only collect non-null arg

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-04 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/151821 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Return success for pointers to locals (PR #151980)

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

[clang] [clang][bytecode] Return succeess for pointers to locals (PR #151980)

2025-08-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151980 They aren't valid, but we leave them successful here and CheckLValueConstantExpression will diagnose them later. >From f1d8191ce663a4b4a04334a5bea1e7881f958ab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B

[clang] [clang][bytecode] Disable location tracking for implicit field inits (PR #150190)

2025-08-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/150190 >From 11e636093500994024282cbab138fcd33d2afa03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 09:01:22 +0200 Subject: [PATCH] [clang][bytecode] Disable location tracking for

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-08-04 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: Is there a trick I'm missing? I _can_ do this: ```c++ private int *p = 0; private int *q = fold(reinterpret_cast(0)); ``` But this won't work: ```c++ template void f() {} template void f(0))>(); ``` ```console array.cpp:95:15: er

[clang] [clang][bytecode] Try to load primitive values directly (PR #151833)

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

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

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

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-04 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: @@ -44,12 +44,12 @@ bool Context::isPotentialConstantExpr(State &Parent, const FunctionDecl *FD) { Compiler(*this, *P).compileFunc( FD, const_cast(Func)); - ++EvalID; - // And run it. - if (!Run(Parent, Func)) + i

[clang] [clang][bytecode] Try to load primitive values directly (PR #151833)

2025-08-04 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151833 >From 2be4164de3317ad592d63a849010a5dffdeaff3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 19:50:48 +0200 Subject: [PATCH] [clang][bytecode] Try to load local and global v

[clang] [AST] Use llvm::iterator_range::empty (NFC) (PR #151904)

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

[clang] [clang][bytecode] Try to load primitive values directly (PR #151833)

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

[clang] [clang][bytecode] Try to load local and global variables directly (PR #151833)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151833 >From dbe3f1b3e1774d153dbfe8b7b0a2684162ee570d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 19:50:48 +0200 Subject: [PATCH] [clang][bytecode] Try to load local and global v

[clang] [clang][bytecode] Remove unused includes (PR #151848)

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

[clang] [clang][bytecode] Remove unused includes (PR #151848)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151848 UnsignedOrNone.h from PrimType.h and ASTLambda.h from Function.h. >From 6bcb1d155bff3880e252840af178949fd05bf4ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 3 Aug 2025 08:12:27 +020

[clang] [clang][bytecode] Try to load local and global variables directly (PR #151833)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151833 >From 8ad0af7e8efc3fe1c830a5199642010289a48822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 19:50:48 +0200 Subject: [PATCH] [clang][bytecode] Try to load local and global v

[clang] [clang][bytecode] Try to load local and global variables directly (PR #151833)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151833 >From d0356829a9749ff703577fff1ea8788f09aedf7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 19:50:48 +0200 Subject: [PATCH] [clang][bytecode] Try to load local and global v

[clang] [clang][bytecode][NFC] Code size is always aligned (PR #151824)

2025-08-02 Thread Timm Baeder via cfe-commits
@@ -137,21 +137,21 @@ int32_t ByteCodeEmitter::getOffset(LabelTy Label) { template static void emit(Program &P, std::vector &Code, const T &Val, bool &Success) { + size_t ValPos = Code.size(); size_t Size; if constexpr (std::is_pointer_v) -Size =

[clang] [clang][bytecode] Try to load local and global variables directly (PR #151833)

2025-08-02 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/151833 >From 3f106340a4f861e3c452cd1d7d8df52e7a3ddf38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 19:50:48 +0200 Subject: [PATC

[clang] [clang][bytecode] Try to load local and global variables directly (PR #151833)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151833 Instead of doing a GetPtrLocal + Load or GetPtrGlobal + Load pair, try to load the value directly. >From 3f106340a4f861e3c452cd1d7d8df52e7a3ddf38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= D

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-02 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/151821 >From f021cf0e3bf1880dd31f0477e173a42aaa45d185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 15:51:44 +0200 Subject: [PATC

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-02 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/151821 >From f021cf0e3bf1880dd31f0477e173a42aaa45d185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 15:51:44 +0200 Subject: [PATC

[clang] [clang][bytecode][NFC] Code size is always aligned (PR #151824)

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

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-02 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/151821 >From 95b00396ff44c473d6b3cd31a0dc2443c8badc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 15:51:44 +0200 Subject: [PATC

[clang] [clang][bytecode][NFC] Code size is always aligned (PR #151824)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151824 We don't need to align Code.size(), since we always resize it to aligned values, so Code.size() is always aligned. >From 6e241456b8ca3cd50fe89c42a225e704ccf463d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=2

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

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

[clang] [clang][NFC] Remove leftover comment (PR #151822)

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

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

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

[clang] [clang][bytecode] Fix D3DCOLORtoUBYTE4 hlsl test (PR #151819)

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

[clang] [clang][NFC] Remove leftover comment (PR #151822)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151822 >From d8ca85a184c0fb511fe6483c4c24e48b5b1eb07a >From b83fb14d156db9426c5b15c816d385bbf6165cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 16:12:29 +0200 Subject: [PATCH]

[clang] [clang][bytecode] Use SmallVector for Function::Code (PR #151821)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151821 This way we can use resize_for_overwrite, which is slightly more efficient. >From 95b00396ff44c473d6b3cd31a0dc2443c8badc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 2 Aug 2025 15:

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151088 >From ea405168f1f1fa32eb8db7a4ac7ac6d1381b6814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 25 Jul 2025 15:33:00 +0200 Subject: [PATCH] Always do ItemTypes --- clang/lib/AST/ByteCod

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151088 >From a2f8df23dc8d70af0ee6f775253b96c72879bde1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 25 Jul 2025 15:33:00 +0200 Subject: [PATCH] Always do ItemTypes --- clang/lib/AST/ByteCod

[clang] [clang][bytecode] Fix a crash in codegen (PR #151515)

2025-08-02 Thread Timm Baeder via cfe-commits
tbaederr wrote: Nope, this is in codegen so gets silently ignored. https://github.com/llvm/llvm-project/pull/151515 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][bytecode] Fix D3DCOLORtoUBYTE4 hlsl test (PR #151819)

2025-08-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151819 HLSL is using CK_FloatingToIntegral casts to cast to vectors, which we don't support (neither does the current interpreter). Also fix a crash when trying to promote the HLSL bool, which can't be promoted it se

[clang] [clang][bytecode] Don't call ctor of primitive array elements (PR #151725)

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

[clang] [clang][bytecode] Replace MoveFn With DtorFn + memcpy (PR #151717)

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

[clang] [clang][ExprConst] Remove Loc param (PR #151461)

2025-08-01 Thread Timm Baeder via cfe-commits
@@ -14723,9 +14723,10 @@ void Sema::CheckCompleteVariableDeclaration(VarDecl *var) { type->isIntegralOrEnumerationType()) { // In C++98, in-class initialization for a static data member must // be an integer constant expression. - Sourc

[clang] [clang][bytecode] Don't call ctor of primitive array elements (PR #151725)

2025-08-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151725 We don't do that for single primitive variables, so avoid it for primitive array elements as well. >From 7618f122c34949742f0c19a61705c1f2045f4a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= D

[clang] [clang][bytecode] Replace MoveFn With DtorFn + memcpy (PR #151717)

2025-08-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151717 First, the old MoveFn was rather inefficient, since the dead data cannot ever be accessed anyway. Second, there was a problem where the only reason a block still had a pointer to it (and thus was made into a

[clang] [clang][ExprConst] Call `FastEvaluateAsRValue` in `isCXX11ConstantExpr` (PR #151466)

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

[clang] [clang][ExprConst] Call `FastEvaluateAsRValue` in `isCXX11ConstantExpr` (PR #151466)

2025-08-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151466 >From 63cc1402357f86e04593027ac048ec4dc33c6640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 31 Jul 2025 06:46:51 +0200 Subject: [PATCH] Fast --- clang/lib/AST/ExprConstant.cpp | 33

[clang] [clang][bytecode][NFC] Add a FIXME comment for heap allocations (PR #151700)

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

[clang] [clang][bytecode][NFC] Add a FIXME comment for heap allocations (PR #151700)

2025-08-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151700 None >From 3437a6fe88bb88ac1c46d8454fbc44a5df5b4c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 1 Aug 2025 15:54:58 +0200 Subject: [PATCH] [clang][bytecode][NFC] Add a FIXME comment

[clang] [clang][ExprConst] Remove Loc param (PR #151461)

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

[clang] [clang][ExprConst] Remove Loc param (PR #151461)

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

[clang] [clang][bytecode] Fix a crash in codegen (PR #151515)

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

[clang] [clang][bytecode] Fix a crash in codegen (PR #151515)

2025-07-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151515 getRecord() can return nullptr if any one of the fields does, in this case because the array is too large for us to allocate. >From 017dbd3c73c3db82fbc8d6a21d74a21b7891ee01 Mon Sep 17 00:00:00 2001 From: =?UTF

[clang] [clang[ExprConst] Remove Loc param (PR #151461)

2025-07-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151461 >From d0d45ea7f3faf3a54b430e7e66e8a55305df46b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 31 Jul 2025 08:17:58 +0200 Subject: [PATCH] [clang[ExporConst] Remove Loc param The Loc pa

[clang] [clang][sema] Remove unused local SourceLocation (PR #151455)

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

[clang] [clang][bytecode][NFC] Remove LabelScope (PR #151498)

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

[clang] [clang][bytecode][NFC] Remove LabelScope (PR #151498)

2025-07-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151498 It did almost nothing >From 82af2588fb397189e6aadf4d942dd8436d24b986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 31 Jul 2025 13:08:58 +0200 Subject: [PATCH] [clang][bytecode][NFC] R

[clang] [clang][Sema] Create ConstantExprs in AnalyzeComparison (PR #151464)

2025-07-31 Thread Timm Baeder via cfe-commits
tbaederr wrote: Oof, looks like I mixed up the patches locally when testing and didn't see this one's breakage. https://github.com/llvm/llvm-project/pull/151464 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mai

[clang] [clang][ExprConst] Call `FastEvaluateAsRValue` in `isCXX11ConstantExpr` (PR #151466)

2025-07-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151466 This was one case where we didn't call `FastEvaluateAsRValue` before going through `EvaluateAsRValue`. Also replace the `EvalResult` parameter with an `APValue` one, since `FastEvaluateAsRVaule` only needs tha

[clang] [clang][Sema] Create ConstantExprs in AnalyzeComparison (PR #151464)

2025-07-31 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151464 If the `getIntegerConstantExpr()` calls succeed, we can as well replace the `BinaryOperator` children with `ConstantExpr`s wrapping the previous LHS/RHS. This shows small speedups: https://llvm-compile-time-t

[clang] [clang[ExprConst] Remove Loc param (PR #151461)

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

[clang] [clang][sema] Remove unused local SourceLocation (PR #151455)

2025-07-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151455 getIntegerConstantExpr() doesn't force us to pass one, so don't. >From b17b17be089708f851c8aa2c643b9969a041a064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 31 Jul 2025 07:53:22 +020

[clang] [clang][bytecode] Fix diagnostics for int128 enums (PR #151340)

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

[clang] [clang][bytecode] Clean up {Compiler,Interp}.h (PR #151335)

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

[clang] [clang][bytecode] Fix diagnostics for int128 enums (PR #151340)

2025-07-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151340 CheckEnumValue was not handling PT_IntAP/PT_IntAPS. >From a12ca2ddd3a366afc90dc6798024b3671de3303f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 30 Jul 2025 15:59:10 +0200 Subject: [P

[clang] [clang][bytecode] Clean up {Compiler,Interp}.h (PR #151335)

2025-07-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151335 Remove else after return and remove some unused includes. >From 27052032b55dea7d0e951976b6733a727d54e938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 30 Jul 2025 15:34:08 +0200 Subje

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

2025-07-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151088 >From 2f8cae65a43699892f2769bc09c4b9ed95f1d868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 25 Jul 2025 15:33:00 +0200 Subject: [PATCH] Always do ItemTypes --- clang/lib/AST/ByteCod

[clang] [clang][bytecode] Move Pointer::{Prev, Next} into BlockPointer (PR #151097)

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

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -1071,12 +1074,27 @@ makeTemplateArgumentListInfo(Sema &S, TemplateIdAnnotation &TemplateId) { bool Sema::CheckTypeConstraint(TemplateIdAnnotation *TypeConstr) { TemplateName TN = TypeConstr->Template.get(); - ConceptDecl *CD = cast(TN.getAsTemplateDecl()); + NamedDecl

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -2343,22 +2342,25 @@ TemplateInstantiator::TransformOpenACCRoutineDeclAttr( } ExprResult TemplateInstantiator::transformNonTypeTemplateParmRef( -Decl *AssociatedDecl, const NonTypeTemplateParmDecl *parm, -SourceLocation loc, TemplateArgument arg, UnsignedOrNone Pack

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -396,6 +396,16 @@ SourceLocation CXXPseudoDestructorExpr::getEndLoc() const { return End; } +static bool UnresolvedLookupExprIsVariableOrConceptParameterPack( +UnresolvedSetIterator Begin, UnresolvedSetIterator End) { + if (std::distance(Begin, End) != 1) +return

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -310,6 +310,16 @@ class CollectUnexpandedParameterPacksVisitor return DynamicRecursiveASTVisitor::TraverseLambdaCapture(Lambda, C, Init); } +bool TraverseUnresolvedLookupExpr(UnresolvedLookupExpr *E) override { + if (E->getNumDecls() == 1) { +Nam

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -3341,7 +3359,12 @@ inline TemplateDecl *getAsTypeTemplateDecl(Decl *D) { return TD && (isa(TD) || isa(TD) || isa(TD) || -isa(TD)) +[&]() { + if (TemplateTemplateParmDecl *TTP = --

[clang] [lldb] [Clang] Initial support for P2841 (Variable template and concept template parameters) (PR #150823)

2025-07-29 Thread Timm Baeder via cfe-commits
@@ -6665,7 +6668,8 @@ QualType ASTContext::getAutoTypeInternal( Canon = DeducedType.getCanonicalType(); } else if (TypeConstraintConcept) { bool AnyNonCanonArgs = false; - ConceptDecl *CanonicalConcept = TypeConstraintConcept->getCanonicalDecl(); + Te

[clang] [clang][bytecode] Add Pointer::initializeAllElements() (PR #151151)

2025-07-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151151 To initialize all elements of a primitive array at once. This saves us from creating the InitMap just to destroy it again after all elements have been initialized. >From 1f60aae352ecb169c59bda076475d4e1df4d2a

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

2025-07-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/151088 >From cb6c697d09adab6c616a701ae8d17623be444b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 25 Jul 2025 15:33:00 +0200 Subject: [PATCH] Always do ItemTypes --- clang/lib/AST/ByteCod

[clang] [clang][bytecode] Move Pointer::{Prev, Next} into BlockPointer (PR #151097)

2025-07-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151097 They are only relevant for block pointers. >From 201e20d57f7554135b3152714eb700bffc9c7023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 29 Jul 2025 09:40:14 +0200 Subject: [PATCH] [cl

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-28 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/150164 >From b9655ff6d54475b5697a63571734192c92a6af07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 06:05:21 +0200 Subject: [PAT

[clang] [clang][bytecode] Always track item types in InterpStack (PR #151088)

2025-07-28 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/151088 This has been a long-standing problem, but we didn't use to call the destructors of items on the stack unless we explicitly `pop()` or `discard()` them. When interpretation was interrupted midway-through (bec

[clang] [clang] Forbid reinterpret_cast of function pointers in constexpr. (PR #150557)

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

[clang] [clang][bytecode][NFC] Fix a few clang-tidy complaints (PR #150940)

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

[clang] [clang][bytecode][NFC] Fix a few clang-tidy complaints (PR #150940)

2025-07-28 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/150940 None >From c4e551d1c3f4195f0688dc059f68d490269c7c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 28 Jul 2025 07:11:50 +0200 Subject: [PATCH] [clang][bytecode][NFC] Fix a few clang-ti

[clang] [clang][NFC] Add header comment for OSLog.cpp (PR #148537)

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

[clang] [clang] Forbid reinterpret_cast of function pointers in constexpr. (PR #150557)

2025-07-25 Thread Timm Baeder via cfe-commits
@@ -3,8 +3,8 @@ // RUN: %clang_cc1 -x c -fsyntax-only %s -verify=c -std=c11 -fexperimental-new-constant-interpreter // RUN: %clang_cc1 -x c -fsyntax-only %s -pedantic -verify=c-pedantic -std=c11 -fexperimental-new-constant-interpreter // -// RUN: %clang_cc1 -x c++ -fsyntax-on

[clang] [Analysis] Prevent revisiting block when searching for noreturn vars (PR #150582)

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

[clang] [clang][bytecode] Diagnose subtracting pointers to array elements... (PR #150407)

2025-07-25 Thread Timm Baeder via cfe-commits
tbaederr wrote: This breaks a bunch of libc++ tests in its current form. https://github.com/llvm/llvm-project/pull/150407 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Forbid reinterpret_cast of function pointers in constexpr. (PR #150557)

2025-07-25 Thread Timm Baeder via cfe-commits
@@ -3,8 +3,8 @@ // RUN: %clang_cc1 -x c -fsyntax-only %s -verify=c -std=c11 -fexperimental-new-constant-interpreter // RUN: %clang_cc1 -x c -fsyntax-only %s -pedantic -verify=c-pedantic -std=c11 -fexperimental-new-constant-interpreter // -// RUN: %clang_cc1 -x c++ -fsyntax-on

[clang] [clang][bytecode] Diagnose subtracting pointers to array elements... (PR #150407)

2025-07-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/150407 ... if the elements are in different arrays. >From 5b97525a1317f88a409cd0ab2b8b64cc3885edc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 24 Jul 2025 13:38:10 +0200 Subject: [PATCH] [

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-24 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,9 @@ +// RUN: %clang_cc1 -triple amdgcn -cl-std=clc++ -verify %s + +// expected-no-diagnostics + +#define fold(x) (__builtin_constant_p(x) ? (x) : (x)) +static_assert(nullptr != fold(reinterpret_cast(0))); + +static_assert(nullptr == (private int *)0); + ---

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/150164 >From b9655ff6d54475b5697a63571734192c92a6af07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 06:05:21 +0200 Subject: [PATCH] [clang][ExprConst] Consider integer pointers of

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-23 Thread Timm Baeder via cfe-commits
@@ -27,12 +27,6 @@ template void f(); // CHECK: define weak_odr void @_Z1fIXtl1BLPKi32vv( // MSABI: define {{.*}} @"??$f@$2UB@@PEBH0CA@H0AYAXXZ" template void f(); -#ifndef _WIN32 tbaederr wrote: Well it is the same with this patch, at least during con

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-23 Thread Timm Baeder via cfe-commits
@@ -27,12 +27,6 @@ template void f(); // CHECK: define weak_odr void @_Z1fIXtl1BLPKi32vv( // MSABI: define {{.*}} @"??$f@$2UB@@PEBH0CA@H0AYAXXZ" template void f(); -#ifndef _WIN32 tbaederr wrote: Not sure I understand, with this patch, `template void

[clang] [clang][bytecode] Disable location tracking for implicit field inits (PR #150190)

2025-07-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/150190 >From 95561e476f4629ed770eeafabcb038933005c315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 09:01:22 +0200 Subject: [PATCH] [clang][bytecode] Disable location tracking for

[clang] [clang][bytecode] Disable location tracking for implicit field inits (PR #150190)

2025-07-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/150190 >From 4b8a5e851c434900aef006011847dd07d8096d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 09:01:22 +0200 Subject: [PATCH] [clang][bytecode] Disable location tracking for

[clang] [clang][bytecode] Disable location tracking for implicit field inits (PR #150190)

2025-07-23 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/150190 None >From e1dc0590c19d31cfad3111f3eb4563874ba3bd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 23 Jul 2025 09:01:22 +0200 Subject: [PATCH] [clang][bytecode] Disable location tracki

[clang] [clang][bytecode] Activate primitive fields before initializing them (PR #149963)

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

[clang] [clang][ExprConst] Consider integer pointers of value 0 nullptr (PR #150164)

2025-07-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/150164 When casting a 0 to a pointer type, the IsNullPtr flag was always set to false, leading to weird results like a pointer with value 0 that isn't a null pointer. This caused ```c++ struct B { const int *p;}; te

  1   2   3   4   5   6   7   8   9   10   >