Re: [CFG] what are class 3 edges ?
Hi, Sunzir Deepur wrote: > > so why are those class 3 edges created at all ? I didn't see any 3-edges blocks at all in your example. These extra edges might come from a non-taken path that have been removed after some further static-analysis of the code. Sorry, but I didn't take a deeper look at your example. Regards -- Emmanuel Fleury Talk is cheap. Show me the code. -- Linus Torvalds
Re: RFC: Simplify rules for ctz/clz patterns and RTL
> * Since no one uses it, we rip out all support for the ffs pattern and > expression. There's an ffs builtin! How do we know who uses it? Moreover, expmed uses it as an option in expanding some comparisons.
Re: reload question
Pat Haugen wrote: Is this being done on purpose (going on assumption that operands are commutative), such as to allow more opportunities for a successful allocation with reduced spill? I think so, but reordering the "else if"s should improve the results. I've also seen the same situation come up during register renaming (regrename.c), but not too surprising since the code there says it's based off find_reloads_address_1() and is coded similarly. ... and likewise here. Paolo
Re: RFC: Simplify rules for ctz/clz patterns and RTL
Richard Kenner wrote: * Since no one uses it, we rip out all support for the ffs pattern and expression. There's an ffs builtin! How do we know who uses it? I am not proposing to remove the built-in (i.e. the language visible __builtin_ffs() function); only the RTL expression (ffs:MODE ...) and the named machine description pattern "ffs". Moreover, expmed uses it as an option in expanding some comparisons. I see no code in expmed.c that uses either the RTL expression or the named pattern. It does use the optab, but (to reiterate) use of the ffs_optab never generates RTL that uses (ffs:MODE). zw