Sriraman Tallam
c7ef002bc6
Fix performance bug in buildLocationList ( #109343 )
...
In buildLocationList, with basic block sections, we iterate over
every basic block twice to detect section start and end. This is
sub-optimal and shows up as significantly time consuming when
compiling large functions.
This patch uses the set of sections already stored in MBBSectionRanges
and iterates over sections rather than basic blocks.
When detecting if loclists can be merged, the end label of an entry is
matched with the beginning label of the next entry. For the section
corresponding to the entry basic block, this is skipped. This is
because the loc list uses the end label corresponding to the function
whereas the MBBSectionRanges map uses the function end label.
For example:
.Lfunc_begin0:
.file
.loc 0 4 0 # ex2.cc:4:0
.cfi_startproc
.Ltmp0:
.loc 0 8 5 prologue_end # ex2.cc:8:5
....
.LBB_END0_0:
.cfi_endproc
.section .text._Z4testv,"ax",@progbits,unique,1
...
.Lfunc_end0:
.size _Z4testv, .Lfunc_end0-_Z4testv
The debug loc uses ".LBB_END0_0" for the end of the section whereas
MBBSectionRanges uses ".Lfunc_end0".
It is alright to skip this as we already check the section corresponding
to the debugloc entry.
Added a new test case to check that if this works correctly when the
variable's value is mutated in the entry section.
2024-10-31 09:00:25 -07:00
..
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-11-18 06:36:33 -08:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-11-21 17:10:25 +00:00
2024-01-05 15:11:47 +00:00
2024-06-14 15:07:27 +01:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-10-31 09:00:25 -07:00
2023-06-05 12:55:39 -07:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2023-09-01 18:25:16 -07:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2024-10-31 09:00:25 -07:00
2024-10-31 09:00:25 -07:00
2024-10-31 09:00:25 -07:00
2024-10-31 09:00:25 -07:00
2022-12-13 16:08:09 +01:00
2023-06-20 16:51:05 +02:00
2022-12-22 03:31:36 -05:00
2022-12-22 03:31:36 -05:00
2023-12-12 11:32:19 +00:00
2024-01-05 15:11:47 +00:00
2024-04-23 09:31:20 +01:00
2022-12-09 01:04:45 +03:00
2022-12-09 01:04:45 +03:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-02-06 13:02:38 -08:00
2024-08-05 16:38:08 +02:00
2024-01-05 15:11:47 +00:00
2024-08-05 16:38:08 +02:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-01-05 15:11:47 +00:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-02-09 18:45:20 +03:00
2024-01-05 15:11:47 +00:00
2024-01-05 15:11:47 +00:00
2024-01-05 15:11:47 +00:00
2023-12-12 11:32:19 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-07-12 09:42:30 +01:00
2022-12-13 16:08:09 +01:00
2024-05-03 09:51:56 -07:00
2023-11-21 17:10:25 +00:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-06-14 15:07:27 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-03-26 12:09:22 -07:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-05-03 09:51:56 -07:00
2024-02-06 13:02:38 -08:00
2022-12-13 16:08:09 +01:00
2023-06-10 12:02:27 +08:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-10-09 05:26:58 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-09 01:04:45 +03:00
2024-06-14 15:07:27 +01:00
2023-03-29 21:01:38 +00:00
2024-02-07 12:41:32 +00:00
2024-07-24 09:07:25 +01:00
2023-01-11 15:07:11 -08:00
2022-12-13 16:08:09 +01:00
2023-12-12 11:32:19 +00:00
2024-02-06 13:02:38 -08:00
2022-12-15 02:57:08 +00:00
2023-11-18 19:17:51 +08:00
2022-12-22 03:31:36 -05:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-02-14 12:22:53 -08:00
2024-01-19 09:19:09 -08:00
2024-01-24 06:44:03 -08:00
2024-05-18 01:08:29 +00:00
2022-12-13 16:08:09 +01:00
2024-06-14 07:44:37 -07:00
2024-05-22 22:34:36 +00:00
2023-07-19 23:30:30 -07:00
2022-12-13 16:08:09 +01:00
2023-09-15 19:07:44 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-06-16 00:49:59 +02:00
2022-12-13 16:08:09 +01:00
2023-07-12 12:03:44 +02:00
2023-07-12 12:03:44 +02:00
2024-09-17 18:29:20 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-02-08 10:44:43 +00:00
2024-01-05 15:11:47 +00:00
2022-12-13 16:08:09 +01:00
2024-02-06 13:02:38 -08:00
2023-12-12 11:32:19 +00:00
2023-06-20 09:19:19 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-07-11 17:02:30 +01:00
2024-02-06 13:02:38 -08:00
2023-01-31 14:12:02 -08:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-11-09 09:51:49 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-05-15 16:53:52 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-10-06 16:19:43 -07:00
2023-06-16 00:49:59 +02:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-06-08 11:16:42 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-06-24 10:06:17 -07:00
2022-12-13 16:08:09 +01:00
2024-02-13 13:20:25 -08:00
2023-01-11 15:07:11 -08:00
2023-01-11 15:07:11 -08:00
2023-01-11 15:07:11 -08:00
2023-04-20 11:42:24 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-02-06 13:02:38 -08:00
2024-09-17 18:29:20 +01:00
2023-12-12 11:32:19 +00:00
2023-04-25 13:17:46 -07:00
2023-07-12 12:03:44 +02:00
2024-08-29 22:27:23 +01:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2024-08-05 16:38:08 +02:00
2024-08-05 16:38:08 +02:00
2024-08-05 16:38:08 +02:00
2023-11-04 17:08:42 +00:00
2023-06-16 00:49:59 +02:00
2023-06-16 00:49:59 +02:00
2022-12-13 16:08:09 +01:00
2024-06-14 15:07:27 +01:00
2024-02-06 13:02:38 -08:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-03-16 23:54:03 +05:30
2024-02-06 13:02:38 -08:00
2022-12-13 16:08:09 +01:00
2023-07-19 23:30:30 -07:00
2023-07-19 23:30:30 -07:00
2023-07-19 23:30:30 -07:00
2024-10-02 11:14:05 +01:00
2024-01-05 15:11:47 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-06-25 14:00:47 -07:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-01-20 14:47:11 +00:00
2022-12-13 16:08:09 +01:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2023-01-09 08:58:33 +00:00
2024-01-05 15:11:47 +00:00
2023-01-20 14:47:11 +00:00
2023-05-19 11:29:30 +01:00
2024-04-23 11:01:54 -07:00
2024-04-23 11:01:54 -07:00
2024-04-23 11:01:54 -07:00
2022-12-13 16:08:09 +01:00
2023-01-09 08:58:33 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-06-16 00:49:59 +02:00
2024-06-14 15:07:27 +01:00
2023-07-12 12:03:44 +02:00
2024-02-06 13:02:38 -08:00
2023-05-17 17:03:15 +02:00
2024-02-06 13:02:38 -08:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2023-09-15 19:52:50 +00:00
2022-09-30 16:01:33 -07:00
2024-10-15 11:36:24 +02:00
2024-03-18 10:37:59 -04:00
2024-03-21 20:24:57 -04:00
2023-01-06 19:31:10 +00:00
2024-06-14 15:07:27 +01:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-10-02 11:14:05 +01:00
2023-05-19 22:21:56 +08:00
2024-06-14 15:07:27 +01:00
2022-10-12 12:49:17 +02:00
2023-05-03 09:28:07 +01:00
2023-03-06 11:31:46 +04:00
2022-10-12 12:49:17 +02:00
2024-01-05 15:11:47 +00:00
2022-10-12 12:49:17 +02:00
2022-12-13 16:08:09 +01:00
2023-07-12 12:03:44 +02:00
2022-10-12 12:49:17 +02:00
2023-06-16 00:49:59 +02:00
2022-10-12 12:49:17 +02:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-10-12 12:49:17 +02:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-22 03:31:36 -05:00
2024-05-13 11:14:35 +01:00
2024-01-05 15:11:47 +00:00
2024-01-05 15:11:47 +00:00
2022-10-12 12:49:17 +02:00
2023-12-12 11:32:19 +00:00
2024-05-03 09:51:56 -07:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2022-10-12 12:49:17 +02:00
2024-02-06 13:02:38 -08:00
2022-12-13 16:08:09 +01:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2022-12-13 16:08:09 +01:00
2023-09-15 19:07:44 +01:00
2022-12-13 16:08:09 +01:00
2024-02-06 13:02:38 -08:00
2024-03-18 10:37:59 -04:00
2022-12-12 22:34:49 +00:00
2022-12-13 16:08:09 +01:00
2023-03-29 21:01:38 +00:00
2024-06-25 14:00:47 -07:00
2024-01-05 15:11:47 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-12-12 11:32:19 +00:00
2023-12-12 11:32:19 +00:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-06-06 09:17:38 +01:00
2024-10-15 11:36:24 +02:00
2022-10-12 12:49:17 +02:00
2024-05-03 09:51:56 -07:00
2024-05-03 09:51:56 -07:00
2024-01-16 17:01:01 -08:00
2022-10-12 12:49:17 +02:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-02-06 13:02:38 -08:00
2024-02-13 13:20:25 -08:00
2024-01-05 15:11:47 +00:00
2023-12-12 11:32:19 +00:00
2024-05-03 09:51:56 -07:00
2023-06-01 00:21:00 +00:00
2023-06-01 00:21:00 +00:00
2024-08-05 16:38:08 +02:00
2022-10-12 12:49:17 +02:00
2024-08-05 16:38:08 +02:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2023-12-12 15:49:24 +00:00
2024-06-14 15:07:27 +01:00
2023-05-23 20:24:55 +00:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2023-06-01 00:21:00 +00:00
2023-06-23 17:05:07 -07:00
2022-12-13 16:08:09 +01:00
2024-01-05 15:11:47 +00:00
2024-01-05 15:11:47 +00:00
2022-12-01 21:25:59 +01:00
2024-04-18 12:08:31 +01:00
2022-12-13 16:08:09 +01:00
2023-04-26 16:16:33 -07:00
2023-04-26 16:16:33 -07:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2022-12-13 16:08:09 +01:00
2024-03-13 11:49:16 +01:00
2022-12-13 16:08:09 +01:00
2024-08-08 09:07:39 -04:00
2023-06-20 16:51:05 +02:00
2023-12-12 11:32:19 +00:00
2022-10-12 12:49:17 +02:00
2022-12-13 16:08:09 +01:00
2023-12-12 11:32:19 +00:00
2023-12-12 11:32:19 +00:00
2024-01-05 15:11:47 +00:00
2022-10-12 12:49:17 +02:00
2023-06-20 22:40:56 -07:00
2024-01-09 13:32:59 +07:00