================
@@ -6001,8 +6001,18 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo
&CallInfo,
for (auto it = EHStack.find(CurrentCleanupScopeDepth); it != EHStack.end();
++it) {
EHCleanupScope *Cleanup = dyn_cast<EHCleanupScope>(&*it);
- if (!(Cleanup && Cleanup->getCleanup()->isRedundantBeforeReturn()))
+ // Fake uses can be safely emitted immediately prior to the tail call; we
+ // choose to emit the fake use before the call rather than after, to
avoid
+ // forcing variable values from every call on the "stack" to be preserved
+ // simultaneously.
----------------
rjmccall wrote:
The second half of this comment is odd. There isn't really a choice about this;
the fake uses must be emitted prior to the tail call because there cannot be
anything after it.
https://github.com/llvm/llvm-project/pull/136867
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits