Commit Graph

1582 Commits

Author SHA1 Message Date
Graydon Hoare
30b6fdce83 Merge pull request #12429 from graydon/named-lazy-member-loading
Named lazy member loading 1/N
2017-10-24 14:27:04 -07:00
swift-ci
5b0b7f1200 Merge remote-tracking branch 'origin/master' into master-next 2017-10-20 23:09:00 -07:00
Xi Ge
844aeae2d5 Re-apply "libSyntax: create a basic infrastructure for generating libSyntax entities by using Parser." (#12538) 2017-10-20 22:58:28 -07:00
Graydon Hoare
23fba147ee [NamedLazyMemberLoading] Add counters for success/failure. 2017-10-20 22:48:42 -07:00
Graydon Hoare
6bb5ce3d1e [NamedLazyMemberLoading] Add -enable-named-lazy-member-loading option 2017-10-20 22:48:42 -07:00
swift-ci
dbc718884f Merge remote-tracking branch 'origin/master' into master-next 2017-10-20 20:48:57 -07:00
swift-ci
b006d07342 Merge pull request #12294 from anemet/opt-remarks 2017-10-20 20:45:50 -07:00
Adam Nemet
9b9805420d Add optimization remarks
This allows reporting successful and unsuccessful optimizations similar to
clang/llvm.

This first patch adds support for the
options -Rpass=<pass-name-regex> -Rpass-missed=<pass-name-regex>.  These allow
reporting successful/unsuccessful optimization on the compiler output for passes
specified by the regex.  I've also added one missed and one passed remark type
to the inliner to test the infrastructure.

Clang also has the option of collecting these records in an external YAML data
file.  This will be added in a later patch.

A few notes:
* The goal is to use this facility for both user-lever "performance" warnings
and expert-level performance analysis.  There will probably be a flag in the
future differentiating the verbosity.

* The intent is match clang/llvm as much as it makes sense.  On the other hand I
did make some changes.  Unlike in llvm, the emitter is not a pass which
simplifies things.  Also the remark class hierarchy is greatly simplified since
we don't derive from DiagnosticInfo.  We also don't derive from Diagnostic to
support the streaming API for arbitrary named-value pairs.

* Currently function names are printed mangled which should be fixed.
2017-10-20 12:41:37 -07:00
Greg Parker
48a6b9d464 Revert "libSyntax: create a basic infrastructure for generating libSyntax entities by using Parser."
This reverts commit ee7a06276d.
It causes build failures like "'swift/Syntax/SyntaxNodes.h' file not found".
2017-10-19 17:11:48 -07:00
Xi Ge
ee7a06276d libSyntax: create a basic infrastructure for generating libSyntax entities by using Parser. 2017-10-18 17:02:00 -07:00
swift-ci
d1291cd36a Merge remote-tracking branch 'origin/master' into master-next 2017-10-16 22:09:22 -07:00
Erik Eckstein
f343659a75 Mangler: add a dump() function for debugging 2017-10-16 17:30:34 -07:00
swift-ci
1c573717a9 Merge remote-tracking branch 'origin/master' into master-next 2017-10-13 17:09:34 -07:00
Graydon Hoare
2d29292157 [Stats] Document counters in include/swift/Basic/Statistics.def 2017-10-13 15:59:36 -07:00
swift-ci
46cd5f99d2 Merge remote-tracking branch 'origin/master' into master-next 2017-10-10 16:29:37 -07:00
Michael Gottesman
a05f4f6666 [stl-extras] Add a range version of std::accumulate. 2017-10-09 13:36:18 -07:00
swift-ci
025f3a5039 Merge remote-tracking branch 'origin/master' into master-next 2017-09-27 11:49:27 -07:00
David Ungar
9f178f57e2 Merge pull request #12137 from davidungar/fixing-radar-34475709
Moves formerly statically-allocated RecursiveSharedTimer(s) effectively into ASTContext
2017-09-27 11:38:19 -07:00
swift-ci
9a59d0e479 Merge remote-tracking branch 'origin/master' into master-next 2017-09-27 00:49:24 -07:00
Joe Shajrawi
065d1917c3 if 'count' happens to be UINT64_MAX - set it to UINT64_MAX - 1. 2017-09-26 18:55:22 -07:00
David Ungar
443ab7d950 git-clang-format 2017-09-26 18:02:35 -07:00
David Ungar
7759d3cdda Clean up 2017-09-26 18:00:42 -07:00
David Ungar
90b456b116 Use if (auto for getting Stats 2017-09-26 17:32:38 -07:00
David Ungar
a41a3c9fa5 compiles using movable guards 2017-09-26 17:22:58 -07:00
David Ungar
2af86f5cac First compiling run, WIP 2017-09-26 16:07:07 -07:00
Joe Shajrawi
75939510cd PGO: Use ProfileCounter instead of Optional<uint64_t> to hold profile counts 2017-09-26 13:34:46 -07:00
swift-ci
135a4286b5 Merge remote-tracking branch 'origin/master' into master-next 2017-09-25 10:29:30 -07:00
John McCall
6d9294f565 Random improvements for ArrayRefView. 2017-09-25 02:05:23 -04:00
John McCall
4fdccaf737 Allow IntRange to range over enum values. 2017-09-25 02:05:23 -04:00
Bob Wilson
0276b0f89d Merge remote-tracking branch 'origin/master' into master-next 2017-09-23 10:09:35 -07:00
Graydon Hoare
85dda86130 Merge pull request #12071 from graydon/trace-stats-deltas
Trace stats deltas
2017-09-22 22:25:58 -07:00
swift-ci
a448d28b77 Merge remote-tracking branch 'origin/master' into master-next 2017-09-22 18:09:44 -07:00
Calvin Hill
aee81d272f Add Initial platform support for Haiku. (#11583) 2017-09-22 21:06:56 -04:00
Graydon Hoare
205f725d6e [stats] Add UnifiedStatsReporter::FrontendStatsTracer 2017-09-22 19:15:34 -04:00
Graydon Hoare
7e1cf168a8 [stats] Factor out UnifiedStatsReporter fields to a .def file 2017-09-22 02:01:06 -04:00
swift-ci
e8b0e7a81f Merge remote-tracking branch 'origin/master' into master-next 2017-09-15 16:49:46 -07:00
Jordan Rose
82fa3627a8 Merge pull request #11867 from jrose-apple/ClangImporter-episode-V
[ClangImporter] Support Swift 5 API notes
2017-09-15 16:34:27 -07:00
Jordan Rose
9a04bee421 [ClangImporter] Turn ImportNameVersion into a struct.
...so that we don't have to keep coming back to update it every major
release. And also so we can actually put methods on it instead of
using free functions.

No intended behavior change (yet).
2017-09-15 14:30:24 -07:00
swift-ci
b51e2e6837 Merge remote-tracking branch 'origin/master' into master-next 2017-09-15 13:29:49 -07:00
Joe Groff
2ba8f57514 Remove staging flag for unimplemented key path components.
All the originally-planned component kinds are now implemented.
2017-09-15 11:55:35 -07:00
swift-ci
60cf68ee6b Merge remote-tracking branch 'origin/master' into master-next 2017-09-12 14:30:14 -07:00
swift-ci
ad59688523 Merge remote-tracking branch 'origin/master' into master-next 2017-09-12 13:10:30 -07:00
Xi Ge
87ce54e3f2 Re-apply "Paser: IfConfigDecl should reflect the underlying source. rdar://34315827" 2017-09-12 12:59:25 -07:00
Xi Ge
2a07534bc1 Revert "Paser: IfConfigDecl should reflect the underlying source. rdar://34315827"
For test failure witnessed in bots: https://ci.swift.org/job/oss-swift-incremental-RA-osx/462/
2017-09-12 12:49:02 -07:00
swift-ci
ccedf5316f Merge remote-tracking branch 'origin/master' into master-next 2017-09-12 12:09:55 -07:00
Xi Ge
bfe6a64708 Paser: IfConfigDecl should reflect the underlying source. rdar://34315827 2017-09-12 11:58:49 -07:00
swift-ci
546836ceff Merge remote-tracking branch 'origin/master' into master-next 2017-09-11 15:08:53 -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
Michael Gottesman
7248221d40 [stl-extras] Provide next_or_default and prev_or_default helpers for iterators.
These work like next_or_end or prev_or_begin, except that instead of forcing the
default value to be the compared against the value, you can specify the value
used upon going out of range.

i.e., instead of:

(x, y) -> (x == y) ? y : std::next(x)

We have:

(x, y, z) -> (x == y) ? z : std::next(x)

This is a strict generalization of next_or_end and prev_or_begin so I
re-implemented both routines in terms of the new routines, so no source needed
to be updated.
2017-09-09 16:23:12 -07:00
swift-ci
15b9edafa8 Merge remote-tracking branch 'origin/master' into master-next 2017-09-08 16:08:58 -07:00