[Bug middle-end/19721] [meta-bug] optimizations that CSE still catches

amylaar at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Mar 11 19:43:00 GMT 2005

------- Additional Comments From amylaar at gcc dot gnu dot org  2005-03-11 19:43 -------
(In reply to comment #18)
> IMHO.  One of the tricks with the mult and divmod expanders is precisely
> when should we expand them into their component operations.  We clearly
> don't want to do it at the very start or the very end of hte SSA path,
> but somewhere in the middle.

One of the sh64 patches that I intend to merge expands signed integer
division into calculating the inverse of the divisor (at runtime) and
then multiplying the dividend with that inverse.  It's broken up into
operations that assign to one pseudo register each, so this stuff gets
full exposure to cse, gcse and rtl loop optimizations.  If the inverse
calculation and the mutiply with the dividend end up in the same basic
block and the inverse is only used once, some combiner patterns
combine & split this stuff again to get a more scheduler-friendly data
Do you think we should have machine-dependent tree expanders so that
such details can already be exposed to (g)cse and loop optimizations at
the tree level?



More information about the Gcc-bugs mailing list