swift-ci
73883dd0b3
Merge remote-tracking branch 'origin/main' into rebranch
2023-01-20 10:48:41 -08:00
Alex Hoppen
069f382023
Disable rdar74087329-debug-scope-trampoline-blocks.swift
...
This is failing on the Linux bots. Let’s disable the test for now. #63107 tracks the actual failure.
2023-01-20 19:40:24 +01:00
swift-ci
3ae74b741d
Merge remote-tracking branch 'origin/main' into rebranch
2023-01-18 14:15:48 -08:00
Anton Korobeynikov
0763e4b98c
Diagnose differentiable functions returning Void w/o inout arguments. ( #63080 )
...
Such functions are not differentiable and therefore should be rejected.
Fixes #62923 , fixes #58095
2023-01-18 13:57:51 -08:00
Erik Eckstein
712fd7922b
Merge remote-tracking branch 'origin/main' into rebranch
2023-01-09 08:48:47 +01:00
Anthony Latsis
746c7aff7d
[NFC] AST: Rename CompoundIdentTypeRepr → MemberTypeRepr
2023-01-07 07:14:41 +03:00
Anton Korobeynikov
6d657c90af
[AutoDiff] Refine debug info emitted for adjoint buffers ( #62779 )
...
Single input variable might yield multiple adjoint buffers if control flow is involved. Therefore we cannot simply transfer debug info from the input variable: it will be invalid as we will end with multiple locations for a single "source" variable, and, even worse, might end with conflicting debug info as different buffers might be optimized
differently.
We do:
- Drop input argument number. This must be unique and we're not
- Correct variable name
2023-01-06 14:34:16 -08:00
swift-ci
328e716489
Merge remote-tracking branch 'origin/main' into rebranch
2022-12-12 07:33:19 -08:00
Nate Chandler
8d8577e5b0
[SIL] Removed Indirect_In_Constant convention.
...
It is no different from @in.
Continue parse @in_constant in textual and serialized SIL, but just as
an alias for @in.
2022-12-09 21:54:00 -08:00
swift-ci
84236ec390
Merge remote-tracking branch 'origin/main' into rebranch
2022-12-04 01:13:44 -08:00
Anthony Latsis
d553d0466a
Merge pull request #62355 from AnthonyLatsis/sr-no-sr
...
[NFC] Migrate remnant Jira issue references to GitHub issues
2022-12-04 12:08:25 +03:00
Anthony Latsis
4cb63c8a0f
[NFC] Migrate remnant Jira issue references to GitHub issues
2022-12-04 08:20:34 +03:00
Erik Eckstein
53fa067256
tests: don't match alignment in an AutoDiff test
2022-12-01 15:26:27 +01:00
Allan Shortlidge
164ac421d6
Sema: Lift restriction preventing use of #_hasSymbol on non-Darwin platforms.
...
An early approach to codegen for `#_hasSymbol` relied on the Darwin platfom SDK, but now that the feature lowers directly to NULL checks in LLVM IR a platform restriction is no longer needed.
However, the tests for `#_hasSymbol` remain unsupported on Windows since that OS does not support weak linking.
2022-11-30 14:58:28 -08:00
Xi Ge
c5a7eff0c9
Merge pull request #62147 from tshortli/has-symbol-sil-instruction
2022-11-18 04:34:24 -08:00
Robert Widmann
d6cffbbe00
Merge pull request #62145 from CodaFi/synfonia
...
Delete libSyntax
2022-11-17 09:57:37 -08:00
Anton Korobeynikov
a5e83817b2
Reapply "Implement several peephole optimizations to unblock further optimizations of autodiff code" with correctness fix ( #62012 )
...
* Implement several peephole optimizations to unblock further optimizations of autodiff code
1. Simplify differentiable_function_extract of differentiable_function.
Before:
%x = differentiable_function(%orig, %jvp, %vjp)
%y = differentiable_function_extract [original] %x
After:
%y = %orig
2. Push conversion instructions inside of differentiable_function.
This unblocks inlining and specialization.
Before:
%x = differentiable_function(%orig, %jvp, %vjp)
%y = convert_escape_to_noescape %x
After:
%orig' = convert_escape_to_noescape %orig
%jvp' = convert_escape_to_noescape %jvp
%vjp' = convert_escape_to_noescape %vjp
%y = differentiable_function(%orig', %jvp', %vjp')
3. Another peephole is needed for reordering function conversion instructions to enable full inlining:
(convert_escape_to_noescape (convert_function (thin_to_thick_function x)))
=>
(convert_escape_to_noescape (thin_to_thick_function (convert_function x)))
Co-authored-by: Dan Zheng <danielzheng@google.com >
2022-11-16 23:21:27 -08:00
Allan Shortlidge
abdc4d9112
SILGen: Use has_symbol instruction in SILGen.
2022-11-16 16:07:29 -08:00
Robert Widmann
4c162b2aeb
Delete libSyntax
2022-11-16 14:52:28 -08:00
swift-ci
fd6fd76dae
Merge pull request #42513 from jsoref/spelling-silgen
...
Spelling silgen
2022-11-09 23:28:43 -08:00
Josh Soref
9a6bf46c0f
Spelling silgen
...
* actually
* arbitrary
* cargo-culted
* clazz
* constrained
* continuation
* coordinator
* coroutine
* derivative
* destroyer
* given
* have
* imported
* initialization
* items
* necessarily
* occurring
* omitting
* overridden
* parameter
* possible
* predecessor
* preparation
* resilience
* should
* struct
* that
* the
* throwing
* unexpectedly
* uniqueness
* using
* value
* villain
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
2022-11-09 21:44:17 -05:00
Erik Eckstein
70981cf95f
tests: fix misspelled check prefixes
...
Fix the common error of using underscores instead of dashes.
In the rebranch this is an error (lit got more picky), but it also makes sense to fix the tests in the main branch
2022-11-08 17:27:48 +01:00
Allan Shortlidge
73bf294b75
AutoDiff: Add #_hasSymbol SILGen tests for @differentiable and @derivative(of:) functions.
2022-11-02 21:38:33 -07:00
Nate Chandler
ed623d7b64
[NFC] Shortened SIL [init] flag.
...
Instead of writing out [initalization] for some instructions, use [init]
everywhere.
2022-10-27 10:38:54 -07:00
Meghana Gupta
5e20112e0c
Revert "Implement several peephole optimizations to unblock further optimizations of autodiff code ( #60520 )"
...
This reverts commit 2f5492f572 .
2022-10-25 13:35:14 -07:00
Erik Eckstein
ed54253d29
SIL Optimizer: remove legacy C++ passes
...
They were used as a backup during the transition to Swift passes. Now they are not needed anymore.
2022-10-20 18:31:06 +02:00
Allan Shortlidge
d0028e098e
Test: Improve test coverage for TBDGen.
2022-10-19 12:35:30 -07:00
Adrian Prantl
75c42ed43b
[swift-reflection-dump] Turn --binary-filename into a positional argument.
...
I mostly find it annoying to type and this makes the usage of the tool more
consistent with other similar tools like dwarfdump or otool.
2022-10-12 11:18:59 -07:00
Anton Korobeynikov
b926c18f9a
Fix adjoint generation of store_borrow ( #61431 )
...
Apparently #60467 changed the semantics of store_borrow as it started to produce a value. This change was not documented in SIL spec and not all places were updated to new semantics.
Now the adjoint of store_borrow should be generated for the value of instruction itself, not the destination address
2022-10-05 04:06:57 -07:00
Anton Korobeynikov
2f5492f572
Implement several peephole optimizations to unblock further optimizations of autodiff code ( #60520 )
...
* Implement several peephole optimizations to unblock further optimizations of autodiff code
1. Simplify differentiable_function_extract of differentiable_function.
Before:
%x = differentiable_function(%orig, %jvp, %vjp)
%y = differentiable_function_extract [original] %x
After:
%y = %orig
2. Push conversion instructions inside of differentiable_function.
This unblocks inlining and specialization.
Before:
%x = differentiable_function(%orig, %jvp, %vjp)
%y = convert_escape_to_noescape %x
After:
%orig' = convert_escape_to_noescape %orig
%jvp' = convert_escape_to_noescape %jvp
%vjp' = convert_escape_to_noescape %vjp
%y = differentiable_function(%orig', %jvp', %vjp')
3. Another peephole is needed for reordering function conversion instructions to enable full inlining:
(convert_escape_to_noescape (convert_function (thin_to_thick_function x)))
=>
(convert_escape_to_noescape (thin_to_thick_function (convert_function x)))
* Remove broken disabled folding transform:
- It is disabled
- It is broken
- It is certainly not something mandatory
Co-authored-by: Dan Zheng <danielzheng@google.com >
2022-09-26 09:44:04 -07:00
Anthony Latsis
6907933778
Merge pull request #60992 from AnthonyLatsis/migrate-test-suite-to-gh-issues-25
...
Gardening: Migrate test suite to GH issues p. 25
2022-09-24 03:16:00 +03:00
Anthony Latsis
ece9a0d3d3
Gardening: Migrate test suite to GH issues: AutoDiff/Sema
2022-09-22 20:28:04 +03:00
Anthony Latsis
1b2e4f983e
Gardening: Migrate test suite to GH issues: AutoDiff/compiler_crashers
2022-09-22 20:28:04 +03:00
Anthony Latsis
7d40b283f9
Gardening: Migrate test suite to GH issues: AutoDiff/compiler_crashers_fixed (2/2)
2022-09-22 20:27:52 +03:00
Anthony Latsis
bd286065ff
Gardening: Migrate test suite to GH issues: AutoDiff/validation-test
2022-09-19 02:46:54 +03:00
Anthony Latsis
189837eb03
Gardening: Migrate test suite to GH issues: AutoDiff/TBD
2022-09-19 02:44:03 +03:00
Anthony Latsis
549a6a9d7f
Gardening: Migrate test suite to GH issues: AutoDiff/SILOptimizer
2022-09-19 02:44:03 +03:00
Anthony Latsis
295ded6850
Gardening: Migrate test suite to GH issues: AutoDiff/SILGen
2022-09-19 02:44:03 +03:00
Anthony Latsis
b7bbd43be3
Gardening: Migrate test suite to GH issues: AutoDiff/SIL
2022-09-19 02:44:03 +03:00
Anthony Latsis
8872fe6b30
Gardening: Migrate test suite to GH issues: AutoDiff/compiler_crashers_fixed (1/2)
2022-09-19 02:36:02 +03:00
Slava Pestov
79ed990728
AST: Replace TupleTypeRepr's ellipsis with PackExpansionTypeRepr
2022-09-07 12:35:54 -04:00
Anton Korobeynikov
c89e270b7d
Implement value witness table for @differentiable functions ( #60875 )
...
@differentiable function is actually a triple (function, jvp, vjp). Previously normal thick function value witness table was used. As a result, for example, only function was copied, but none of differential components.
This was the cause of uninitialized memory accesses and subsequent segfaults.
Should fix now unavailable TF-1122
2022-09-01 03:09:39 -07:00
Nate Chandler
3c78a0bb90
[SILGen] Only lexical types get lexical lifetimes.
...
Only emit `begin_borrow [lexical]` and only mark `alloc_stack`s
`[lexical]` when the variable in question's lifetime is lexical, not
eager move.
2022-08-22 15:28:00 -07:00
Holly Borla
8713d78704
[PrintOptions] Print explicit 'any' in SIL.
2022-08-18 01:15:12 -04:00
Slava Pestov
b1182ebc15
Sema: Improved check for failure to bind an extension
...
Calling computeExtendedNominal() won't catch the case where the
extended type did not exist at extension binding time but then
appeared later, like an inferred associated type witness for
example.
2022-08-02 23:12:24 -04:00
Anton Korobeynikov
8fa3d2f863
Add regression test for #59467 ( #60158 )
...
* Add S4TF crasher test
* Unbreak the test
Co-authored-by: Philip Turner <philipturner.AR@gmail.com >
Resolves #59467
2022-07-20 15:05:16 -07:00
Anton Korobeynikov
6e2c4faa34
[AutoDiff] Lookup for custom derivatives in non-primary source files ( #58965 )
...
* Lookup for custom derivatives in non-primary source files after typecheck is finished for the primary source.
This registers all custom derivatives before autodiff transformations and makes them available to them.
Fully resolves #55170
2022-07-18 11:52:02 -07:00
Pavel Yaskevich
86165291aa
[TypeChecker] Change the way for-in statement in type-checked
...
Instead of asking SILGen to build calls to `makeIterator` and
`$generator.next()`, let's synthesize and type-check them
together with the rest of for-in preamble. This greatly simplifies
interaction between Sema and SILGen for for-in statements.
2022-05-30 23:17:41 -07:00
Ben Barham
efc9469444
Merge pull request #58975 from bnbarham/make-features-consistent
...
[Tests] Make OS features consistent
2022-05-25 16:02:43 -07:00
Philip Turner
c74cbce95a
Fix incorrect derivative ( #41423 )
2022-05-24 23:32:04 -07:00