Commit Graph

12 Commits

Author SHA1 Message Date
Michael Ilseman
5a6d2dfa59 [String] Switch ABI to only use 4 discriminator bits.
In anticipation of potential future HW features, e.g. armv8.5 memory
tagging, only use the high 4 bytes as discriminator bits in
_BridgeObject rather than the top 8 bits. Utilize two perf flags to
cover this instead. This requires shifting around a fair amount of
internal complexity.
2018-12-19 13:54:50 -08:00
Michael Ilseman
921bb996ba [test] Adjust test: we do more constant folding than before! 2018-11-04 10:42:42 -08:00
Michael Ilseman
e6582c37ee [test] Adjust String tests for UTF-8 representation.
Adjust tests for the UTF-8 representation, in preparation for 32-bit
support. Includes UTF-8 literal update.
2018-11-04 10:42:41 -08:00
Michael Ilseman
f27d3db9b5 [tests] Fix, cleanup, and clarify some SIL character tests 2018-11-04 10:42:40 -08:00
Erik Eckstein
217a317791 tests: Remove an obsolete fixme-comment from the character_literals test 2018-05-29 11:01:03 -07:00
David Zarzycki
a13e33a432 [Tests] Make assumption about SSE code gen explicit 2017-11-09 09:03:33 -05:00
Dave Abrahams
2778dc85ea Add and use _ExpressibleByBuiltinUTF16ExtendedGraphemeClusterLiteral 2017-06-02 07:01:03 -07:00
Dave Abrahams
562fd79aa6 [stdlib] Encode small Characters as UTF-16
This takes care of the standard library portion, but we need a new
BuiltinUTF16ExtendedGraphemeClusterLiteralConvertible protocol in order to
fully recover the performance of character literals.

Note that part of the character_literals.swift test is currently disabled.  That
will need to be fixed before we can merge this work.
2017-06-01 20:57:25 -07:00
Erik Eckstein
72dd2fe084 tests: adapt the character_literals test
and re-enable it

https://bugs.swift.org/browse/SR-5064
2017-06-01 10:10:00 -07:00
Dave Abrahams
82660324b9 Annotate some XFAILs with Jira/Radar links 2017-06-01 08:26:26 -07:00
Dave Abrahams
b2e4bd5d09 [stdlib] Replace _HeapBuffer with a thin wrapper
...over ManagedBufferPointer
2017-06-01 04:40:52 -07:00
Erik Eckstein
155db0a4bd Let Character literals, which fit into 64 bits, be folded into a single integer constant.
This is done by ensuring that the corresponding Character constructor is inlined. llvm will do the constant folding.
Also add a test which checks this.

It makes character literals much faster (3x improvement for the CharacterLiteralsSmall benchmark)
And it removes _a lot_ of redundant code (~80% for the CharacterLiteralsSmall benchmark)
2017-05-03 09:10:21 -07:00