Skip to content

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

Merged
merged 1 commit into from
Aug 1, 2018

Conversation

adrian-prantl
Copy link
Contributor

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.

@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

1 similar comment
@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 60c2999

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 60c2999

@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

1 similar comment
@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - a8bc7d929c498b1ba35f20c929e5256570d6d496

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - a8bc7d929c498b1ba35f20c929e5256570d6d496

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
@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

1 similar comment
@adrian-prantl
Copy link
Contributor Author

@swift-ci test source compatibility

@adrian-prantl
Copy link
Contributor Author

@swift-ci test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 1, 2018

Build failed
Swift Test Linux Platform
Git Sha - f340abe015192d19dbccddb6ceb8212199f67c52

@swift-ci
Copy link
Contributor

swift-ci commented Aug 1, 2018

Build failed
Swift Test OS X Platform
Git Sha - f340abe015192d19dbccddb6ceb8212199f67c52

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants