On 09/06/2017 03:55 AM, Jackson Woodruff wrote: > Hi all, > > A minor improvement came to mind while updating other parts of this patch. > > I've updated a testcase to make it more clear and a condition now uses a > call to is_division_by rather than manually checking those conditions. > > Jackson > > On 08/30/2017 05:32 PM, Jackson Woodruff wrote: >> Hi all, >> >> I've attached a new version of the patch in response to a few of >> Wilco's comments in person. >> >> The end product of the pass is still the same, but I have fixed >> several bugs. >> >> Now tested independently of the other patches. >> >> On 08/15/2017 03:07 PM, Richard Biener wrote: >>> On Thu, Aug 10, 2017 at 4:10 PM, Jackson Woodruff >>> <jackson.woodr...@foss.arm.com> wrote: >>>> Hi all, >>>> >>>> The patch implements the some of the division optimizations discussed in >>>> >>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026 . >>>> >>>> We now reassociate (as discussed in the bug report): >>>> >>>> x / (y * y) -> x * (1 / y) * (1 / y) >>>> >>>> If it is reasonable to do so. This is done with >>>> -funsafe-math-optimizations. >>>> >>>> Bootstrapped and regtested with part (1/2). OK for trunk? >>> >>> I believe your enhancement shows the inherent weakness of >>> CSE of reciprocals in that it works from the defs. It will >>> handle x / (y * y) but not x / (y * y * y). >>> >>> I think a rewrite of this mini-pass is warranted. >> >> I suspect that there might be more to gain by of handling the case of >> x / (y * z) rather than the case of x / (y**n), but I agree that this >> pass could do more. >> >>> >>> Richard. >>> >>>> Jackson >>>> >>>> gcc/ >>>> >>>> 2017-08-03 Jackson Woodruff <jackson.woodr...@arm.com> >>>> >>>> PR 71026/tree-optimization >>>> * tree-ssa-math-opts (is_division_by_square, >>>> is_square_of, insert_sqaure_reciprocals): New. >>>> (insert_reciprocals): Change to insert reciprocals >>>> before a division by a square. >>>> (execute_cse_reciprocals_1): Change to consider >>>> division by a square. >>>> >>>> >>>> gcc/testsuite >>>> >>>> 2017-08-03 Jackson Woodruff <jackson.woodr...@arm.com> >>>> >>>> PR 71026/tree-optimization >>>> * gcc.dg/associate_division_1.c: New. >>>> >> >> Thanks, >> >> Jackson. >> >> Updated ChangeLog: >> >> gcc/ >> >> 2017-08-30 Jackson Woodruff <jackson.woodr...@arm.com> >> >> PR 71026/tree-optimization >> * tree-ssa-math-opts (is_division_by_square, is_square_of): New. >> (insert_reciprocals): Change to insert reciprocals >> before a division by a square and to insert the square >> of a reciprocal. >> (execute_cse_reciprocals_1): Change to consider >> division by a square. >> (register_division_in): Add importance parameter. >> >> gcc/testsuite >> >> 2017-08-30 Jackson Woodruff <jackson.woodr...@arm.com> >> >> PR 71026/tree-optimization >> * gcc.dg/extract_recip_3.c: New. >> * gcc.dg/extract_recip_4.c: New. >> * gfortran.dg/extract_recip_1.f: New. OK for the trunk. Sorry for the delays.
Do you have commit privileges in GCC? Jeff