Commit Graph

10 Commits

Author SHA1 Message Date
Anthony Latsis
55e5618eab [test] Match nocapture to succeed both on main and rebranch
Both the syntax and relative order of the LLVM `nocapture` parameter
attribute changed upstream in 29441e4f5fa5f5c7709f7cf180815ba97f611297.
To reduce conflicts with rebranch, adjust FileCheck patterns to expect
both syntaxes and orders anywhere the presence of the attribute is not
critical to the test. These changes are temporary and will be cleaned
up once rebranch is merged into main.
2025-05-08 23:52:43 +01:00
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
Michael Gottesman
cfe7b69451 Disable moveonly_split_module_source_deinit.swift on arm64e
rdar://110424902
2023-06-30 13:17:15 -07:00
Arnold Schwaighofer
c012196e0f Fix some tests for armv7k 2023-06-23 08:41:17 -07:00
Erik Eckstein
3239400645 convert some IRGen tests to opaque pointers 2023-06-23 06:57:38 -07:00
Arnold Schwaighofer
90c7193651 More IRGen test to move over 2023-06-14 10:49:50 -07:00
Michael Gottesman
2488f1966d [move-only] Make test 32 bit friendly.
rdar://110059596
2023-06-07 18:25:34 -04:00
Michael Gottesman
dcc246b37f [move-only] Add a call to indirectCleanup to make sure that we call llvm.lifetime.end when we emit a call to a deinit via the value witness table. 2023-06-05 03:45:52 -07:00
Michael Gottesman
a52302d384 Some misc fixes for tests. 2023-05-27 23:29:56 -07:00
Michael Gottesman
8579c1924d [move-only] Make sure that we serialize deinits and if we are not able to see the value witness function, call it via the value witness function.
Some notes:

1. I put in both a swiftpm like test case and a library evolution test case. I
also updated the moveonly_deinit serialization swift test to show that we
actually serialize the deinit.

2. I changed when we emit the deinit table to only be when we have a type with
an actual value type destructor. Notably this doesn't include classes today so
as a side-effect, we no longer attempt to devirtualize moveonly class deinits.
This doesn't affect anything we are trying to actually do since we do not
support noncopyable classes today. With that in mind, I changed one test that
was showing that deinit devirtualization worked to use a struct with deinit
instead of a class.

rdar://109679168
2023-05-27 22:07:04 -07:00