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

--- Comment #17 from Hubert Garavel <hubert.garavel at inria dot fr> ---

The code would be difficult to optimize upstream: given a set of expressions 
(closed terms), which can be of arbitrary types (including lists, trees, etc.)
and contain arbitrary functions (possibly given as C code fragments) that might
raise exceptions, one wants to decide whether 2 expressions are equal or not.

The goal is not to optimize upstream to ease the task of the C compiler,
but to use the C compiler as a means to decide equality in order to 
optimize the upstream program.

By the way, on the original example:

   clang -O1 takes 21 seconds
   clang -O2 takes 30 seconds
   clang -O3 takes 30 seconds

Reply via email to