diff options
author | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2018-03-08 18:48:03 +0000 |
---|---|---|
committer | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2018-03-08 18:48:03 +0000 |
commit | 7b66ef10364d20acfa83934e04a04b2f799a0396 (patch) | |
tree | 6ef5beba6fca6d412c9abcfbf21323ab95f61ca3 /libclc/generic/include/clc/integer/popcount.h | |
parent | d5e5992f9a2ef811536d42571de7d312774ad928 (diff) | |
download | bcm5719-llvm-7b66ef10364d20acfa83934e04a04b2f799a0396.tar.gz bcm5719-llvm-7b66ef10364d20acfa83934e04a04b2f799a0396.zip |
[ThinLTO] Keep available_externally symbols live
Summary:
This change fixes PR36483. The bug was originally introduced by a change
that marked non-prevailing symbols dead. This broke LowerTypeTests
handling of available_externally functions, which are non-prevailing.
LowerTypeTests uses liveness information to avoid emitting thunks for
unused functions.
Marking available_externally functions dead is incorrect, the functions
are used though the function definitions are not. This change keeps them
live, and lets the EliminateAvailableExternally/GlobalDCE passes remove
them later instead.
I've also enabled EliminateAvailableExternally for all optimization
levels, I believe it being disabled for O1 was an oversight.
Reviewers: pcc, tejohnson
Reviewed By: tejohnson
Subscribers: grimar, mehdi_amini, inglorion, eraman, llvm-commits
Differential Revision: https://reviews.llvm.org/D43690
llvm-svn: 327041
Diffstat (limited to 'libclc/generic/include/clc/integer/popcount.h')
0 files changed, 0 insertions, 0 deletions