Commit Graph

2383 Commits

Author SHA1 Message Date
John McCall
fc9a7b72ee Merge pull request #12057 from rjmccall/sil-nodes
Divide the SIL concepts of values and instructions
2017-09-25 10:12:42 -07:00
Doug Gregor
f2f70b86ea Minor fix to generics manifesto, suggested by Slava Pestov. 2017-09-25 09:03:23 -07:00
Doug Gregor
043ee1d66c Merge pull request #12038 from BasThomas/patch-1
Update statuses of generic proposals
2017-09-25 09:02:19 -07:00
John McCall
ab3f77baf2 Make SILInstruction no longer a subclass of ValueBase and
introduce a common superclass, SILNode.

This is in preparation for allowing instructions to have multiple
results.  It is also a somewhat more elegant representation for
instructions that have zero results.  Instructions that are known
to have exactly one result inherit from a class, SingleValueInstruction,
that subclasses both ValueBase and SILInstruction.  Some care must be
taken when working with SILNode pointers and testing for equality;
please see the comment on SILNode for more information.

A number of SIL passes needed to be updated in order to handle this
new distinction between SIL values and SIL instructions.

Note that the SIL parser is now stricter about not trying to assign
a result value from an instruction (like 'return' or 'strong_retain')
that does not produce any.
2017-09-25 02:06:26 -04:00
Manav Rathi
82d6780383 Minor improvements to the Python linter (#12079)
* Mention utils/python_lint.py in docs/ContinuousIntegration.md

* Improve error messages in utils/python_lint.py

* Make python_lint.py fail if required modules are not found

Previously, it returned 0 in such a case, which is considered as a
successful exit.

* Continue returning success when missing modules [python_lint.py]

Reverts ffd3b7832f
2017-09-23 23:23:54 -04:00
Saleem Abdulrasool
27d051a6c3 build: improve the Windows build infrastructure
Rather than use the `INCLUDE` and `LIB` environment variables to build
the Windows code, use the `UniversalCRTSdkDir`, `UCRTVersion`, and
`VCToolsInstallDir` variables.  Using these we can compute the right set
of include directories and library search paths for the various
architectures.  This will enable us to build multiple variants of the
Windows stdlib at the same time.

Additionally, rather than relying on the magic environment variables to
be processed by the driver, pass them explicitly to the driver through
the build system.  This also is needed to allow parallel builds of
various architecture variants of the stdlib on Windows.
2017-09-23 16:08:42 -07:00
Graydon Hoare
da98f8a101 [docs] Fix typo. 2017-09-22 22:23:11 -07:00
Bas Broek
0e6bb98c5c Update SE-0157 status 2017-09-21 11:49:11 +02:00
Bas Broek
0caa44e7bd Update statuses of generic proposals 2017-09-21 11:44:18 +02:00
Thomas Roughton
a078dca4aa Minor adjustments to Windows build instructions (#11112)
* Make minor adjustments to Windows instructions

* Clean up spacing and add back time estimates.

* Address comma/dependent clause nitpicks
2017-09-17 15:10:59 -04:00
Joe Groff
78d75428d6 SILGen: Lower key path subscript indexes.
And fill out SIL support for parsing, printing, and serializing key path
patterns with captured indexes.
2017-09-15 10:00:32 -07:00
Greg Parker
b7f744c302 [test] Replace CPU=i386_or_x86_64 with CPU=i386 || CPU=x86_64. (#11889) 2017-09-12 19:34:08 -07:00
Michael Ilseman
15a8403f33 Update StandardLibraryProgrammersManual.md
Document @unsafe_no_objc_tagged_pointer
2017-09-12 15:28:09 -07:00
Roman Levenstein
df40807402 Provide a description about the optimizer counters analysis
It described the overall idea behind the optimizer counters, how to collect and record them and how to analyze them
2017-09-10 21:47:55 -07:00
Alex Hoppen
1c7e289b96 [Mangling] Adjust subscript mangling to not include "subscript"
Change the mangling of accessors to have a variable or subscript node
as their only child node, while subscript nodes no longer contain a decl
name.
2017-09-10 19:44:07 +02:00
Graydon Hoare
372944fdbe [docs] Update to reflect simpler comparisons and module-grouping 2017-09-08 11:34:50 -07:00
Arnold Schwaighofer
f5818e87d2 Merge pull request #11788 from aschwaighofer/outline_bridged_objc_methods
Outline bridged Objective C methods
2017-09-07 08:09:35 -07:00
Maxim Moiseev
e5f1ae5c34 process-stats-dir.py uses double-dash for arguments [NFC] 2017-09-06 14:28:40 -07:00
Arnold Schwaighofer
48bd2bba76 Mangling changes for outlined Objective-C method calls
rdar://33387700
2017-09-06 08:37:30 -07:00
swift-ci
b2694371e4 Merge pull request #11647 from graydon/compiler-performance-doc 2017-09-01 14:40:38 -07:00
Graydon Hoare
225612f314 [docs] Refresh TOC. 2017-09-01 13:28:10 -07:00
Graydon Hoare
6f285c09f2 [docs] Expand discussion of counters and stats-reporting. 2017-09-01 13:27:57 -07:00
Graydon Hoare
023946192e [docs] Prefer 'scale-test --invert-result' to 'not scale-test' 2017-09-01 13:27:24 -07:00
Graydon Hoare
1526a0be83 [docs] Mention more diagnostic and reduction tools. 2017-09-01 13:26:43 -07:00
Graydon Hoare
2026950fd0 [docs] Fix inaccuracies and typos. 2017-09-01 13:25:55 -07:00
Xi Ge
7f29b362d6 SourceKitd: Rename SemaToken to ResolvedCursorInfo. NFC (#11680) 2017-08-29 15:34:15 -07:00
Xi Ge
c47b2fd60e [Docs] Add the documentation for implementing Swift local refactoring. (#11657) 2017-08-28 12:22:00 -07:00
Graydon Hoare
b825568633 [docs] Change section name, add TOC. 2017-08-28 10:59:29 -07:00
Graydon Hoare
f02e788f19 [docs] Expand discussion of easier forms of bisection and reduction. 2017-08-27 11:01:33 -07:00
Graydon Hoare
39ff8ae158 [docs] Fix typo. 2017-08-27 10:58:17 -07:00
salmanjamil
7fd9e0bb04 Fixed a typo 2017-08-27 19:53:20 +05:00
Graydon Hoare
14f2b09620 [docs] Add a document about compiler performance analysis. 2017-08-27 02:00:26 -07:00
Erik Eckstein
375526ae6e fix typo in SIL.rst 2017-08-23 09:15:49 -07:00
Erik Eckstein
9c6fe76927 SIL, IRGen: add instructions "object" and "global_value” to support statically initialized objects.
This commit contains:
-) adding the new instructions + infrastructure, like parsing, printing, etc.
-) support in IRGen to generate global object-variables (i.e. "heap" objects) which are statically initialized in the data section.
-) IRGen for global_value which lazily initializes the object header and returns a reference to the object.

For details see the documentation of the new instructions in SIL.rst.
2017-08-23 09:15:49 -07:00
Erik Eckstein
c1e98b9df2 mangling: Add mangling for outlined global variables 2017-08-23 09:15:01 -07:00
Erik Eckstein
1ab582e121 SIL: A new representation of static initializers for global variables.
Static initializers are now represented by a list of literal and aggregate instructions in a SILGlobalVariable.
For details see SIL.rst.

This representation is cleaner than what we did so far (point to the initializer function and do some pattern matching).

One implication of that change is that now (a subset of) instructions not necessarily have a parent function.
Regarding the generated code it's a NFC.
Also the swift module format didn't change because so far we don't serializer global variables.
2017-08-23 09:15:01 -07:00
Argyrios Kyrtzidis
60a91bb736 [refactoring] Upstreaming the implementation for Swift local refactoring (#11568)
[refactoring] Upstreaming the implementation for Swift local refactoring
2017-08-22 16:50:16 -07:00
Amr Aboelela
4bf6f5475d Android: adding swift suffix to icu generated libs to resolve conflict with Android's icu libs 2017-08-21 16:17:17 -07:00
Michael Gottesman
6a6efd9f4e Merge pull request #11463 from KingOfBrian/documentation/DeveloperOnboarding
Update README.md
2017-08-21 14:00:33 -07:00
Andrew Trick
5aac427ee0 SIL Ownership: Remove consumptionKind from SIL unconditional cast and related logic.
Remove the cast consumption kind from all unconditional casts. It
doesn't make sense for unconditional casts, complicates SIL ownership,
and wasn't fully supported for all variants. Copies should be
explicit.
2017-08-18 20:44:54 -07:00
Michael Ilseman
fc8cbc4750 [docs] Additions/structure for stdlib programmer's manual
Flesh out more sections of the manual, restructure the wants and TODOs.
2017-08-18 17:56:25 -07:00
ematejska
a7b27a5071 Merge pull request #11507 from ematejska/update_version_to_4_1
Updating compiler versions (4.1, 3.3, able to do swift-version 5)
2017-08-18 17:48:20 -07:00
Ewa Matejska
1272cd3aac Making master call itself 4.1, updating the swift 3 compatiblity mode to be 3.3 (from 3.2), adding ability to pass swift-version 5. Importer work not done yet. 2017-08-17 20:57:01 -07:00
Brian King
28de02ea8b Remove day-to-day language. 2017-08-17 20:39:43 -04:00
Deyton Sehn
b7d9eac792 [Docs] Note that commit access is required to trigger CI
I couldn't find this documented anywhere else.
2017-08-16 15:31:07 -07:00
Brian King
49bb53a0e3 Change from SWIFT_BUILD_ROOT to SWIFT_BUILD_DIR in examples. SWIFT_BUILD_ROOT means something else in the build script. 2017-08-15 20:31:32 -04:00
Brian King
797c0939f2 Emphasize lit testing 2017-08-14 19:37:45 -04:00
Brian King
22fc53c660 Move note on writing long tests into the section on writing tests 2017-08-14 19:26:46 -04:00
Amr Aboelela
fbdc597c50 [docs] Update Android instructions for icu. (#11404)
You will also need to push the icu libraries, to be able to run the "Hello Android" application, in Android devices.
2017-08-11 15:32:19 -07:00
George Karpenkov
efe143c2f4 Adding support for -sanitize=fuzzer flag (#11381)
Similarly to Clang, the flag enables coverage instrumentation, and links
`libLLVMFuzzer.a` to the produced binary.
Additionally, this change affects the driver logic, and enables the
concurrent usage of multiple sanitizers.
2017-08-07 18:16:51 -07:00