[LLVMdev] Proposal to merge SimplifyLibCalls into InstCombiner

Chris Lattner clattner at apple.com
Fri Aug 3 13:15:03 PDT 2012


On Aug 3, 2012, at 12:56 PM, Meador Inge <meadori at codesourcery.com> wrote:
>>> An option for enabling/disabling library call simplification in `InstCombiner`
>>> will be available.  For backwards compatibility perhaps it should remain
>>> '-simplify-libcalls'.  The `NumSimplified` and `NumAnnotated` statistics shall
>>> be added to `InstCombiner`.
>> 
>> There is no need to preserver the -simplify-libcalls flag.  It's an internal
>> implementation detail of the compiler, one that is better left in the past :)
> 
> Do you think we still need some way to disable just the library call
> simplification now that it is a part of the instruction combiner?

It should just be part of instcombine, but be gated by what TargetLibraryInfo says.  If you want to turn off these libcall optimizations, it should be by marking the libcalls as off-limits in TLI.

> 
>>> 1. What should be done about the `SimplifyFortifiedLibCalls` use in
>>>  `CodeGenPrepare`?
>> 
>> I think it stays where it is.  CGP runs right before the code generator
>> kicks in.  The idea here is that we want to leave the fortified libcalls
>> in the IR as long as possible on the off chance that instcombine or something
>> else can expose range information about underlying buffers... however, if we
>> get all the way to code gen, then we failed to find a length, so we remove them.
> 
> Thanks for the explanation.  As a part of the merger I really want
> `SimplifyFortifiedLibCalls` to go away as well, since the fortified
> library call folding is being rolled into `LibCallSimplifier`.  I will
> look at applying `LibCallSimplifier` to the CGP case as well (the conditions
> for when it is OK to fold is slightly different for CGP).

Ok, please just tackle this as a follow-on step.  Thanks Meador!

-Chris



More information about the llvm-dev mailing list