Commit Graph

2191 Commits

Author SHA1 Message Date
Joe Shajrawi
0d0cac357a retain_value_addr and release_value_addr SIL instructions: take as an input an address, load the value inside it and call retain_value and release_value respectively 2017-04-30 10:23:55 -07:00
Joe Shajrawi
d17258cac7 @in_constant calling convention - part of passing large loadable types by address 2017-04-30 10:13:02 -07:00
mishal_shah
02b1c99dc2 [Docs] Add source compatibility pull request testing info and fix table markdown 2017-04-24 17:33:12 -07:00
practicalswift
7eb7d5b109 [gardening] Fix 100 typos. 2017-04-18 17:01:42 +02:00
Jordan Rose
4e04061861 Merge pull request #8767 from jrose-apple/mangle-typealiases-better
Improve the mangling of USRs in several ways.
2017-04-17 13:32:24 -07:00
Jordan Rose
2d84981fc2 Improve the mangling of typealiases.
- Allow them to use substitutions.
- Consistently use 'a' as a mangling operator.
- For generic typealiases, include the alias as context for any generic
  parameters.

Typealiases don't show up in symbol names, which always refer to
canonical types, but they are mangled for debug info and for USRs
(unique identifiers used by SourceKit), so it's good to get this
right.
2017-04-17 11:31:15 -07:00
Michael Gottesman
e494e3fbfe [lexicon] Define irrefutable and refutable pattern in the Lexicon.
This term is used often times in SILGen/AST. This just defines the concept at a
high level in a centralized place.
2017-04-14 16:07:56 -07:00
Slava Pestov
0d0dc207c0 AST: Mangling for primitive AnyObject
A protocol composition with an explicit 'AnyObject' member is
now mangled as <protocol list> 'Xl'. For subclass existentials,
I changed the mangling from <protocol list> <class> 'XE' to
<protocol list> <class> 'Xl'.

Not used for anything just yet.
2017-04-13 21:17:07 -07:00
Slava Pestov
b5ae8c4de6 AST: Add mangling for class-constrained existentials 2017-04-12 00:07:29 -07:00
Ben Emdon
79675c76c0 Added end braces to code example 2017-04-04 22:46:42 -04:00
Erik Eckstein
9ce3df106e Add two new array semantics functions.
array.append_element(newElement: Element)
array.append_contentsOf(contentsOf newElements: S)

And allow early inlining of them.
Those functions will be needed to optimize Array.append(contentsOf)
2017-03-31 15:31:57 -07:00
Qasim Iqbal
577913a476 [docs][Android] Update location of Android NDK's libc++ and libgcc 2017-03-30 12:16:54 -07:00
Bob Wilson
2ee382efc3 Merge pull request #8330 from bob-wilson/abi-manifesto-jiras
Update the ABI Stability manifesto with more JIRA issue numbers.
2017-03-27 11:32:14 -07:00
swift-ci
41ab3fe1fc Merge pull request #8346 from eeckstein/vararg-mangling 2017-03-26 12:47:42 -07:00
John McCall
74a4310525 Merge pull request #8349 from rjmccall/begin_end_access
Add begin_access and end_access instructions.
2017-03-26 13:28:01 -04:00
John McCall
57ecaa7fae Add begin_access and end_access instructions.
NFC because we're not actually emitting them.
2017-03-26 04:37:05 -04:00
Slava Pestov
a3e6a39e39 ABI.rst: Update for new 'TV' mangling 2017-03-25 20:21:18 -07:00
Erik Eckstein
327017a65b Mangling: support mangling of varargs even if it's not the last argument.
Example:
func a(arr: Int..., n: String)

