[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