Commit Graph

24 Commits

Author SHA1 Message Date
Dmitri Hrybenko
0fce5c7b4e tests: remove uses of println() that are not relevant to the tests
Swift SVN r28016
2015-05-01 03:35:50 +00:00
Doug Gregor
a815ab7386 Don't eagerly check protocol conformances for Clang-imported AST nodes.
The Clang importer introduces a number of synthesized conformances for
imported enums (normal, NS_ENUMS, or NS_OPTIONS-based all have the
same issue) that aren't used in most translation units. Rather than go
through the effort of fully checking these conformances and generating
SIL for them always, rely on semantic analysis to force them to be
fully checked when the conformance is required. This cuts down on the
amount of work we need to do for imported enumeration types
considerably. For a simple program consisting of only:

    import Foundation
    var str = NSString()

My not-entirely-scientific measurements show that:
  * Time to parse + type-check is reduced by 34%
  * Time to generate SIL is reduced by 50%
  * Time to generate IR is reduced by 47%
  * SIL output size is reduced by 66%

Fixes rdar://problem/20047340.

Swift SVN r27946
2015-04-29 23:20:54 +00:00
Duncan Exon Smith
c6d42db070 Adapt to MD* => DI* renaming of debug info types
Applied the upgrade script from r236120 (LLVM) and r236121 (CFE).  This is the
final step of rdar://problem/20434113.



Swift SVN r27925
2015-04-29 21:40:21 +00:00
Duncan Exon Smith
093eb3c365 DebugInfo: Hand-update testcases after LLVM r231082
Update debug info testcases after moving the new hierarchy into place in
upstream LLVM r231082.

rdar://problem/19720042



Swift SVN r25715
2015-03-03 19:15:31 +00:00
Adrian Prantl
d1d4fd86f8 Don't emit debug info for global values with hidden visibility.
<rdar://problem/19313855> _TWVVSC26NSKeyValueObservingOptions shows up in global variables

Swift SVN r24695
2015-01-23 23:35:36 +00:00
Dmitri Hrybenko
3b04d1b013 tests: reorganize tests so that they actually use the target platform
Most tests were using %swift or similar substitutions, which did not
include the target triple and SDK.  The driver was defaulting to the
host OS.  Thus, we could not run the tests when the standard library was
not built for OS X.

Swift SVN r24504
2015-01-19 06:52:49 +00:00
Adrian Prantl
d7489b7272 Update testcases for new LLVM IR assembler syntax.
Swift SVN r24428
2015-01-14 23:38:18 +00:00
Chris Willmore
03a6190a1f <rdar://problem/19031957> Change failable casts from "as" to "as!"
Previously the "as" keyword could either represent coercion or or forced
downcasting. This change separates the two notions. "as" now only means
type conversion, while the new "as!" operator is used to perform forced
downcasting. If a program uses "as" where "as!" is called for, we emit a
diagnostic and fixit.

Internally, this change removes the UnresolvedCheckedCastExpr class, in
favor of directly instantiating CoerceExpr when parsing the "as"
operator, and ForcedCheckedCastExpr when parsing the "as!" operator.

Swift SVN r24253
2015-01-08 00:33:59 +00:00
Chris Lattner
a6f02f8417 stabilize this test against the possibility that some retains will go away in the future.
Swift SVN r24003
2014-12-18 05:53:35 +00:00
Adrian Prantl
12838bd2df Manually update testcases where the automatic upgrader wasn't able to.
Swift SVN r23943
2014-12-15 20:47:50 +00:00
Adrian Prantl
162bc8d24c Updated testcases for upstream assembler changes.
Swift SVN r23942
2014-12-15 19:39:21 +00:00
Dmitri Hrybenko
1eea220932 Use one module cache directory for all the lit tests to speed them up
Doing so is safe even though we have mock SDK.  The include paths for
modules with the same name in the real and mock SDKs are different, and
the module files will be distinct (because they will have a different
hash).

This reduces test runtime on OS X by 30% and brings it under a minute on
a 16-core machine.

This also uncovered some problems with some tests -- even when run for
iOS configurations, some tests would still run with macosx triple.  I
fixed the tests where I noticed this issue.

rdar://problem/19125022

