This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: ARMv8, GCC 4.9 and necessary code optimized away?
- From: Andrew Haley <aph at redhat dot com>
- To: noloader at gmail dot com, Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>
- Cc: "gcc-help at gcc dot gnu dot org" <gcc-help at gcc dot gnu dot org>
- Date: Wed, 1 Jun 2016 08:32:05 +0100
- Subject: Re: ARMv8, GCC 4.9 and necessary code optimized away?
- Authentication-results: sourceware.org; auth=none
- References: <CAH8yC8=KPf7edhTRgKV4nVJfwMpSXwmU+PDGfL6i4xA4SDwJwQ at mail dot gmail dot com> <574D89F2 dot 70108 at foss dot arm dot com> <CAH8yC8m0p+N2duSKcBMo4TKFrMwo6Ed+j+Frt2SjT=ZBR14CPA at mail dot gmail dot com>
On 31/05/16 21:37, Jeffrey Walton wrote:
>> Like Florian said, 'w' is not being used so the compiler may optimise the
>> whole sequence away.
>
> I'm pretty sure this is another instance of a language defect. The
> C/C++ language does not allow us to properly express ourselves, and
> the result is the removal of critical code.
The problem here is that GCC knows that the CRC instructions have
no side effects beyond their operands. So GCC doesn't generate
the instructions.
> This is at least the third or fourth time. The one prior to this
> resulted in CVE-2016-3995.
Of course GCC deletes dead code. That's one of the most basic
optimizations.
In your case I'd just use the result as an input operand into an
asm.
Andrew.