re PR tree-optimization/52406 (likely wrong code bug)
2012-03-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52406
* tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
(struct indices): Add unconstrained_base member.
(struct dr_alias): Remove unused vops member.
(DR_UNCONSTRAINED_BASE): New define.
* tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
add indices to allow their disambiguation. Make DR_BASE_OBJECT
be an artificial access that covers the whole indexed object,
or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
plain decl base-objects to their MEM_REF variant.
(dr_may_alias_p): When the base-object of either data reference
has unknown size use only points-to information.
(compute_affine_dependence): Make dumps easier to read and
more verbose.
* tree-vect-data-ref.c (vector_alignment_reachable_p): Use
DR_REF when looking for packed references.
(vect_supportable_dr_alignment): Likewise.
Greta Yorsh [Fri, 2 Mar 2012 12:09:04 +0000 (12:09 +0000)]
For Greta Yorsh.
2012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
Improve conditions for peepholes of loads followed by commutative
operators.
* config/arm/ldmstm.md: Regenerated.
config.gcc (obsolete): Add all ARM targets using the FPA.
* config.gcc (obsolete): Add all ARM targets using the FPA.
(with_fpu): Obsolete selection of the FPA or Maverick on ARM.
* doc/install.texi: Avoid references to obsolete ARM ports.
re PR target/52408 (Incorrect assembler generated for zvdep_imm64)
PR target/52408
* config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
unsigned HOST_WIDE_INT.
(zvdep_imm64): Likewise.
(vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
(vdepi_and): Likewise.
Likewise for unamed 64-bit patterns.
* config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
Alexandre Oliva [Thu, 1 Mar 2012 16:58:11 +0000 (16:58 +0000)]
re PR debug/52001 (Huge compile-time regression with var-tracking)
PR debug/52001
PR rtl-optimization/52417
* cselib.c (cselib_any_perm_equivs): New variable.
(cselib_reset_table): Check that it's not set when not
preserving constants.
(cselib_add_permanent_equiv): Set it.
(cselib_have_permanent_equivalences): New.
(cselib_init, cselib_finish): Reset it.
* cselib.h (cselib_have_permanent_equivalences): Declare.
* alias.c (get_addr): Restore earlier behavior when there
aren't permanent equivalences.
Jakub Jelinek [Thu, 1 Mar 2012 14:13:06 +0000 (15:13 +0100)]
re PR tree-optimization/52445 (conditional store replacement causes segfault in generated code)
PR tree-optimization/52445
* tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
add ssa_name_ver, offset and size fields and change store field
to bool.
(name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
(add_or_mark_expr): Likewise. Only consider previous stores
with the same size and offset.
(nt_init_block): Only look at gimple_assign_single_p stmts,
doesn't look at rhs2.
Jakub Jelinek [Wed, 29 Feb 2012 23:45:08 +0000 (00:45 +0100)]
re PR target/52437 (internal compiler error: in spill_failure, at reload1.c:2120)
PR target/52437
* config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
alternatives, add "e" constraint to the new last alternative
and ! to last 3 alternatives.
Eric Botcazou [Wed, 29 Feb 2012 18:28:41 +0000 (18:28 +0000)]
dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and DW_AT_artificial attributes at the end of...
* dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
DW_AT_artificial attributes at the end of the processing.
(gen_array_type_die): Likewise.
(gen_enumeration_type_die): Likewise.
(gen_struct_or_union_type_die): Likewise.
(add_gnat_descriptive_type_attribute): Do not suppress debug info for
the parent type.
ada/
* gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
and set TYPE_ARTIFICIAL according to it. Â Adjust recursive call.
(gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
* gcc-interface/utils.c (rest_of_record_type_compilation): Do not
invoke rest_of_type_decl_compilation on the parallel type, if any.
Georg-Johann Lay [Wed, 29 Feb 2012 11:07:01 +0000 (11:07 +0000)]
avr.md (eqne): New code iterator.
* config/avr/avr.md (eqne): New code iterator.
(*dec-and-branchsi): Use it in text peephole's condition.
(*dec-and-branchhi): Ditto.
(*dec-and-branchqi): Ditto.
Ulrich Weigand [Tue, 28 Feb 2012 23:40:32 +0000 (23:40 +0000)]
Partially revert:
2012-02-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52298
* tree-vect-stmts.c (vectorizable_load): Properly use
STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
outer loops.
Benjamin Kosnik [Tue, 28 Feb 2012 20:25:48 +0000 (20:25 +0000)]
re PR libstdc++/52191 (abi_check should flag additions to released versions)
2012-02-21 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/52191
* testsuite/util/testsuite_abi.cc (compare_symbols): Check new
symbols added into the latest version. Mark tls entities as
undesignated.
Richard Guenther [Tue, 28 Feb 2012 15:28:32 +0000 (15:28 +0000)]
re PR target/52407 (sse2 simd uint32_t and int64_t and stack variable initialization)
2012-02-28 Richard Guenther <rguenther@suse.de>
PR target/52407
* config/i386/i386.c (ix86_expand_vector_set): Fix element
ordering for the VEC_CONCAT for two element vectors for
V2SFmode, V2SImode and V2DImode.
Jakub Jelinek [Tue, 28 Feb 2012 10:21:03 +0000 (11:21 +0100)]
re PR bootstrap/52414 (syntax error in VERSION script)
PR bootstrap/52414
* src/Makefile.am (libstdc++-symbols.ver): Only remove comment lines
if they are at the beginning of lines (with optional whitespace before
#).
* src/Makefile.in: Regenerated.
Jakub Jelinek [Tue, 28 Feb 2012 09:28:18 +0000 (10:28 +0100)]
Makefile.am (libstdc++-symbols.ver): Only remove comment lines if they are at the beginning of lines (with optional...
* src/Makefile.am (libstdc++-symbols.ver): Only remove comment lines
if they are at the beginning of lines (with optional whitespace before
#).
* src/Makefile.in: Regenerated.
Georg-Johann Lay [Tue, 28 Feb 2012 08:57:39 +0000 (08:57 +0000)]
builtins.def: New file.
* config/avr/builtins.def: New file.
* config/avr/t-avr (avr.o, avr-c.o): Depend on it.
* config/avr/avr.c (enum avr_builtin_id): Use it.
(avr_init_builtins): Use it. And use avr_bdesc.
(bdesc_1arg): Remove.
(bdesc_2arg): Remove.
(bdesc_3arg): Remove.
(struct avr_builtin_description): Add field n_args.
(avr_bdesc): New static variable using builtins.def.
(avr_expand_builtin): Use it.
Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
(avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
Georg-Johann Lay [Tue, 28 Feb 2012 08:51:39 +0000 (08:51 +0000)]
re PR rtl-optimization/52148 (ICE: in spill_failure, at reload1.c:2120)
PR target/52148
* config/avr/avr.md (movmem_<mode>): Replace match_operand that
match only one single hard register with respective hard reg rtx.
(movmemx_<mode>): Ditto.
* config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
insn anatomy of movmem[x]_<mode>.
(avr_out_movmem): Same for printing assembler and operand usage.
Georg-Johann Lay [Tue, 28 Feb 2012 08:44:08 +0000 (08:44 +0000)]
re PR target/49868 (Implement named address space to place/access data in flash memory)
PR target/49868
PR target/52261
* doc/extend.texi (AVR Named Address Spaces): No more try to fix
address spaces located outside of device flash.
* config/avr/avr.h (base_arch_s): Remove field n_segments.
(mcu_type_s): Add field n_flash.
* config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
(AVR_MCU): Add N_FLASH argument.
* config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
macro __FLASH<n> if that address space makes sense for the device.
* config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
outside of target flash.
(avr_asm_named_section): Ditto.
(avr_asm_select_section): Ditto.
(avr_addr_space_convert): Ditto.
(avr_emit_movmemhi): Ditto.
(avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
address space is outside of device flash.
(avr_insert_attributes): Ditto.
(avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
avr_current_arch->n_segments.
Jakub Jelinek [Mon, 27 Feb 2012 15:53:15 +0000 (16:53 +0100)]
re PR target/52375 (internal compiler error: in extract_insn, at recog.c:2123 at -O3 -mfpu=neon)
PR target/52375
* config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
s_register_operand in the test instead of REG_P. Don't call
gen_reg_rtx if it won't be used.
* gcc.target/arm/pr52375.c: New test.
* gcc.c-torture/compile/pr52375.c: New test.