Swift SVN r23683
2014-12-04 11:21:48 +00:00
Adrian Prantl
6cb2f62b78 Add a testcase for <rdar://problem/18856779> and fix some bugs (stale CHECK: lines).
Swift SVN r23161
2014-11-07 20:01:05 +00:00
Joe Groff
efa166c443 IRGen: Don't lazily emit witness tables.
With runtime conformance lookup, it isn't possible without more complex analysis to determine whether a witness table is needed at runtime. In particular, in whole-module mode, it looked like no protocol conformances in the test/Interpreter/protocol_lookup.swift test were used, causing all of the tests to fail in -i mode. Erik's been working on SIL-level dead witness elimination which will hopefully offset the compile time hit here.

Swift SVN r23067
2014-11-02 19:18:38 +00:00
Adrian Prantl
d238a3f17b Don't emit line numbers for subprograms that are thunks / bare functions.
<rdar://problem/18670152> Stack trace is a lie

Swift SVN r22854
2014-10-20 23:04:06 +00:00
Adrian Prantl
475cf10957 Add dwarfdump --verify to the Foundation testcase.
Swift SVN r22665
2014-10-10 17:34:05 +00:00
Adrian Prantl
5197c091eb Clean up this testcase.
Swift SVN r22612
2014-10-09 02:15:01 +00:00
Adrian Prantl
d39d5702e9 Debug info: Stop abusing the Local flag for the calling convention.
The calling convention is encoded into the mangled name.

Swift SVN r22591
2014-10-08 01:13:13 +00:00
Adrian Prantl
d8551038fe Upgrade debug info tests to the new LLVM debug metadata format.
Thanks to Duncan for helping out with the upgrading!

Swift SVN r22512
2014-10-04 00:25:27 +00:00
Adrian Prantl
be59a13608 Whitelist value-witness functions as being dead (inline-only) and
therefore allowed to come without debug info.
This fixes a test suite failure with unoptimized stdlibs.
Thanks Erik for helping debug this.

Swift SVN r22266
2014-09-24 16:26:46 +00:00
John McCall
1ae1f750d0 Move most type metadata lookups into their own readnone
functions, and make those functions memoize the result.

This memoization can be both threadsafe and extremely
fast because of the memory ordering rules of the platforms
we're targeting: x86 is very permissive, and ARM has a
very convenient address-dependence rule which happens to
exactly match the semantics we need.

Swift SVN r20381
2014-07-23 07:38:26 +00:00
Doug Gregor
67ca1c9ea1 Implement the new casting syntaxes "as" and "as?".
There's a bit of a reshuffle of the ExplicitCastExpr subclasses:
  - The existing ConditionalCheckedCastExpr expression node now represents
"as?". 
  - A new ForcedCheckedCastExpr node represents "as" when it is a
  downcast.
  - CoerceExpr represents "as" when it is a coercion.
  - A new UnresolvedCheckedCastExpr node describes "as" before it has
  been type-checked down to ForcedCheckedCastExpr or CoerceExpr. This
  wasn't a strictly necessary change, but it helps us detangle what's
  going on.

There are a few new diagnostics to help users avoid getting bitten by
as/as? mistakes:
  - Custom errors when a forced downcast (as) is used as the operand
  of postfix '!' or '?', with Fix-Its to remove the '!' or make the
  downcast conditional (with as?), respectively.
  - A warning when a forced downcast is injected into an optional,
  with a suggestion to use a conditional downcast.
  - A new error when the postfix '!' is used for a contextual
  downcast, with a Fix-It to replace it with "as T" with the
  contextual type T.

Lots of test updates, none of which felt like regressions. The new
tests are in test/expr/cast/optionals.swift. 

Addresses <rdar://problem/17000058>


Swift SVN r18556
2014-05-22 06:15:29 +00:00
Ted Kremenek
fad874708e Adjust test cases.
Swift SVN r17964
2014-05-12 22:01:52 +00:00
Jordan Rose
8cbca69ea8 Rename/remove debug info tests to not pretend to be adapter modules.
The real Swift overlays for ObjectiveC and Foundation are fine for these
tests. Mainly we just want to test that code building off of Foundation
works at all.

Swift SVN r7373
2013-08-20 22:13:22 +00:00