[LLVMdev] lld deadstrip atoms

Shankar Easwaran shankare at codeaurora.org
Fri Nov 9 07:31:16 PST 2012


Hi Nick,

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)

Question:-
***********
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 
atom,

deadStripNormal, deadStripAlways, deadStripNever

Question :-
************
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 ?

Thanks

Shankar Easwaran

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation




More information about the llvm-dev mailing list