https://github.com/andykaylor commented:
This looks mostly reasonable to me, but I'd like to have feedback from @xlauko.
It looks like it would be NFC though. Are the new tests verifying anything that
didn't work before this change?
https://github.com/llvm/llvm-project/pull/14
__
@@ -16,6 +16,7 @@
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Types.h"
#include "mlir/Interfaces/DataLayoutInterfaces.h"
+#include "clang/CIR/Dialect/IR/CIRTypes.h"
andykaylor wrote:
Isn't this including the current file?
https://github.com/llvm/
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/14
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/142205
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -14,6 +14,105 @@
namespace clang::CIRGen {
+/// Record with information about how a bitfield should be accessed. This is
+/// very similar to what LLVM codegen does, once CIR evolves it's possible we
+/// can use a more higher level representation.
+///
+/// Often we lay o
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/142165
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/142214
This change adds extra processing of global variable definitions to correctly
set the dso_local and comdat attributes.
>From f23b194d46956bd0af34413fa4f4919ea610e643 Mon Sep 17 00:00:00 2001
From: Andy Kaylo
andykaylor wrote:
@bcardosolopes, I have some general concerns about the way that we're
representing bitfields and bitfield accesses. It seems fundamentally
inconsistent with the way we represent unions. For example:
```
union U {
char a;
int b;
long c;
};
```
becomes
`!cir.record ->
!c
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -172,6 +195,32 @@ CIRRecordLowering::CIRRecordLowering(CIRGenTypes
&cirGenTypes,
zeroInitializable(true), zeroInitializableAsBase(true), packed(packed),
padded(false) {}
+void CIRRecordLowering::setBitFieldInfo(const FieldDecl *fd,
+
@@ -14,6 +14,105 @@
namespace clang::CIRGen {
+/// Record with information about how a bitfield should be accessed. This is
+/// very similar to what LLVM codegen does, once CIR evolves it's possible we
+/// can use a more higher level representation.
+///
+/// Often we lay o
@@ -0,0 +1,79 @@
+// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-linux-gnu -fclangir
-emit-cir %s -o %t.cir
+// RUN: FileCheck --input-file=%t.cir %s --check-prefix=CIR
+// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-linux-gnu -fclangir
-emit-llvm %s -o %t-cir.ll
+//
@@ -14,6 +14,105 @@
namespace clang::CIRGen {
+/// Record with information about how a bitfield should be accessed. This is
+/// very similar to what LLVM codegen does, once CIR evolves it's possible we
+/// can use a more higher level representation.
+///
+/// Often we lay o
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
@@ -223,21 +272,114 @@ void CIRRecordLowering::fillOutputFields() {
fieldTypes.size() - 1;
// A field without storage must be a bitfield.
assert(!cir::MissingFeatures::bitfields());
+ if (!member.data)
+setBitFieldInfo(member.fieldDecl, memb
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/141973
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/142205
This enables us to compile C++ code with nested structures. The necessary
support for this was already in place, but we were hitting an NYI error in a
place where the implementation only needed to check for
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/141973
>From 70aa8d668cf610eb7d2486b60112591a19d3db89 Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Fri, 23 May 2025 11:03:05 -0700
Subject: [PATCH 1/2] [CIR] Add support for global linkage and visibility
This c
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/142012
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/141973
>From 70aa8d668cf610eb7d2486b60112591a19d3db89 Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Fri, 23 May 2025 11:03:05 -0700
Subject: [PATCH 1/3] [CIR] Add support for global linkage and visibility
This c
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/141942
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/141411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2141,4 +2141,36 @@ def VecCmpOp : CIR_Op<"vec.cmp", [Pure,
SameTypeOperands]> {
}];
}
-#endif // CLANG_CIR_DIALECT_IR_CIROPS_TD
+//===--===//
+// VecSplatOp
+//===---
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/142059
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/141973
This change adds support for the CIRGlobalValueInterface and attributes for
visibility and comdat to GlobalOp.
The comdat attribute isn't correctly calculated yet, but it was required for
the CIRGlobalValue
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/141854
>From 462dc6afb219a4005e72d516e922c1c4ab0179d9 Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Wed, 28 May 2025 13:49:25 -0700
Subject: [PATCH 1/2] [CIR] Update testds for global vars
This change updates a
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/141830
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -282,22 +282,15 @@ class CIRGenBuilderTy : public cir::CIRBaseBuilderTy {
cir::LoadOp createLoad(mlir::Location loc, Address addr,
bool isVolatile = false) {
-mlir::IntegerAttr align;
-uint64_t alignment = addr.getAlignment().getQuantity()
@@ -428,13 +422,28 @@ class CIRBaseBuilderTy : public mlir::OpBuilder {
return OpBuilder::InsertPoint(block, block->begin());
};
- mlir::IntegerAttr getSizeFromCharUnits(mlir::MLIRContext *ctx,
- clang::CharUnits size) {
-// N
https://github.com/andykaylor approved this pull request.
lgtm with a couple of nits
https://github.com/llvm/llvm-project/pull/141830
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/141854
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/141854
>From 462dc6afb219a4005e72d516e922c1c4ab0179d9 Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Wed, 28 May 2025 13:49:25 -0700
Subject: [PATCH] [CIR] Update testds for global vars
This change updates a few
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/141700
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/141854
This change updates a few tests for global variable handling to also check
classic codegen output so we can easily verify consistency between the two and
will be alerted if the classic codegen changes.
This
https://github.com/andykaylor commented:
I have a concern about the masking for the lowering to LLVM IR. Other than
that, this looks good.
https://github.com/llvm/llvm-project/pull/141411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https:/
@@ -2141,4 +2141,37 @@ def VecCmpOp : CIR_Op<"vec.cmp", [Pure,
SameTypeOperands]> {
}];
}
+//===--===//
+// VecShuffleDynamicOp
+//===--==
@@ -1871,6 +1872,54 @@ mlir::LogicalResult
CIRToLLVMVecCmpOpLowering::matchAndRewrite(
return mlir::success();
}
+mlir::LogicalResult CIRToLLVMVecShuffleDynamicOpLowering::matchAndRewrite(
+cir::VecShuffleDynamicOp op, OpAdaptor adaptor,
+mlir::ConversionPatternRewr
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/141411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/14
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/141700
>From f0520c397b3739c09aeaf75c20e33ecf9053c2af Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Fri, 23 May 2025 17:53:48 -0700
Subject: [PATCH 1/2] [CIR] Defer declarations and tentative definitions
This ch
@@ -135,6 +135,10 @@ class CIRGenConsumer : public clang::ASTConsumer {
}
}
}
+
+ void CompleteTentativeDefinition(VarDecl *D) override {
+Gen->CompleteTentativeDefinition(D);
+ }
andykaylor wrote:
We're using clang naming style in this file ba
@@ -540,3 +540,171 @@ void long_shift_example(long long a, short b) {
// OGCG: store i64 %[[SHL]], ptr %[[X]]
// OGCG: ret void
+
+void b1(bool a, bool b) {
+ bool x = a && b;
+ x = x || b;
+}
+
+// CIR-LABEL: cir.func @_Z2b1bb(
+// CIR-SAME: %[[ARG0:.*]]: !c
@@ -108,6 +108,152 @@ class CIRGenFunction : public CIRGenTypeCache {
mlir::MLIRContext &getMLIRContext() { return cgm.getMLIRContext(); }
+ // -
+ // Opaque value handling
+ // -
+
+ /// Keeps track of the current set of opaque v
@@ -1195,6 +1197,93 @@ Address CIRGenFunction::emitArrayToPointerDecay(const
Expr *e) {
return Address(ptr, addr.getAlignment());
}
+/// Emit the operand of a glvalue conditional operator. This is either a
glvalue
+/// or a (possibly-parenthesized) throw-expression. If thi
@@ -1195,6 +1197,93 @@ Address CIRGenFunction::emitArrayToPointerDecay(const
Expr *e) {
return Address(ptr, addr.getAlignment());
}
+/// Emit the operand of a glvalue conditional operator. This is either a
glvalue
+/// or a (possibly-parenthesized) throw-expression. If thi
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/138156
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -201,6 +201,20 @@ bool CIRGenFunction::constantFoldsToSimpleInteger(const
Expr *cond,
return true;
}
+/// If the specified expression does not fold
+/// to a constant, or if it does but contains a label, return false. If it
+/// constant folds return true and set the bo
@@ -1799,6 +1870,162 @@ mlir::Value
ScalarExprEmitter::VisitUnaryExprOrTypeTraitExpr(
cgf.cgm.UInt64Ty, e->EvaluateKnownConstInt(cgf.getContext(;
}
+/// Return true if the specified expression is cheap enough and
side-effect-free
+/// enough to evaluate un
https://github.com/andykaylor commented:
This looks good. My remaining concerns are mostly about dead code.
https://github.com/llvm/llvm-project/pull/138156
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/
@@ -1394,13 +1501,84 @@ mlir::Value
CIRGenFunction::createDummyValue(mlir::Location loc,
return builder.createDummyValue(loc, t, alignment);
}
-/// This creates an alloca and inserts it into the entry block if
-/// \p insertIntoFnEntryBlock is true, otherwise it inserts it
@@ -306,6 +306,24 @@ class CIRBaseBuilderTy : public mlir::OpBuilder {
return createBinop(loc, lhs, cir::BinOpKind::Or, rhs);
}
+ mlir::Value createSelect(mlir::Location loc, mlir::Value condition,
+ mlir::Value trueValue, mlir::Value falseValu
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/141700
This change adds code to defer emitting declarations and tentative definitions
until they are referenced or trigger by a call to CompleteTentativeDefinition.
This is needed to avoid premature handling of dec
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/141163
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -184,37 +189,94 @@ class OpenACCClauseCIREmitter final
mlir::Location beginLoc;
mlir::Value varValue;
llvm::StringRef name;
+llvm::SmallVector bounds;
};
+ mlir::Value createBound(mlir::Location boundLoc, mlir::Value lowerBound,
+
https://github.com/andykaylor approved this pull request.
lgtm with just one nit
https://github.com/llvm/llvm-project/pull/140971
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/140971
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1427,13 +1427,13 @@ OpFoldResult cir::SelectOp::fold(FoldAdaptor adaptor) {
//===--===//
LogicalResult cir::ShiftOp::verify() {
mlir::Operation *op = getOperation();
- mlir::Type resType = getResult().g
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/141155
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/141155
A recent change to the error message produced for unhandled compound statements
without scope introduced a failure in an OpenACC test that was checking for the
old error message. This change updates the test
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140649
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140425
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140945
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140811
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/140796
>From 7e1e98fd2f1686709fe16b6853dcbf00623e626c Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Tue, 20 May 2025 09:51:41 -0700
Subject: [PATCH 1/5] [CIR] Upstream support for string literals
This adds the m
@@ -159,6 +159,107 @@ struct SimplifySelect : public OpRewritePattern
{
}
};
+/// Simplify `cir.switch` operations by folding cascading cases
+/// into a single `cir.case` with the `anyof` kind.
+///
+/// This pattern identifies cascading cases within a `cir.switch` operati
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/140796
>From 7e1e98fd2f1686709fe16b6853dcbf00623e626c Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Tue, 20 May 2025 09:51:41 -0700
Subject: [PATCH 1/4] [CIR] Upstream support for string literals
This adds the m
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/140796
>From 7e1e98fd2f1686709fe16b6853dcbf00623e626c Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Tue, 20 May 2025 09:51:41 -0700
Subject: [PATCH 1/3] [CIR] Upstream support for string literals
This adds the m
@@ -159,6 +159,107 @@ struct SimplifySelect : public OpRewritePattern
{
}
};
+/// Simplify `cir.switch` operations by folding cascading cases
+/// into a single `cir.case` with the `anyof` kind.
+///
+/// This pattern identifies cascading cases within a `cir.switch` operati
andykaylor wrote:
> @andykaylor @erichkeane @bcardosolopes While implementing this
> simplification, I noticed a difference compared to the previous behavior
> where the folding happened during codegen.
> ...
> After applying the new CIR simplify pass, the output is:
>
> ```mlir
> cir.case(any
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/140774
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor commented:
This looks good. I have just a few minor suggestions.
https://github.com/llvm/llvm-project/pull/140649
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-
@@ -159,6 +159,107 @@ struct SimplifySelect : public OpRewritePattern
{
}
};
+/// Simplify `cir.switch` operations by folding cascading cases
+/// into a single `cir.case` with the `anyof` kind.
+///
+/// This pattern identifies cascading cases within a `cir.switch` operati
@@ -159,6 +159,107 @@ struct SimplifySelect : public OpRewritePattern
{
}
};
+/// Simplify `cir.switch` operations by folding cascading cases
+/// into a single `cir.case` with the `anyof` kind.
+///
+/// This pattern identifies cascading cases within a `cir.switch` operati
@@ -159,6 +159,107 @@ struct SimplifySelect : public OpRewritePattern
{
}
};
+/// Simplify `cir.switch` operations by folding cascading cases
+/// into a single `cir.case` with the `anyof` kind.
+///
+/// This pattern identifies cascading cases within a `cir.switch` operati
@@ -0,0 +1,196 @@
+// RUN: cir-opt -cir-canonicalize -cir-simplify -o %t.cir %s
+// RUN: FileCheck --input-file=%t.cir %s
+
+!s32i = !cir.int
+
+module {
+cir.func @foldCascade(%arg0: !s32i) {
+%0 = cir.alloca !s32i, !cir.ptr, ["a", init] {alignment = 4 : i64}
+cir.sto
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/140649
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor approved this pull request.
Thanks for the fixes!
https://github.com/llvm/llvm-project/pull/140783
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1658,6 +1828,170 @@ mlir::Value
ScalarExprEmitter::VisitUnaryExprOrTypeTraitExpr(
cgf.cgm.UInt64Ty, e->EvaluateKnownConstInt(cgf.getContext(;
}
+/// Return true if the specified expression is cheap enough and
side-effect-free
+/// enough to evaluate un
@@ -2083,4 +2083,33 @@ def VecExtractOp : CIR_Op<"vec.extract", [Pure,
let hasFolder = 1;
}
+//===--===//
+// VecCmpOp
+//===--===//
+
+def
https://github.com/andykaylor approved this pull request.
https://github.com/llvm/llvm-project/pull/140597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -948,6 +950,165 @@ void CIRGenFunction::emitIgnoredExpr(const Expr *e) {
emitLValue(e);
}
+// Handle the case where the condition is a constant evaluatable simple
integer,
+// which means we don't have to separately handle the true/false blocks.
+static std::optional han
https://github.com/andykaylor approved this pull request.
lgtm
https://github.com/llvm/llvm-project/pull/140425
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/140796
>From 7e1e98fd2f1686709fe16b6853dcbf00623e626c Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Tue, 20 May 2025 09:51:41 -0700
Subject: [PATCH 1/2] [CIR] Upstream support for string literals
This adds the m
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140612
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/140811
While processing members of a record, we try to create new record types as we
encounter them, but if this would result in recursion (either because the type
points to itself or because it points to a type th
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/140796
This adds the minimal support needed to handle string literals.
>From 7e1e98fd2f1686709fe16b6853dcbf00623e626c Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Tue, 20 May 2025 09:51:41 -0700
Subject: [PATCH
https://github.com/andykaylor updated
https://github.com/llvm/llvm-project/pull/140612
>From 2310c8af56330682ab15ca318971d530cd45e73b Mon Sep 17 00:00:00 2001
From: Andy Kaylor
Date: Mon, 19 May 2025 13:18:55 -0700
Subject: [PATCH 1/2] [CIR][NFC] Eliminate ArgInfo structure
A previous refactor
@@ -72,16 +68,15 @@ class RequiredArgs {
class CIRGenFunctionInfo final
: public llvm::FoldingSetNode,
- private llvm::TrailingObjects {
- using ArgInfo = CIRGenFunctionInfoArgInfo;
-
+ private llvm::TrailingObjects {
andykaylor wrote:
Strictly
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140636
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor created
https://github.com/llvm/llvm-project/pull/140636
This change adds handling for C++ member operator calls, implicit no-op casts,
and l-value call expressions. Together, these changes enable handling of range
for loops based on iterators.
>From 58b8700c4b43
https://github.com/andykaylor approved this pull request.
I think this looks good once the error handling on the type conversion is fixed.
https://github.com/llvm/llvm-project/pull/139748
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://
https://github.com/andykaylor closed
https://github.com/llvm/llvm-project/pull/140290
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor edited
https://github.com/llvm/llvm-project/pull/140597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/andykaylor commented:
This looks OK, but I have a basic question about whether we need a dedicated
vector operation here.
https://github.com/llvm/llvm-project/pull/140597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https
@@ -2083,4 +2083,33 @@ def VecExtractOp : CIR_Op<"vec.extract", [Pure,
let hasFolder = 1;
}
+//===--===//
+// VecCmpOp
+//===--===//
+
+def
1 - 100 of 1232 matches
Mail list logo