https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97359

--- Comment #7 from Andrew Macleod <amacleod at redhat dot com> ---
There is no need to cache non-logical operands. Processing a relational such as
<,>,<=,>= is a linear process, and therefore we never needed to cache them.

&& and || is exponential as we have to evaluate 
op1_true, op1_false,  op2_true,  and op2_false 
and the resulting 4 combinations...  so each logical operand can trigger 4
lookup calculations.. and when they feed into each other the on-demand lookups
become exponential quite quickly.. 

the cache makes processing them linear as well.

Before the next stage 1 opens, I plan to rework the GORI computations to be
more efficient on calculating outgoing ranges.

Reply via email to