This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATCH to integrate c++-delayed-folding branch
- From: Jason Merrill <jason at redhat dot com>
- To: David Edelsohn <dje dot gcc at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 16 Nov 2015 22:47:27 -0500
- Subject: Re: C++ PATCH to integrate c++-delayed-folding branch
- Authentication-results: sourceware.org; auth=none
- References: <CAGWvny=UJkx6m4--bYN6sT5xz=ifpwue5fB+8Jx-bsPufACXqw at mail dot gmail dot com> <5646D8FD dot 40209 at redhat dot com> <CAGWvnyk5q70c3YDeiW_=EAgXj7yKD_MFMv1BdsPKLbTCPaBoag at mail dot gmail dot com>
On 11/16/2015 09:39 PM, David Edelsohn wrote:
The PPC port seems to be bootstrapping again, but I'm not sure why.
Mike Meissner's patch only should have affected long double.
It's hard to know if there is a latent bug that has gone back into hiding.
The problem was twofold:
1) VSX_L included IFmode, but VSa didn't, so expanding various patterns
over VSX_L generated an IFmode insn that still had <VSa> scattered
around. Mike's patch fixed this.
2) The delayed folding merge changed
__builtin_constant_p (non-constant-expr && false)
to be false because the operand is not a C++ constant expression.
Previously we had seen that the IFmode insn was inactive because its
test was known to be false, but with this change we needed to evaluate
its test at runtime, so we had to parse the insn itself, so we ran into
problem #1.
I have a patch to fix the __builtin_constant_p regression which I will
be checking in shortly.
Jason