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


  Well,then I am not quite sure about the usage of this testsuite.Most
testsuites seem to be used to test whether or not a kind of
optimization works,and according to your view,this testsuite seems to
be useless.
  So do you think it is proper if we remove this testsuite from the
GCC testsuites?
  Thanks again.

On Wed, Oct 13, 2010 at 3:12 PM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> ??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]