Commit Graph

1006 Commits

Author SHA1 Message Date
Joe Groff
ae7f8bdb65 simd module: Only provide '&+', '&-', and '&*' variants of arithmetic operators.
Checked arithmetic is probably not what you want from the vector unit, but we still want code to be explicit about the fact that it's using wrapping semantics instead of trapping or UB semantics. Provide the wrapping variations of the operators, and leave behind unavailable definitions to direct users to the wrapping operations if they try to use the standard ones.

Swift SVN r30008
2015-07-09 01:20:20 +00:00
Joe Groff
0b54e21629 simd overlay: Use LLVM vector types.
This brings the David Owens benchmark from http://owensd.io/2015/06/27/performance-xcode7-beta-2.html from parity with simd.h-based C to 3x faster.

Before:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 7.035851 │ 6.304739 │ 9.815832 │  1.212 │

After:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 2.318357 │ 2.223325 │ 2.697981 │ 0.1490 │

This also addresses rdar://problem/21574425, since Builtin.add_VecNxIntM isn't overflow-checked, and overflow checks really aren't wanted when working with vector types directly.

Reapplying now that Nadav's fixed the ARM64 SelectionDAG issue this exposed before, and Arnold's fixed
yet another SelectionDAG issue exposed after that.

Swift SVN r30006
2015-07-09 01:20:01 +00:00
Arnold Schwaighofer
8517b7ba08 Revert "Un-XFAIL test on Linux."
Revert "simd overlay: Use LLVM vector types."

This reverts commit r29922 and r29924.

More arm64 instruction selection errors.

rdar://21703486

Swift SVN r29941
2015-07-07 16:45:08 +00:00
Joe Groff
9a23fa9040 simd overlay: Use LLVM vector types.
This brings the David Owens benchmark from http://owensd.io/2015/06/27/performance-xcode7-beta-2.html from parity with simd.h-based C to 3x faster.

Before:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 7.035851 │ 6.304739 │ 9.815832 │  1.212 │

After:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 2.318357 │ 2.223325 │ 2.697981 │ 0.1490 │

This also addresses rdar://problem/21574425, since Builtin.add_VecNxIntM isn't overflow-checked, and overflow checks really aren't wanted when working with vector types directly.

Reapplying now that Nadav's fixed the ARM64 SelectionDAG issue this exposed before.

Swift SVN r29922
2015-07-06 22:56:42 +00:00
Joe Groff
e692c87bbf Revert "simd overlay: Use LLVM vector types."
This reverts commit r29891. It causes an LLVM assertion failure in SelectionDAG on appletvos-arm64.

Swift SVN r29893
2015-07-02 17:31:34 +00:00
Joe Groff
8103dfb825 simd overlay: Use LLVM vector types.
This brings the David Owens benchmark from http://owensd.io/2015/06/27/performance-xcode7-beta-2.html from parity with simd.h-based C to 3x faster.

Before:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 7.035851 │ 6.304739 │ 9.815832 │  1.212 │

After:

RenderGradient ([UInt32].withUnsafeMutablePointer (SIMD))                 │ 2.318357 │ 2.223325 │ 2.697981 │ 0.1490 │

This also addresses rdar://problem/21574425, since Builtin.add_VecNxIntM isn't overflow-checked, and overflow checks really aren't wanted when working with vector types directly.

Swift SVN r29891
2015-07-02 17:05:29 +00:00
Dmitri Hrybenko
4eb24da01b stdlib: underscore MirrorType
Part of removing the old mirrors.

rdar://21428474

Swift SVN r29833
2015-07-01 04:05:48 +00:00
Dmitri Hrybenko
9da16e592e stdlib: underscore reflect() and unsafeReflect()
Part of removing the old mirrors.

rdar://21428474

Swift SVN r29826
2015-07-01 00:31:39 +00:00
Dmitri Hrybenko
8d79d9e142 stdlib: underscore MirrorDisposition
Part of removing the old mirrors.

rdar://21428474

Swift SVN r29825
2015-07-01 00:31:37 +00:00
Dmitri Hrybenko
6bc93d4d79 stdlib: finish renaming QuickLookObject to PlaygroundQuickLook
Part of removing the old mirrors.

rdar://21428474

Swift SVN r29824
2015-07-01 00:31:35 +00:00
Dmitri Hrybenko
7ee84ed6b3 stdlib: rename Reflectable.{getMirror() -> _getMirror()}
Start removing the old mirrors.

rdar://21428474

Swift SVN r29823
2015-07-01 00:31:32 +00:00
Devin Coughlin
cb85eac07e WatchKit Overlay: Remove temporary hack to disable availability checking
Remove a temporary hack added in r29026 that disabled availability checking
for the WatchKit overlay due to SDK update issues. It is no longer needed.

rdar://problem/21099550

Swift SVN r29652
2015-06-25 01:56:58 +00:00
Dmitri Hrybenko
09ab3c17dc stdlib: rename generic parameters from T to Element
... for UnsafeBufferPointerGenerator, UnsafeBufferPointer,
UnsafeMutableBufferPointer.

