[PATCH] D96035: [dsymutil][DWARFlinker] implement separate multi-thread processing for compile units.
Alexey Lapshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 27 06:05:58 PDT 2022
avl added a comment.
In D96035#3681927 <https://reviews.llvm.org/D96035#3681927>, @dreampiggy wrote:
> Hi.
>
> I try to pick the code for testing the performance. However, I found the new dwarflinker-next, will crash at some specify code path
Hi @dreampiggy,
The patch is a bit outdated. The upstream code has been changed since I built it last time. I will rebase it.
> See crash stacktrace here:
>
> F23924676: screenshot-20220727-192355.png <https://reviews.llvm.org/F23924676>
>
> I try to debug and found the reason:
>
> during analysis stage, `NamesGenerator.assignName(CU, DieIdx)` can not assign a valid name for some unhandled DIEEntry tag, like
>
> + `DW_TAG_thrown_type`
>
> This will cause the final `CU.TypeInfo.TypeName` be null, and crash at the `TypePool.insert` during ODR stage
>
> Any solution for this ? Should we just mark it as `bad type` with the raw hex with the default case (current not)? Or add some more handle cases ?
We need to handle more cases. DW_TAG_thrown_type is currently not handled by new DWARFLinker(as well as by old DWARFLinker). It should be handled at least inside SyntheticTypeNameBuilder::analyzeDieForTypeName().
I will rebase and add handling of DW_TAG_thrown_type in a week.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96035/new/
https://reviews.llvm.org/D96035
More information about the llvm-commits
mailing list