aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2018-04-09 08:41:57 +0000
committerPavel Labath <labath@google.com>2018-04-09 08:41:57 +0000
commit889bf9fe007c0915d8860bbc3ec877692792dd45 (patch)
treec2d9dbe308173d9cf743a97030d30066347782f0 /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent1f4f4d9a080cc9ea27c1040ec1c7341a29d77487 (diff)
downloadllvm-889bf9fe007c0915d8860bbc3ec877692792dd45.zip
llvm-889bf9fe007c0915d8860bbc3ec877692792dd45.tar.gz
llvm-889bf9fe007c0915d8860bbc3ec877692792dd45.tar.bz2
[CodeGen/AccelTable]: Don't emit accelerator entries for functions with no names
Summary: We were emitting accelerator entries for functions with no name, which is contrary to the DWARF v5 spec: "All other (i.e., *not* DW_TAG_namespace) debugging information entries without a DW_AT_name attribute are excluded." Besides that, a name table entry with an empty string as a key is fairly useless. We can sometimes end up with functions which have a DW_AT_linkage_name but no DW_AT_name. One such example is the global-constructor-initialization functions, which C++ compilers synthesize for each compilation unit with global constructors. A very strict reading of the DWARF v5 spec would suggest that we should not even emit the accelerator entry for the linkage name in this case, but I don't think we should go that far. I found this when running the dwarf verifier over llvm codebase compiled with DWARF v5 accelerator tables. Reviewers: JDevlieghere, aprantl, dblaikie Subscribers: vleschuk, clayborg, echristo, probinson, llvm-commits Differential Revision: https://reviews.llvm.org/D45367 llvm-svn: 329552
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions