------- Additional Comments From bonzini at gcc dot gnu dot org 2005-09-23 09:58 ------- I've rewritten execute_cse_reciprocals, I think the only useful solution is to implement the optimal scheme for inserting reciprocals, and fix this bug in the process.
My algorithm builds a "mock" dominator tree including only the basic blocks with the divides and their common dominators, and then inserts divides whenever it is necessary to satisfy these conditions: 1) if -ftrapping-math, the basic block must have one divide 2) in addition, at least two divides must either be in the basic block, or postdominate it. I still have to run some coverage tests, then I'll post the patch. If anybody wants to help, I'd be thankful. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23948