-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Add debug info support for inlined and specialized generic variables. #18366
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
Conversation
@swift-ci test source compatibility |
@swift-ci test source compatibility |
1 similar comment
@swift-ci test source compatibility |
@swift-ci test |
Build failed |
Build failed |
@swift-ci test source compatibility |
@swift-ci test source compatibility |
@swift-ci test source compatibility |
1 similar comment
@swift-ci test source compatibility |
@swift-ci test |
Build failed |
Build failed |
This patch adds SIL-level debug info support for variables whose static type is rewritten by an optimizer transformation. When a function is (generic-)specialized or inlined, the static types of inlined variables my change as they are remapped into the generic environment of the inlined call site. With this patch all inlined SILDebugScopes that point to functions with a generic signature are recursively rewritten to point to clones of the original function with new unique mangled names. The new mangled names consist of the old mangled names plus the new substituions, similar (or exactly, respectively) to how generic specialization is handled. On libSwiftCore.dylib (x86_64), this yields a 17% increase in unique source vars and a ~24% increase in variables with a debug location. rdar://problem/28859432 rdar://problem/34526036
@swift-ci test source compatibility |
1 similar comment
@swift-ci test source compatibility |
@swift-ci test |
Build failed |
Build failed |
This patch adds SIL-level debug info support for variables whose
static type is rewritten by an optimizer transformation. When a
function is (generic-)specialized or inlined, the static types of
inlined variables my change as they are remapped into the generic
environment of the inlined call site. With this patch all inlined
SILDebugScopes that point to functions with a generic signature are
recursively rewritten to point to clones of the original function with
new unique mangled names. The new mangled names consist of the old
mangled names plus the new substituions, similar (or exactly,
respectively) to how generic specialization is handled.
On libSwiftCore.dylib (x86_64), this yields a 17% increase in unique
source vars and a ~24% increase in variables with a debug location.
rdar://problem/28859432
rdar://problem/34526036
Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.
Resolves SR-NNNN.