1. 08 Mar, 2008 2 commits
    • re PR target/22152 (Poor loop optimization when using mmx builtins) · 10a97ae6
      2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
      
              PR target/22152
              * config/i386/i386-modes.def (V1DI): New vector mode.
              * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
              * config/i386/mmx.md (MMXMODEI8): New mode iterator.
              (MMXMODE248): Ditto.
              (MMXMODE): Add V1DI mode.
              (mmxvecsize): Change DI mode to V1DI mode.
              ("mov<mode>): Use MMXMODEI8 mode iterator.
              ("*mov<mode>_internal_rex64"): Ditto.
              ("*mov<mode>_internal"): Ditto.
              ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
              ("mmx_sub<mode>3"): Ditto.
              ("mmx_adddi3"): Remove insn pattern.
              ("mmx_subdi3"): Ditto.
              ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
              ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
              ("mmx_ashl<mode>3"): Ditto.
              ("mmx_lshrdi3"): Remove insn pattern.
              ("mmx_ashldi3"): Ditto.
              * config/i386/i386.c (classify_argument): Handle V1DImode.
              (function_arg_advance_32): Ditto.
              (function_arg_32): Ditto.
              (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
              mmx_addv1di3 insn pattern.
              [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
              [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
              IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
              IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
              Remove definitions of built-in functions.
              (V1DI_type_node): New node.
              (v1di_ftype_v1di_int): Ditto.
              (v1di_ftype_v1di_v1di): Ditto.
              (v2si_ftype_v2si_si): Ditto.
              (v4hi_ftype_v4hi_di): Remove node.
              (v2si_ftype_v2si_di): Ditto.
              (ix86_init_mmx_sse_builtins): Handle V1DImode.
              (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
              Redefine builtins using def_builtin_const with *_ftype_*_int node.
              (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
              Add new builtins using def_builtin_const.
              (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
              IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
              IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
              * config/i386/mmintrin.h (__v1di): New typedef.
              (_mm_add_si64): Cast arguments to __v1di type.
              (_mm_sub_si64): Ditto.
              (_mm_sll_pi16): Cast __count to __v4hi type.
              (_mm_sll_pi32): Cast __count to __v2si type.
              (_mm_sll_si64): Cast arguments to __v1di type.
              (_mm_srl_pi16): Cast __count to __v4hi type.
              (_mm_srl_pi32): Cast __count to __v2si type.
              (_mm_srl_si64): Cast arguments to __v1di type.
              (_mm_sra_pi16): Cast __count to __v4hi type.
              (_mm_sra_pi32): Cast __count to __v2si type.
              (_mm_slli_pi16): Use __builtin_ia32_psllwi.
              (_mm_slli_pi32): Use __builtin_ia32_pslldi.
              (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
              (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
              (_mm_srli_pi32): Use __builtin_ia32_psrldi.
              (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
              (_mm_srai_pi16): Use __builtin_ia32_psrawi.
              (_mm_srai_pi32): Use __builtin_ia32_psradi.
              * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
              * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
              __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
              __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
      
      From-SVN: r133023
      Uros Bizjak committed
    • Daily bump. · 5fab80a4
      From-SVN: r133021
      GCC Administrator committed
  2. 07 Mar, 2008 11 commits
    • * doc/include/texinfo.tex: Update to version 2008-03-07.10. · 08c3b5b0
      From-SVN: r133015
      Joseph Myers committed
    • decl.c (gnat_to_gnu_entity): Add comment for the packed array type case. · b49a1a1e
      	* decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
      	comment for the packed array type case.
      	* utils.c (build_template): Use a loop to strip padding or
      	containing records for justified modular types.
      
      From-SVN: r133014
      Eric Botcazou committed
    • Add missing dg marker. · 38516a1a
      From-SVN: r133013
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously large alignments specified for types. · fd5c81e9
      	* decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
      	large alignments specified for types.
      	(validate_alignment): Minor cleanup.
      
      From-SVN: r133012
      Eric Botcazou committed
    • decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined. · 7f42aa36
      	* decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
      	(gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
      	the component for packing, if possible, as well as if a component
      	size clause is specified.
      	<E_Record_Subtype>: For an array type used to implement a packed
      	array, get the component type from the original array type.
      	Try to get a smaller form of the component for packing, if possible,
      	as well as if a component size clause is specified.
      	(round_up_to_align): New function.
      	(make_packable_type): Add in_record parameter.
      	For a padding record, preserve the size.  If not in_record and the
      	size is too large for an integral mode, attempt to shrink the size
      	by lowering the alignment.
      	Ditch the padding bits of the last component.
      	Compute sizes and mode manually, and propagate the RM size.
      	Return a BLKmode record type if its size has shrunk.
      	(maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
      	Use Original_Array_Type to retrieve the type in case of an error.
      	Adjust call to make_packable_type.
      	(gnat_to_gnu_field): Likewise.
      	(concat_id_with_name): Minor tweak.
      	* trans.c (larger_record_type_p): New predicate.
      	(call_to_gnu): Compute the nominal type of the object only if the
      	parameter is by-reference.  Do the conversion actual type -> nominal
      	type if the nominal type is a larger record.
      	(gnat_to_gnu): Do not require integral modes on the source type to
      	avoid the conversion for types with identical names.
      	(addressable_p): Add gnu_type parameter.  If it is specified, do not
      	return true if the expression is not addressable in gnu_type.
      	Adjust recursive calls.
      	* utils.c (finish_record_type): Remove dead code.
      
      From-SVN: r133011
      Eric Botcazou committed
    • re PR target/35373 (bootstraping on powerpc with 128bit long double fails with revision 132578) · efc05e3c
      	PR target/35373
      	* config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
      	reg+const addressing for Altivec modes.  Don't generate reg+reg
      	addressing for TFmode or TDmode quantities.
      
      From-SVN: r133008
      Peter Bergner committed
    • revert: re PR c++/35049 (g++.dg/conversion/simd3.C:12: error: invalid operands… · 96d84882
      revert: re PR c++/35049 (g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__'))
      
      cp:
      2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
      
      	Revert:
      
      	2008-02-06  Douglas Gregor  <doug.gregor@gmail.com>
      
      	PR c++/35049
      	PR c++/35096
      	* typeck.c (structural_comptypes): Call cp_comptypes.
      	(comptypes): New; called from the C/C++ common bits to perform
      	strict checks.
      	(cp_comptypes): Renamed from comptypes, which is already used,
      	with a different signature, by the C++ front end.
      	(build_reinterpret_cast_1): Call cp_comptypes.
      	(ptr_reasonably_similar): Ditto.
      	* decl.c (decls_match): Ditto.
      	* cvt.c (convert_to_reference): Ditto.
      	* cp-tree.h (same_type_p): Ditto.
      	(same_or_base_type_p): Ditto.
      	(comptypes): Rename to cp_comptypes.
      	* pt.c (canonical_type_parameter): Call cp_comptypes.
      
      objcp:
      2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
      
      	Revert:
      
      	2008-02-07  Andreas Tobler  <andreast-list@fgznet.ch>
      	            Douglas Gregor  <doug.gregor@gmail.com>
       
      	PR bootstrap/35115
      	* objcp-decl.c (objcp_comptypes): Call cp_comptypes, not comptypes.
      
      From-SVN: r133007
      Paolo Bonzini committed
    • gnu.ver: Move <system_error> related symbols to GLIBCXX_3.4.11 symbol version. · 31908b79
      	* config/abi/pre/gnu.ver: Move <system_error> related
      	symbols to GLIBCXX_3.4.11 symbol version.
      	* testsuite/util/testsuite_abi.cc (check_version): Allow
      	GLIBCXX_3.4.11.
      
      From-SVN: r133006
      Jakub Jelinek committed
    • c-common.c (vector_types_convertible_p): Call langhook instead of comptypes. · cf7bc668
      2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
      
      	* c-common.c (vector_types_convertible_p): Call langhook
      	instead of comptypes.
      
      cp:
      2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cp-objcp-common.c (cxx_types_compatible_p): Remove obsolete
      	test for equivalence between pointer and references.
      
      From-SVN: r133002
      Paolo Bonzini committed
    • re PR target/20366 (AIX g++ -D_LARGE_FILES fails to compile #include <iostream>) · 83644cd5
      fixincludes/
      2008-03-07  Peter O'Gorman  <pogma@thewrittenword.com>
      
      	PR c++/20366
      	* inclhack.def (AAB_aix_stdio): Hack stdio.h for -D_LARGE_FILES.
      	* fixincl.x: Regenerate.
      	* tests/base/stdio.h: Add test.
      
      gcc/testsuite/
      2008-03-07  Peter O'Gorman  <pogma@thewrittenword.com>
      
      	PR c++/20366
      	* g++.dg/other/pr20366.C: New test.
      
      From-SVN: r133001
      Peter O'Gorman committed
    • Daily bump. · cb6f415f
      From-SVN: r132998
      GCC Administrator committed
  3. 06 Mar, 2008 19 commits
  4. 05 Mar, 2008 8 commits
    • tree-ssa-structalias.c (get_constraint_for_component_ref): Use ranges_overlap_p. · 63d195d5
      2008-03-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-structalias.c (get_constraint_for_component_ref):
      	Use ranges_overlap_p.
      	(offset_overlaps_with_access): Rename
      	to ranges_overlap_p and move ...
      	* tree-flow-inline.h (ranges_overlap_p): ... here.
      
      	* tree.h (get_inner_reference, handled_component_p): Update
      	comments.
      
      	* tree.h (record_component_aliases, get_alias_set,
      	alias_sets_conflict_p, alias_sets_must_conflict_p,
      	objects_must_conflict_p): Move declarations ...
      	* alias.h (record_component_aliases, get_alias_set,
      	alias_sets_conflict_p, alias_sets_must_conflict_p,
      	objects_must_conflict_p): ... here.
      	Include coretypes.h.
      	* Makefile.in (ALIAS_H): Add coretypes.h dependency.
      
      From-SVN: r132950
      Richard Guenther committed
    • cfg.c: Include tree-flow.h. · ea7e6d5a
              * cfg.c: Include tree-flow.h.
              (remove_edge_raw): Call redirect_edge_var_map_clear.
              (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
              * tree-flow-inline.h (redirect_edge_var_map_def): New.
              (redirect_edge_var_map_result): New.
              * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
              PENDING_STMT use with redirect_edge_var_map_*.
              * tree-ssa.c (edge_var_maps): New definition.
              (redirect_edge_var_map_add): New.
              (redirect_edge_var_map_clear): New.
              (redirect_edge_var_map_dup): New.
              (redirect_edge_var_map_vector): New.
              (redirect_edge_var_map_destroy): New.
              (ssa_redirect_edge): Replace PENDING_STMT use with
              redirect_edge_var_map_*.
              (flush_pending_stmts): Same.
              (delete_tree_ssa): Destroy edge var map.
              * tree-flow.h (struct _edge_var_map): New.
              Define edge_var_map vector type.
              Declare redirect_edge_var_map_* prototypes.
              * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
              * tree-cfg.c (reinstall_phi_args): Replace
              PENDING_STMT use with redirect_edge_var_map_*.
      
      From-SVN: r132903
      Aldy Hernandez committed
    • * gennews (files): Reference GCC 4.3 web pages. · a7d95bfe
      From-SVN: r132901
      Jakub Jelinek committed
    • re PR tree-optimization/35472 (tree DSE is broken) · 1bdcf037
      2008-03-05  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/35472
      	* tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
      	whose single use_stmt has a overlapping set of loaded and
      	stored symbols as that use_stmt might be a noop assignment then.
      
      	* gcc.c-torture/execute/pr35472.c: New testcase.
      
      From-SVN: r132899
      Richard Guenther committed
    • gthr-rtems.h: Implement __gthread_mutex_destroy. · fec5fe47
      2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
      
      	* gthr-rtems.h: Implement __gthread_mutex_destroy.
      
      From-SVN: r132897
      Joel Sherrill committed
    • re PR c++/35336 (Broken diagnostic: 'bit_field_ref' not supported by dump_expr) · e55f42fb
      2008-03-05  Richard Guenther  <rguenther@suse.de>
      
      	PR c++/35336
      	* tree.def (BIT_FIELD_REF): Document that operands 1 and 2
      	should be constants.
      	* tree-cfg.c (verify_expr): Verify it.
      	* fold-const.c (fold_truthop): Remove code generating
      	BIT_FIELD_REFs of structure bases.
      	(fold_binary): Likewise.
      	(fold_ternary): Position and size of BIT_FIELD_REFs are
      	always host integers.
      	(make_bit_field_ref): Remove.
      	(optimize_bit_field_compare): Remove.
      	(all_ones_mask_p): Remove.
      
      From-SVN: r132894
      Richard Guenther committed
    • re PR rtl-optimization/33009 (-frtl-abstract-sequences causes an infinite loop) · 1da266fe
      2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
      
      	PR gcc/33009
      	* rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
      	(split_block_and_df_analyze): New. Split basic block and rebuild
      	dataflow.
      	(block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
      	SPLIT_BLOCK.
      	(split_pattern_seq): Likewise.
      	(erase_matching_seqs): Likewise.
      	(split_pattern_seq): Skip return insn in case of REG_NORETURN note.
      
      	PR testsuite/33009
      	* gcc.c-torture/compile/pr11832.c: Check -frtl-abstract-sequences.
      	* gcc.c-torture/compile/pr33009.c: Likewise.
      
      From-SVN: r132893
      Gabor Loki committed
    • re PR testsuite/31341 (testsuite pr31041.c fails conflicting with <stdint.h>) · f0f00f13
      2008-03-05  Victor Kaplansky  <victork@gcc.gnu.org>
      
              PR 31341
      	* gcc.dg/vect/pr31041.c: Fix.
      
      From-SVN: r132892
      Victor Kaplansky committed