https://github.com/efriedma-quic commented:
In general, it's hard to avoid recursion: an AST is fundamentally a tree, and
the most natural way to walk a tree is recursive, which is why we have issues
in the first place. This usually isn't an issue because people don't write
deeply nested code
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/113470
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/116847
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic edited
https://github.com/llvm/llvm-project/pull/113470
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -8714,6 +8714,21 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {
}
}
+ // zero sized static arrays are not allowed in HIP device functions
+ if (LangOpts.CUDAIsDevice && LangOpts.HIP) {
+if (FunctionDecl *FD = getCurFunctionDecl();
+FD &&
+
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/116847
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,37 @@
+// RUN: split-file %s %t
+// RUN: python %t/gen.py %t/switch-overflow.c %t/tmp.c && %clang_cc1
-emit-llvm %t/tmp.c -o - | FileCheck %t/tmp.c
+
+//--- gen.py
efriedma-quic wrote:
I guess 32000 is small enough that a test won't be that expensive,
https://github.com/efriedma-quic edited
https://github.com/llvm/llvm-project/pull/115395
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic approved this pull request.
Oh, right, we have isInlineViable(), but attributes aren't part of it for...
reasons. (I haven't tried to dig into
https://discourse.llvm.org/t/rfc-avoid-inlining-alwaysinline-functions-when-they-cannot-be-inlined
; I'll believe you
efriedma-quic wrote:
We could maybe look at setting hadError less aggressively in InitListChecker,
for cases where the error is unlikely to impact the overall parse. If a member
has a RecoveryExpr as its initializer, it's probably reasonable to continue
producing error messages.
That said, I
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -std=c++20 -fms-compatibility
-fms-compatibility-version=19.33 -emit-llvm %s -o - -triple=x86_64-windows-msvc
| FileCheck %s
+
+template
+concept C = requires
+{
+{ T::test([](){}) };
+};
+
+template
+struct Widget {};
+
+template
+stru
efriedma-quic wrote:
On my end, still waiting for review comments to be addressed.
https://github.com/llvm/llvm-project/pull/113049
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic edited
https://github.com/llvm/llvm-project/pull/116707
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic commented:
__ARM_FEATURE_* defines are, as far as I know, supposed to be defined in the
ACLE. So there needs to be an issue/PR for the ACLE spec. Once Arm reviews
that, we can merge the corresponding patches here.
https://github.com/llvm/llvm-project/pull/116
efriedma-quic wrote:
If we're going to document that values other than 0 and 1 are "allowed", I
think the documentation needs to explicitly state how values other than 0 and 1
are handled.
https://github.com/llvm/llvm-project/pull/116732
___
cfe-comm
efriedma-quic wrote:
In assembly, you can override the current architecture with a `.arch` directive.
https://github.com/llvm/llvm-project/pull/116707
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
efriedma-quic wrote:
If we're going to treat `/d1initall` as an alias for `-ftrivial-auto-var-init`,
can we just treat `__declspec(no_init_all)` as an alias for
`__attribute__((uninitialized))`?
https://github.com/llvm/llvm-project/pull/116847
___
cf
efriedma-quic wrote:
> Ah, interesting, any objection to not adding the detection macros?
For the feature names, I think we also try to coordinate with Arm to define the
names. (Maybe also in the ACLE? Not sure.) So I don't object to splitting the
patch, but I'm not sure that really helps.
@@ -4619,6 +4619,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl
GD, unsigned BuiltinID,
// Buffer is a void**.
Address Buf = EmitPointerWithAlignment(E->getArg(0));
+if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+ // Call L
@@ -4619,6 +4619,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl
GD, unsigned BuiltinID,
// Buffer is a void**.
Address Buf = EmitPointerWithAlignment(E->getArg(0));
+if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+ // Call L
efriedma-quic wrote:
Do we really need to do this in the frontend? The inliner itself should be
doing safety checks.
https://github.com/llvm/llvm-project/pull/116391
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-b
@@ -8719,6 +8719,18 @@ Attribute used by `clspv`_ (OpenCL-C to Vulkan SPIR-V
compiler) to identify func
}];
}
+def NoTrivialAutoVarInitDocs : Documentation {
+ let Category = DocCatDecl;
+ let Content = [{
+The ``__declspec(no_init_all)`` attribute disables the automatic
i
@@ -4619,6 +4619,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl
GD, unsigned BuiltinID,
// Buffer is a void**.
Address Buf = EmitPointerWithAlignment(E->getArg(0));
+if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+ // Call L
efriedma-quic wrote:
Accessing intrinsics using `asm` is not a documented feature; it's an
unintended result of the name clash between functions and LLVM intrinsics. And
I'm a little hesitant about making it a real feature; there are other calling
convention issues, and IR changes can very ea
efriedma-quic wrote:
I see. I agree we don't need to add non-__declspec syntax here. We're adding
this for MSVC compat, so we need to match MSVC semantics anyway, so there's not
really any other way to implement this. We can always adjust the code later if
we end up implementing an overlapp
efriedma-quic wrote:
We basically have the following options here:
1. Use C++23 semantics in C++23 mode, with a warning.
2. Use C++2c semantics in C++23 mode, with a warning.
3. Reject the construct with a hard error in C++23 mode.
(2) and (3) are basically removing the pack expansion parse fro
@@ -58,8 +58,9 @@ void b(T[] ...);
template
void c(T ... []); // expected-error {{expected expression}} \
efriedma-quic wrote:
To be clear, it's not a "pack-index-specifier" even in C++26: it doesn't match
the grammar because there's no constant-expression,
https://github.com/efriedma-quic updated
https://github.com/llvm/llvm-project/pull/113506
>From 7f259d75f18422fff05ac11526b5a0a1b73312fd Mon Sep 17 00:00:00 2001
From: Eli Friedman
Date: Wed, 23 Oct 2024 16:12:27 -0700
Subject: [PATCH] [clang codegen] Add CreateRuntimeFunction overload that tak
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/113830
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -8732,6 +8732,18 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {
}
}
+ // zero sized static arrays are not allowed in HIP device functions
+ if (getLangOpts().HIP &&
+ DeclAttrsMatchCUDAMode(getLangOpts(), getCurFunctionDecl())) {
@@ -8732,6 +8732,18 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {
}
}
+ // zero sized static arrays are not allowed in HIP device functions
+ if (getLangOpts().HIP &&
+ DeclAttrsMatchCUDAMode(getLangOpts(), getCurFunctionDecl())) {
https://github.com/efriedma-quic closed
https://github.com/llvm/llvm-project/pull/113506
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
The original patch just changed the calling convention for structs explicitly
marked trivial_abi. @rnk wanted to instead introduce the notion of a
"trivial-abi-aware" type, i.e. a type that is either trivial_abi, or contains a
trivial-abi-aware field/base. The patch was
@@ -8732,6 +8732,18 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {
}
}
+ // zero sized static arrays are not allowed in HIP device functions
+ if (getLangOpts().HIP &&
+ DeclAttrsMatchCUDAMode(getLangOpts(), getCurFunctionDecl())) {
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/117752
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic requested changes to this pull request.
Sorry, just spotted an issue: I don't think you're emitting the operations in
the correct order. You need to emit both arguments before you read the
register or load the value.
If you have some non-trivial operation like
@@ -18197,7 +18197,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned
BuiltinID,
CallOps.push_back(Ops[i]);
llvm::Function *F = CGM.getIntrinsic(ID);
Value *Call = Builder.CreateCall(F, CallOps);
-return Builder.CreateAlignedStore(Call, Ops[0], MaybeAli
efriedma-quic wrote:
In the example in
https://github.com/llvm/llvm-project/pull/107581#issuecomment-2343651051 ,
there are four relevant calls to GetOrCreateLLVMFunction: one for each function
with IsInDefinition false, and one for each function with IsInDefinition true.
The last of those c
@@ -18197,7 +18197,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned
BuiltinID,
CallOps.push_back(Ops[i]);
llvm::Function *F = CGM.getIntrinsic(ID);
Value *Call = Builder.CreateCall(F, CallOps);
-return Builder.CreateAlignedStore(Call, Ops[0], MaybeAli
efriedma-quic wrote:
We already have handling in the backend; see llvm/lib/CodeGen/ExpandMemCmp.cpp .
https://github.com/llvm/llvm-project/pull/118178
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -std=c++20 -fms-compatibility
-fms-compatibility-version=19.33 -emit-llvm %s -o - -triple=x86_64-windows-msvc
| FileCheck %s
+
+template
+concept C = requires
+{
+{ T::test([](){}) };
+};
+
+template
+struct Widget {};
+
+template
+stru
@@ -4063,6 +4063,11 @@ defm threadsafe_statics :
BoolFOption<"threadsafe-statics",
NegFlag,
PosFlag>;
+defm tls_guards : BoolFOption<"tls-guards",
+ LangOpts<"TlsGuards">, DefaultTrue,
efriedma-quic wrote:
My understanding is that if a tls variable is def
@@ -58,8 +58,9 @@ void b(T[] ...);
template
void c(T ... []); // expected-error {{expected expression}} \
efriedma-quic wrote:
Consider:
```
templatevoid c(T ... []);
```
Earlier versions of clang consider this valid: it's a function that takes
pointers to
efriedma-quic wrote:
> I thought that this fix will automatically pull from main to other branch at
> some tiime
main is the basis for all future release branches (20.x and later), but we
don't automatically pull fixes into release branches that are already created
(19.x).
See https://llvm.o
@@ -750,6 +750,19 @@ void InitListChecker::FillInEmptyInitForField(unsigned
Init, FieldDecl *Field,
if (Field->hasInClassInitializer()) {
if (VerifyOnly)
return;
+
+ // We do not want to aggressively set the hadError flag and cutoff
+ // parsing. Tr
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/117645
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
In the future, when you revert a commit, please put a note in the commit
message explaining why you're reverting, so other people can understand what
you're doing.
https://github.com/llvm/llvm-project/pull/117448
___
cfe-commits
efriedma-quic wrote:
Is there discussion somewhere of why you need a command-line flag?
ABI-modifying flags tend to be dangerous to work with. It's hard to ensure that
all code is compiled with the same flags, and if the user messes up, the
compiler silently generates broken code.
https://gi
@@ -4619,6 +4619,31 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl
GD, unsigned BuiltinID,
// Buffer is a void**.
Address Buf = EmitPointerWithAlignment(E->getArg(0));
+if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+ // Call L
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/117752
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
llvm.trunc is currently marked IntrNoMem in Intrinsics.td; you'll need to
update that if you want it to read/modify FP state. (Trying to override the
default by sticking attributes on top doesn't work properly, as far as I know.)
https://github.com/llvm/llvm-project/pull/
efriedma-quic wrote:
Given the mfloat8 scalar type exists, why does mfloat8x16 need to be a
BuiltinType, as opposed to a VectorType?
https://github.com/llvm/llvm-project/pull/119031
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists
efriedma-quic wrote:
Is there a downside if we just recommend people
`__attribute__((riscv_vls_cc(MY_LIBRARY_VLEN)))`, then put
`-DMY_LIBRARY_VLEN=128` on the command-line? It's about the same complexity as
-mriscv-abi-vlen, and it's much more obvious that what you're doing is fragile.
https
efriedma-quic wrote:
> I think this change could be made a lot smaller by doing a clean up first,
> bringing the BareMetal driver closer to other drivers, before attempting to
> merge the RISCVToolChain driver into it.
Could you describe in a bit more detail which bits you think need to be cle
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/119563
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
@DeinAlptraum any idea why the Python tests are failing?
https://github.com/llvm/llvm-project/pull/120494
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
I think the relevant code that prevents visiting template instantiations is
CursorVisitor::VisitClassTemplateSpecializationDecl. It intentionally skips
implicit template instantiations, I guess because of the origin of the API,
which was focused around code written by the
https://github.com/efriedma-quic updated
https://github.com/llvm/llvm-project/pull/120494
>From 13a9c0b88afae7a5f48a66e86357f7284fdace95 Mon Sep 17 00:00:00 2001
From: Eli Friedman
Date: Tue, 17 Dec 2024 15:25:00 -0800
Subject: [PATCH] [libclang/python] Add python bindings for PrintingPolicy
T
https://github.com/efriedma-quic closed
https://github.com/llvm/llvm-project/pull/120483
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -14585,11 +14585,18 @@ void Sema::CheckAddressOfPackedMember(Expr *rhs) {
_2, _3, _4));
}
+static ExprResult UsualUnaryConversionsNoPromoteInt(Sema &S, Expr *E) {
+ // Don't promote integer types
+ if (QualType Ty = E->getType();
S.getASTContext().is
efriedma-quic wrote:
I really don't see why we'd want to implement the optimization this way; can't
we just add an instcombine for calls to `llvm.aarch64.sme.in.streaming.mode`?
https://github.com/llvm/llvm-project/pull/121917
___
cfe-commits mailing
efriedma-quic wrote:
Sorry I didn't get around to re-reviewing #122198 earlier... it looks like this
is the with lvalue-to-rvalue conversions I mentioned on the review. You do not
want to look through lvalue-to-rvalue conversions; the StructFieldAccess
visitor should bail out if it sees one.
@@ -1984,6 +1984,15 @@ llvm::Constant
*ConstantEmitter::emitForMemory(CodeGenModule &CGM,
return Res;
}
+ // In HLSL bool vectors are stored in memory as a vector of i32
+ if (destType->isExtVectorBoolType() && CGM.getContext().getLangOpts().HLSL) {
+llvm::Type *b
@@ -2016,8 +2016,9 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const
{
case Type::Vector: {
const auto *VT = cast(T);
TypeInfo EltInfo = getTypeInfo(VT->getElementType());
-Width = VT->isExtVectorBoolType() ? VT->getNumElements()
-
@@ -146,8 +146,13 @@ let Attributes = [Const, NoThrow,
RequiredVectorWidth<256>], Features = "avx" in
// current formulation is based on what was easiest to recognize from the
// pre-TableGen version.
-let Features = "mmx", Attributes = [NoThrow, Const] in {
- def _mm_prefet
efriedma-quic wrote:
Do you anticipate the clang driver ever adding the libclosure runtime to the
link line automatically? If we do, would this flag control the behavior of
that?
https://github.com/llvm/llvm-project/pull/125384
___
cfe-commits maili
efriedma-quic wrote:
I thought the Windows linker actually can handle statically linking dllimported
symbols this (maybe with a warning?).
The other options you mention (`-static-libgcc` etc.) affect the link line; it
looks like this patch doesn't change the way linking works? Is that expecte
@@ -1596,12 +1596,14 @@ QualType Sema::BuildQualifiedType(QualType T,
SourceLocation Loc,
QualType ProblemTy;
if (T->isAnyPointerType() || T->isReferenceType() ||
-T->isMemberPointerType()) {
+T->isMemberPointerType() || T->isArrayType()) {
Qual
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/115099
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma-quic wrote:
My expectation was that this would affect the tests from #125298, because the
MemberExpr there is a child of an LValueToRValue conversion. I could be
missing something, though?
https://github.com/llvm/llvm-project/pull/125571
__
@@ -2225,9 +2221,10 @@ _mm_storer_ps(float *__p, __m128 __a)
///be generated. \n
///_MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction
will
///be generated.
-#define _mm_prefetch(a, sel) (__builtin_prefetch((const void *)(a), \
-
@@ -1593,34 +1593,31 @@ QualType Sema::BuildQualifiedType(QualType T,
SourceLocation Loc,
// object or incomplete types shall not be restrict-qualified."
if (Qs.hasRestrict()) {
unsigned DiagID = 0;
-QualType ProblemTy;
-
-if (T->isAnyPointerType() || T->isRefe
@@ -0,0 +1,20 @@
+// RUN: %clang_cc1 -std=c2y -fsyntax-only -verify -pedantic %s
+
+typedef int (*T1)[2];
+restrict T1 t1;
+static_assert(_Generic(typeof (t1), int (*restrict)[2] : 1, default : 0));
+
+typedef int *T2[2];
+restrict T2 t2;
+static_assert(_Generic(typeof (t2), int *
@@ -82,7 +82,7 @@ define void @test_store(ptr %p) {
@G = external global ptr
define i8 @test_store_capture(ptr %p) {
-; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind
willreturn memory(readwrite, argmem: read, inaccessiblemem: none)
+; FNATTRS: Functio
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -loader-replaceable-function=override_me -emit-llvm
-std=c11 -o - %s | FileCheck %s
+
+// CHECK: define dso_local void @override_me() #0
+void override_me() {}
+
+// CHECK: define dso_local void @dont_override_me() #1
+void dont_override_me()
@@ -4661,3 +4661,110 @@ AsmPrinter::getCodeViewJumpTableInfo(int JTI, const
MachineInstr *BranchInstr,
return std::make_tuple(Base, 0, BranchLabel,
codeview::JumpTableEntrySize::Int32);
}
+
+void AsmPrinter::emitCOFFReplaceableFunctionData(Module &M)
@@ -4661,3 +4661,110 @@ AsmPrinter::getCodeViewJumpTableInfo(int JTI, const
MachineInstr *BranchInstr,
return std::make_tuple(Base, 0, BranchLabel,
codeview::JumpTableEntrySize::Int32);
}
+
+void AsmPrinter::emitCOFFReplaceableFunctionData(Module &M)
@@ -561,6 +564,16 @@ class CodeGenOptions : public CodeGenOptionsBase {
/// Reset all of the options that are not considered when building a
/// module.
void resetNonModularOptions(StringRef ModuleFormat);
+
+ // Is the given function name one of the functions that can b
https://github.com/efriedma-quic approved this pull request.
https://github.com/llvm/llvm-project/pull/125077
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -672,13 +703,15 @@ bool llvm::inferNonMandatoryLibFuncAttrs(Function &F,
Changed |= setDoesNotThrow(F);
Changed |= setDoesNotCapture(F, 0);
Changed |= setOnlyReadsMemory(F, 0);
+Changed |= setOnlyAccessesErrnoMemory(F);
efriedma-quic wrote:
@@ -1596,12 +1596,14 @@ QualType Sema::BuildQualifiedType(QualType T,
SourceLocation Loc,
QualType ProblemTy;
if (T->isAnyPointerType() || T->isReferenceType() ||
-T->isMemberPointerType()) {
+T->isMemberPointerType() || T->isArrayType()) {
---
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/125571
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/efriedma-quic commented:
Please add HelpText for the new option. Maybe mention in that text that it
currently doesn't affect linking.
Please add a release note.
Otherwise looks fine.
https://github.com/llvm/llvm-project/pull/125384
__
efriedma-quic wrote:
What else even uses the level? __builtin_object_size codegen? Can you add a
DocBrief to the flag explaining when you'd want to use it?
https://github.com/llvm/llvm-project/pull/126163
___
cfe-commits mailing list
cfe-commits@lis
https://github.com/efriedma-quic requested changes to this pull request.
Oh, just thought of one more thing: we probably want a c23_compat warning for
this (assuming the language is new in c23).
https://github.com/llvm/llvm-project/pull/120896
___
cfe
efriedma-quic wrote:
If you wanted to do things "properly", you'd probably define `__interrupt` and
`__cregister` as attributes in clang/include/clang/Basic/Attr.td . But at
first glance, using macros to ignore `__interrupt` and `__cregister` behaves
basically correctly, if you're not actuall
@@ -9111,3 +9118,50 @@ def wasm_opt : Flag<["--"], "wasm-opt">,
Group,
HelpText<"Enable the wasm-opt optimizer (default)">,
MarshallingInfoNegativeFlag>;
+
+
+
+//===--===//
+// cl2000 Options
+//===-
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/120896
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -82,7 +82,7 @@ define void @test_store(ptr %p) {
@G = external global ptr
define i8 @test_store_capture(ptr %p) {
-; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind
willreturn memory(readwrite, argmem: read, inaccessiblemem: none)
+; FNATTRS: Functio
https://github.com/efriedma-quic commented:
If `CXString createRef(StringRef)` is essentially equivalent to `CXString
createDup(StringRef)`, should we just get rid of `CXString
createRef(StringRef)`?
https://github.com/llvm/llvm-project/pull/125020
_
@@ -2563,9 +2563,15 @@ EmitAsmStores(CodeGenFunction &CGF, const AsmStmt &S,
if ((i < ResultRegIsFlagReg.size()) && ResultRegIsFlagReg[i]) {
// Target must guarantee the Value `Tmp` here is lowered to a boolean
// value.
- llvm::Constant *Two = llvm::Consta
@@ -1583,7 +1583,7 @@ static void printConstant(const Constant *COp, unsigned
BitWidth,
bool IsInteger = EltTy->isIntegerTy();
bool IsFP = EltTy->isHalfTy() || EltTy->isFloatTy() || EltTy->isDoubleTy();
unsigned EltBits = EltTy->getPrimitiveSizeInBits();
-unsig
https://github.com/efriedma-quic edited
https://github.com/llvm/llvm-project/pull/126481
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -364,13 +364,13 @@ bool ConstantAggregateBuilder::split(size_t Index,
CharUnits Hint) {
// FIXME: If possible, split into two ConstantDataSequentials at Hint.
CharUnits ElemSize = getSize(CDS->getElementType());
replace(Elems, Index, Index + 1,
-llvm
@@ -644,7 +644,7 @@ class ConstantDataSequential : public ConstantData {
Type *getElementType() const;
/// Return the number of elements in the array or vector.
- unsigned getNumElements() const;
+ uint64_t getNumElements() const;
efriedma-quic wrote:
D
https://github.com/efriedma-quic commented:
Did you test that the result actually has the correct contents, in addition to
the correct size? It looks like it might still wrap...
https://github.com/llvm/llvm-project/pull/126481
___
cfe-commits mailing
@@ -1593,35 +1593,38 @@ QualType Sema::BuildQualifiedType(QualType T,
SourceLocation Loc,
// object or incomplete types shall not be restrict-qualified."
if (Qs.hasRestrict()) {
unsigned DiagID = 0;
-QualType ProblemTy;
-
-if (T->isAnyPointerType() || T->isRefe
efriedma-quic wrote:
The public libclang interface needs to be stable, yes... but in this context,
that's just the interfaces declared in clang/include/clang-c/CXString.h. We can
do whatever we want with the internal interface in
clang/tools/libclang/CXString.h.
https://github.com/llvm/llvm-p
@@ -146,8 +146,13 @@ let Attributes = [Const, NoThrow,
RequiredVectorWidth<256>], Features = "avx" in
// current formulation is based on what was easiest to recognize from the
// pre-TableGen version.
-let Features = "mmx", Attributes = [NoThrow, Const] in {
- def _mm_prefet
https://github.com/efriedma-quic approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/115099
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
1301 - 1400 of 1826 matches
Mail list logo