David Zarzycki
77a29c9551
[AST] Perf: Improve getDesugaredType() efficiency
...
Make getDesugaredType() as fast as possible for now. With the old way:
1) Switching over the sugared types turned into a frequently
mispredicted branch because the sugar in the type system is random
as far as the processor is concerned.
2) Storing the underlying/singlely-desugared type at different offsets
in memory adds more code bloat and misprediction.
Short of a major redesign to avoid pointer chasing, this is probably as
fast as the method will get.
2018-01-03 09:45:48 -05:00
David Zarzycki
da238539f5
[Basic] NFC: Inline bitfield cleanup
...
1) Remove SWIFT_INLINE_BITS boilerplate. Now that we're not using anonymous/transparent unions, we don't need the
SWIFT_BITFIELD_BITS macro.
2) Refine the the bitfield size check to better support templated bitfields.
3) Refine the SIL templated bitfields to not be prematurely "full".
2017-12-28 09:20:31 -05:00
David Zarzycki
679538b72c
[SIL] NFC: Migrate SelectInstBase subclasses to InstructionBaseWithTrailingOperands
2017-12-27 11:14:17 -05:00
David Zarzycki
d532fdefe0
[SIL] NFC: Migrate AllocRefInstBase subclasses to InstructionBaseWithTrailingOperands
2017-12-27 08:00:20 -05:00
David Zarzycki
26a1187a3a
[SIL] NFC: Migrate CondBranchInst to InstructionBaseWithTrailingOperands
...
Also, repack misc bits and stop hard coding the number of fixed operands.
2017-12-26 07:39:59 -05:00
David Zarzycki
32284f1023
[SIL] NFC: Migrate ObjectInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
9f42304dd7
[SIL] NFC: Migrate MarkFunctionEscapeInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
81c29d7f98
[SIL] NFC: Migrate SwitchValueInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
bc31a3542f
[SIL] NFC: Migrate YieldInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
25b85596b2
[SIL] NFC: Migrate BranchInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
2dc1917283
[SIL] NFC: Migrate AllocBoxInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
2630944535
[SIL] NFC: Migrate AllocExistentialBoxInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
f572569fb1
[SIL] NFC: Migrate BuiltinInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
33300640ae
[SIL] NFC: Migrate BindMemoryInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
d2552969f6
[SIL] NFC: Migrate StructInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
65a31cf113
[SIL] NFC: Migrate TupleInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:59 -05:00
David Zarzycki
1321eceb0c
[SIL] NFC: Migrate MetatypeInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:58 -05:00
David Zarzycki
ee0550ecdf
[SIL] NFC: Migrate WitnessMethodInst to InstructionBaseWithTrailingOperands
2017-12-26 07:39:58 -05:00
David Zarzycki
09d541f758
[SIL] NFC: Refactor UnaryInstructionWithTypeDependentOperandsBase
...
Refactor UnaryInstructionWithTypeDependentOperandsBase into two template
classes, where the original template now subclasses a simpler template
called "InstructionBaseWithTrailingObjects".
2017-12-26 07:39:58 -05:00
David Zarzycki
ed85954275
[SIL] NFC: Migrate TupleInst to llvm::TrailingObjects
...
Also, repack the count variable into the misc object header bits.
2017-12-22 11:33:47 -05:00
David Zarzycki
83c1054034
[SIL] NFC: Migrate StructInst to llvm::TrailingObjects
...
Also, repack the count variable into the misc object header bits.
2017-12-22 11:16:33 -05:00
David Zarzycki
5012a80e39
[SIL] NFC: Repack misc StringLiteralInst bits
2017-12-22 10:58:21 -05:00
David Zarzycki
fcfdd4c8ca
[SIL] NFC: Migrate BuiltinInst to llvm::TrailingObjects
...
Also, repack the count variables into the misc object header bits.
2017-12-22 10:29:41 -05:00
John McCall
94116347a2
Fix some warnings: extra semicolons, anonymous structs.
2017-12-18 15:31:47 -05:00
David Zarzycki
c75e8299f1
[SIL] NFC: Repack misc MetatypeInst bits
2017-12-17 21:35:27 -05:00
David Zarzycki
bc44e5a150
[SIL] NFC: Repack misc BeginAccessInst bits
2017-12-17 21:23:37 -05:00
David Zarzycki
931ea24f99
[SIL] NFC: Repack misc EndAccessInst bits
2017-12-17 21:14:49 -05:00
David Zarzycki
1cd19eae36
[SIL] NFC: Repack misc PointerToAddressInst bits
2017-12-17 20:58:45 -05:00
David Zarzycki
315cf677dd
[SIL] NFC: Repack misc SwitchValueInst bits
2017-12-17 20:54:01 -05:00
David Zarzycki
5443923a0c
[SIL] NFC: Repack misc SwitchEnumInstBase bits
2017-12-17 20:24:14 -05:00
David Zarzycki
f0bd535261
[SIL] NFC: Repack misc TupleElementAddrInst bits
2017-12-17 19:58:24 -05:00
David Zarzycki
cf443ecfcf
[SIL] NFC: Repack misc TupleExtractInst bits
2017-12-17 19:55:17 -05:00
David Zarzycki
b885daf032
[SIL] NFC: Repack misc WitnessMethodInst bits
2017-12-17 19:49:37 -05:00
David Zarzycki
224b8495bc
[SIL] NFC: Repack misc DeallocRefInst bits
2017-12-16 19:26:40 -05:00
David Zarzycki
83546faec8
[SIL] NFC: Repack misc IntegerLiteralInst and FloatLiteralInst bits
2017-12-16 19:12:01 -05:00
David Zarzycki
aef2e8c662
[SIL] NFC: Repack misc LoadInst bits
2017-12-16 18:53:08 -05:00
David Zarzycki
c4e90d6e4f
[SIL] NFC: Repack misc StoreInst bits
2017-12-16 18:41:14 -05:00
David Zarzycki
c8a458ed1d
[SIL] NFC: Repack misc CopyAddrInst bits
2017-12-16 18:31:46 -05:00
David Zarzycki
b5424c0c17
[SIL] NFC: Repack misc StrongPinInst bits
2017-12-16 18:22:52 -05:00
David Zarzycki
edcb0114c4
[SIL] NFC: Repack misc LoadReferenceInstBase bits
2017-12-16 18:04:49 -05:00
David Zarzycki
f6957eade8
[SIL] NFC: Repack misc StoreReferenceInstBase bits
2017-12-16 18:00:08 -05:00
David Zarzycki
a0a5ca5f14
[SIL] NFC: Repack misc RefCountingInst bits
2017-12-16 17:43:31 -05:00
David Zarzycki
7740d4d05d
[SIL] NFC: Repack misc UncheckedOwnershipConversionInst bits
2017-12-16 17:35:27 -05:00
David Zarzycki
c68d481d28
[SIL] NFC: Repack misc UnaryInstructionWithTypeDependentOperandsBase bits
2017-12-16 17:05:00 -05:00
David Zarzycki
f0d0c18be6
[SIL] NFC: Repack misc AllocRefInstBase bits
2017-12-16 11:53:29 -05:00
David Zarzycki
d197894a9d
[SIL] NFC: Repack misc AllocStackInst bits
2017-12-16 11:38:43 -05:00
David Zarzycki
54ea315586
[Basic] NFC: Stop using transparent unions
2017-12-16 10:43:49 -05:00
David Zarzycki
fa63e6a5a0
[SIL] NFC: Repack misc SILArgument bits
2017-12-16 09:31:21 -05:00
David Zarzycki
7368cc9a8b
[SIL] NFC: Convert SILNode to new inline bitfield macros
2017-12-16 09:31:21 -05:00
Michael Gottesman
4c80c4d66f
Address John's feedback.
...
Specifically to commits:
36a8d0d5c0
6df5462ee2
rdar://31521023
2017-10-25 13:48:51 -07:00