This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Fix cgraph related PR opt/13729
- From: Roger Sayle <roger at eyesopen dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sun, 18 Jan 2004 17:01:08 -0700 (MST)
- Subject: Re: [tree-ssa] Fix cgraph related PR opt/13729
On Mon, 19 Jan 2004, Jan Hubicka wrote:
> The idea has been that the ifcvt patch will take care of these
> transfomration later when it has more information about their
> profitability. Doing the transformation early confuse some other
> optimizations such as jump threading, constant propagation and such,
> becuase originally parseable conditionals were replaced.
>
> The tree-SSA for instance has one or two testcases on CCP that are
> fixed by removing these transformations.
Ahh, Ok.
However, it might be beneficial to enhance our optimizers to recognize
these problematic constructs. Clearly, if the user writes something like:
if ((a | b) == 0)
{
...
}
we should be able to deduce the inferences that "a == 0" and "b == 0"
during "...". I don't disagree that we should probably disable these
transformations until a later pass can be sure they're profitable,
but we should also take this opportunity to analyse the failings of
"jump threading", "constant propagation" and tree-ssa's CCP now that
they've been revealed. None of these problematic constructs is
uncommon in user written code.
Roger
--