This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8


Ping ^ 5

> -----Original Message-----
> From: Joey Ye [mailto:joey.ye@arm.com]
> Sent: 19 February 2014 17:22
> To: 'jakub@redhat.com'; gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping ^ 4
> 
> > -----Original Message-----
> > From: Joey Ye [mailto:joey.ye@arm.com]
> > Sent: Friday, February 14, 2014 9:58
> > To: gcc-patches@gcc.gnu.org
> > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
> > 4.8
> >
> > Ping ^3
> >
> > These fixes are very important to 4.8 ARM embedded users, as they rely
> > on strict volatile bitfields a lot. Please let them in 4.8.
> >
> > > -----Original Message-----
> > > From: Joey Ye [mailto:joey.ye@arm.com]
> > > Sent: Saturday, February 08, 2014 10:42
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > to
> > > 4.8
> > >
> > > Ping ^ 2
> > >
> > > OK to 4.8?
> > >
> > > > -----Original Message-----
> > > > From: Joey Ye [mailto:joey.ye@arm.com]
> > > > Sent: Monday, January 20, 2014 10:47
> > > > To: gcc-patches@gcc.gnu.org
> > > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > to 4.8
> > > >
> > > > Ping
> > > >
> > > > > -----Original Message-----
> > > > > From: Joey Ye [mailto:joey.ye@arm.com]
> > > > > Sent: Thursday, January 16, 2014 16:28
> > > > > To: gcc-patches@gcc.gnu.org
> > > > > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > > to
> > > > > 4.8
> > > > >
> > > > > 4.8 has a number of strict-volatile-bitfields issues that can be
> > > > > fixed by following patches.
> > > > > trunk@205899, 205898, 205897, 205896, 203003
> > > > >
> > > > > Tested on x86_64 and arm without regression.
> > > > >
> > > > > OK to 4.8?
> > > > >
> > > > > 2013-09-28  Sandra Loosemore  <sandra@codesourcery.com>
> > > > >
> > > > >         gcc/
> > > > >         * expr.h (extract_bit_field): Remove packedp parameter.
> > > > >         * expmed.c (extract_fixed_bit_field): Remove packedp
> parameter
> > > > >         from forward declaration.
> > > > >         (store_split_bit_field): Remove packedp arg from calls to
> > > > >         extract_fixed_bit_field.
> > > > >         (extract_bit_field_1): Remove packedp parameter and
packedp
> > > > >         argument from recursive calls and calls to
extract_fixed_bit_field.
> > > > >         (extract_bit_field): Remove packedp parameter and
> corresponding
> > > > >         arg to extract_bit_field_1.
> > > > >         (extract_fixed_bit_field): Remove packedp parameter.
> > > > > Remove
> > > code
> > > > >         to issue warnings.
> > > > >         (extract_split_bit_field): Remove packedp arg from call to
> > > > >         extract_fixed_bit_field.
> > > > >         * expr.c (emit_group_load_1): Adjust calls to
extract_bit_field.
> > > > >         (copy_blkmode_from_reg): Likewise.
> > > > >         (copy_blkmode_to_reg): Likewise.
> > > > >         (read_complex_part): Likewise.
> > > > >         (store_field): Likewise.
> > > > >         (expand_expr_real_1): Likewise.
> > > > >         * calls.c (store_unaligned_arguments_into_pseudos): Adjust
call
> > > > >         to extract_bit_field.
> > > > >         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load):
Adjust
> > > > >         call to extract_bit_field.
> > > > >         * config/tilepro/tilepro.c
(tilepro_expand_unaligned_load):
> Adjust
> > > > >         call to extract_bit_field.
> > > > >         * doc/invoke.texi (Code Gen Options): Remove mention of
> > warnings
> > > > >         and special packedp behavior from
-fstrict-volatile-bitfields
> > > > >         documentation.
> > > > >
> > > > > 2013-12-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
> > > > >
> > > > >         * expr.c (expand_assignment): Remove dependency on
> > > > >         flag_strict_volatile_bitfields. Always set the memory
> > > > >         access mode.
> > > > >         (expand_expr_real_1): Likewise.
> > > > >
> > > > > 2013-12-11  Sandra Loosemore  <sandra@codesourcery.com>
> > > > >
> > > > >         PR middle-end/23623
> > > > >         PR middle-end/48784
> > > > >         PR middle-end/56341
> > > > >         PR middle-end/56997
> > > > >
> > > > >         gcc/
> > > > >         * expmed.c (strict_volatile_bitfield_p): New function.
> > > > >         (store_bit_field_1): Don't special-case strict volatile
> > > > >         bitfields here.
> > > > >         (store_bit_field): Handle strict volatile bitfields here
instead.
> > > > >         (store_fixed_bit_field): Don't special-case strict
volatile
> > > > >         bitfields here.
> > > > >         (extract_bit_field_1): Don't special-case strict volatile
> > > > >         bitfields here.
> > > > >         (extract_bit_field): Handle strict volatile bitfields here
instead.
> > > > >         (extract_fixed_bit_field): Don't special-case strict
volatile
> > > > >         bitfields here.  Simplify surrounding code to resemble
that in
> > > > >         store_fixed_bit_field.
> > > > >         * doc/invoke.texi (Code Gen Options): Update
> > > > >         -fstrict-volatile-bitfields description.
> > > > >
> > > > >         gcc/testsuite/
> > > > >         * gcc.dg/pr23623.c: New test.
> > > > >         * gcc.dg/pr48784-1.c: New test.
> > > > >         * gcc.dg/pr48784-2.c: New test.
> > > > >         * gcc.dg/pr56341-1.c: New test.
> > > > >         * gcc.dg/pr56341-2.c: New test.
> > > > >         * gcc.dg/pr56997-1.c: New test.
> > > > >         * gcc.dg/pr56997-2.c: New test.
> > > > >         * gcc.dg/pr56997-3.c: New test.
> > > > >
> > > > > 2013-12-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
> > > > >              Sandra Loosemore  <sandra@codesourcery.com>
> > > > >
> > > > >         PR middle-end/23623
> > > > >         PR middle-end/48784
> > > > >         PR middle-end/56341
> > > > >         PR middle-end/56997
> > > > >         * expmed.c (strict_volatile_bitfield_p): Add
bitregion_start
> > > > >         and bitregion_end parameters.  Test for compliance with
C++
> > > > >         memory model.
> > > > >         (store_bit_field): Adjust call to
strict_volatile_bitfield_p.
> > > > >         Add fallback logic for cases where
-fstrict-volatile-bitfields
> > > > >         is supposed to apply, but cannot.
> > > > >         (extract_bit_field): Likewise. Use narrow_bit_field_mem
and
> > > > >         extract_fixed_bit_field_1 to do the extraction.
> > > > >         (extract_fixed_bit_field): Revert to previous mode
> > > > > selection
> > > algorithm.
> > > > >         Call extract_fixed_bit_field_1 to do the real work.
> > > > >         (extract_fixed_bit_field_1): New function.
> > > > >
> > > > > testsuite:
> > > > >         * gcc.dg/pr23623.c: Update to test interaction with C++
> > > > >         memory model.
> > > > >
> > > > > 2013-12-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
> > > > >
> > > > >         PR middle-end/59134
> > > > >         * expmed.c (store_bit_field): Use narrow_bit_field_mem and
> > > > >         store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
> > > > >         (store_fixed_bit_field): Split up.  Call
store_fixed_bit_field_1
> > > > >         to do the real work.
> > > > >         (store_fixed_bit_field_1): New function.
> > > > >         (store_split_bit_field): Limit the unit size to the memory
mode
> size,
> > > > >         to prevent recursion.
> > > > >
> > > > > testsuite:
> > > > >         * gcc.c-torture/compile/pr59134.c: New test.
> > > > >         * gnat.dg/misaligned_volatile.adb: New test.
> > > > >
> > > > >
> > > > >

Attachment: all.diff
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]