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: Reload bug & SRA oddness


Alexandre Oliva wrote on 05/01/07 11:38:

> 	PR middle-end/22156
> 	2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
> 	* tree-sra.c (struct sra_elt): Add in_bitfld_block.
> 	(sra_hash_tree): Handle BIT_FIELD_REFs.
> 	(sra_elt_hash): Don't hash bitfld blocks.
> 	(sra_elt_eq): Skip them in parent compares as well.  Handle
> 	BIT_FIELD_REFs.
> 	(sra_walk_expr): Use a variable as both input and output if it's
> 	referenced in a BIT_FIELD_REF in a lhs.
> 	(build_element_name_1): Handle BIT_FIELD_REFs.
> 	(instantiate_element): Don't warn for any element whose parent
> 	is used as a whole.
> 	(instantiate_missing_elements_1): Return the sra_elt.
> 	(canon_type_for_field): New.
> 	(try_instantiate_multiple_fields): New.  Initialize align.
> 	(instantiate_missing_elemnts): Use them.
> 	(generate_one_element_ref): Handle BIT_FIELD_REFs.
> 	(REPLDUP): New.
> 	(sra_build_elt_assignment): New.  Avoid need for needless
> 	initialization of maxalign and minalign.
> 	(generate_copy_inout): Use them.
> 	(generate_element_copy): Likewise.  Handle bitfld differences.
> 	(generate_element_zero): Don't recurse for blocks.  Use
> 	sra_build_elt_assignment.
> 	(generate_one_element_int): Take elt instead of var.  Use
> 	sra_build_elt_assignment.
> 	(generate_element_init_1): Adjust.
> 	(scalarize_use): Re-expand assignment to BIT_FIELD_REF of
> 	gimple_reg.  Use REPLDUP.
> 	(scalarize_copy): Use REPLDUP.
> 	(scalarize_ldst): Move assert before dereference.
> 	(dump_sra_elt_name): Handle BIT_FIELD_REFs.

OK if testing included Ada.


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