Summary: | reassoc does not handle (i+j)+(k+l) well | ||
---|---|---|---|
Product: | gcc | Reporter: | Andrew Pinski <pinskia> |
Component: | tree-optimization | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | gcc-bugs |
Priority: | P2 | Keywords: | missed-optimization |
Version: | 4.1.0 | ||
Target Milestone: | 4.2.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2005-11-21 02:43:36 | |
Bug Depends on: | |||
Bug Blocks: | 18589, 23429 |
Description
Andrew Pinski
2005-07-05 18:33:41 UTC
Subject: Re: New: reassoc does not handle (i+j)+(k+l) well On Tue, 2005-07-05 at 18:33 +0000, pinskia at gcc dot gnu dot org wrote: > take the following example: > int f(int i, int j, int k, int l) > { > int r1 = (i+j)+(k+l); > int r2 = (j+k)+(l+i); > return r1 == r2; > } > > This should return 1 all the time. I found this while making testcases for reassoc working fp (well I just > change one little thing to make it work really). We can't do a full top-down reassocation because update_stmt reorders our operands so we lose information about which is the high ranked operand, etc. It's a pain in the ass to fix, but possible. > Confirmed then. Fixed. |