This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC/RFA: patch for PR 22156: improve SRA for bit-fields
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Eric Botcazou <ebotcazou at adacore dot com>
- Cc: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 03 May 2007 21:12:42 -0300
- Subject: Re: RFC/RFA: patch for PR 22156: improve SRA for bit-fields
- References: <or648xoi7m.fsf@free.oliva.athome.lsd.ic.unicamp.br> <20070320234004.GB28738@redhat.com> <orejnjca8r.fsf@free.oliva.athome.lsd.ic.unicamp.br> <200704221114.25690.ebotcazou@adacore.com>
I'm sorry, I'd mistaken your report as a miscompilation, that I hoped
would be fixed with my revised patch. Now I see it's just an
optimization issue.
On Apr 22, 2007, Eric Botcazou <ebotcazou@adacore.com> wrote:
> I find it a little strange that your patch doesn't contain a single instance
> of DECL_BIT_FIELD:
That's because it's not focused specifically on bit-fields.
It tries to represent in a single gimple register all adjacent fields
of a struct that are not accessed individually.
lib_opts.0 = VIEW_CONVERT_EXPR<struct gnat__strings__string_access>(D.746);
lib_opts = lib_opts.0;
So you see, lib_opts, whose members presumably get accessed directly,
gets its members represented as separate variables. lib_opts.0, that
is only accessed as a block, gets represented as a single variable.
Given the explanation above, does this request still hold?
> We definitely don't want to handle P_ARRAY and P_BOUNDS as a block,
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}