-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CIR][CIRGen] Partially support statement expressions return values #314
Conversation
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. ghstack-source-id: 59cb541c953907bfa4c645e5f9ec8ac36908fd46 Pull Request resolved: #314
…310) Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom): * #314 * #313 * #312 * #311 * __->__ #310 The `shouldPrintTerm` and `checkBlockTerminator` were replaced in favor of `omitRegionTerm` and `ensureRegionTerm` respectively. The first is essentially the same method but simplified. The latter was refactored to do only two things: check if the terminator omission of a region is valid and, if so, insert the omitted terminator into the region. The simplifications mostly leverage the fact that we only omit empty yield values in a single-block region.
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. ghstack-source-id: 4baa1f9e7119e9813e790234145a18f2cf14142f Pull Request resolved: #314
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. ghstack-source-id: 4baa1f9e7119e9813e790234145a18f2cf14142f Pull Request resolved: #314
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. ghstack-source-id: 4baa1f9e7119e9813e790234145a18f2cf14142f Pull Request resolved: #314
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding this, pretty cool! Some discussion points follow.
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. ghstack-source-id: 57a10677f546f3d4cbc07889baabdfe9dae23810 Pull Request resolved: #314
@bcardosolopes applied and answered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor change and this is good!
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: daf5fa8dc331919e12b6b54518a181f2d3a92bba Pull Request resolved: #314
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: b5a42466e749861e9610d3a70da0361d2755b1b8 Pull Request resolved: #314
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Will let you merge as to not mess up with the stack tool
…rn values" Adds support for GCC statement expressions return values by leveraging the `cir.scope` operation return value and aggregate copies. This does not implement the full semantics of statement expressions. [ghstack-poisoned]
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: llvm#314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: llvm#314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: llvm/clangir#314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: llvm#314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: llvm#314
Adds support for GCC statement expressions return values as well as StmtExpr LValue emissions. To simplify the lowering process, the scope return value is not used. Instead, a temporary allocation is created on the parent scope where the return value is stored. For classes, a second scope is created around this temporary allocation to ensure any destructors are called. This does not implement the full semantics of statement expressions. ghstack-source-id: 64e03fc3df45975590ddbcab44959c2b49601101 Pull Request resolved: #314
Stack from ghstack (oldest at bottom):
Adds support for GCC statement expressions return values as well as
StmtExpr LValue emissions.
To simplify the lowering process, the scope return value is not used.
Instead, a temporary allocation is created on the parent scope where the
return value is stored. For classes, a second scope is created around
this temporary allocation to ensure any destructors are called.
This does not implement the full semantics of statement expressions.