fixes SR-1076
2017-03-25 19:07:52 -07:00
Bob Wilson
b42872da57 Update the ABI Stability manifesto with more JIRA issue numbers.
I filed some additional JIRA issues to track tasks mentioned in the
ABI Stability manifesto. This change just updates the document with those
issue numbers.
2017-03-24 16:53:51 -07:00
Roman Levenstein
415736bd87 Merge pull request #8295 from swiftix/wip-gsb-layout-constrains-fixes
[mangling] Define a mangling for _Class and _NativeClass layout constraints
2017-03-23 08:47:16 -07:00
Hugh Bellamy
8671854674 Properly python lint remaining files 2017-03-23 14:06:46 +07:00
Roman Levenstein
e7503b1502 [mangling] Define a mangling for _Class and _NativeClass layout constraints
I forgot to define the mangling when I introduced these two new layout constraints.
2017-03-22 23:36:40 -07:00
Slava Pestov
ad123467d4 Merge pull request #8054 from hartbit/generics-manifesto-update
Updated the Generics Manifesto
2017-03-17 18:46:28 -07:00
David Hart
290693c00f Remove the version promise for Arbitrary requirements in protocols and Conditional conformances 2017-03-17 07:27:20 +01:00
Hugh Bellamy
68813273cf Update Windows docs for VS2017 2017-03-16 07:43:20 +07:00
Joe Shajrawi
ea4ba25b8a Add consumption kind to UnconditionalCheckedCastValueInst 2017-03-14 13:53:05 -07:00
David Hart
7214c89f8c Updated the Generics Manifesto...
...on the state of the different features.
2017-03-14 09:07:28 +01:00
swift-ci
179424fe51 Merge pull request #8016 from jrose-apple/generic-lexicon 2017-03-10 10:39:21 -08:00
Jordan Rose
9484032ff7 [docs] Add more terms to the Lexicon.
- canonical type
- sugared type
- generic environment
- generic signature
2017-03-10 09:36:12 -08:00
Joe Shajrawi
e161c66873 Merge pull request #8012 from shajrawi/checked_cast_bugfix
conditional checked cast instruction for opaque value types: add support for generic types + change docs per review
2017-03-10 03:47:21 -08:00
Joe Shajrawi
534bb6b172 conditional checked cast instruction for opaque value types: add support for generic types + change docs per review 2017-03-09 17:51:42 -08:00
Alex Langford
9f779d49fa Updating Part 1 of Android doc for building on Ubuntu 16.04 LTS 2017-03-09 13:09:06 -08:00
Joe Shajrawi
33b0cf653f Rename unconditional_checked_cast_opaque to unconditional_checked_cast_value 2017-03-07 18:53:52 -08:00
Joe Shajrawi
ca77872ba8 Merge CheckedCastValueBranch with new master 2017-03-06 17:32:09 -08:00
Joe Shajrawi
1f626304f1 Add support for conditional checked cast instruction for opaque value types + SILGen support for it 2017-03-06 16:35:27 -08:00
practicalswift
9913173afe Merge pull request #7601 from BasThomas/patch-1
[Gardening] Fix indentation of ownership manifesto code blocks
2017-03-06 16:31:37 +01:00
Erik Eckstein
a04a29af4f mangling: efficient mangling of repeated substitutions
Instead of appending a character for each substitution, we now prefix the substitution with the repeat count, e.g.
AbbbbB -> A5B

The same is done for known-type substitutions, e.g.
SiSiSi -> S3i

This significantly shrinks mangled names which contain large lists of the same type, like
  func foo(_ x: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int))

rdar://problem/30707433
2017-03-05 17:41:43 -08:00
Erik Eckstein
fcd79c044d Mangling: consider bound generic types for substitutions
This shrinks the name length if the same bound generic type is used multiple times, like: func foo(_ x: [Int], _ y: [Int])
2017-03-05 17:40:07 -08:00
Christopher Rogers
feb34d9831 Fix typos/grammar in comments. 2017-03-04 16:17:56 +09:00
Slava Pestov
0939e87718 Merge pull request #7768 from kconner/fix-omitted-word-in-ownership-manifesto
Fix an omitted word in the Ownership Manifesto
2017-03-01 13:00:35 -08:00
Greg Parker
6295f3d8b3 Revert "[test] Remove CPU=i386_or_x86_64 hack."
Swift master uses LLVM swift-4.0-branch, which does not yet have
the lit change implementing this syntax.

This reverts commit dfd10ae485.
2017-02-28 14:59:31 -08:00
Joe Shajrawi
4b6cfaf533 Merge pull request #7796 from shajrawi/deinit_existential
Support for deinit of opaque existentials: deinit_existential_opaque instruction + SILGen support
2017-02-27 15:43:32 -08:00
Joe Shajrawi
16b6cb5e1d Support for deinit of opaque existentials: deinit_existential_opaque instruction + SILGen support 2017-02-27 14:46:43 -08:00
Kevin Conner
94e901decc [gardening] Fix an omitted word in the Ownership Manifesto 2017-02-25 15:17:50 -05:00
Roman Levenstein
34815ff9ef [sil-generic-specializer] Do not create specializations for functions marked with @_semantics("optimize.sil.specialize.generic.never")
Those functions are not critical for performance, but their specializations result in a stdlib code bloat.
2017-02-24 14:59:44 -08:00
practicalswift
33a5601ad1 [gardening] Fix typos 2017-02-23 22:46:40 +01:00
Joe Shajrawi
d1dae72877 Merge pull request #7700 from shajrawi/unconditional_checked_cast
Add support for unconditional checked cast instruction for opaque value types + SILGen support for it
2017-02-22 17:18:07 -08:00
Joe Shajrawi
ec1e3ee20e Add support for unconditional checked cast instruction for opaque value types + SILGen support for it 2017-02-22 16:35:46 -08:00
Mishal Shah
b6f2df3d13 [Docs] Update the link in CI doc 2017-02-22 11:46:50 -08:00
Mishal Shah
2d744fc682 [Docs] Add specific preset testing and ASAN info 2017-02-22 11:42:54 -08:00