Part of rdar://21429126

Swift SVN r29623
2015-06-24 20:41:54 +00:00
Dmitri Hrybenko
d9726efbb2 stdlib: rename Set's generic parameter from T to Element
Same for SetGenerator and SetIndex.

Part of rdar://21429126

Swift SVN r29619
2015-06-24 20:41:51 +00:00
Dmitri Hrybenko
51e236c609 stdlib: rename Array's generic parameter from T to Element
Same for ArraySlice and ContiguousArray.

Part of rdar://21429126

Swift SVN r29618
2015-06-24 20:41:49 +00:00
Doug Gregor
17884f173a Stop declaring function parameters without names, e.g., "func f(Int)".
Swift SVN r29607
2015-06-24 16:01:31 +00:00
Dmitri Hrybenko
30698410b1 SDK overlay: simplify implementations of unavailable functions
Swift SVN r29501
2015-06-19 01:04:06 +00:00
Dmitri Hrybenko
d46cb9db6e Foundation overlay: remove initWithObjectsAndKeys:_,...
<rdar://problem/21384187> NSDictionary's convenience init(objects:
[AnyObject], forKeys keys: [AnyObject]) is unsound

This method is unsound / unsafe for Swift.  There is not a way to
correctly express the alternating variadic type constant:
AnyObject, NSCopying,...

The overlay already defines a tuple based method that serves the same
role.

Patch by Michael J LeHew Jr.

Swift SVN r29497
2015-06-18 23:24:19 +00:00
John McCall
62fd20393c Make _swift_allocNilObjCError public so that it can actually
be found by the runtime.

Fixes rdar://21184674, at least as long as your application
links against the Foundation overlay.

Swift SVN r29460
2015-06-17 22:17:49 +00:00
Jordan Rose
5bbc879dc8 Fix simd overlay after previous revert.
I guess I missed this configuration, sorry.

Swift SVN r29445
2015-06-17 05:19:54 +00:00
Jordan Rose
99768eb346 Revert "Switch overlays from using @exported to -import-underlying-module."
This reverts r29441 because it breaks the Linux build. I'll talk to Dmitri
about this tomorrow.

See rdar://problem/21254367

Swift SVN r29444
2015-06-17 05:02:21 +00:00
Jordan Rose
c8bfc87c4e Switch overlays from using @exported to -import-underlying-module.
Some day we'll close the hole for @exported in the previous commit.

Swift SVN r29441
2015-06-17 04:48:06 +00:00
Jordan Rose
955e130536 Diagnose self-imports of the module being compiled.
The case where this comes up is when people name their app and framework
targets the same thing, or when they've renamed their test target module
in an attempt to avoid issues with  NSClassFromString and differing
runtime names. We currently do various wrong things when this happens,
so just emit an error instead.

I left a hole for our overlays, which use '@exported import <the-current-module>'
to get at their Clang modules. The previous commit means this can be
replaced by -import-underlying-module, but that doesn't help our tests,
which use -enable-source-import for their overlays. Which we should stop doing.

rdar://problem/21254367

Swift SVN r29440
2015-06-17 04:48:01 +00:00
Jordan Rose
ff7c3f0c6a Make overlay dependencies explicit.
-import-underlying-module deliberately avoids autolinking against that module,
since normally it's used when building the Swift half of a single binary.
For the overlays, however, that's not what we want, so add the underlying
framework explicitly.

Swift SVN r29439
2015-06-17 04:47:58 +00:00
Jordan Rose
d3291512db Make the 'simd' module build like the rest of the overlays.
At one point we were considering it to be a replacement rather than an
overlay, but that's not where we are today. We can revisit that later.

Necessary for next commit.

Swift SVN r29438
2015-06-17 04:47:55 +00:00
Dmitri Hrybenko
87ec098e2b watchSimulator ABI: Change ObjCBool from Int8 to Bool
Depends on a clang change to target info, and an objc4 change to the
Objective-C headers, which accomplish the actual ABI change for Swift.Bool.
This commit updates ObjCBool and adds a test.

rdar://problem/21294221

Patch by Ben Langmuir.

Swift SVN r29423
2015-06-17 01:36:22 +00:00
Chris Lattner
3be5bfa88a revert accidental commit in r29419
Swift SVN r29420
2015-06-17 01:01:45 +00:00
Chris Lattner
6b3167ab36 enhance fixItRemove() to be a bit more careful about what whitespace it leaves around:
if the thing it is removing has leading and trailing whitespace already, this nukes
an extra space to avoid leaving double spaces or incorrectly indented results.  This
fixes <rdar://problem/21045509> Fixit deletes 'let' from non-binding 'if case let' statements, but leaves an extra space



Swift SVN r29419
2015-06-17 00:55:59 +00:00
Dmitri Hrybenko
adda8a980d Foundation overlay: add throwing and generic variants for NSCoder APIs
rdar://21166220

