This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


------- 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
flow.
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?

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19721


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]