Commit Graph

2345 Commits

Author SHA1 Message Date
Michael Gottesman
0c49657a0e [docs] Add a section to DebuggingTheCompiler on debugging compiler failures in LLDB.
I ran into such an issue and realized I didn't know how to dump SIL from LLDB
and more importantly that it was not documented anywhere. Now it is documented
and I can avoid bugging Jim Ingham on this topic ever again.
2017-10-11 14:44:29 -07:00
Max Moiseev
f8e7e4bc0d Update ContinuousIntegration.md 2017-10-10 12:58:30 -07:00
Max Moiseev
aba45a641e Elaborate what "test compiler performance" actually does. 2017-10-10 11:53:56 -07:00
Max Moiseev
436e521651 [doc] Document "please test compiler performance" 2017-10-10 09:54:53 -07:00
Roman Levenstein
5e67f755e0 Remove the -sil-serialize-all option 2017-10-04 14:20:53 -07:00
Slava Pestov
c272d41e2f Re-apply "SIL: Remove special meaning for @_semantics("stdlib_binary_only")"
With -sil-serialize-all gone, this no longer means anything; just
don't declare the function as @_inlineable instead.

Fixes <rdar://problem/34564380>.
2017-10-04 14:07:52 -07:00
Jordan Rose
aab5f7aa4f Revert "SIL: Remove special meaning for @_semantics("stdlib_binary_only")" (#12270)
It still affects StdlibUnittest, which is still using -sil-serialize-all.
2017-10-04 12:49:21 -07:00
Slava Pestov
e806b6248d SIL: Remove dynamic_method instruction 2017-10-04 03:53:16 -07:00
Slava Pestov
7bf3b90b62 SIL: Split off objc_method / objc_super_method from class_method / super_method
This replaces the '[volatile]' flag. Now, class_method and
super_method are only used for vtable dispatch.

The witness_method instruction is still overloaded for use
with both ObjC protocol requirements and Swift protocol
requirements; the next step is to make it only mean the
latter, also using objc_method for ObjC protocol calls.
2017-10-03 22:13:31 -07:00
Slava Pestov
0fad13eeba SIL: Remove special meaning for @_semantics("stdlib_binary_only")
With -sil-serialize-all gone, this no longer means anything; just
don't declare the function as @_inlineable instead.

Fixes <rdar://problem/34564380>.
2017-10-03 13:48:22 -07:00
Michael Ilseman
9d444aefd9 [docs] stdlib prog-man: Document @_silgen_name use (#12125)
Add a description of `@_silgen_name` to the standard library programmer's manual.
2017-09-27 17:18:03 -07:00
Saleem Abdulrasool
87250c24e5 Merge pull request #12055 from compnerd/xwindows
build: improve the Windows build infrastructure
2017-09-26 16:26:30 -07:00
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