[LLVMdev] lld deadstrip atoms
shankare at codeaurora.org
Fri Nov 9 07:31:16 PST 2012
Dead stripping optimization needs a way to setup the roots which are
live. The current code in Resolver does it by
1) setting all the global defined atoms to be the live set when building
shared libraries (_options.allGlobalsAreDeadStripRoots)
2) Or, uses a list of names that are dead strip roots (other types)
How are the dead strip root names supposed to be set ? Does each Reader
need to set specific information on what are the dead strip roots ?
There is a flag in the DefinedAtom to determine whether to deadstrip an
deadStripNormal, deadStripAlways, deadStripNever
a) What is the difference between deadStripNormal/deadStripAlways ?
b) Further looking, there is a compiler attribute __attribute(used)__
which could be set for each symbol, but this is only a compiler hint.
The information is not passed
in the symbol table. If this is not passed in the symbol table to the
linker, why is it in the DefinedAtom ?
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
More information about the llvm-dev