[llvm-commits] patch: teach deadargelim to work on externally visible functions!

Chris Lattner clattner at apple.com
Sun Jan 10 20:16:36 PST 2010


On Jan 10, 2010, at 8:08 PM, Chris Lattner wrote:

> 
> On Jan 10, 2010, at 7:56 PM, Rafael Espindola wrote:
> 
>>> This example has undefined behavior, so it doesn't matter what we
>>> produce.  We should just always generate the faster code.  This sounds
>>> like a pretty serious performance bug on ELF systems.
>> 
>> On the ELF standard maybe :-(
>> Functions that are not marked with hidden/protected visibility can be
>> overridden at runtime.  That is used for thing like changing malloc by
>> using LD_PRELOAD.
> 
> Treating the functions like that would be completely impractical.  This would disable IP constant prop and many other interprocedural optimizations.  If you want that behavior, we should introduce a new attribute, which results in us generating a new "strong but overridable" linkage type.  Sorta like a non-ODR "external".

It would also require disabling inlining. :)

-Chris



More information about the llvm-commits mailing list