Swift SVN r29415
2015-06-17 00:27:22 +00:00
Doug Gregor
57ee3c68a1 watchOS: Disable autolinking against CoreText in PassKit/UIKit/WatchKit overlays.
Addresses a bitcode linking problem when linking with the SDK overlays,
which are built against the internal SDK, against a program built
against the public SDK, which does not have
CoreText. rdar://problem/21246363

Swift SVN r29395
2015-06-15 23:43:37 +00:00
Joe Groff
d7b9ae72aa Sema: Require '.init' when constructing from a dynamic metatype.
This makes it clearer that expressions like "foo.myType.init()" are creating new objects, instead of invoking a weird-looking method. The last part of rdar://problem/21375845.

Swift SVN r29375
2015-06-14 19:50:06 +00:00
Joe Groff
556c849530 Undo local hack
Swift SVN r29309
2015-06-04 21:31:33 +00:00
Joe Groff
1ab995b477 Runtime: Don't try to reuse integer value witnesses for under-aligned tuples.
Fixes rdar://problem/20891471.

Swift SVN r29308
2015-06-04 21:24:45 +00:00
Dmitri Hrybenko
76e9ab86b0 stdlib: expand an abbreviation in an internal function
Swift SVN r29270
2015-06-03 03:48:58 +00:00
Dmitri Hrybenko
687a70428d Fix a warning in the SDK overlay
This change was committed and reverted multiple times over the past
month, but now it is safe since we have bumped the minimum required
SDKs.

Swift SVN r29269
2015-06-03 03:17:30 +00:00
Dmitri Hrybenko
cd968aa164 HomeKit overlay: adjust for new SDK
Swift SVN r29251
2015-06-02 20:59:01 +00:00
Greg Parker
fe303f13e1 [stdlib] Fix vararg processing on armv7k.
rdar://21142268


Swift SVN r29243
2015-06-02 18:21:04 +00:00
Joe Groff
c104acfc18 Enable NSError bridging code blocked by rdar://problem/21027215.
Swift SVN r29210
2015-06-01 22:04:22 +00:00
Dmitri Hrybenko
20e0a04367 Foundation overlay: make registerUndoWithTarget work with Swift classes
Patch by Michael LeHew Jr.

rdar://21177512

Swift SVN r29200
2015-06-01 18:02:16 +00:00
Dmitri Hrybenko
29ec6ab6b5 Re-enable the XCTest overlay for OSX
And add the first smoketest for the XCTest overlay to prevent
regressions in future.

Swift SVN r29197
2015-06-01 01:09:31 +00:00
Dmitri Hrybenko
98cc02dd4f UIKit overlay: fix a warning
Swift SVN r29163
2015-05-30 03:20:51 +00:00
Dmitri Hrybenko
e878cdc153 Don't build the XCTest overlay for watchOS
XCTest for watchOS is not present in the public SDK.

Swift SVN r29156
2015-05-29 23:47:35 +00:00
Ted Kremenek
2b77b21e63 Revert "Revert "Use signed char for 32-bit Watch Simulator""
Swift SVN r29153
2015-05-29 19:19:42 +00:00
Ted Kremenek
8afb67bcf1 Revert "Use signed char for 32-bit Watch Simulator"
Speculatively reverting because the Jenkins iOS bots are broken.

Swift SVN r29142
2015-05-29 14:11:14 +00:00
David Farler
812ac37a7f Use signed char for 32-bit Watch Simulator
For integral types, the WatchKit remote procedure call mechanisms only
consider signed numbers (rdar://problem/21153645) and the boolean
type. We were incorrectly assuming that all bools are i1, even on
platforms where bool maps to signed char, such as armv7k, arm64, and
iOS x86_64.

Mark Objective-C type encoded strings that bool -> signed char
when Clang says so.

Fixes: rdar://problem/21129609
See Also: rdar://problem/21131808

Swift SVN r29141
2015-05-29 08:17:25 +00:00
Dmitri Hrybenko
0735aa581e stdlib: don't build AssetsLibrary for tvOS
The public SDK does not contain it.

Swift SVN r29113
2015-05-28 21:06:25 +00:00
Jordan Rose
2831e8481c Update AppKit overlay to match AppKit headers.
NSGradient.init(colorsAndLocations:) is now failable.

Swift SVN r29092
2015-05-28 00:54:04 +00:00
Dave Abrahams
1175d3602c [stdlib] Underscore the legacy Reflectable protocol
We don't want anyone using this and hope to remove it before GM, so
let's at least make its imminent death more obvious.

Swift SVN r29075
2015-05-27 20:59:24 +00:00
David Farler
fb6cef4585 Build fix: GameKit depends on SpriteKit and GameplayKit
rdar://problem/21117165

Swift SVN r29059
2015-05-27 05:02:27 +00:00
Dmitri Hrybenko
4f464763cd stdlib: note that the CFXyzCreateCopy bugs were fixed
Since Swift deploys back to OS X 10.9 and iOS 7.0, we should continue to
use the API that works everywhere.

Swift SVN r29057
2015-05-27 04:20:51 +00:00