rnk wrote:
I attempted to repro on my macbook, but it doesn't reproduce. This test doesn't
seem high value, and I thin kthe right next step is to disable it to green the
bots before debugging it.
https://github.com/llvm/llvm-project/pull/134196
___
c
rnk wrote:
Are the `CodeGenTest.TestNonAlterTest` failures still an issue? I don't see
that failure on any bots. I haven't gotten any reports.
https://github.com/llvm/llvm-project/pull/134196
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
htt
https://github.com/rnk created https://github.com/llvm/llvm-project/pull/138360
This reverts commit 83ff9d4a34b1e579dd809759d13b70b8837f0cde.
Don't change the builtin signature of _mm_prefetch this time.
>From 7da648bdd03a2fce7ab214f0425efb3a1ec1f4fe Mon Sep 17 00:00:00 2001
From: Reid Kleckne
https://github.com/rnk approved this pull request.
https://github.com/llvm/llvm-project/pull/138251
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
rnk wrote:
> follow what we did for _m_prefetchw, but it seems the same idea was tried
> there but that was also reverted for what seems to be the same exact problem.
> See https://github.com/llvm/llvm-project/pull/115099 and revert
> [here](https://github.com/llvm/llvm-project/commit/83ff9d4a
@@ -138,6 +142,12 @@ let Attributes = [Const, NoThrow,
RequiredVectorWidth<256>], Features = "avx" in
}
}
+// PRFCHW
+let Features = "prfchw", Header = "x86intrin.h", Attributes = [NoThrow, Const]
in {
+ def _m_prefetch : X86LibBuiltin<"void(void *)">;
rn
https://github.com/rnk approved this pull request.
Thanks, looks good to me!
I wanted to add llvm-cxxfilt to the test to confirm these all demnagle to
something readable, but I see it doesn't work on Microsoft symbols today, which
is unfortunate. The code I want is on github in @nico's
https:
https://github.com/rnk approved this pull request.
Thanks, I think this is a good direction.
https://github.com/llvm/llvm-project/pull/128222
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-co
https://github.com/rnk approved this pull request.
https://github.com/llvm/llvm-project/pull/115052
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
rnk wrote:
If you take the two PRs together, we're going to implement the indirection
logic at both the frontend and backend level. If we do it in the backend, I
think it's technically necessary to do it in the frontend, but it is consistent
with how we handle all other types. I'd like to see
@@ -6519,6 +6519,13 @@ def warn_signed_bitfield_enum_conversion : Warning<
InGroup, DefaultIgnore;
def note_change_bitfield_sign : Note<
"consider making the bit-field type %select{unsigned|signed}0">;
+def warn_ms_bitfield_mismatched_storage_packing : Warning<
+ "bit-fiel
https://github.com/rnk approved this pull request.
Thanks! I approved it.
https://github.com/llvm/llvm-project/pull/126240
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk edited https://github.com/llvm/llvm-project/pull/127653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk approved this pull request.
I think correctness comes first, so this prioritization makes sense.
https://github.com/llvm/llvm-project/pull/127653
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-
@@ -855,6 +855,16 @@ void CodeGenFunction::EmitCoroutineBody(const
CoroutineBodyStmt &S) {
// Create parameter copies. We do it before creating a promise, since an
// evolution of coroutine TS may allow promise constructor to observe
// parameter copies.
+for (
@@ -190,3 +210,38 @@ method
some_class::good_coroutine_calls_custom_constructor(float) {
// CHECK: invoke void
@_ZNSt16coroutine_traitsIJ6methodR10some_classfEE12promise_typeC1ES2_f(ptr
{{[^,]*}} %__promise, ptr noundef nonnull align 1 dereferenceable(1) %{{.+}},
float
c
https://github.com/rnk approved this pull request.
Thanks, I spent a while thinking if this was correct, and then convincing
myself that we ignore the relevant calling conventions on the appropriate
platforms (we ignore `__fastcall` on x64 and ignore `__vectorcall` on Win ARM).
https://github.
@@ -4769,31 +4769,32 @@ ExprResult Sema::CheckOSLogFormatStringArg(Expr *Arg) {
/// Check that the user is calling the appropriate va_start builtin for the
/// target and calling convention.
static bool checkVAStartABI(Sema &S, unsigned BuiltinID, Expr *Fn) {
- const llvm::Tri
rnk wrote:
This is an observable behavior change, so it should have a test. There's a test
for this header at clang/test/Headers/ms-intrins.cpp that you can extend. You
probably need to add a new RUN line that adds `-mrtm` or some other
micro-architectural feature so that rtmintrin.h declares
https://github.com/rnk approved this pull request.
Thanks, I'm happy with this patch.
https://github.com/llvm/llvm-project/pull/124834
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/126952
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk commented:
In the issue (#127499) you pointed out that this issue applies to the MSVC ABI
where all parameters are destroyed in the callee. Is it reasonable to construct
the analogous test case in that environment? I tried to do this locally, but
can't for unrelated buil
rnk wrote:
Re: sroa/mem2reg, that's a valid concern with Hans's intrinsic approach.
> So it's not really a question of "improving" the existing algorithm; we need
> markers in the IR, like coro_outside_frame, and the algorithm should be based
> on that.
To check my understanding, by explicit
https://github.com/rnk created https://github.com/llvm/llvm-project/pull/128592
cvise reimplements creduce in Python and bundles clang-delta and other tools.
In my experience, it is generally a more robust reduction tool that is better
maintained. I renamed the script to make it tool-neutral, w
rnk wrote:
Thanks for the updates, I think this is almost done.
@zmodem , this will probably have some impact on Chrome code size and will
probably churn many crash stack traces. I think it's safe to rely on all the
existing automated testing, but this is a high-risk change to keep in mind if
https://github.com/rnk edited https://github.com/llvm/llvm-project/pull/126240
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2657,7 +2657,10 @@ class VFTableBuilder {
MethodVFTableLocation Loc(MI.VBTableIndex, WhichVFPtr.getVBaseWithVPtr(),
WhichVFPtr.NonVirtualOffset, MI.VFTableIndex);
if (const CXXDestructorDecl *DD = dyn_cast(MD)) {
-MethodVF
@@ -575,6 +576,12 @@ class CGCXXABI {
QualType ElementType, llvm::Value *&NumElements,
llvm::Value *&AllocPtr, CharUnits &CookieSize);
+ /// Reads the array cookie associated with the given pointer,
+ /// that sho
@@ -7919,3 +7919,38 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule
*NewBuilder) {
NewBuilder->ABI->MangleCtx = std::move(ABI->MangleCtx);
}
+
+bool CodeGenModule::classNeedsVectorDestructor(const CXXRecordDecl *RD) {
+ CXXDestructorDecl *Dtor = RD->getDestruct
@@ -7919,3 +7919,38 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule
*NewBuilder) {
NewBuilder->ABI->MangleCtx = std::move(ABI->MangleCtx);
}
+
+bool CodeGenModule::classNeedsVectorDestructor(const CXXRecordDecl *RD) {
+ CXXDestructorDecl *Dtor = RD->getDestruct
https://github.com/rnk commented:
Hm, these comments didn't post. They may be stale. I will post them and revisit
them.
https://github.com/llvm/llvm-project/pull/126240
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi
https://github.com/rnk commented:
I resolved two conversations, but there are two actionable comments.
https://github.com/llvm/llvm-project/pull/126240
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listi
https://github.com/rnk closed https://github.com/llvm/llvm-project/pull/128592
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk created https://github.com/llvm/llvm-project/pull/134195
This reapplies 5ffd9bdb50b57 (#133545) with fixes.
The BUILD_SHARED_LIBS=ON build was fixed by adding missing LLVM
dependencies to the InterpTests binary in
unittests/AST/ByteCode/CMakeLists.txt .
>From fe6604dc283
Markus =?utf-8?q?Gschoßmann?= ,
Markus =?utf-8?q?Gschoßmann?=
Message-ID:
In-Reply-To:
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm
-debug-info-kind=limited %s -o - | FileCheck %s
rnk wrote:
Thanks, I looked at the files, and
https://github.com/rnk created https://github.com/llvm/llvm-project/pull/133545
Pass all the dependencies into add_clang_unittest. This is consistent with how
it is done for LLDB. I borrowed the same named argument list structure from
add_lldb_unittest. This is a necessary step towards consolid
https://github.com/rnk updated https://github.com/llvm/llvm-project/pull/133545
>From e662d8d9483fdf82030ddec6969bc89ae2404060 Mon Sep 17 00:00:00 2001
From: Reid Kleckner
Date: Fri, 28 Mar 2025 16:49:09 -0700
Subject: [PATCH 1/2] [cmake] Refactor clang unittest cmake
Pass all the dependencies
https://github.com/rnk created https://github.com/llvm/llvm-project/pull/134196
This reduces the size of the clang/unittests build directory by 64% and my
overall build dir size by 5%. Static linking is the real driving factor here,
but even if the default build configuration used shared librar
@@ -3897,6 +3897,13 @@ void CodeGenFunction::EmitFunctionEpilog(const
CGFunctionInfo &FI,
return;
}
+ // If there is no valid insert point, we won't emit a return.
+ // The insert point could be null if we have already emitted a return
+ // (e.g. if musttail)
+ if (
@@ -0,0 +1,115 @@
+//===--- RunOnNewStack.cpp - Crash Recovery
---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
rnk wrote:
We have internal reports of incorrect mangling substitutions after updating to
537b6541e8067d7ef7aa38791989fca6303b7fd from
799e9053641a6478d3144866a97737b37b87c260, and this change seems like the likely
culprit because it's touching the Itanium mangling code. We'll see if that can
@@ -138,6 +138,12 @@ let Attributes = [Const, NoThrow,
RequiredVectorWidth<256>], Features = "avx" in
}
}
+// PRFCHW
+let Features = "prfchw", Header = "intrin.h", Attributes = [NoThrow, Const] in
{
rnk wrote:
Looks like I actually had a pending change to
https://github.com/rnk updated https://github.com/llvm/llvm-project/pull/138360
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-serif,
https://github.com/rnk updated https://github.com/llvm/llvm-project/pull/138360
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-serif,
https://github.com/rnk closed https://github.com/llvm/llvm-project/pull/138613
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -304,7 +304,7 @@ getCodeModel(const CodeGenOptions &CodeGenOpts) {
.Case("kernel", llvm::CodeModel::Kernel)
.Case("medium", llvm::CodeModel::Medium)
.Case("large", llvm::CodeModel::Large)
-
rnk wrote:
Sorry to hear about the issue. I think the way this is supposed to work is that
the clang frontend target ABIInfo is supposed to carefully construct struct
types that cause the backend to pass the C struct type correctly in registers
and memory. See for example clang/lib/CodeGen/Tar
@@ -1825,6 +1825,11 @@ class Sema final : public SemaBase {
/// Set of no-builtin functions listed by \#pragma function.
llvm::SmallSetVector MSFunctionNoBuiltins;
+ /// Map of BuiltinIDs to source locations that have #pragma intrinsic calls
+ /// that refer to them.
+
https://github.com/rnk commented:
Thanks!
https://github.com/llvm/llvm-project/pull/138205
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk edited https://github.com/llvm/llvm-project/pull/138205
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk edited https://github.com/llvm/llvm-project/pull/139614
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -710,4 +710,17 @@ void AnnotateIgnoreWritesEnd(const char *file, int line);
#define LLVM_PREFERRED_TYPE(T)
#endif
+/// \macro LLVM_VIRTUAL_ANCHOR_FUNCTION
+/// This macro is used to adhere to LLVM's policy that each class with a vtable
+/// must have at least one out-of-lin
https://github.com/rnk commented:
I thought we'd have more anchors, honestly. Maybe these are just the overriding
ones.
https://github.com/llvm/llvm-project/pull/139614
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi
rnk wrote:
> Or we think no one else does this anchor business, and in that case... why
> are we doing it?
Anchoring debug information out of a header and into a .cpp file can be a
powerful optimization. I added a key method to Sema in
586f65d31f32ca6bc8cfdb8a4f61bee5057bf6c8 and it resulted
https://github.com/rnk approved this pull request.
This looks good, but I'd give it another day to give other reviewers an
opportunity to comment.
https://github.com/llvm/llvm-project/pull/139614
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://github.com/rnk approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/138562
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -6009,6 +6009,8 @@ def note_not_found_by_two_phase_lookup : Note<"%0 should
be declared prior to th
def err_undeclared_use : Error<"use of undeclared %0">;
def warn_deprecated : Warning<"%0 is deprecated">,
InGroup;
+def warn_deprecated_switch_case : Warning<"%0 is depr
rnk wrote:
(This is mostly written wearing my "Googler" hat, not the clang area team lead
hat)
There's been a lot of discussion of what the exact use case is. I think it's
helpful to share the context that Google essentially uses Clang header modules
to wrap generated proto headers, and this
rnk wrote:
> I think silencing the warning is better than suggesting a default case, which
> may not be considered good practice.
I'm not sure, I think our perspectives as compiler people might be a bit off
base. We're always forming closed algebraic sum types, like variants, AST
nodes, that
https://github.com/rnk edited https://github.com/llvm/llvm-project/pull/138562
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/rnk commented:
I'm OK with this, but I feel like this is creating scope creep. Now we have a
special Wdeprecated-declarations carveouts for switches, but if you unpack the
switch into if / else chain comparisons, you get deprecation warnings. Should
we disable deprecation wa
@@ -6767,6 +6767,9 @@ class Sema final : public SemaBase {
};
std::optional DelayedDefaultInitializationContext;
+/// Whether evaluating an expression for a switch case label.
rnk wrote:
supernit: pack it with the contextual bools above, for both
https://github.com/rnk approved this pull request.
Nice, looks good, thanks for implementing this!
https://github.com/llvm/llvm-project/pull/138205
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/
1501 - 1563 of 1563 matches
Mail list logo