This is an archive of the discontinued LLVM Phabricator instance.

[CoroSplit][DebugInfo] Don't use entry_value in coroutine entry point
ClosedPublic

Authored by fdeazeve on Aug 16 2023, 12:27 PM.

Details

Summary

The entry point function is called as a regular function. Among other things, it
can be inlined, which would violate the semantics of entry_value in the IR.

Diff Detail

Event Timeline

fdeazeve created this revision.Aug 16 2023, 12:27 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 16 2023, 12:27 PM
fdeazeve requested review of this revision.Aug 16 2023, 12:27 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 16 2023, 12:27 PM
fdeazeve updated this revision to Diff 550846.Aug 16 2023, 12:54 PM

add comments for boolean call arguments

aprantl accepted this revision.Aug 16 2023, 1:28 PM

Nice!

This revision is now accepted and ready to land.Aug 16 2023, 1:28 PM
aprantl added inline comments.Aug 16 2023, 1:30 PM
llvm/lib/Transforms/Coroutines/CoroFrame.cpp
1884

And I assume that the "it will be deleted in all other funclets" guarantee still holds for the non-entry-value dbg.declare?

fdeazeve added inline comments.Aug 16 2023, 2:52 PM
llvm/lib/Transforms/Coroutines/CoroFrame.cpp
1884

Yup, that deletion seems to be unconditional!