Commit Graph

5381 Commits

Author SHA1 Message Date
swift-ci
fc7b986bab Merge remote-tracking branch 'origin/master' into master-next 2017-12-19 12:09:06 -08:00
swift-ci
0d9c02b25b Merge remote-tracking branch 'origin/master' into master-next 2017-12-19 02:09:53 -08:00
Slava Pestov
76499a3ce3 IRGen: Emit immediate class member offset global variable
Not used to access metadata members just yet.
2017-12-19 02:58:35 -07:00
swift-ci
dca213184a Merge remote-tracking branch 'origin/master' into master-next 2017-12-19 00:49:53 -08:00
Slava Pestov
accec86e6c IRGen: Resilient classes require dynamic metadata initialization
An oversight. Has no effect until the next patch comes in.
2017-12-19 00:36:47 -08:00
Slava Pestov
354f4989e1 IRGen: Store type declaration in the NominalMetadataLayout 2017-12-19 00:36:47 -08:00
Slava Pestov
e65d3a7019 IRGen: Note metadata size offset in metadata layout 2017-12-19 00:36:47 -08:00
Slava Pestov
fa719f75bd SIL: SILVTableVisitor no longer needs a TypeLowering reference 2017-12-18 23:28:33 -08:00
Slava Pestov
c16c2c35bf SIL: Move getOverriddenVTableEntry() from TypeLowering to SILDeclRef
There's no reason for this to be an instance method on the TypeLowering
object, because it (no longer?) uses any type lowering operations.
2017-12-18 23:28:33 -08:00
swift-ci
07902f91aa Merge remote-tracking branch 'origin/master' into master-next 2017-12-18 23:09:18 -08:00
John McCall
1f3f33e67d Clean up the internal APIs around dynamic allocas to structurally
discourage accidental use of them.  Relatedly, fix several bugs
where we were accidentally using dynamic allocas.
2017-12-19 00:29:43 -05:00
swift-ci
ab66b86518 Merge remote-tracking branch 'origin/master' into master-next 2017-12-18 16:09:16 -08:00
swift-ci
0302515cf0 Merge remote-tracking branch 'origin/master' into master-next 2017-12-18 12:48:55 -08:00
Joe Groff
3d5874844b IRGen: Elaborate a cut-off comment. 2017-12-18 11:26:19 -08:00
David Ungar
8c10c00c96 Merge pull request #13465 from davidungar/PR7-numThreads
NFC: Add predicates to SILOptions & do renaming in TBD generation.
2017-12-16 14:46:59 -08:00
David Ungar
51d3165874 NFC: Clarifying uses of NumThreads.
Add hasMultipleGMs predicate to SILOptions.
Rename parameters to TBD file handling to better reflect abstraction boundary.

fix
2017-12-16 13:58:01 -08:00
swift-ci
fb3c6620c0 Merge remote-tracking branch 'origin/master' into master-next 2017-12-15 12:29:29 -08:00
swift-ci
2c45b77ead Merge pull request #13461 from shajrawi/deterministic_container 2017-12-15 12:11:11 -08:00
Joe Shajrawi
8fd6dc155e LoadableByAddress: use deterministic containers 2017-12-15 11:09:01 -08:00
swift-ci
5702105cb2 Merge remote-tracking branch 'origin/master' into master-next 2017-12-14 22:10:05 -08:00
John McCall
dfe119f86e Compute the BuiltinInfo for a builtin call to IRGenSIL; NFC.
The intention here is to make it easier to do specialized lowering
for specific builtin arguments.
2017-12-15 00:21:21 -05:00
swift-ci
c0568c925d Merge remote-tracking branch 'origin/master' into master-next 2017-12-14 13:49:34 -08:00
Arnold Schwaighofer
ac0db46f79 Fix for linux 2017-12-14 10:22:34 -08:00
Arnold Schwaighofer
bfb8f15e43 Fix test case failure 2017-12-14 08:17:19 -08:00
Arnold Schwaighofer
066a627ca0 Reapply "IRGen: The partial application forwarder needs to cast { swift.refcounted* } to swift.refcounted* for AnyObject types on linux"
With fix and test case for failed case.

This reverts commit d14cd40916.

