Dave Bartolomeo
3108d97ea5
C++: Minimal IR support for GNUVectorType
...
Lack of support for the GCC vector extensions was causing a bunch of sanity failures in the syntax zoo. This PR adds minimal IR generation support for these types.
Added `VectorAggregateLiteral`, and factored most of `ArrayAggregateLiteral` out into the common base class `ArrayOrVectorAggregateLiteral`. I'd be happy to merge these all into `ArrayAggregateLiteral` if we don't care about the distinction.
Made a few tweaks to `TranslatedArrayExpr` to compute the element type by looking at the result type of the `ArrayExpr`, not the type of the base operand. Note that this means that for `T a[10]; a[i] = foo;`, the result of the `PointerAdd` for `a[i]` will now be `glvalue<T>`, not `T*`. This is actually more faithful to the source language, and has no semantic difference on the IR.
Added some missing `getInstructionElementSize()` overrides.
Added the new `BuiltIn` opcode, renamed the existing `BuiltInInstruction` to `BuiltInOperationInstruction`, and made any `BuiltInOperation` that we don't specifically handle translate to `BuiltIn`. `BuiltInOperationInstruction` now has a way to get the specific `BuiltInOperation`.
Added `getCanonicalQLClass()` overrides for `GNUVectorType` and `BuiltInOperation`.
Added a simple IR test for vector types.
2019-08-22 10:43:30 -07:00
..
2018-08-07 09:48:27 +01:00
2018-08-07 09:48:27 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-11-22 11:31:19 +01:00
2018-08-07 09:48:27 +01:00
2019-04-17 12:30:04 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-10-18 12:36:42 +01:00
2018-08-07 09:48:27 +01:00
2018-08-20 16:12:26 +01:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2019-07-29 17:17:42 -07:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2018-12-05 15:35:54 +00:00
2018-09-23 16:23:52 -07:00
2018-08-02 17:53:23 +01:00
2018-09-07 12:35:12 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2019-08-06 11:22:26 +01:00
2018-10-25 21:18:37 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-28 14:27:32 +02:00
2018-08-02 17:53:23 +01:00
2019-08-06 11:22:26 +01:00
2019-07-30 23:24:52 +01:00
2019-07-30 14:07:35 +01:00
2019-07-03 10:06:48 +02:00
2018-08-28 14:27:32 +02:00
2019-05-21 17:07:21 +01:00
2018-08-20 16:12:26 +01:00
2019-05-20 15:08:28 +01:00
2018-11-06 17:58:33 +00:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2018-09-23 16:23:52 -07:00
2019-08-22 15:40:38 +01:00
2018-10-26 11:07:18 +01:00
2019-03-13 16:38:24 +00:00
2018-08-28 10:24:53 +01:00
2018-08-02 17:53:23 +01:00
2018-10-18 12:36:42 +01:00
2018-11-28 17:11:17 +00:00
2018-09-23 16:23:52 -07:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-08-07 09:48:27 +01:00
2018-08-07 09:48:27 +01:00
2019-08-06 15:38:10 +01:00
2018-08-02 17:53:23 +01:00
2018-09-23 16:23:52 -07:00
2018-09-23 16:23:52 -07:00
2018-11-07 11:32:17 -08:00
2018-11-07 11:32:17 -08:00
2019-02-18 14:41:28 +01:00
2018-10-18 12:36:42 +01:00
2019-05-02 11:16:21 +01:00
2018-08-24 18:41:37 +01:00
2018-08-07 09:48:27 +01:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2019-08-13 11:25:39 +01:00
2019-05-29 15:22:42 +02:00
2019-02-07 14:26:01 -08:00
2018-08-07 09:48:27 +01:00
2018-10-18 12:36:42 +01:00
2019-08-22 10:43:30 -07:00
2019-08-12 11:17:02 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2019-08-06 14:50:57 +02:00
2018-10-18 12:36:42 +01:00
2018-12-06 11:12:46 +00:00
2018-08-02 17:53:23 +01:00
2018-10-18 12:36:42 +01:00
2018-10-29 15:30:56 +00:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-10-26 11:07:18 +01:00
2018-08-02 17:53:23 +01:00
2018-10-31 10:47:31 +00:00
2018-08-02 17:53:23 +01:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2018-09-23 16:23:52 -07:00
2018-11-20 09:50:59 +00:00
2018-09-23 16:23:52 -07:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2018-09-23 16:23:52 -07:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-10-26 11:07:18 +01:00
2018-08-02 17:53:23 +01:00
2019-05-31 13:35:05 -07:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-10-26 11:07:18 +01:00
2018-12-12 17:26:18 +00:00
2018-10-26 11:07:18 +01:00
2018-09-23 16:23:52 -07:00
2019-02-25 12:48:48 +00:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2018-08-07 09:48:27 +01:00
2018-09-19 10:26:11 +01:00
2018-08-24 11:58:58 -07:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2018-08-02 17:53:23 +01:00
2019-05-20 15:08:28 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2019-08-06 15:52:25 +01:00
2018-08-20 16:12:26 +01:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2018-08-24 11:58:58 -07:00
2019-08-22 10:43:30 -07:00
2019-08-06 11:22:26 +01:00
2018-08-07 09:48:27 +01:00
2018-10-18 12:36:42 +01:00
2018-08-02 17:53:23 +01:00
2018-10-26 11:07:18 +01:00
2018-09-23 16:24:31 -07:00
2018-10-18 12:36:42 +01:00
2018-08-07 09:48:27 +01:00
2019-08-06 16:05:10 +01:00
2019-08-06 11:22:26 +01:00
2019-05-20 15:08:28 +01:00
2019-08-22 14:23:38 +01:00
2019-05-02 11:18:09 -07:00
2019-08-06 11:22:26 +01:00
2018-10-18 12:36:42 +01:00
2019-08-13 16:27:20 +02:00
2018-08-02 17:53:23 +01:00