https://github.com/dkolsen-pgi approved this pull request.
I am not familiar with how clang-tidy works. (I expect that will have to
change and I should start using it.) So I can't meaningfully review this.
https://github.com/llvm/llvm-project/pull/111417
_
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/113483
>From fd38921f9899e3e5ae538a94f123433119919731 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 23 Oct 2024 11:01:40 -0700
Subject: [PATCH 1/5] [CIR] Call code gen; create empty cir.func op
Finish hook
@@ -52,10 +62,33 @@ class CIRGenModule : public CIRGenTypeCache {
/// A "module" matches a c/cpp source file: containing a list of functions.
mlir::ModuleOp theModule;
+ clang::DiagnosticsEngine &diags;
+
const clang::TargetInfo ⌖
public:
+ mlir::ModuleOp getModule
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/113483
>From fd38921f9899e3e5ae538a94f123433119919731 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 23 Oct 2024 11:01:40 -0700
Subject: [PATCH 1/2] [CIR] Call code gen; create empty cir.func op
Finish hook
@@ -0,0 +1,38 @@
+//===- CIRAttrs.cpp - MLIR CIR Attributes
-===//
+//
+// 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: Apa
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/113483
>From fd38921f9899e3e5ae538a94f123433119919731 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 23 Oct 2024 11:01:40 -0700
Subject: [PATCH 1/2] [CIR] Call code gen; create empty cir.func op
Finish hook
https://github.com/dkolsen-pgi ready_for_review
https://github.com/llvm/llvm-project/pull/113483
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dkolsen-pgi wrote:
> Is it at all possible to write a test to exercise the new functionality,
Yes, The change that I just committed includes updating the existing test to
verify that a `cir.func` op is generated correctly.
https://github.com/llvm/llvm-project/pull/113483
_
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -53,6 +53,7 @@ class CIRGenerator : public clang::ASTConsumer {
~CIRGenerator() override;
void Initialize(clang::ASTContext &astCtx) override;
bool HandleTopLevelDecl(clang::DeclGroupRef group) override;
+ mlir::ModuleOp getModule();
dkolsen-pgi wrote
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -52,10 +62,33 @@ class CIRGenModule : public CIRGenTypeCache {
/// A "module" matches a c/cpp source file: containing a list of functions.
mlir::ModuleOp theModule;
+ clang::DiagnosticsEngine &diags;
+
const clang::TargetInfo ⌖
public:
+ mlir::ModuleOp getModule
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
@@ -31,9 +34,14 @@ void CIRGenerator::Initialize(ASTContext &astCtx) {
this->astCtx = &astCtx;
- cgm = std::make_unique(*mlirCtx, astCtx, codeGenOpts, diags);
+ mlirCtx = std::make_unique();
+ mlirCtx->getOrLoadDialect();
dkolsen-pgi wrote:
Fixed. Chan
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/113483
>From fd38921f9899e3e5ae538a94f123433119919731 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 23 Oct 2024 11:01:40 -0700
Subject: [PATCH 1/4] [CIR] Call code gen; create empty cir.func op
Finish hook
@@ -53,6 +53,7 @@ class CIRGenerator : public clang::ASTConsumer {
~CIRGenerator() override;
void Initialize(clang::ASTContext &astCtx) override;
bool HandleTopLevelDecl(clang::DeclGroupRef group) override;
+ mlir::ModuleOp getModule();
dkolsen-pgi wrote
@@ -24,9 +27,135 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
https://github.com/dkolsen-pgi converted_to_draft
https://github.com/llvm/llvm-project/pull/113483
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dkolsen-pgi wrote:
> Is it at all possible to write a test to exercise the new functionality,
Yes, I am planning to write a CIR code gen test as part of this PR, to verify
that a `cir.func` op is created. But there is some broken or missing
functionality that I need to fix first before I can
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/113483
Finish hooking up ClangIR code gen into the Clang control flow, initializing
enough that basic code gen is possible.
Add an almost empty `cir.func` op to the ClangIR dialect. Currently the only
property o
@@ -16,4 +16,50 @@
include "clang/CIR/Dialect/IR/CIRDialect.td"
+include "mlir/Interfaces/ControlFlowInterfaces.td"
+include "mlir/Interfaces/FunctionInterfaces.td"
+include "mlir/Interfaces/InferTypeOpInterface.td"
+include "mlir/Interfaces/LoopLikeInterface.td"
+include "ml
@@ -16,4 +16,50 @@
include "clang/CIR/Dialect/IR/CIRDialect.td"
+include "mlir/Interfaces/ControlFlowInterfaces.td"
+include "mlir/Interfaces/FunctionInterfaces.td"
+include "mlir/Interfaces/InferTypeOpInterface.td"
+include "mlir/Interfaces/LoopLikeInterface.td"
+include "ml
@@ -10,4 +10,57 @@
//
//===--===//
-#include
+#include "clang/CIR/Dialect/IR/CIRDialect.h"
+
+#include "mlir/Support/LogicalResult.h"
+
+#include "clang/CIR/Dialect/IR/CIROpsDialect.cpp.inc"
@@ -16,4 +16,87 @@
include "clang/CIR/Dialect/IR/CIRDialect.td"
+include "mlir/Interfaces/ControlFlowInterfaces.td"
+include "mlir/Interfaces/FunctionInterfaces.td"
+include "mlir/Interfaces/InferTypeOpInterface.td"
+include "mlir/Interfaces/LoopLikeInterface.td"
+include "ml
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
dkolsen-pgi wrote:
> Does https://mlir.llvm.org/docs/Dialects/Builtin/#fusedloc suit the situation
> [of recording locations of macro expansions]?
Maybe? Right now I think `FusedLoc` is used by ClangIR to represent a source
range. Maybe it also could be used for macro expansion locations. I
@@ -10,4 +10,57 @@
//
//===--===//
-#include
+#include "clang/CIR/Dialect/IR/CIRDialect.h"
+
+#include "mlir/Support/LogicalResult.h"
+
+#include "clang/CIR/Dialect/IR/CIROpsDialect.cpp.inc"
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/113483
>From fd38921f9899e3e5ae538a94f123433119919731 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 23 Oct 2024 11:01:40 -0700
Subject: [PATCH 1/3] [CIR] Call code gen; create empty cir.func op
Finish hook
@@ -13,4 +13,22 @@
#ifndef LLVM_CLANG_CIR_DIALECT_IR_CIRDIALECT_H
#define LLVM_CLANG_CIR_DIALECT_IR_CIRDIALECT_H
+#include "mlir/IR/Builders.h"
dkolsen-pgi wrote:
`git clang-format` will alphabetize a block of includes that are not separated
by blank lines.
@@ -13,4 +13,22 @@
#ifndef LLVM_CLANG_CIR_DIALECT_IR_CIRDIALECT_H
#define LLVM_CLANG_CIR_DIALECT_IR_CIRDIALECT_H
+#include "mlir/IR/Builders.h"
+#include "mlir/IR/BuiltinOps.h"
+#include "mlir/IR/BuiltinTypes.h"
+#include "mlir/IR/Dialect.h"
+#include "mlir/IR/OpDefinition.h"
@@ -24,9 +27,140 @@ CIRGenModule::CIRGenModule(mlir::MLIRContext &context,
clang::ASTContext &astctx,
const clang::CodeGenOptions &cgo,
DiagnosticsEngine &diags)
-: astCtx(astctx), langOpts(ast
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/118389
Fix a compiler warning in `CIRGenConsumer::HandleTranslationUnit` in
`clang/lib/CIR/FrontendAction/CIRGenAction.cpp`. The warning was about a
`default:` section in a switch statement that already covered a
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/118389
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/118743
Add integral types to ClangIR. These are the first ClangIR types, so the
change includes some infrastructure for managing ClangIR types.
So that the integral types can be used somewhere, generate ClangIR f
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/118743
>From 3f911a452599d6b92218db2e12059ee8613a12bc Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 4 Dec 2024 21:32:52 -0800
Subject: [PATCH 1/2] [CIR] Integral types; simple global variables
Add integral
@@ -0,0 +1,27 @@
+//===- CIRTypes.h - MLIR CIR Types --*- C++
-*-===//
dkolsen-pgi wrote:
Done.
https://github.com/llvm/llvm-project/pull/118743
___
cfe-commits mailing list
cfe-commits@li
@@ -85,14 +115,15 @@ class CIR_Op traits = []> :
def FuncOp : CIR_Op<"func"> {
let summary = "Declare or define a function";
let description = [{
-... lots of text to be added later ...
+THe `cir.func` operation defines a function, similar to the `mlir::FuncOp`
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/118743
>From 3f911a452599d6b92218db2e12059ee8613a12bc Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 4 Dec 2024 21:32:52 -0800
Subject: [PATCH 1/3] [CIR] Integral types; simple global variables
Add integral
@@ -74,6 +75,32 @@ class LLVMLoweringInfo {
class CIR_Op traits = []> :
Op, LLVMLoweringInfo;
+//===--===//
+// GlobalOp
+//===--===//
+
dkolsen-pgi wrote:
@lanza or @bcardosolopes : Could one of you please review and (hopefully)
approve this PR? Erich has delegated approval to you for this one.
https://github.com/llvm/llvm-project/pull/119037
___
cfe-commits mailing list
cfe-commits@
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/121069
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/121069
>From f81f3d0b52ee343eb26eb00f42de97f8792e9172 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Tue, 24 Dec 2024 13:16:32 -0800
Subject: [PATCH 1/2] [CIR] Upstream initial attribute support
Upstream several
@@ -26,6 +30,13 @@ class CIRBaseBuilderTy : public mlir::OpBuilder {
cir::PointerType getVoidPtrTy() {
return getPointerTo(cir::VoidType::get(getContext()));
}
+
+ mlir::TypedAttr getConstPtrAttr(mlir::Type t, int64_t v) {
dkolsen-pgi wrote:
Done.
I
@@ -21,18 +39,160 @@ using namespace cir;
Attribute CIRDialect::parseAttribute(DialectAsmParser &parser,
Type type) const {
- // No attributes yet to parse
- return Attribute{};
+ llvm::SMLoc typeLoc = parser.getCurrentLocation();
+ llv
@@ -0,0 +1,25 @@
+//===--===//
+//
+// 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: Apac
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/119037
>From adc46522a895e088b6af0d229b310d455d6d6ee7 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Fri, 6 Dec 2024 13:41:44 -0800
Subject: [PATCH 1/2] [CIR] Infrastructure: class CIRGenBuilderTy; cache CIR
typ
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/119037
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/119450
ClangIR CodeGen code uses both `mlir::MLIRContext` and `clang::ASTContext`
objects extensively. Refering to either of those as just "context" can be
confusing.
Change the names of all variables, parameter
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/119450
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/120484
Upstream ClangIR support for `void` type, floating-point types, pointer types,
and function types.
Floating-point support is missing the IBM double-double format, because that
hasn't been implemented in th
@@ -129,4 +130,224 @@ def PrimitiveInt
: AnyTypeOf<[UInt8, UInt16, UInt32, UInt64, SInt8, SInt16, SInt32, SInt64],
"primitive int", "::cir::IntType">;
+//===--===//
+// FloatType
+//===
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/120484
>From b76111ab93253a772156992e70acb5c78511a6bf Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 18 Dec 2024 13:52:58 -0800
Subject: [PATCH 1/2] [CIR] floating-point, pointer, and function types
Upstrea
@@ -18,6 +21,87 @@ mlir::MLIRContext &CIRGenTypes::getMLIRContext() const {
return *builder.getContext();
}
+/// Return true if the specified type in a function parameter or result
position
+/// can be converted to a CIR type at this point. This boils down to being
+/// whe
@@ -0,0 +1,52 @@
+//===- CIRFPTypeInterface.td - CIR FP Interface Definitions -*- C++
-*-===//
dkolsen-pgi wrote:
Done. `CIRFPTypeInterface.cpp` had the same issue, which I fixed in a
soon-to-be-commited change.
I don't plan to make this change in any exi
@@ -129,4 +130,224 @@ def PrimitiveInt
: AnyTypeOf<[UInt8, UInt16, UInt32, UInt64, SInt8, SInt16, SInt32, SInt64],
"primitive int", "::cir::IntType">;
+//===--===//
+// FloatType
+//===
@@ -0,0 +1,52 @@
+//===- CIRFPTypeInterface.td - CIR FP Interface Definitions -*- C++
-*-===//
dkolsen-pgi wrote:
You're right. The updated guidelines say that this line doesn't need to
contain any useful information. I'll remove it.
https://github.com/
@@ -18,6 +21,87 @@ mlir::MLIRContext &CIRGenTypes::getMLIRContext() const {
return *builder.getContext();
}
+/// Return true if the specified type in a function parameter or result
position
+/// can be converted to a CIR type at this point. This boils down to being
+/// whe
@@ -133,6 +143,276 @@
IntType::verify(llvm::function_ref emitError,
return mlir::success();
}
+//===--===//
+// Floating-point type definitions
+//===
@@ -18,6 +21,87 @@ mlir::MLIRContext &CIRGenTypes::getMLIRContext() const {
return *builder.getContext();
}
+/// Return true if the specified type in a function parameter or result
position
+/// can be converted to a CIR type at this point. This boils down to being
+/// whe
@@ -133,6 +143,276 @@
IntType::verify(llvm::function_ref emitError,
return mlir::success();
}
+//===--===//
+// Floating-point type definitions
+//===
@@ -63,13 +153,71 @@ mlir::Type CIRGenTypes::convertType(QualType type) {
cir::IntType::get(&getMLIRContext(), astContext.getTypeSize(ty),
/*isSigned=*/false);
break;
+
+// Floating-point types
+case BuiltinType::Float16:
+
@@ -18,6 +21,87 @@ mlir::MLIRContext &CIRGenTypes::getMLIRContext() const {
return *builder.getContext();
}
+/// Return true if the specified type in a function parameter or result
position
+/// can be converted to a CIR type at this point. This boils down to being
+/// whe
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/120484
>From b76111ab93253a772156992e70acb5c78511a6bf Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 18 Dec 2024 13:52:58 -0800
Subject: [PATCH 1/3] [CIR] floating-point, pointer, and function types
Upstrea
dkolsen-pgi wrote:
@keryell :
> Are you up-streaming the changes in commit order or are you up-streaming the
> changes with the latest version of a feature?
Upstreaming is happening in logical chunks, using the latest version of the
feature. I am paying no attention to the order of commits in
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/120484
>From b76111ab93253a772156992e70acb5c78511a6bf Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Wed, 18 Dec 2024 13:52:58 -0800
Subject: [PATCH 1/4] [CIR] floating-point, pointer, and function types
Upstrea
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/120484
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/119037
Small infrastructure and background changes to ClangIR.
Create class `CIRGenBuilderTy` and its base class `CIRBaseBuilderTy`. These are
mostly empty for now, except for what is inherited from `mlir::OpBuild
@@ -9,22 +9,32 @@ using namespace clang;
using namespace clang::CIRGen;
CIRGenTypes::CIRGenTypes(CIRGenModule &genModule)
-: cgm(genModule), context(genModule.getASTContext()) {}
+: cgm(genModule), context(genModule.getASTContext()),
+ builder(cgm.getBuilder()) {}
@@ -72,9 +63,15 @@ mlir::Type CIRGenTypes::convertType(QualType type) {
}
case Type::BitInt: {
const auto *bitIntTy = cast(type);
-resultType =
-cir::IntType::get(cgm.getBuilder().getContext(),
bitIntTy->getNumBits(),
- bitIntTy->is
@@ -82,6 +83,14 @@ void
CIRGenModule::emitGlobalFunctionDefinition(clang::GlobalDecl gd,
theModule.push_back(funcOp);
}
+void CIRGenModule::emitGlobalVarDefinition(const clang::VarDecl *vd,
+ bool isTentative) {
+ mlir::Type type =
@@ -0,0 +1,132 @@
+//===- CIRTypes.td - CIR dialect types -*- tablegen
-*-===//
+//
+// 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
@@ -0,0 +1,90 @@
+#include "CIRGenTypes.h"
+
+#include "CIRGenModule.h"
+
+#include "clang/AST/ASTContext.h"
+#include "clang/AST/Type.h"
+
+using namespace clang;
+using namespace clang::CIRGen;
+
+CIRGenTypes::CIRGenTypes(CIRGenModule &genModule)
+: cgm(genModule), context(g
@@ -0,0 +1,130 @@
+//===- CIRTypes.td - CIR dialect types -*- tablegen
-*-===//
+//
+// 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
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/118743
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/121069
Upstream several ClangIR-specific MLIR attributes, in particular attributes for
integer, floating-point, and null pointer constants. These are the first
ClangIR attributes to be upstreamed, so infrastructur
https://github.com/dkolsen-pgi updated
https://github.com/llvm/llvm-project/pull/131945
>From ef54ceca65c8a62544651cbbd30967efc7adec36 Mon Sep 17 00:00:00 2001
From: David Olsen
Date: Tue, 18 Mar 2025 17:37:26 -0700
Subject: [PATCH 1/2] [CIR] Upstream a basic version of class LexicalScope
Upst
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/131945
Upstream the parts of class `CIRGenFunction::LexicalScope` that implement
function return values. There is a bit of other functionality in here, such as
the implicit `cir.yield` at the end of a non-functio
dkolsen-pgi wrote:
There are some small functions in this change that are not called or otherwise
used in this change. But they will definitely be used in future upstream
patches. Since they are small and don't bring in any new dependencies and are
complete (won't need to be changed in futur
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/131945
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -11,8 +11,8 @@
///
//===--===//
-#ifndef LLVM_CLANG_CIR_DIALECT_IR_CIROPS
-#define LLVM_CLANG_CIR_DIALECT_IR_CIROPS
+#ifndef CLANG_CIR_DIALECT_IR_CIROPS_TD
dkolsen-pgi wrote:
Because the
@@ -0,0 +1,203 @@
+//===--===//
+//
+// 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: Apa
@@ -0,0 +1,203 @@
+//===--===//
+//
+// 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: Apa
@@ -0,0 +1,134 @@
+//===--===//
+//
+// 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: Apa
https://github.com/dkolsen-pgi created
https://github.com/llvm/llvm-project/pull/127674
Enable ClangIR generation for very simple functions. The functions have to
return `void` or an integral type, contain only compound statements or `return`
statements, and `return` statement expressions can
https://github.com/dkolsen-pgi edited
https://github.com/llvm/llvm-project/pull/129072
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dkolsen-pgi wrote:
I have mixed feelings about this change. It mostly overlaps with what I am
working on, which is class `LexicalScope`, which has a bunch of the code for
handling the return value. I think I would prefer that this PR be dropped, as
the changes will be part of the PR I am wor
https://github.com/dkolsen-pgi commented:
Most of the things I would have commented were already mentioned by someone
else. Just a couple small additional items.
https://github.com/llvm/llvm-project/pull/129072
___
cfe-commits mailing list
cfe-commit
@@ -2,100 +2,100 @@
// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir
-emit-cir %s -o - | FileCheck %s
char c;
-// CHECK: cir.global @c : !cir.int
+// CHECK: cir.global external @c : !cir.int
signed char sc;
-// CHECK: cir.global @sc : !cir.int
+//
@@ -0,0 +1,63 @@
+//===- CIROpInterfaces.td - CIR Op Interface Definitions *- C++
-*-===//
+//
+// 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: Apa
https://github.com/dkolsen-pgi closed
https://github.com/llvm/llvm-project/pull/128787
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,58 @@
+// RUN: cir-opt %s -cir-flatten-cfg -o - | FileCheck %s
+
+module {
+ cir.func @foo() {
+cir.scope {
+ %0 = cir.alloca !cir.int, !cir.ptr>, ["a", init]
{alignment = 4 : i64}
+ %1 = cir.const #cir.int<4> : !cir.int
+ cir.store %1, %0 : !cir.in
@@ -224,3 +225,19 @@ mlir::Type CIRGenTypes::convertType(QualType type) {
typeCache[ty] = resultType;
return resultType;
}
+
+mlir::Type CIRGenTypes::convertTypeForMem(clang::QualType qualType,
+ bool forBitField) {
+ assert(!qualTy
@@ -0,0 +1,134 @@
+//===--===//
+//
+// 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: Apa
@@ -0,0 +1,203 @@
+//===--===//
+//
+// 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: Apa
1 - 100 of 121 matches
Mail list logo