[all-commits] [llvm/llvm-project] 4e3440: [CIR] Upstream a basic version of class LexicalSco...
David Olsen via All-commits
all-commits at lists.llvm.org
Wed Mar 19 12:57:03 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4e3440d9dd181f83ac1aa23f9c458d1344413e98
https://github.com/llvm/llvm-project/commit/4e3440d9dd181f83ac1aa23f9c458d1344413e98
Author: David Olsen <dolsen at nvidia.com>
Date: 2025-03-19 (Wed, 19 Mar 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/test/CIR/CodeGen/basic.c
M clang/test/CIR/CodeGen/basic.cpp
M clang/test/CIR/CodeGen/cast.cpp
M clang/test/CIR/CodeGen/unary.cpp
M clang/test/CIR/Lowering/basic.cpp
M clang/test/CIR/Lowering/func-simple.cpp
M clang/test/CIR/func-simple.cpp
Log Message:
-----------
[CIR] Upstream a basic version of class LexicalScope (#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-function
scope, but this is mostly about function returns.
The parts of `LexicalScope` that handle calling destructors, switch
statements, ternary expressions, and exception handling still need to be
upstreamed.
There is a change in the generated ClangIR (which is why many of the
tests needed updating). Return values are stored in the
compiler-generated variable `__retval` rather than being passed to the
`cir.return` op directly. But there should be no change in the behavior
of the generated code.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list