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
2023-12-18 12:47:45 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2024-04-30 17:09:54 +02: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
2023-12-15 12:55:15 +01: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-05-07 16:57:17 +02:00
2024-03-18 17:21:50 -04:00
2024-03-18 17:21:50 -04:00
2023-12-21 20:48:00 +01:00
2024-03-18 17:21:50 -04:00
2023-12-21 20:48:00 +01:00
2024-05-06 12:17:19 +02:00
2024-05-07 16:57:17 +02:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2024-05-06 12:17:19 +02:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2024-05-06 12:17:19 +02:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-12-11 17:28:12 +01:00
2024-05-17 13:16:34 +02:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2023-12-08 17:19:17 +01:00
2023-12-08 17:19:17 +01:00
2023-10-31 09:51:06 +01:00
2023-10-31 09:51:06 +01:00
2024-05-02 15:22:34 +02:00
2023-12-08 17:19:17 +01: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-01-30 19:33:04 -08:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01: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
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
2023-12-15 12:55:15 +01:00
2024-03-28 18:26:38 +01:00
2024-02-05 14:07:09 +01:00
2024-03-28 18:26:38 +01:00
2025-02-28 15:03:04 +01:00
2025-02-28 15:03:04 +01:00
2024-03-28 18:26:38 +01:00
2024-03-28 18:26:38 +01:00
2025-01-30 11:08:08 +07:00
2025-03-04 11:49:09 +05:30
2024-05-02 17:46:43 +02:00
2024-05-03 10:03:05 +02:00
2024-04-30 23:02:54 +02:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2024-02-05 14:07:09 +01:00
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
2023-01-19 10:43:52 -06:00
2025-03-25 15:03:54 +01:00
2024-05-06 10:00:20 +02:00
2024-04-30 17:09:54 +02:00
2025-03-25 15:03:54 +01:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2025-03-25 15:03:54 +01:00
2025-03-25 15:03:54 +01:00
2024-02-05 14:07:09 +01:00
2025-03-25 15:03:54 +01:00
2024-04-30 17:09:54 +02:00
2024-04-30 17:09:54 +02:00
2024-01-15 19:36:40 +01:00
2024-01-15 19:36:40 +01:00
2024-02-05 14:07:09 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2025-03-25 15:03:54 +01:00
2024-04-30 17:09:54 +02:00
2024-04-30 17:09:54 +02: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
2024-01-15 19:36:40 +01:00
2024-02-23 13:00:38 -05: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
2024-04-30 17:09:54 +02:00
2024-04-30 17:09:54 +02:00
2025-03-25 15:03:54 +01:00
2023-06-14 21:47:31 +00:00
2024-05-06 09:52:35 +02:00
2024-05-06 09:52:35 +02:00
2024-02-21 16:26:16 +01:00
2024-03-21 11:00:08 -04:00
2023-10-18 19:05:31 +02:00
2023-10-18 19:05:31 +02:00
2023-02-01 13:28:18 +01:00
2023-03-24 19:57:25 +01:00
2023-03-24 19:57:25 +01:00
2023-08-07 15:41:40 +01:00
2023-03-24 19:57:25 +01:00
2023-08-07 15:41:40 +01:00
2023-10-09 12:31:32 +01:00
2023-03-24 19:57:25 +01:00
2024-10-07 10:59:45 +02:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-10-09 12:31:32 +01:00
2025-01-20 19:30:21 +01:00
2024-03-21 20:24:57 -04:00
2023-03-14 19:46:41 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2025-03-15 18:28:44 +01:00
2023-12-15 12:55:15 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-06-14 21:47:31 +00:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +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
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2023-10-09 12:31:32 +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
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2025-03-25 15:03:54 +01:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2023-07-05 20:14:43 +00:00
2024-03-19 14:07:08 +01:00
2024-03-19 14:07:08 +01:00
2024-02-05 14:07:09 +01:00
2024-04-15 16:32:14 +02:00
2023-05-17 17:03:15 +02: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-02-05 14:07:09 +01:00
2024-01-24 20:16:05 +01: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
2024-04-30 17:09:54 +02: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
2024-05-06 09:52:35 +02:00
2023-05-10 12:40:57 +02:00
2022-12-02 10:08:19 -05:00
2024-10-23 13:06:48 -04:00
2024-06-04 09:23:52 +08:00
2024-10-18 09:35:42 +04:00
2023-05-10 14:25:11 -04:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2024-02-05 14:07:09 +01:00
2023-06-13 09:14:37 +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
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
2024-06-07 12:22:42 +08:00
2024-02-05 14:07:09 +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
2023-10-18 19:05:31 +02:00
2023-10-18 19:05:31 +02:00
2023-01-19 10:43:52 -06:00
2023-09-19 16:44:20 +01:00
2025-03-15 18:28:44 +01:00
2024-07-08 14:01:32 +01:00
2023-12-15 12:55:15 +01:00
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +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
2023-07-26 09:08:46 -04: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
2023-06-14 21:47:31 +00:00
2024-05-15 08:36:26 +02:00
2024-12-11 17:41:19 +08:00
2024-04-30 17:09:54 +02:00
2025-03-15 18:28:44 +01:00
2023-12-15 12:55:15 +01:00
2024-02-05 14:07:09 +01:00
2023-06-21 10:30:43 -04:00
2024-03-28 18:26:38 +01:00
2024-06-27 09:23:35 -04:00
2023-12-15 12:55:15 +01:00
2024-01-15 19:36:40 +01:00
2024-07-16 20:56:18 +01:00
2023-12-15 19:31:00 +01:00
2023-12-15 19:31:00 +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
2023-06-14 21:47:31 +00:00
2023-12-15 19:31:00 +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
2023-06-14 21:47:31 +00:00
2023-06-14 21:47:31 +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
2025-01-20 19:30:21 +01:00
2025-01-20 19:30:21 +01:00
2023-12-15 12:55:15 +01:00
2023-12-15 12:55:15 +01:00
2023-12-04 16:36:38 +01:00
2023-12-04 16:36:38 +01:00
2025-01-20 19:30:21 +01:00
2023-12-05 14:09:36 +01:00
2024-01-15 19:36:40 +01:00
2023-02-03 09:53:47 -05:00
2024-01-15 19:36:40 +01:00
2025-03-15 18:28:44 +01: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
2023-06-14 21:47:31 +00:00
2024-01-08 18:01:41 +00:00
2024-10-18 15:58:33 +01:00
2025-03-15 18:28:44 +01:00
2023-12-04 16:52:00 +01:00
2023-12-04 16:52:00 +01:00
2025-02-14 00:10:37 +01:00
2025-02-14 00:10:37 +01:00
2025-03-15 18:28:44 +01:00
2023-12-15 19:31:00 +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
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
2025-03-25 15:03:54 +01:00
2023-12-11 17:28:12 +01:00
2023-12-18 14:03:57 +01:00
2023-12-15 12:55:15 +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
2023-10-03 18:53:52 +03:00
2024-10-23 13:06:48 -04:00
2024-04-23 10:39:03 -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
2024-10-23 13:06:48 -04:00