Commit Graph

13 Commits

Author SHA1 Message Date
Anthony Latsis
17fc00f8a7 [test] IRGen: Adjust FileCheck patterns for new nuw attribute in upstream LLVM
This attribute was introduced in
7eca38ce76d5d1915f4ab7e665964062c0b37697 (llvm-project).

Match it using a wildcard regex, since it is not relevant to these
tests.

This is intended to reduce future conflicts with rebranch.
2025-05-04 03:28:56 +01:00
Ellie Shin
f405ad4b95 Update tests 2024-07-10 19:20:45 -07:00
Ellie Shin
30669fca65 Currently when checking if resilience check can be bypassed within a package,
we only check if the loaded module is built from a package interface. This is
not enough as a binary module could just contain exportable decls if built with
experimental-skip-non-exportable-decls, essentially resulting in content equivalent
to interface content. This might be made a default behavior so this PR requires
a module to opt in to allow non-resilient access by a participating client in the
same package.

Since it affects module format, SWIFTMODULE_VERSION_MINOR is updated.

rdar://123651270
2024-03-01 15:13:58 -08:00
Ellie Shin
4bd9e2524c More cleanup 2024-02-15 13:50:18 -08:00
Ellie Shin
d7516fa00f Clean up 2024-02-15 13:27:12 -08:00
Ellie Shin
8d733cbe4b Rename package-bypass-resilience-optimization -> experimental-package-bypass-resilience 2024-02-15 13:14:53 -08:00
Ellie Shin
0802ff507e Move bypassing resilience in package logic to
isResilient(ModuleDecl, ResilienceExpansion).

isResilient() returns the decl's resilience by definition
and should not be altered whether bypassing optimization
is enabled or not. The overloaded isResilient(ModuleDecl..)
is used for accessing a decl from a client module, which is
the appropriate place to opt in for non-resilience in package.

Resolves rdar://123031292
2024-02-15 13:04:51 -08:00
Ellie Shin
7d4e5678c7 Compare the package names of the accessing module and the decl's defining module.
Update tests.
2024-02-13 19:11:32 -08:00
Ellie Shin
4588cc2261 Support bypassing resilience checks for package decls at use site in a package.
By default package decls are treated as resilient, similar to public (non-frozen).
This PR adds support to allow direct access to package decls at use site if opted-in.
Requires the loaded module to be a binary module in the same package.

Resolves rdar://121626315
2024-02-13 19:09:31 -08:00
Ellie Shin
c24a003309 Treat package as resilient as non-frozen public by default.
If the defining module is built resiliently, treat the package decl as resilient,
just as we do for public decls.
Access methods to `package` should be the same as for non-frozen `public`, i.e. indirect.
Added tests for SIL/IR wrt serialization and indirect access with/out resilience enabled.

Resolves rdar://118947451
2024-01-22 09:56:59 -08:00
Robert Widmann
de4cfa75e7 Add Additional Gates to Package Test
Restrict this test so it doesn't run against targets that support ptrauth or non-standard word widths.

Fixes rdar://118336120
2023-11-27 17:44:07 -07:00
Robert Widmann
52155fe141 More Gates 2023-11-08 09:45:44 -07:00
Robert Widmann
059c9cb8d4 Tests 2023-11-07 23:54:08 -07:00