Dominik Steenken
e9a3ea2218
[SystemZ, DebugInfo] Instrument SystemZ backend passes for Instr-Ref DebugInfo ( #133061 )
...
This PR instruments the optimization passes in the SystemZ backend with
calls to `MachineFunction::substituteDebugValuesForInst` where
instruction substitutions are made to instructions that may compute
tracked values.
Tests are also added for each of the substitutions that were inserted.
Details on the individual passes follow.
### systemz-copy-physregs
When a copy targets an access register, we redirect the copy via an
auxiliary register. This leads to the final result being written by a
newly inserted SAR instruction, rather than the original MI, so we need
to update the debug value tracking to account for this.
### systemz-long-branch
This pass relaxes relative branch instructions based on the actual
locations of blocks. Only one of the branch instructions qualifies for
debug value tracking: BRCT, i.e. branch-relative-on-count, which
subtracts 1 from a register and branches if the result is not zero. This
is relaxed into an add-immediate and a conditional branch, so any
`debug-instr-number` present must move to the add-immediate instruction.
### systemz-post-rewrite
This pass replaces `LOCRMux` and `SELRMux` pseudoinstructions with
either the real versions of those instructions, or with branching
programs that implement the intent of the Pseudo. In all these cases,
any `debug-instr-number` attached to the pseudo needs to be reallocated
to the appropriate instruction in the result, either LOCR, SELR, or a
COPY.
### systemz-elim-compare
Similar to systemz-long-branch, for this pass, only few substitutions
are necessary, since it mainly deals with conditional branch
instructions. The only exceptiona are again branch-relative-on-count, as
it modifies a counter as part of the instruction, as well as any of the
load instructions that are affected.
2025-03-31 19:30:06 +02:00
..
2025-03-31 19:30:06 +02:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2023-12-18 12:47:45 +01:00
2022-10-11 21:09:43 +00:00
2022-08-10 13:18:02 +01:00
2015-10-01 18:12:28 +00:00
2021-05-18 14:30:22 -07:00
2021-05-18 14:30:22 -07:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2017-10-06 13:59:28 +00:00
2022-01-27 16:14:53 -06:00
2016-02-19 14:10:21 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2024-09-19 16:59:31 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-09-30 17:03:18 +02:00
2024-02-07 20:41:40 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2018-03-02 20:36:34 +00:00
2022-07-15 10:18:17 +02:00
2023-12-15 12:55:15 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2023-12-21 20:48:00 +01:00
2024-03-18 17:21:50 -04:00
2023-10-31 09:51:06 +01:00
2024-05-06 12:17:19 +02:00
2024-03-18 17:21:50 -04:00
2024-03-18 17:21:50 -04:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2025-01-31 14:05:34 -08:00
2025-01-31 14:05:34 -08:00
2024-12-10 19:50:51 +01:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2022-10-11 21:09:43 +00:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2025-03-03 11:06:15 +05:30
2021-05-25 10:24:14 -05:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-05-30 19:19:23 +01:00
2025-02-28 15:03:04 +01:00
2025-02-28 15:03:04 +01:00
2025-01-30 11:08:08 +07:00
2025-03-04 11:49:09 +05:30
2024-11-11 22:16:20 +01:00
2024-09-25 12:12:27 +02:00
2025-03-31 19:30:06 +02:00
2025-03-31 19:30:06 +02:00
2025-03-31 19:30:06 +02:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-06-04 09:23:52 +08:00
2024-02-05 14:07:09 +01:00
2020-12-09 00:59:01 +01:00
2022-10-11 21:09:43 +00:00
2025-03-25 15:03:54 +01:00
2022-10-11 21:09:43 +00:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2024-01-15 19:36:40 +01:00
2019-11-20 19:08:27 +01:00
2022-10-11 21:09:43 +00:00
2024-01-15 19:36:40 +01:00
2020-10-14 15:34:40 +02:00
2021-06-17 09:38:28 +02:00
2025-03-25 15:03:54 +01:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2022-10-11 21:09:43 +00:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2022-10-11 21:09:43 +00:00
2025-03-25 15:03:54 +01:00
2024-03-21 11:00:08 -04:00
2022-07-16 17:32:58 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2023-08-07 15:41:40 +01:00
2023-10-09 12:31:32 +01:00
2024-10-07 10:59:45 +02:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2018-03-01 22:32:25 +00:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2025-03-15 18:28:44 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-03-15 18:28:44 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-02-05 23:29:02 +07:00
2025-02-05 23:29:02 +07:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2022-10-11 21:09:43 +00:00
2022-04-29 13:27:36 +07:00
2024-02-05 14:07:09 +01:00
2022-10-11 21:09:43 +00:00
2024-11-05 18:08:27 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2024-01-24 20:16:05 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2024-02-05 14:07:09 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-03-13 15:50:54 +01:00
2025-01-23 17:08:23 -08:00
2025-03-03 15:49:37 +05:30
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2024-05-06 09:52:35 +02:00
2024-10-23 13:06:48 -04:00
2022-10-11 21:09:43 +00:00
2024-10-18 09:35:42 +04:00
2022-10-11 21:09:43 +00:00
2022-08-10 13:18:02 +01:00
2022-08-10 13:18:02 +01:00
2022-10-11 21:09:43 +00:00
2025-02-05 23:29:02 +07:00
2024-08-27 18:12:24 +01:00
2025-01-23 19:15:11 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2023-03-17 14:27:03 +01:00
2024-03-21 20:24:57 -04:00
2025-01-29 10:55:16 -05:00
2024-03-22 20:01:02 +01:00
2023-12-15 12:55:15 +01:00
2024-12-06 12:18:51 -05:00
2024-12-06 12:18:51 -05:00
2024-12-06 12:18:51 -05:00
2024-12-06 12:18:51 -05:00
2025-03-15 18:28:44 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2024-07-16 20:56:18 +01:00
2024-02-05 14:07:09 +01:00
2013-10-31 12:14:17 +00:00
2018-01-19 20:52:04 +00:00
2018-01-19 20:52:04 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2020-03-15 16:42:46 +00:00
2020-03-15 16:42:46 +00:00
2020-03-15 16:42:46 +00:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2022-10-11 21:09:43 +00:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:32:45 -05:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:52:10 -05:00
2020-02-04 10:52:10 -05:00
2020-02-05 17:04:16 -05:00
2024-05-15 08:36:26 +02:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2020-02-14 21:25:06 -08:00
2024-12-11 17:41:19 +08:00
2022-10-11 21:09:43 +00:00
2020-01-02 13:21:04 -08:00
2018-03-02 20:39:30 +00:00
2024-04-30 17:09:54 +02:00
2022-10-11 21:09:43 +00:00
2025-03-15 18:28:44 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2024-06-27 09:23:35 -04:00
2021-10-07 10:10:11 +01:00
2017-12-05 11:24:39 +00:00
2024-07-16 20:56:18 +01:00
2022-10-11 21:09:43 +00:00
2022-08-03 15:39:54 +02:00
2022-10-11 21:09:43 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2023-06-14 21:47:31 +00:00
2023-06-14 21:47:31 +00:00
2023-06-14 21:47:31 +00:00
2023-06-14 21:47:31 +00:00
2023-06-14 21:47:31 +00:00
2020-02-04 10:32:45 -05:00
2023-06-14 21:47:31 +00:00
2023-12-15 19:31:00 +01:00
2015-05-05 19:25:42 +00:00
2017-07-17 17:42:48 +00:00
2024-07-15 11:26:37 +02:00
2025-01-20 19:30:21 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2024-07-26 14:33:40 +02:00
2015-05-05 19:29:21 +00:00
2015-05-05 19:29:21 +00:00
2015-05-05 19:25:42 +00:00
2019-02-26 16:47:59 +00:00
2019-02-26 16:47:59 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:27:45 +00:00
2015-05-05 19:26:48 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:26:48 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2019-09-20 23:04:45 +00:00
2015-05-05 19:25:42 +00:00
2017-10-06 13:59:28 +00:00
2017-07-17 17:42:48 +00:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2023-12-05 14:09:36 +01:00
2015-05-05 19:26:48 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2024-01-15 19:36:40 +01:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2015-05-05 19:27:45 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:27:45 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2015-05-05 19:29:21 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2022-10-11 21:09:43 +00:00
2025-03-15 18:28:44 +01:00
2022-10-11 21:09:43 +00:00
2025-01-20 19:30:21 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2015-05-05 19:27:45 +00:00
2022-10-11 21:09:43 +00:00
2015-05-05 19:27:45 +00:00
2015-05-05 19:27:45 +00:00
2015-05-05 19:25:42 +00:00
2024-10-18 15:58:33 +01:00
2025-03-15 18:28:44 +01:00
2019-05-17 00:50:35 +00:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2017-01-27 07:46:26 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2015-05-05 19:25:42 +00:00
2025-03-15 18:28:44 +01:00
2019-12-07 11:28:39 +01:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2023-12-15 19:31:00 +01:00
2023-12-15 19:31:00 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2025-03-15 18:28:44 +01:00
2020-09-08 16:49:51 +02:00
2025-03-25 15:03:54 +01:00
2024-11-05 15:42:55 -05:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2024-10-23 13:06:48 -04:00
2025-03-21 11:36:35 -04:00
2024-10-23 13:06:48 -04:00
2024-05-06 09:52:35 +02:00
2025-03-25 15:03:54 +01:00
2024-10-23 13:06:48 -04:00
2021-07-27 11:29:15 -04:00
2024-10-23 13:06:48 -04:00