You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[RemoveDIs][DebugInfo] Reject intrinsic->record upgrades for old-format modules
Fixes issue noted at: llvm#86274
When loading bitcode lazily, we may request debug intrinsics be upgraded to
debug records during the module parsing phase; later on we perform this
upgrade when materializing the module functions. If we change the module's
debug info format between parsing and materializing however, then the
requested upgrade is no longer correct and leads to an assertion. This patch
fixes the issue by adding an extra check in the autoupgrader to see if the
upgrade is no longer suitable, and either exit-out or fall back to the
correct intrinsic->intrinsic upgrade if one is required.
Adding this check in the autoupgrader is technically not optimal, since we
could run the check a single time in a higher up call, but there's no way
(that I can see) to do so without leaking through abstractions and making
the bitcode/linking/materializing steps more complicated and brittle, and
the check isn't particularly expensive.
0 commit comments