[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Keywords||wrong-code Summary|loop-invariant miscompiles |[4.2 Regre

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-02-16 12:50 --- Confirmed but it might be that the memory load is not marked as being able to trap so move invariants is moving it above the loop. -- pinskia at gcc dot gnu dot org changed: What|Removed

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread jakub at gcc dot gnu dot org
--- Comment #2 from jakub at gcc dot gnu dot org 2006-02-16 12:57 --- It doesn't need to be marked as trapping. If you have if (idx <= 20) val = p[idx]; you certainly can't change this into: tmp = p[idx]; if (idx <= 20) val = tmp; except if tmp = p[idx]; is speculative load

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread rakdver at atrey dot karlin dot mff dot cuni dot cz
--- Comment #3 from rakdver at atrey dot karlin dot mff dot cuni dot cz 2006-02-16 12:59 --- Subject: Re: [4.2 Regression] loop-invariant miscompiles openmp.c > It doesn't need to be marked as trapping. > If you have > if (idx <= 20) > val = p[idx]; > you certainly can't change

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread jakub at gcc dot gnu dot org
--- Comment #4 from jakub at gcc dot gnu dot org 2006-02-16 13:11 --- The MEM is marked as MEM_NOTRAP_P, by do_tablejump -> gen_const_mem. Still, IMHO you can't do that, otherwise we couldn't mark any MEM as MEM_NOTRAP_P unless it has constant operand. If a particular array will not tra

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-02-16 13:35 --- (In reply to comment #4) > The MEM is marked as MEM_NOTRAP_P, by do_tablejump -> gen_const_mem. > Still, IMHO you can't do that, otherwise we couldn't mark any MEM > as MEM_NOTRAP_P unless it has constant operand. I

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread rakdver at gcc dot gnu dot org
--- Comment #6 from rakdver at gcc dot gnu dot org 2006-02-16 13:38 --- Sadly, Jakub is probably right -- since the very beginning, MEM_NOTRAP_P was used to mean that the mem cannot trap in its current context. This makes MEM_NOTRAP_P completely useless as far as code motion is concerne

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-02-16 13:42 --- http://gcc.gnu.org/ml/gcc/2005-09/msg00021.html There are most likely other talk here too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26316

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #8 from pinskia at gcc dot gnu dot org 2006-02-16 13:47 --- /* Generate a memory referring to non-trapping constant memory. */ Which might mean that do_tablejump is using it wrong. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26316

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread rakdver at gcc dot gnu dot org
--- Comment #9 from rakdver at gcc dot gnu dot org 2006-02-16 13:53 --- Given that do_tablejump was the very first setter of MEM_NOTRAP_P, it is not likely that it would be the wrong one (unless all other setters that came later chose the other possible semantics). -- http://gcc.gnu

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #10 from pinskia at gcc dot gnu dot org 2006-02-16 13:54 --- The NOTRAP was added when PR 8866 was fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added --

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread pinskia at gcc dot gnu dot org
--- Comment #11 from pinskia at gcc dot gnu dot org 2006-02-16 13:57 --- Thread for the PR 8866 fix: http://gcc.gnu.org/ml/gcc-patches/2003-04/msg01438.html Though I am wondering why do people think it could not trap because it can if it was moved. Seems like NoTrap is useless in gene

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-16 Thread jakub at gcc dot gnu dot org
--- Comment #12 from jakub at gcc dot gnu dot org 2006-02-16 21:31 --- Subject: Bug 26316 Author: jakub Date: Thu Feb 16 21:31:20 2006 New Revision: 52 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=52 Log: * openmp.c (resolve_omp_clauses): Add a dummy case label

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-17 Thread rakdver at gcc dot gnu dot org
-- rakdver at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rakdver at gcc dot gnu dot |dot org

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-17 Thread rakdver at gcc dot gnu dot org
--- Comment #13 from rakdver at gcc dot gnu dot org 2006-02-17 18:38 --- Patch: http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01461.html -- rakdver at gcc dot gnu dot org changed: What|Removed |Added ---

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-23 Thread rakdver at gcc dot gnu dot org
--- Comment #14 from rakdver at gcc dot gnu dot org 2006-02-23 21:03 --- Subject: Bug 26316 Author: rakdver Date: Thu Feb 23 21:03:05 2006 New Revision: 111397 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111397 Log: PR rtl-optimization/26316 * rtlanal.c (enum

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-24 Thread pinskia at gcc dot gnu dot org
--- Comment #15 from pinskia at gcc dot gnu dot org 2006-02-24 15:20 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNE

[Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c

2006-02-28 Thread reichelt at gcc dot gnu dot org
--- Comment #16 from reichelt at gcc dot gnu dot org 2006-02-28 14:40 --- Jakub, are you going to revert your patch * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround PR middle-end/26316. now that the PR got fixed properly? -- http://gcc.gnu.o