Commit 8367030
authored
[BranchFolder] Fix missing debug info with tail merging (#94715)
`BranchFolder::TryTailMergeBlocks(...)` removes unconditional branch
instructions and then recreates them. However, this process loses debug
source location information from the previous branch instruction, even
if tail merging doesn't change IR. This patch preserves the debug
information from the removed instruction and inserts them into the
recreated instruction.
Fixes #940501 parent 5e9f247 commit 8367030
File tree
4 files changed
+128
-16
lines changed- llvm
- lib/CodeGen
- test
- CodeGen/MIR/X86
- DebugInfo/COFF
4 files changed
+128
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
462 | 462 | | |
463 | 463 | | |
| 464 | + | |
| 465 | + | |
464 | 466 | | |
465 | 467 | | |
466 | 468 | | |
| |||
686 | 688 | | |
687 | 689 | | |
688 | 690 | | |
689 | | - | |
| 691 | + | |
| 692 | + | |
690 | 693 | | |
691 | 694 | | |
692 | 695 | | |
693 | 696 | | |
694 | 697 | | |
695 | 698 | | |
696 | 699 | | |
697 | | - | |
| 700 | + | |
698 | 701 | | |
699 | 702 | | |
700 | 703 | | |
| |||
908 | 911 | | |
909 | 912 | | |
910 | 913 | | |
| 914 | + | |
911 | 915 | | |
912 | 916 | | |
913 | 917 | | |
| |||
918 | 922 | | |
919 | 923 | | |
920 | 924 | | |
921 | | - | |
| 925 | + | |
922 | 926 | | |
923 | 927 | | |
924 | 928 | | |
| |||
965 | 969 | | |
966 | 970 | | |
967 | 971 | | |
968 | | - | |
| 972 | + | |
969 | 973 | | |
970 | 974 | | |
971 | 975 | | |
| |||
1013 | 1017 | | |
1014 | 1018 | | |
1015 | 1019 | | |
1016 | | - | |
| 1020 | + | |
| 1021 | + | |
1017 | 1022 | | |
1018 | 1023 | | |
1019 | 1024 | | |
| |||
1115 | 1120 | | |
1116 | 1121 | | |
1117 | 1122 | | |
| 1123 | + | |
1118 | 1124 | | |
1119 | | - | |
1120 | 1125 | | |
1121 | 1126 | | |
1122 | 1127 | | |
1123 | 1128 | | |
1124 | 1129 | | |
1125 | 1130 | | |
1126 | 1131 | | |
1127 | | - | |
| 1132 | + | |
| 1133 | + | |
1128 | 1134 | | |
1129 | 1135 | | |
1130 | 1136 | | |
| |||
1142 | 1148 | | |
1143 | 1149 | | |
1144 | 1150 | | |
1145 | | - | |
| 1151 | + | |
| 1152 | + | |
1146 | 1153 | | |
1147 | 1154 | | |
1148 | 1155 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
56 | | - | |
| 56 | + | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
| 67 | + | |
65 | 68 | | |
66 | 69 | | |
67 | 70 | | |
| |||
162 | 165 | | |
163 | 166 | | |
164 | 167 | | |
165 | | - | |
166 | | - | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
167 | 171 | | |
168 | 172 | | |
169 | 173 | | |
| |||
Lines changed: 99 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
| |||
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
90 | | - | |
| 92 | + | |
91 | 93 | | |
92 | 94 | | |
93 | 95 | | |
| |||
154 | 156 | | |
155 | 157 | | |
156 | 158 | | |
157 | | - | |
| 159 | + | |
158 | 160 | | |
159 | 161 | | |
160 | 162 | | |
| |||
168 | 170 | | |
169 | 171 | | |
170 | 172 | | |
171 | | - | |
| 173 | + | |
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
| |||
0 commit comments