Hi,
I would like to discuss the path towards enabling a new debug info verifier 
pass by default.
This should improve the debug experience of users at `-Onone`.

## Problem Description
Mandatory passes which run at `-Onone` can attach a wrong scope when they 
create instructions.
This may result in wrong debug informations generated and degraded debugger 
experience.

Examples of bugs of this kind recently fixed:
https://github.com/apple/swift/pull/13919 
<https://github.com/apple/swift/pull/13919>
https://github.com/apple/swift/pull/13890 
<https://github.com/apple/swift/pull/13890>
https://github.com/apple/swift/pull/13856 
<https://github.com/apple/swift/pull/13856>
https://github.com/apple/swift/pull/13854 
<https://github.com/apple/swift/pull/13854>


## Proposed solution

There’s currently nothing preventing compiler writers to attach the wrong 
scope, so, I’m going to check in a verifier pass to find holes in SIL debug 
scopes at -Onone. 
Reference: https://github.com/apple/swift/pull/13491 
<https://github.com/apple/swift/pull/13491> , which contains the code and a 
description of the heuristic used.

## Plan to enable this by default

I fixed all the bugs that have been found on the testsuite, but this seems to 
find still issues on larger projects (most notably, swiftpm), so for now this 
is disabled (but can be enabled using a flag [-Xllvm -verify-di-holes]). I’m 
working to 

I would really appreciate if the community can test their swift projects with 
this flag enabled and report bugs.
I would also appreciate general feedback on the path forward.

Thanks,

—
Davide
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to