Commit Graph

1707 Commits

Author SHA1 Message Date
swift-ci
5abac881ad Merge remote-tracking branch 'origin/main' into rebranch 2024-06-02 15:34:45 -07:00
Michael Gottesman
f45a87cf2c [sending] Fix type reconstruction of sending parameters. 2024-06-01 23:25:16 -07:00
swift-ci
506140093c Merge remote-tracking branch 'origin/main' into rebranch 2024-05-30 11:34:31 -07:00
Emil Pedersen
11a535952e Merge pull request #73995 from Snowy1803/rdar126556557
[DebugInfo] [SILGen] Remove all invalid debug info from intermediates
2024-05-30 11:26:24 -07:00
swift-ci
63205ba9a2 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-30 09:54:36 -07:00
Emil Pedersen
531469f70e Merge pull request #73864 from Snowy1803/scs-builder-skip-meta
Skip meta instructions for Builder.init with automatic location
2024-05-30 09:50:48 -07:00
Emil Pedersen
a5305346d5 [DebugInfo] [SILGen] Remove all invalid debug info from intermediates
The debug info on intermediates were not removed if the function used
parameter packs

Fixes #73030
rdar://126556557
2024-05-29 18:13:17 -07:00
swift-ci
c703993946 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-29 15:54:30 -07:00
Daniel Rodríguez Troitiño
aa61d953ba [embedded] Allow disabling embedded stdlib, but still test compiler (#73977)
While one can disable building the embedded stdlib, the tests for that
feature were unconditionally added. If one wants to just build the
compiler without any stdlib (except target), a bunch of embedded tests
would have failed.

Inject the value of `SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB` into the Lit
test system as a feature `embedded_stdlib` and add `REQUIRES:` to
a couple of tests outside the `embedded/` directory that seems to use
the experimental feature. Make the tests in `embedded/` unsupported in
the local Lit configuration file.
2024-05-29 15:45:05 -07:00
Emil Pedersen
d39d838c2b Skip meta instructions for Builder.init with automatic location 2024-05-24 16:01:11 -07:00
Hamish Knight
782ae72efd Merge branch 'main' into merge-rebranch 2024-05-23 20:03:52 +01:00
Emil Pedersen
5606fbc1d6 [IRGenDebugInfo] Disable usage of dbg.declare in optimized code
Except for the async context, where it is needed (arguments
within an async function).

We don't support dbg.declare in optimized code, as variables can
be moved by SIL optimization passes. If a partial store is
eliminated, we want a dbg.value on the allocation, and another
dbg.value with a fragment in place of the partial store.

rdar://128155050
2024-05-22 09:35:37 -07:00
Emil Pedersen
2726d8318c [IRGenDebugInfo] Allow multiple dbg.declare on an alloca
This is unnecessarily dropping debug info, as there is currently
no assertion in LLVM. The sharing of stack slot can happen
because of AllocStackHoisting, which is run at -Onone too.
2024-05-20 16:55:22 -07:00
Augusto Noronha
35f7eb713c [DebugInfo] Reenable 2 failings watch tests
The tests were not taking into account running in 32 bit platforms

rdar://124465351
2024-05-14 11:28:23 -07:00
Emil Pedersen
15cab3a19f Merge pull request #73555 from Snowy1803/complete-getvarinfo
[DebugInfo] Return complete variable info from getVarInfo by default
2024-05-13 10:32:43 -07:00
Emil Pedersen
9984d1d3a6 [SILCombine] Correctly drop debug info when fragmenting an enum 2024-05-10 18:47:28 -07:00
Emil Pedersen
0be63d0422 [DebugInfo] Return complete variable info from getVarInfo by default
getVarInfo() now always returns a variable with a location and scope.
To opt out of this change, getVarInfo(false) returns an incomplete variable.
This can be used to work around bugs, but should only really be used for
printing.

The complete var info will also contain the type, except for debug_values,
as its type depends on another instruction, which may be inconsistent if
called mid-pass.

All locations in debug variables are now also stripped of flags, to avoid
issues when comparing or hashing debug variables.
2024-05-10 16:12:56 -07:00
Adrian Prantl
9a2e245678 Merge pull request #73504 from Snowy1803/rdar127348128
[DebugInfo] Fix verifier crash for complex switch
2024-05-08 16:06:00 -07:00
Emil Pedersen
95d2479889 [DebugInfo] Fix verifier crash for complex switch
An alloc_stack, just like a debug_value, should ignore location
overrides for their variable.

Fixes #73338
rdar://127348128
2024-05-07 18:51:13 -07:00
Emil Pedersen
4bc672e7c1 [DebugInfo] Deduplicate location and scope in debug variables (NFC) 2024-05-07 13:58:57 -07:00
Emil Pedersen
3003155fb1 Merge pull request #73404 from Snowy1803/phixpansion
[DebugInfo] Fix PhiExpansion losing debug info
2024-05-06 10:17:55 -07:00
Emil Pedersen
b944e38ec3 [DebugInfo] Fix PhiExpansion losing debug info
When replacing a struct with its field, it now emits a debug_value
with a fragment, instead of dropping the debug_value.
2024-05-03 14:46:04 -07:00
Emil Pedersen
bf58b030c5 Merge pull request #73387 from Snowy1803/allocbox-fix
[DebugInfo] Fix loss of variables at -Onone
2024-05-02 12:39:17 -07:00
Emil Pedersen
644509ea1c [DebugInfo] Fix LoadableByAddress losing debug info
LoadableByAddress was losing debug info, including at -Onone.
When converting a load-store pair to a copy_addr, the debug info
attached to the load was not salvaged.
Additionally, the wrong scope was being attached to other debug
values.
2024-05-01 18:44:33 -07:00
Adrian Prantl
c0a9f44d48 Merge pull request #73326 from adrian-prantl/127095833
Emit line table entries for closure setup instructions.
2024-04-30 08:27:10 -07:00
Emil Pedersen
26cb1394f0 Fix salvage integer literal test on 32 bits
rdar://127255781
2024-04-29 15:40:31 -07:00
Adrian Prantl
82a26a59d8 Emit line table entries for closure setup instructions.
Currently the Swift compiler makes these instructions with SILLocations marked
as autgenerated. While this allows for somewhat smoother stepping in some cases,
it can also make some debugging tasks harder due to missing source location
information, for example, when attributing memory allocations.

This patch makes these locations available again, based on that a debug info
consumer could consider filtering them out by recognizing that a source location
is on the opening `{` of a closure, but inside the scope of the function the
closure is defined in.

rdar://127095833
2024-04-29 12:51:28 -07:00
Emil Pedersen
16c57aefcd [DebugInfo] Salvage integer literals 2024-04-26 16:31:16 -07:00
Emil Pedersen
84dae7c37a [DebugInfo] Add support for constant debug values 2024-04-26 16:31:16 -07:00
Emil Pedersen
8ad3066011 [DebugInfo] Fix implicit deref on arithmetic expressions 2024-04-26 16:31:16 -07:00
Emil Pedersen
c2c16f53dd [DebugInfo] Fix undef debug values being removed 2024-04-26 16:31:16 -07:00
Emil Pedersen
450db6e530 [DebugInfo] Add special cases for copy forwarding 2024-04-24 18:23:39 -07:00
Emil Pedersen
523a769e34 [DebugInfo] [Mem2Reg] Move debug info promotion to salvageDebugInfo 2024-04-23 13:12:21 -07:00
Adrian Prantl
15fd443be6 Merge pull request #73090 from augusto2112/mangling-abi-name-deb
Respect the module ABI name when mangling for the debugger
2024-04-18 09:56:00 +02:00
Augusto Noronha
01bd68e8a2 Respect the module ABI name when mangling for the debugger
The mangled name produced for the debugger should match the one emitted
in reflection metadata, otherwise LLDB will not be able to lookup types
when the module is compiled with the -module-abi-name flag.

rdar://125848324
2024-04-17 13:56:18 -07:00
Emil Pedersen
a9d89e5f17 [DebugInfo] Fix dead-store-elim test for 32 bits
rdar://126620071
2024-04-17 11:01:30 -07:00
Adrian Prantl
6357d12cfc Merge pull request #73009 from Snowy1803/debuginfo-small-fixes
[Debuginfo] Small fixes
2024-04-17 00:03:53 +02:00
Emil Pedersen
4a543c8d45 [DebugInfo] Salvage Debug Info in Swift Function Passes
Salvage Debug Info was only being called for simplifications, and not
for function passes written in Swift. Salvage Debug Info is now called
for both cases.
2024-04-16 10:54:48 -07:00
Emil Pedersen
3136d2eac4 [DebugInfo] [IRGen] Use instruction column number for variables
The source location for the variable should be the value in VarInfo if set,
otherwise it should use the location of the instruction. Both ways should
be consistent, and as we use column number if VarInfo is set, we have to do
it if isnt, too.
2024-04-16 10:28:02 -07:00
Artem Chikin
01d891ad99 Merge pull request #72834 from artemcm/UpstreamVisionOS
Introduce visionOS Platform
2024-04-15 09:33:49 -07:00
Artem Chikin
1f14158a1d Introduce VisionOS Platform
This change introduces a new compilation target platform to the Swift compiler - visionOS.

- Changes to the compiler build infrastrucuture to support building compiler-adjacent artifacts and test suites for the new target.
- Addition of the new platform kind definition.
- Support for the new platform in language constructs such as compile-time availability annotations or runtime OS version queries.
- Utilities to read out Darwin platform SDK info containing platform mapping data.
- Utilities to support re-mapping availability annotations from iOS to visionOS (e.g. 'updateIntroducedPlatformForFallback', 'updateDeprecatedPlatformForFallback', 'updateObsoletedPlatformForFallback').
- Additional tests exercising platform-specific availability handling and availability re-mapping fallback code-path.
- Changes to existing test suite to accomodate the new platform.
2024-04-10 09:38:02 -07:00
Meghana Gupta
7fbfa59ad4 Merge pull request #72922 from meg-gupta/moredisable
Disable and fix some failing tests in CI
2024-04-09 23:57:15 -07:00
Kuba (Brecka) Mracek
f9ed12d781 Merge pull request #72716 from kubamracek/embedded-build-macos-as-14
[embedded] Build the macOS Embedded Stdlib with a recent deployment target
2024-04-09 19:11:08 -07:00
Meghana Gupta
9e79964dd4 Disable DebugInfo tests on watchos 2024-04-09 11:00:29 -07:00
Emil Pedersen
512ac6cc31 Merge pull request #72860 from Snowy1803/salvage-debug-info-tuple
[DebugInfo] Salvage debug info for tuples
2024-04-05 20:16:24 -07:00
Emil Pedersen
1e7dc51cd6 [DebugInfo] Add salvageDebugInfo support for tuples 2024-04-05 15:34:36 -07:00
Emil Pedersen
efa09088ac Revert "[DebugInfo][SIL] Introduce the 'implicit' attribute for debug variable"
This reverts commit e63632fda8.

rdar://125939953
2024-04-04 17:23:32 -07:00
Emil Pedersen
e8ce02e0a3 [DebugInfo] Salvage debug info for allocations in SILSROA 2024-04-02 11:34:23 -07:00
Kuba Mracek
eebb48469a [embedded] Adjust tests for the embedded stdlib deployment target bump 2024-03-29 21:17:29 -07:00
Emil Pedersen
4c8beefff4 [DebugInfo] Salvage debug info for stores removed by DeadObject-Elim
rdar://124283055
2024-03-26 10:02:34 -07:00