Commit Graph

13 Commits

Author SHA1 Message Date
Erik Eckstein
2a55b26e46 Mangling: enable new mangling for symbols 2017-03-16 12:04:08 -07:00
Erik Eckstein
8e3b05d2f4 IRGen: Use new mangling for llvm type names.
This should have no effect on the generated binary.
2017-02-22 09:19:10 -08:00
Arnold Schwaighofer
39fa2f0228 Use the swift calling convention for swift functions
Use the generic type lowering algorithm described in
"docs/CallingConvention.rst#physical-lowering" to map from IRGen's explosion
type to the type expected by the ABI.

Change IRGen to use the swift calling convention (swiftcc) for native swift
functions.

Use the 'swiftself' attribute on self parameters and for closures contexts.

Use the 'swifterror' parameter for swift error parameters.

Change functions in the runtime that are called as native swift functions to use
the swift calling convention.

rdar://19978563
2017-02-14 12:17:57 -08:00
Greg Parker
7a40af2967 [test] Re-enable tests that incorrectly use REQUIRES: X86. (#6697)
* [test] Re-enable tests that incorrectly use `REQUIRES: X86`.

* Update generic_metatypes.swift

* Update empty_array.sil

* Update function_types.sil
2017-01-11 11:39:26 -08:00
Dmitri Gribenko
d175b3b66d Migrate FileCheck to %FileCheck in tests 2016-08-10 23:52:02 -07:00
Joe Groff
8cb1175e49 IRGen: Emit public definitions with protected visibility on ELF.
This prevents the linker from trying to emit relative relocations to locally-defined public symbols into dynamic libraries, which gives ld.so heartache.
2016-02-08 13:09:27 -08:00
Joe Groff
c0a2994564 AST: Start printing function types with @convention instead of old attributes.
And update tests to match.

Swift SVN r27262
2015-04-13 22:51:34 +00:00
Joe Groff
e318a8c2e8 IRGen: Populate vtables using the SILVTable instead of reinventing AST lookup.
We still preserve IRGen's current ordering of vtable slots, but use SIL's record of which SILFunction implements which method instead of walking overrides independently. Another step on the way to rdar://problem/19321484; if SILGen determines that a thunk is needed to interface an override with its base method, IRGen will now pick it up. (Thunk generation is still busted in certain inheritance cases I need to fix before declaring victory though.)

Swift SVN r24732
2015-01-26 19:58:54 +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
c3760feb14 Add -gnone to SIL testcases that do not work with -g.
<rdar://problem/18636257> ☂ Audit the results of running tests with SWIFT_TEST_OPTIONS=-g

Swift SVN r22788
2014-10-16 00:41:52 +00:00
Doug Gregor
a5c079af59 Replace the class_protocol attribute with a "class" requirement.
This only tackles the protocol case (<rdar://problem/17510790>); it
does not yet generalize to an arbitrary "class" requirement on either
existentials or generics.

Swift SVN r19896
2014-07-13 06:57:48 +00:00
Joe Groff
79cf827a7f IRGen: Fix heap object alignment computation in SwiftTargetInfo.
Divide by eight to get number of bits, don't shift! Fixes <rdar://problem/16245093>.

Swift SVN r15099
2014-03-15 01:48:05 +00:00
Joe Groff
737c036b16 IRGen: No pointer bits are reserved by ObjC on 32-bit platforms.
This allows enum layout to claim the null inhabitant on 32-bit platforms, fixing <rdar://problem/16093103>.

Swift SVN r14330
2014-02-25 01:18:18 +00:00