[PATCH] D25127: [ARM][LLD] .ARM.exidx support for executables/shared libraries
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 17:13:46 PDT 2016
ruiu added inline comments.
> MarkLive.cpp:259
> + if (Config->EMachine == EM_ARM) {
> + bool ScanRequired = true;
> + while (ScanRequired) {
I wonder if there's a better way to do this. How about adding
TinyPtrVector<InputSection<ELFT> *> Successors;
to InputSection<ELFT> class, adding reverse edges from .ARM.exidx sections to other sections to that vector as a preprocess, then handle that vector elements as successors in forEachSucessor? Then it is guranteed to converge by calling `forEachSucessor<ELFT>(*Q.pop_back_val(), Enqueue)` just once.
https://reviews.llvm.org/D25127
More information about the llvm-commits
mailing list