This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] combine: Do not call simplify from inside change_zero_ext (PR78232)
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Eric Botcazou <ebotcazou at adacore dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 9 Nov 2016 02:54:00 -0600
- Subject: Re: [PATCH] combine: Do not call simplify from inside change_zero_ext (PR78232)
- Authentication-results: sourceware.org; auth=none
- References: <09825b667d8b36f110687054029e15ed888c81e8.1478638034.git.segher@kernel.crashing.org> <7703727.v2ttPBIa67@polaris>
On Wed, Nov 09, 2016 at 09:30:59AM +0100, Eric Botcazou wrote:
> > This can also happen if a splitter in the MD uses nonzero_bits (for
> > example). I tried to make the splitting code in combine save and restore
> > the i2dest reg_stat info, but that causes one of the acats tests to fail.
>
> Could you elaborate? Did you try to temporarily invalidate it, e.g. by means
> of last_set_label, or something more involved?
You need more than that, e.g. reg_nonzero_bits_for_combine looks at the
nonzero_bits field no matter what else. So I set all fields to "safe"
values and restored them later (if no combination is done). But this
fails in acats c66002c (all other tests for all languages work fine).
I didn't have the heart to look into this testcase breakage; the
save/restore thing would make this already way over-complex code a lot
more complex still, so I made a safer change instead.
Ideally reg_stat will just go away, but that will not happen soon.
Segher