[llvm-commits] [llvm] r61552 - in /llvm/trunk: lib/Transforms/IPO/FunctionAttrs.cpp test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll

Devang Patel dpatel at apple.com
Mon Jan 12 11:15:51 PST 2009


On Jan 11, 2009, at 4:22 PM, Bill Wendling wrote:

> On Jan 11, 2009, at 12:18 PM, Duncan Sands wrote:
>
>> Hi Nick,
>>
>>> I'm not too keen on the notion of 'opt -simplifycfg -functionattrs'
>>> behaving entirely differently from 'opt -simplifycfg | opt -
>>> functionattrs'.
>>
>> opt -functionattrs -inline is already different to opt -
>> functionattrs |
>> opt -inline.
>>
> It is?! Ew! I agree with Nick that the behavior shouldn't change in
> this way. What's the difference?


opt -functionattrs -inline  walks call graph and executes both passes  
on each node...

functionattrs(f1)
inline(f1)
functionattrs(f2)
inline(f2)
functionattrs(f3)
inline(f3)

where as opt -functionattrs | opt -inline walks call graph twice

functionattrs(f1)
functionattrs(f2)
functionattrs(f3)

inline(f1)
inline(f2)
inline(f2)

When one pass influence other pass's behavior then there is a  
difference in such situation.
-
Devang






More information about the llvm-commits mailing list