Stanislav Mekhanoshin
92c1fd19ab
Allow rematerialization of virtual reg uses
...
Currently isReallyTriviallyReMaterializableGeneric() implementation
prevents rematerialization on any virtual register use on the grounds
that is not a trivial rematerialization and that we do not want to
extend liveranges.
It appears that LRE logic does not attempt to extend a liverange of
a source register for rematerialization so that is not an issue.
That is checked in the LiveRangeEdit::allUsesAvailableAt().
The only non-trivial aspect of it is accounting for tied-defs which
normally represent a read-modify-write operation and not rematerializable.
The test for a tied-def situation already exists in the
/CodeGen/AMDGPU/remat-vop.mir,
test_no_remat_v_cvt_f32_i32_sdwa_dst_unused_preserve.
The change has affected ARM/Thumb, Mips, RISCV, and x86. For the targets
where I more or less understand the asm it seems to reduce spilling
(as expected) or be neutral. However, it needs a review by all targets'
specialists.
Differential Revision: https://reviews.llvm.org/D106408
2021-08-24 11:09:02 -07:00
..
2021-08-24 11:09:02 -07:00
2021-08-18 10:22:00 -07:00
2021-08-18 11:07:11 -07:00
2021-08-22 16:53:32 +08:00
2020-12-18 21:03:37 +00:00
2021-06-29 09:45:13 -07:00
2021-08-04 12:45:18 -07:00
2020-12-09 19:42:49 +00:00
2021-06-27 10:33:43 -07:00
2021-04-11 13:59:51 -07:00
2021-08-18 10:44:25 -07:00
2020-11-25 21:57:48 -08:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:22:00 -07:00
2020-12-09 19:42:49 +00:00
2021-08-24 11:09:02 -07:00
2021-08-24 11:09:02 -07:00
2021-01-30 07:20:05 +08:00
2020-08-21 11:38:42 +01:00
2020-08-17 13:09:26 +01:00
2021-03-15 11:32:43 -07:00
2021-08-24 11:09:02 -07:00
2020-12-09 19:42:49 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-08-18 10:25:12 -07:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-08-18 10:22:00 -07:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-05 10:41:08 -08:00
2021-07-22 09:55:26 +01:00
2021-07-13 09:46:21 -07:00
2020-07-15 07:34:22 +00:00
2020-08-21 11:38:42 +01:00
2020-12-04 10:34:12 -08:00
2021-06-30 16:54:13 -04:00
2021-06-27 10:33:43 -07:00
2021-06-30 16:54:13 -04:00
2021-08-18 10:22:00 -07:00
2020-11-25 15:07:34 -08:00
2021-04-01 09:12:52 -07:00
2021-01-19 11:21:48 -08:00
2020-12-09 19:42:49 +00:00
2021-08-07 16:06:00 -07:00
2021-01-12 10:45:03 -08:00
2020-12-09 19:42:49 +00:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2021-07-20 09:22:06 -07:00
2020-12-09 19:42:49 +00:00
2021-01-14 13:41:40 -08:00
2021-08-18 10:44:25 -07:00
2021-05-11 11:29:45 -07:00
2020-12-09 19:42:49 +00:00
2021-07-22 09:55:26 +01:00
2020-12-09 19:42:49 +00:00
2021-06-17 09:51:09 -07:00
2021-06-17 09:51:09 -07:00
2020-11-25 15:07:34 -08:00
2021-04-01 09:12:52 -07:00
2021-01-19 11:21:48 -08:00
2021-08-07 16:06:00 -07:00
2021-01-12 10:45:03 -08:00
2020-12-09 19:42:49 +00:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2021-07-20 09:22:06 -07:00
2021-01-14 13:41:40 -08:00
2020-12-30 15:28:11 -08:00
2021-04-01 12:41:57 -07:00
2020-12-09 19:42:49 +00:00
2021-04-22 15:04:55 +07:00
2021-01-15 11:14:14 -08:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-02 21:13:42 -08:00
2021-08-08 18:30:48 -07:00
2021-01-19 11:21:48 -08:00
2021-08-07 16:06:00 -07:00
2021-01-12 10:45:03 -08:00
2020-12-03 09:16:33 +08:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2021-07-20 09:22:06 -07:00
2021-01-14 13:41:40 -08:00
2021-03-15 11:32:43 -07:00
2021-08-18 10:25:12 -07:00
2020-08-21 11:38:42 +01:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-07-13 09:30:09 -07:00
2020-07-12 21:04:48 -07:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-06-23 15:38:11 -07:00
2021-03-21 18:54:00 +08:00
2020-12-30 15:28:11 -08:00
2020-12-30 15:28:11 -08:00
2020-12-05 14:54:37 -08:00
2021-08-18 10:44:25 -07:00
2020-11-20 17:58:26 -05:00
2021-01-18 17:30:35 +00:00
2021-01-23 09:10:03 +00:00
2021-05-29 15:11:37 +01:00
2020-07-14 11:15:01 +01:00
2021-07-28 09:05:45 -07:00
2021-07-20 08:53:55 -07:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-08-24 11:09:02 -07:00
2021-08-20 22:41:49 +08:00
2021-08-12 12:41:40 -07:00
2021-08-24 11:09:02 -07:00
2021-08-24 11:09:02 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-08-24 11:09:02 -07:00
2021-04-02 10:58:45 -07:00
2021-08-12 12:41:40 -07:00
2021-08-24 11:09:02 -07:00
2021-07-20 09:22:06 -07:00
2021-07-24 10:50:43 -07:00
2021-07-24 10:50:43 -07:00
2021-07-24 10:50:43 -07:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:22:00 -07:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:44:25 -07:00
2021-06-17 09:38:28 +02:00
2021-08-18 10:22:00 -07:00
2021-08-18 10:22:00 -07:00
2020-08-17 20:44:33 +02:00
2021-08-20 22:41:49 +08:00
2021-08-12 12:41:40 -07:00
2021-08-18 10:22:00 -07:00
2021-08-18 10:22:00 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-04-02 10:58:45 -07:00
2021-08-12 12:41:40 -07:00
2021-08-12 12:41:40 -07:00
2021-08-19 16:08:07 +01:00
2021-08-19 16:08:07 +01:00
2021-04-16 12:54:47 +08:00
2021-02-09 15:52:04 +08:00
2021-01-21 12:07:44 -08:00
2021-01-21 12:07:44 -08:00
[RISCV] Fold (add (select lhs, rhs, cc, 0, y), x) -> (select lhs, rhs, cc, x, (add x, y))
2021-08-10 09:02:56 -07:00
2021-08-13 18:00:09 -07:00
2021-01-21 12:07:44 -08:00
2021-01-22 14:51:22 -08:00
2021-08-08 17:25:37 -07:00
2021-01-21 12:07:44 -08:00
2021-08-18 10:44:25 -07:00
2021-01-25 16:37:21 -08:00
2021-08-18 10:22:00 -07:00
2021-08-18 10:22:00 -07:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-07-23 09:12:05 -07:00
2021-08-18 10:44:25 -07:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:22:00 -07:00
2021-08-18 10:22:00 -07:00
2021-08-24 11:09:02 -07:00
2021-08-19 16:08:07 +01:00
2021-08-19 16:08:07 +01:00
2021-01-15 11:14:14 -08:00
2021-03-21 18:54:00 +08:00
2021-04-29 09:10:48 +01:00
2020-12-09 19:42:49 +00:00
2021-07-13 09:46:21 -07:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:22:00 -07:00
2021-03-16 07:44:06 -07:00
2020-12-09 19:42:49 +00:00
2021-08-18 10:22:00 -07:00
2021-07-27 10:57:28 -07:00
2021-08-24 11:09:02 -07:00
2021-08-18 10:22:00 -07:00
2021-03-16 07:44:06 -07:00
2021-08-18 10:44:25 -07:00
2021-06-27 10:33:43 -07:00
2021-06-30 16:54:13 -04:00
2020-07-06 17:32:57 +01:00
2021-08-18 11:07:11 -07:00
2020-12-30 15:28:11 -08:00
2020-12-03 09:16:33 +08:00