This is the mail archive of the gcc-patches@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] |
Hi all,This patch is split from part (1/2). It includes the patterns that have been moved out of fold-const.c
It also removes an (almost entirely) redundant pattern: (A / C1) +- (A / C2) -> A * (1 / C1 +- 1 / C2) which was only used in special cases, either with combinations of flags like -fno-reciprocal-math -funsafe-math-optimizations and cases where C was sNaN, or small enough to result in infinity. This pattern is covered by: (A / C1) +- (A / C2) -> (with O1 and reciprocal math) A * (1 / C1) +- A * (1 / C2) -> A * (1 / C1 +- 1 / C2) The previous pattern required funsafe-math-optimizations.To adjust for this case, the testcase has been updated to require O1 so that the optimization is still performed.
This pattern is moved verbatim into match.pd: (A / C) +- (B / C) -> (A +- B) / C. OK for trunk? Jackson gcc/ 2017-08-30 Jackson Woodruff <jackson.woodruff@arm.com> PR 71026/tree-optimization * match.pd: Move RDIV patterns from fold-const.c * fold-const.c (distribute_real_division): Removed. (fold_binary_loc): Remove calls to distribute_real_divison. gcc/testsuite/ 2017-08-30 Jackson Woodruff <jackson.woodruff@arm.com> PR 71026/tree-optimization * gcc/testsuire/gcc.dg/fold-div-1.c: Use O1.
Attachment:
patchfile-0
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |