Chris Lattner
415cd50ba2
Reduce array abstraction on apple platforms dealing with literals ( #13665 )
...
* Reduce array abstraction on apple platforms dealing with literals
Part of the ongoing quest to reduce swift array literal abstraction
penalties: make the SIL optimizer able to eliminate bridging overhead
when dealing with array literals.
Introduce a new classify_bridge_object SIL instruction to handle the
logic of extracting platform specific bits from a Builtin.BridgeObject
value that indicate whether it contains a ObjC tagged pointer object,
or a normal ObjC object. This allows the SIL optimizer to eliminate
these, which allows constant folding a ton of code. On the example
added to test/SILOptimizer/static_arrays.swift, this results in 4x
less SIL code, and also leads to a lot more commonality between linux
and apple platform codegen when passing an array literal.
This also introduces a couple of SIL combines for patterns that occur
in the array literal passing case.
2018-01-02 15:23:48 -08:00
..
2017-11-30 20:11:18 -08:00
2017-11-15 22:20:11 -08:00
2017-09-29 11:26:56 -07:00
2017-11-18 20:16:28 -07:00
2017-10-01 15:08:22 -07:00
2017-11-15 22:20:11 -08:00
2017-11-30 20:11:18 -08:00
2017-05-26 13:18:00 -07:00
2017-10-02 15:19:06 -07:00
2017-09-29 11:26:56 -07:00
2017-10-04 14:07:52 -07:00
2017-09-29 11:26:56 -07:00
2017-12-19 13:03:51 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:48:48 -08:00
2018-01-02 15:23:48 -08:00
2018-01-02 15:23:48 -08:00
2017-09-29 11:26:56 -07:00
2017-11-30 20:11:18 -08:00
2017-10-02 15:19:06 -07:00
2017-12-08 12:00:23 -08:00
2017-12-19 11:17:44 -08:00
2017-09-29 11:26:56 -07:00
2017-11-30 11:06:29 -08:00
2017-12-14 15:28:07 -08:00
2017-09-05 11:41:18 -07:00
2017-11-30 20:11:18 -08:00
2017-09-29 11:26:56 -07:00
2017-08-21 16:16:07 -07:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:49:11 -08:00
2017-12-01 17:49:11 -08:00
2017-11-30 20:11:18 -08:00
2017-10-04 14:07:52 -07:00
2017-12-10 02:30:40 -06:00
2017-11-28 13:29:55 -06:00
2017-09-29 11:26:56 -07:00
2017-12-18 15:27:35 -08:00
2017-09-29 11:26:56 -07:00
2017-11-15 22:20:11 -08:00
2017-10-02 15:19:06 -07:00
2017-12-08 12:00:23 -08:00
2017-12-18 15:27:35 -08:00
2017-12-08 12:00:23 -08:00
2017-12-18 09:22:41 -08:00
2017-12-21 10:07:11 -08:00
2017-09-29 11:26:56 -07:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:49:11 -08:00
2017-10-03 15:08:18 -07:00
2017-11-15 22:20:11 -08:00
2017-12-04 15:04:29 +01:00
2017-09-29 11:26:56 -07:00
2017-12-10 02:13:25 -06:00
2017-10-02 15:19:06 -07:00
2017-09-29 11:26:56 -07:00
2017-11-01 16:33:53 -07:00
2017-12-08 12:00:23 -08:00
2017-12-01 17:49:11 -08:00
2017-09-29 11:26:56 -07:00
2017-12-08 12:00:23 -08:00
2017-12-18 15:27:35 -08:00
2017-12-01 17:49:11 -08:00
2017-12-18 15:27:35 -08:00
2017-12-18 15:27:35 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:49:11 -08:00
2017-12-18 15:27:35 -08:00
2017-09-29 11:26:56 -07:00
2017-12-08 12:00:23 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:48:48 -08:00
2017-12-19 13:03:51 -08:00
2017-09-29 11:26:56 -07:00
2017-09-29 11:26:56 -07:00
2017-12-01 14:06:14 -08:00
2017-11-27 21:09:49 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:49:11 -08:00
2017-09-29 11:26:56 -07:00
2017-11-07 11:11:23 -06:00
2017-11-28 13:29:55 -06:00
2017-10-04 14:07:52 -07:00
2017-12-20 23:11:51 -08:00
2017-12-08 12:00:23 -08:00
2017-12-19 13:03:51 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 12:40:19 -08:00
2017-10-04 14:07:52 -07:00
2017-12-18 15:27:35 -08:00
2017-10-31 13:37:38 -07:00
2017-10-24 15:49:37 -07:00
2017-12-08 12:00:23 -08:00
2017-12-20 23:11:51 -08:00
2017-12-18 09:22:41 -08:00
2017-10-01 15:08:22 -07:00
2017-11-30 15:12:56 -08:00
2017-10-27 18:55:05 -07:00
2017-10-02 15:19:06 -07:00
2017-12-08 12:00:23 -08:00
2017-11-18 20:16:28 -07:00
2017-11-07 11:11:23 -06:00
2017-09-29 11:26:56 -07:00
2017-12-08 12:00:23 -08:00
2017-11-30 15:12:56 -08:00
2017-10-04 14:07:52 -07:00
2017-10-02 15:19:06 -07:00
2017-12-08 12:00:23 -08:00
2017-12-01 17:49:11 -08:00
2017-11-17 21:28:03 -08:00
2017-10-04 14:07:52 -07:00
2017-11-28 13:29:55 -06:00
2017-11-30 15:12:56 -08:00
2017-09-29 11:26:56 -07:00
2017-12-01 17:49:11 -08:00
2017-12-18 09:22:41 -08:00
2017-10-26 23:58:50 -07:00
2017-12-18 15:27:35 -08:00
2017-12-08 12:00:23 -08:00
2017-12-08 12:00:23 -08:00
2017-12-08 12:00:23 -08:00
2017-12-20 23:42:08 -08:00
2017-12-01 17:49:11 -08:00
2017-09-29 11:26:56 -07:00
2017-12-08 12:00:23 -08:00
2017-07-07 12:13:25 -07:00
2017-10-02 15:19:06 -07:00
2017-12-01 17:49:11 -08:00
2017-09-29 11:26:56 -07:00
2017-09-29 11:26:56 -07:00
2017-10-02 15:19:06 -07:00
2017-09-29 11:26:56 -07:00
2017-11-17 21:28:03 -08:00
2017-12-18 15:27:35 -08:00
2017-12-12 10:14:53 -08:00
2017-12-18 15:27:35 -08:00
2017-12-01 12:40:19 -08:00
2017-09-29 11:26:56 -07:00
2017-10-02 15:19:06 -07:00
2017-10-02 15:19:06 -07:00
2017-09-29 11:26:56 -07:00
2017-12-08 12:00:23 -08:00
2017-11-30 14:08:52 -08:00
2017-05-22 16:17:58 -07:00
2017-12-18 15:27:35 -08:00