Commit Graph

10 Commits

Author SHA1 Message Date
Adrian Prantl
4174e2136f Remove the redundant lexical scope for function-body brace statements.
Before this patch every Swift function would contain a top-level
DW_TAG_lexical_scope that didn't provide any useful information, used extra
space in the debug info and prevented local variables from showing up in virtual
async backtraces.
2021-02-26 13:53:30 -08:00
Pavel Yaskevich
8ebb6b5a8a [SILOptimizer] NFC: Disable definite-init-wrongscope test on Windows due to SR-14267 2021-02-23 13:20:42 -08:00
Adrian Prantl
c4c99811e6 Fix a case where guard let bindings were not emitted in their own scope.
This is a follow-up to e9d557ae28.  The
debug_value for the guard let binding is introduced by SGF.emitStmtCondition(),
so we also need to enter the debug scope before running that function.

rdar://74538257
2021-02-19 18:11:00 -08:00
Erik Eckstein
ee5491a7c9 PassManager: simplify the options to print intermediate SIL.
* rename -sil-print-only-function to -sil-print-function and -sil-print-only-functions to -sil-print-functions
* to print single functions, don't require -Xllvm -sil-print-all. It's now sufficient to use e.g. -Xllvm -sil-print-function=<f>
But it's still possible to select functions with -sil-print-function(s) for other print options, -sil-print-after.
2021-02-09 09:12:06 +01:00
Slava Pestov
269818686a SILGen: Introduce a new debug scope for GuardStmts
A GuardStmt can shadow bindings from outer scopes, so make sure
we actually create a new debug scope here.

Note that we push the scope, but pop it when the next innermost
debug scope ends. To keep track of this I added a new bit of state
to the debug scope stack, indicating that this scope originated
from a GuardStmt.

Ideally, debug info would rely on ASTScope which is the canonical
source of truth for this information. For now, this is a spot fix.

I filed <rdar://problem/72954242> to track implementing the longer
term solution.

Fixes <rdar://problem/72900354>.
2021-01-11 22:47:41 -05:00
Saleem Abdulrasool
2c0999f67f test: port most SILOptimizer tests for Windows
This adjusts the SILOptimizer test suite to work on Windows.  The
remaining SILOptimizer test failure is a memory issue in the standard
library.
2018-12-24 00:57:25 -08:00
Erik Eckstein
39bb14b094 change mangling prefix from $S to $s
This is the final ABI mangling prefix

rdar://problem/38471478
2018-09-19 13:55:11 -07:00
Michael Gottesman
2872389826 [definite-init] Split raw SIL instruction lowering out of DI into its own pass run after DI.
I am doing this so I can start writing DI tests without this lowering occuring.
There never was a real reason for this code to be in DI beyond convenience. Now
it just makes writing tests more difficult. To prevent any test delta, I changed
all current DI tests to run this pass after DI.
2018-05-22 18:18:22 -07:00
Andrew Trick
c2b845b1e4 <rdar://36734699> [Exclusivity] let class properties should not be enforced. 2018-03-14 09:26:30 -07:00
Davide Italiano
e8e90df9b4 [DefiniteInitialization] Preserve DebugInfo correctly.
The scope was set incorrectly. Fixes SR-6722.

<rdar://problem/36414649>
2018-01-10 13:41:37 -08:00