[llvm-commits] [llvm] r52315 - in /llvm/trunk: include/llvm/Analysis/ValueTracking.h lib/Analysis/ValueTracking.cpp lib/Transforms/Scalar/InstructionCombining.cpp

Chris Lattner clattner at apple.com
Tue Jun 24 10:41:46 PDT 2008


On Jun 24, 2008, at 12:57 AM, Matthijs Kooijman wrote:

> Hi Chris,
>
>> Can't passes just insert a new ExtractValueInst and expect  
>> instcombine
>> to simplify stuff away?
> Currently, this method is only used by SCCP, IPConstProp and  
> InstCombine
> itself. The first two use it to propagate constants or known values  
> out of
> functions (ie, propage known return values). This means they really  
> have to
> try to find the actual value instead of just inserting extractvalue.
>
> We could probably reduce this to only look at the first level of  
> inserts or
> something, but that would require always running instcombine before  
> these
> passes (which ends up being slower, I would expect) and causes some
> simplifications to be left out.

These interprocedural passes can only be run roughly when the ABI is  
changable for a function.  Shouldn't they just "flatten" the return  
value and scalarize arguments when this is the case?  If that is so,  
the "walking" of insertvalue etc should be minimal.

-Chris




More information about the llvm-commits mailing list