swift-ci
cce9eb4f8d
Merge remote-tracking branch 'origin/master' into master-next
2017-04-23 01:48:58 -07:00
John McCall
978f0e05fe
Add unpaired access marker instructions and use them to implement
...
dynamic access tracking in materializeForSet.
2017-04-22 22:52:13 -04:00
swift-ci
4ef7b46971
Merge remote-tracking branch 'origin/master' into master-next
2017-04-21 18:08:32 -07:00
Joe Groff
595e0e4ede
Merge branch 'master' into keypaths
2017-04-19 18:38:24 -07:00
swift-ci
000387aa9e
Merge remote-tracking branch 'origin/master' into master-next
2017-04-18 16:28:31 -07:00
practicalswift
56a9c88ca6
[gardening] Remove unused method getLoweredDynamicallyEnforcedAddress(SILValue)
2017-04-18 23:22:43 +02:00
swift-ci
ae1eb1197c
Merge remote-tracking branch 'origin/master' into master-next
2017-04-18 11:08:33 -07:00
John McCall
6c16cfaa14
Implement a basic dynamic-enforcement runtime and teach IRGen to use it.
2017-04-18 11:23:43 -04:00
Joe Groff
0bb83bb185
KeyPaths: Support out-of-place instantiation of generic key paths.
2017-04-17 22:36:26 -07:00
Joe Groff
aaddafa55b
IRGen: Support for generic key path patterns.
2017-04-17 17:50:57 -07:00
Adrian Prantl
88592ecce6
Merge remote-tracking branch 'origin/master' into master-next
2017-04-17 14:24:23 -07:00
adrian-prantl
f2d2ef1e96
Merge pull request #8784 from adrian-prantl/29007471
...
Debug Info: Emit debug info for Swift types using the default alignment.
2017-04-17 13:16:45 -07:00
Adrian Prantl
8e6d6338ce
Emit debug info for Swift types using the default alignment where possible.
...
This patch emits the alignment for all default-aligned types as 0
which causes the backend to not emit an alignment attribute at
all. This mirrors clang's behavior.
<rdar://problem/29007471>
2017-04-17 11:35:33 -07:00
swift-ci
0142fa1f13
Merge remote-tracking branch 'origin/master' into master-next
2017-04-15 10:08:32 -07:00
practicalswift
65bcc8ff84
[gardening] Use o && isa<T>(o) instead of dyn_cast_or_null<T>(o) when result is unused
2017-04-14 17:33:24 +02:00
Joe Groff
d6ced9d9e4
SIL: Rework KeyPathInst to accommodate computed components.
...
- Separate out a uniquable KeyPathPattern that describes the context-free shape of the key path, with generic parameters and (eventually) subscript index slots factored out.
- Add component kinds for gettable and settable properties.
2017-04-12 20:09:17 -07:00
swift-ci
5ba89103a7
Merge remote-tracking branch 'origin/master' into master-next
2017-04-11 09:28:31 -07:00
Arnold Schwaighofer
b167b4475d
Add SIL and IRGen support for a ConstantStringLiteral instruction
...
This supports a utf8 or utf16 encoding.
rdar://30545013
2017-04-11 08:43:47 -07:00
Joe Groff
f929c29bdf
IRGen: Lower keypath instructions to patterns for the runtime to instantiate.
2017-04-04 11:31:15 -07:00
Joe Groff
638759ac28
SIL: Add a "keypath" instruction for summoning literal keypath objects.
2017-04-04 11:31:15 -07:00
swift-ci
5c5ec5641e
Merge remote-tracking branch 'origin/master' into master-next
2017-04-03 01:08:30 -07:00
practicalswift
00ba5dc248
[gardening] Fix typos
2017-04-02 16:23:45 +02:00
swift-ci
f3d88bd1a1
Merge remote-tracking branch 'origin/master' into master-next
2017-03-27 10:29:48 -07:00
adrian-prantl
b433e5339e
Merge pull request #8344 from adrian-prantl/31253373
...
Debugger type mangling: Pass GenericEnvironment separate from DeclContext
2017-03-27 10:13:14 -07:00
swift-ci
69e4b3b579
Merge remote-tracking branch 'origin/master' into master-next
2017-03-26 10:28:42 -07:00
John McCall
57ecaa7fae
Add begin_access and end_access instructions.
...
NFC because we're not actually emitting them.
2017-03-26 04:37:05 -04:00
Adrian Prantl
b872127b66
Debgger type mangling: Pass GenericEnvironment separate from DeclContext.
...
This fixes a crash while building the Swift standard library when
partial specializations are enabled.
Eventually we should get rid of needing the DeclContext in the mangled
typename at all, and this is one step towards that goal.
rdar://problem/31253373
2017-03-25 14:09:14 -07:00
Saleem Abdulrasool
15565c116a
Adjust for SVN r298393
2017-03-22 07:44:03 -07:00
Arnold Schwaighofer
a4c6af1968
Merge pull request #8122 from aschwaighofer/cow_existential_runtime
...
Runtime changes for the copy-on-write existential implementation
2017-03-16 12:48:35 -07:00
swift-ci
c5df122e59
Merge pull request #8115 from adrian-prantl/31066290
2017-03-16 12:00:34 -07:00
Arnold Schwaighofer
d5cbb0bd62
Runtime changes for the copy-on-write existential implementation
...
Adds the runtime implementation for copy-on-write existentials. This support is
enabled if SWIFT_RUNTIME_ENABLE_COW_EXISTENTIALS is defined. Focus is on
correctness -- not performance yet.
Don't use allocate/deallocate/projectBuffer witnesses for globals in cow
existential mode.
Use SWIFT_RUNTIME_ENABLE_COW_EXISTENTIALS configuration to set the default for
SILOptions.
This includes an IRGen fix to use the right projection in
emitMetatypeOfOpaqueExistential if SWIFT_RUNTIME_ENABLE_COW_EXISTENTIALS is set.
Use unknownRetain instead of native retain in dynamicCastToExistential.
2017-03-15 14:54:55 -07:00
Adrian Prantl
082d36a6bb
Debug Info: Make the lookup of VariableValues deterministic.
...
No deterministically observable functional change.
rdar://problem/31066290
2017-03-15 12:26:55 -07:00
Erik Eckstein
a16beaea3c
Remove the now usused ConformanceCollector utility.
...
It was used for dead witness table elimination. But this is done now by lazy emission in IRGen.
Also update DeadFunctionElimination.
NFC.
2017-03-15 10:18:18 -07:00
John McCall
3c5de5fa0a
Preserve type canonicality better in several places and
...
idiomatize some uses of SILType::getSwiftRValueType().
2017-03-14 14:59:43 -04:00
Arnold Schwaighofer
80732ead34
Non-witness implementations of init_existential_addr, deinit_existential_addr, open_existential_addr, copy_addr, destory_addr
...
For the boxed existential variant.
2017-03-09 17:22:35 -08:00
Joe Groff
99ea154151
Merge pull request #7965 from jckarter/invariant-load
...
Add a `loadInvariant` builtin.
2017-03-09 06:39:42 -08:00
Joe Groff
39ecc53a25
Add a loadInvariant builtin.
...
Lowers to an invariant load in LLVM; probably useful for SIL too at some point too, but NFC at that level yet.
2017-03-08 21:02:03 -08:00
Joe Shajrawi
33b0cf653f
Rename unconditional_checked_cast_opaque to unconditional_checked_cast_value
2017-03-07 18:53:52 -08:00
Joe Shajrawi
ca77872ba8
Merge CheckedCastValueBranch with new master
2017-03-06 17:32:09 -08:00
Joe Shajrawi
1f626304f1
Add support for conditional checked cast instruction for opaque value types + SILGen support for it
2017-03-06 16:35:27 -08:00
Michael Gottesman
cfb5893663
[silgen] Fix destroying destructor to use proper ownership with its @owned return value.
...
rdar://29791263
2017-03-02 17:17:17 -08:00
Michael Gottesman
4bc12aedbd
[sil] Add end_lifetime.
...
This is the lifetime ending variant of fix_lifetime. It is a lie to the
ownership verifier that a value is being consumed along a path. Its intention is
to be used to allow for the static verification of ownership in deallocating
deinits which for compatibility with objective-c have weird ownership behavior.
See the commit merged with this commit for more information.
2017-03-01 18:30:23 -08:00
Slava Pestov
0611d663b8
SIL: Remove SILType::getSwiftType()
2017-02-27 20:01:35 -08:00
Joe Shajrawi
4b6cfaf533
Merge pull request #7796 from shajrawi/deinit_existential
...
Support for deinit of opaque existentials: deinit_existential_opaque instruction + SILGen support
2017-02-27 15:43:32 -08:00
Joe Shajrawi
16b6cb5e1d
Support for deinit of opaque existentials: deinit_existential_opaque instruction + SILGen support
2017-02-27 14:46:43 -08:00
Roman Levenstein
6c1eec81c4
Merge pull request #7557 from mtake/enhance-assume-single-threaded
...
Enhance -assume-single-threaded option (SR-3945)
2017-02-27 13:07:46 -08:00
Slava Pestov
754c7feb26
IRGen: Use SubstitutionMap in one spot
...
Eventually I'd like SubstitutionLists to be opaque, and not
ArrayRefs.
2017-02-26 20:04:27 -08:00
Mikio Takeuchi
488d531846
Enhance -assume-single-threaded option (SR-3945)
2017-02-27 12:17:53 +09:00
Slava Pestov
18550b171d
IRGen: witness_method function values no longer carry witness table
...
This was an unnecessary complication and didn't make a lot of
logical sense, because we can recover the witness table from
substitutions when we call a @convention(witness_method) anyway.
Also, to fix materializeForSet for generic subscripts, I want the
materializeForSet *callback* of a protocol witness to have
@convention(witness_method), which requires representing such
functions as a single function pointer in IRGen.
2017-02-25 16:42:51 -08:00
Joe Shajrawi
ec1e3ee20e
Add support for unconditional checked cast instruction for opaque value types + SILGen support for it
2017-02-22 16:35:46 -08:00