Commit 9695142
The reason of the assert is that debug intrinsic llvm.dbg.value is
located in a block, which does not dominate its argument. Something
like this:
B1:
call llvm.dbg.value(metadata var, ...)
....
B2:
definition of var
and B1 doesn't dominate B2. This happens in Codesinking pass. It
moved the definition of var closer to it's usage but left debug
intrinsic intact as debug intrinsics are not included in a list of
users of var definition. There is a special code to handle debug
intrinsics but unfortunately this code was not triggered in this
specific case. Check for such intrinsics in a block and trigger
the code to process the intrinsics.
Change-Id: I410d41ffdfd79f1f4803e5f922943bdad13f22ad1 parent 931b875 commit 9695142
1 file changed
+6
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
368 | 368 | | |
369 | 369 | | |
370 | 370 | | |
| 371 | + | |
371 | 372 | | |
372 | 373 | | |
373 | 374 | | |
| |||
389 | 390 | | |
390 | 391 | | |
391 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
392 | 397 | | |
393 | 398 | | |
394 | 399 | | |
| |||
431 | 436 | | |
432 | 437 | | |
433 | 438 | | |
434 | | - | |
| 439 | + | |
435 | 440 | | |
436 | 441 | | |
437 | 442 | | |
| |||
0 commit comments