SR-6547
rdar://problem/35911150
2017-12-14 06:41:30 -08:00
swift-ci
535b79c53c Merge remote-tracking branch 'origin/master' into master-next 2017-12-14 04:09:33 -08:00
Doug Gregor
d14cd40916 Revert "IRGen: The partial application forwarder needs to cast { swift.refcounted* } to swift.refcounted* for AnyObject types on linux" 2017-12-13 22:49:13 -08:00
swift-ci
4aec05ae9b Merge remote-tracking branch 'origin/master' into master-next 2017-12-13 18:29:36 -08:00
Arnold Schwaighofer
015bef1a64 Merge pull request #13416 from aschwaighofer/fix_anyobject_closure_linux
IRGen: The partial application forwarder needs to cast { swift.refcounted* } to swift.refcounted* for AnyObject types on linux
2017-12-13 18:25:26 -08:00
Arnold Schwaighofer
8610670d0e IRGen: The partial application forwarder needs to cast { swift.refcounted* } to swift.refcounted* for AnyObject types on linux
SR-6547
2017-12-13 14:31:44 -08:00
swift-ci
6d1f3c7eca Merge remote-tracking branch 'origin/master' into master-next 2017-12-12 17:29:39 -08:00
Thomas Roughton
f10ef1ab9a [runtime] Always use SwiftCC (#13311) 2017-12-12 17:11:38 -08:00
swift-ci
b842db42d7 Merge remote-tracking branch 'origin/master' into master-next 2017-12-11 19:29:43 -08:00
Erik Eckstein
48d49a4cc2 Fix the IR attributes of swift_getObjectType.
It's not readnone, because it reads the metatype from an object.
Readnone would let the llvm ARC optimizer reschedule the call with a release-call for the object.

fixes SR-6560.
2017-12-11 18:16:46 -08:00
swift-ci
1270d9d356 Merge remote-tracking branch 'origin/master' into master-next 2017-12-09 14:49:49 -08:00
swift-ci
a93717988c Merge pull request #13211 from compnerd/COFF-registration 2017-12-09 14:41:41 -08:00
Saleem Abdulrasool
899103cfa8 COFF: restructure metadata registration
Restructure the COFF metadata handling to use the linker section
grouping to emit section start/stop markers in the appropriate location.
This allows us to lookup the sections statically without having to the
walk the entire image structure.

Introduce a constructor for PE/COFF binaries.  This will ensure that the
registration occurs for all modules appropriately.  This should resolve
rdar://problem/19045112.  The registration should occur prior to
`DllMain` being invoked from `DllMainCRTStartup`.
2017-12-08 16:15:07 -08:00
swift-ci
79a758cf10 Merge remote-tracking branch 'origin/master' into master-next 2017-12-08 15:48:53 -08:00
swift-ci
d1e377b947 Merge remote-tracking branch 'origin/master' into master-next 2017-12-08 14:08:50 -08:00
swift-ci
2935d66e9d Merge remote-tracking branch 'origin/master' into master-next 2017-12-08 14:01:42 -08:00
Slava Pestov
e04f6e85bd IRGen: Add mangling for class metadata base offset
Also remove some misleading comments from GenDecl.cpp, where
we were giving examples of the old mangling.
2017-12-08 13:50:56 -08:00
Slava Pestov
ffabf60118 IRGen: Hollow out generic class templates
Don't emit placeholders for field offsets and vtable entries,
since they were always null. Instead, calculate the final size
of class metadata at runtime using the size of the superclass
metadata and the number of immediate members, and only copy
this prefix from the template to the instantiated metadata,
zero-filling the rest.

For this to work with non-generic resilient classes and
non-generic subclasses of generic classes, we need a new
runtime entry point to relocate non-generic class metadata,
calculating its size at runtime using the same strategy.
2017-12-08 13:50:56 -08:00
Thomas Roughton
c5bf2ec553 [runtime] Remove TwoWordPair and use the Swift calling convention instead. (#13299) 2017-12-07 19:27:24 -08:00
Slava Pestov
5dcc6b13ed IRGen: Count number of immediate class members in ClassMetadataLayout 2017-12-07 14:21:59 -08:00
Slava Pestov
176efde3fd IRGen: Redo fill ops
Instead of recording the current offset in the template, just
collect the fill ops into a vector and emit them at the
generic argument offset stored in the MetadataLayout.

For now this is NFC, but this allows the template to omit
entries for generic arguments entirely once some more
machinery is in place.
2017-12-07 14:21:58 -08:00
Slava Pestov
c19478ab3f IRGen: Offset::offsetBy() should take an Offset and a Size 2017-12-07 14:21:58 -08:00
Slava Pestov
0fa7440e51 IRGen/Runtime: Remove old class metadata relocation mechanism 2017-12-07 14:21:58 -08:00
swift-ci
febcd193d9 Merge remote-tracking branch 'origin/master' into master-next 2017-12-06 13:10:39 -08:00
Slava Pestov
df780c05c1 IRGen: Move field type vector slot to appear before the address point 2017-12-05 21:33:35 -08:00
Slava Pestov
ed97617590 IRGen: Move generic class dependent data to appear before the address point 2017-12-05 21:33:35 -08:00