This is the mail archive of the gcc@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]

Re: GCSE problem on a gcc testsuite


> ??But now I am facing with a new instruction which will put the result
> in a single register,and thus GCC want to do GCSE on this
> instruction.GCC will treat si1%si2 as a loop invariant.So si1%si2 was
> moved out of the loop,just before the execution of function foo();as
> si2 is equal 0,there occurs a trap which shouldn't have occurred
> according to the original semantic.

This happens for other targets as well, see the audit trail of the PR.

> ?? I am considering a solution:in a certain basic block,if there
> exists a function call rtx(which might exit or even trap in
> advance),then we shall not do GCSE optimization on the following rtx
> which might trap(see rtlanal.c:may_trap_p()).But it seems the cost is
> expensive,and I am not quite sure whether or not it works.

Any attempt along these lines would most likely pessimize the common case.

This PR is a pathological case that doesn't come from real life and fixing it 
properly is hard, so I wouldn't bother about it.

-- 
Eric Botcazou


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]