1. 23 May, 2007 10 commits
  2. 22 May, 2007 25 commits
    • lower-subreg.c (decompose_multiword_subregs): If we change an insn, call remove_retval_note on it. · 1570a704
      	* lower-subreg.c (decompose_multiword_subregs): If we change an
      	insn, call remove_retval_note on it.
      
      From-SVN: r124969
      Ian Lance Taylor committed
    • re PR tree-optimization/31606 (ICE in try_instantiate_multiple_fields, at tree-sra.c:1601) · 1897129f
      2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/31606
              * gcc.c-torture/20070522-1.c: New testcase.
      
      From-SVN: r124968
      Andrew Pinski committed
    • sse4_1-check.h: Don't include <stdio.h>. · a9535314
      2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* gcc.target/i386/sse4_1-check.h: Don't include <stdio.h>.
      
      From-SVN: r124967
      H.J. Lu committed
    • testsuite_allocator.h (check_new): Assign false to new_called. · b0e94ec9
      2007-05-22  Paolo Carlini  <pcarlini@suse.de>
      
      	* testsuite/util/testsuite_allocator.h (check_new): Assign false
      	to new_called.
      	(check_delete): Likewise for delete_called.
      
      From-SVN: r124966
      Paolo Carlini committed
    • 20000320-1.x, [...]: XFAIL on m68k-*-* and check_effective_target_coldfire_fpu. · 0a2acc8a
      	* gcc.c-torture/execute/ieee/20000320-1.x,
      	gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: XFAIL on
      	m68k-*-* and check_effective_target_coldfire_fpu.
      
      From-SVN: r124964
      Kazu Hirata committed
    • name-lookup.c (ambiguous_decl): Adds check for hidden types. · 8e89cbfe
      	* name-lookup.c (ambiguous_decl): Adds check for hidden types.
      	(unqualified_namespace_lookup): Adds check for hidden types.
      
      	* g++.dg/lookup/hidden-class10.C: New test.
      	* g++.dg/lookup/hidden-class11.C: New test.
      
      From-SVN: r124963
      Ollie Wild committed
    • libgfortran.h: Mark stop_numeric as noreturn. · 6b12f000
      2007-05-22  Tobias Burnus  <burnus@net-b.de>
      
             * libgfortran.h: Mark stop_numeric as noreturn.
      
      From-SVN: r124962
      Tobias Burnus committed
    • regs.h (end_hard_regno): New function. · 09e18274
      gcc/
      	* regs.h (end_hard_regno): New function.
      	(END_HARD_REGNO, END_REGNO): New macros.
      	(add_to_hard_reg_set): New function.
      	(remove_from_hard_reg_set): Likewise.
      	(in_hard_reg_set_p): Likewise.
      	(overlaps_hard_reg_set_p): Likewise.
      	* bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
      	(note_btr_set): Use END_HARD_REGNO.
      	* caller-save.c (setup_save_areas): Use end_hard_regno.
      	(mark_set_regs): Use END_HARD_REGNO.
      	(add_stored_regs): Use end_hard_regno.
      	(mark_referenced_regs): Use add_to_hard_reg_set.
      	* combine.c (update_table_tick): Use END_REGNO.
      	(record_value_for_reg): Likewise.
      	(record_dead_and_set_regs): Likewise.
      	(get_last_value_validate): Likewise.
      	(use_crosses_set_p): Likewise.
      	(reg_dead_at_p_1): Likewise.
      	(reg_dead_at_p): Likewise.
      	(mark_used_regs_combine): Use add_to_hard_reg_set.
      	(move_deaths): Use END_HARD_REGNO.
      	(reg_bitfield_target_p): Use end_hard_regno.
      	(distribute_notes): Use END_HARD_REGNO.
      	* cse.c (mention_regs): Use END_REGNO.
      	(insert): Use add_to_hard_reg_set.
      	(invalidate): Use END_HARD_REGNO.
      	(invalidate_for_call): Likewise.
      	(exp_equiv_p): Use END_REGNO.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_invalidate_regno): Use end_hard_regno.
      	* df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
      	* df-scan.c (df_ref_record): Use END_HARD_REGNO.
      	* function.c (keep_stack_depressed): Use end_hard_regno.
      	* global.c (global_alloc): Use end_hard_regno.
      	(global_conflicts): Use add_to_hard_reg_set instead of
      	mark_reg_live_nc.
      	(find_reg): Likewise.
      	(mark_reg_store): Likewise.
      	(mark_reg_conflicts): Likewise.
      	(mark_reg_death): Use remove_from_hard_reg_set.
      	(mark_reg_live_nc): Delete.
      	(set_preference): Use end_hard_regno.
      	* local-alloc.c (mark_life): Use add_to_hard_reg_set and
      	remove_from_hard_reg_set.
      	(post_mark_life): Use add_to_hard_reg_set.
      	* mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
      	(reg_becomes_live): Use add_to_hard_reg_set.
      	* recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
      	(peep2_find_free_register): Use add_to_hard_reg_set.
      	* reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
      	* regclass.c (record_reg_classes): Use in_hard_reg_set_p.
      	* regrename.c (note_sets): Use add_to_hard_reg_set.
      	(clear_dead_regs): Use remove_from_hard_reg_set.
      	(regrename_optimize): Use add_to_hard_reg_set.
      	(find_oldest_value_reg): Use in_hard_reg_set_p.
      	* reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
      	(hard_reg_set_here_p): Use end_hard_regno.
      	(decompose): Likewise.
      	(reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
      	(find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
      	* reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
      	(mark_home_live): Use end_hard_regno.
      	(spill_hard_reg): Likewise.
      	(clear_reload_reg_in_use): Likewise.
      	* reorg.c (delete_prior_computation): Use END_REGNO.
      	* resource.c (update_live_status): Use END_HARD_REGNO.
      	(mark_referenced_resources): Use add_to_hard_reg_set.
      	(mark_set_resources): Likewise.
      	(mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
      	* rtlanal.c (refers_to_regno_p): Use END_REGNO.
      	(reg_overlap_mentioned_p): Likewise.
      	(dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
      	(covers_regno_no_parallel_p): Use END_REGNO.
      	(find_regno_note): Likewise.
      	(find_reg_fusage): Use END_HARD_REGNO.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
      	* var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
      
      From-SVN: r124961
      Richard Sandiford committed
    • decl.c (duplicate_decls): Verify namespace names are unique. · 6936461f
      	* decl.c (duplicate_decls): Verify namespace names are unique.
      
      	* g++.dg/lookup/name-clash5.C: New test.
      	* g++.dg/lookup/name-clash6.C: New test.
      
      From-SVN: r124960
      Ollie Wild committed
    • i386-2.C: Update comments on header files tested. · 3f457a0d
      2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* g++.dg/other/i386-2.C: Update comments on header files tested.
      	Use -msse4.1 instead of -mssse3.  Include <smmintrin.h> instead
      	of <tmmintrin.h>.
      	* gcc.target/i386/sse-12.c: Likewise.
      	* gcc.target/i386/sse-13.c: Likewise.
      	* gcc.target/i386/sse-14.c: Likewise.
      
      	* gcc.target/i386/sse-13.c (__builtin_ia32_pblendw128): New.
      	Redefined to test with immediate operand.
      	(__builtin_ia32_blendps): Likewise.
      	(__builtin_ia32_blendpd): Likewise.
      	(__builtin_ia32_dpps): Likewise.
      	(__builtin_ia32_dpps): Likewise.
      	(__builtin_ia32_insertps128): Likewise.
      	(__builtin_ia32_vec_ext_v4sf): Likewise.
      	(__builtin_ia32_vec_set_v16qi): Likewise.
      	(__builtin_ia32_vec_set_v4si): Likewise.
      	(__builtin_ia32_vec_set_v2di): Likewise.
      	(__builtin_ia32_vec_ext_v16qi): Likewise.
      	(__builtin_ia32_vec_ext_v4si): Likewise.
      	(__builtin_ia32_vec_ext_v2di): Likewise.
      	(__builtin_ia32_roundpd): Likewise.
      	(__builtin_ia32_roundsd): Likewise.
      	(__builtin_ia32_roundps): Likewise.
      	(__builtin_ia32_roundss): Likewise.
      	(__builtin_ia32_mpsadbw128): Likewise.
      
      From-SVN: r124959
      H.J. Lu committed
    • * MAINTAINERS (Write After Approval): Add myself. · ce3fcf8c
      From-SVN: r124958
      Ollie Wild committed
    • sse4_1-check.h: Don't include ../auto-host.h. · f0de03cf
      2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* gcc.target/i386/sse4_1-check.h: Don't include ../auto-host.h.
      
      From-SVN: r124957
      H.J. Lu committed
    • mode-switching.c (reg_dies): Change type of second argument to "HARD_REG_SET *". · 408bed3c
      gcc/
      	* mode-switching.c (reg_dies): Change type of second argument to
      	"HARD_REG_SET *".
      	(optimize_mode_switching): Update accordingly.
      
      From-SVN: r124955
      Richard Sandiford committed
    • hard-reg-set.h (GO_IF_HARD_REG_SUBSET, [...]): Delete in favor of... · 56b138ae
      gcc/
      	* hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
      	in favor of...
      	(hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
      	(hard_reg_set_empty_p): ...these new functions.
      	* bt-load.c (choose_btr): Use hard_reg_subset_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	* cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* global.c (find_reg): Use hard_reg_set_empty_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	(modify_reg_pav): Use hard_reg_set_empty_p instead of
      	GO_IF_HARD_REG_EQUAL.
      	* local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
      	of GO_IF_HARD_REG_SUBSET.
      	* reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
      	hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
      	(reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
      	of GO_IF_HARD_REG_SUBSET,
      	* reload1.c (finish_spills): Use hard_reg_subset_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	* struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* config/sh/sh.c (push_regs, calc_live_regs): Use
      	hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
      	(hard_regs_intersect_p): Delete.
      
      From-SVN: r124954
      Richard Sandiford committed
    • func-array.c: Support -DDBG to report individual failures. · 965ff670
      	* gcc.dg/dfp/func-array.c: Support -DDBG to report individual failures.
      	* gcc.dg/dfp/func-struct.c: Ditto.
      	* gcc.dg/dfp/operator-assignment.c: Ditto.
      	* gcc.dg/dfp/convert-bfp.c: Ditto.
      	* gcc.dg/dfp/convert-int.c: Ditto.
      	* gcc.dg/dfp/convert-int-max.c: Ditto.
      	* gcc.dg/dfp/func-scalar.c: Ditto.
      	* gcc.dg/dfp/cast.c: Ditto.
      	* gcc.dg/dfp/func-mixed.c: Support -DDBG to report individual
      	failures, and fix a typo in return type of arg1_128.
      	* gcc.dg/dfp/convert-dfp.c: Support -DDBG to report individual
      	failures, and fix a typo in a constant suffix.
      	* gcc.dg/dfp/func-vararg-dfp.c: Return zero at the end.
      	* gcc.dg/dfp/convert-complex.c: With -DDBG, abort for failures.
      
      From-SVN: r124953
      Janis Johnson committed
    • gcc/ · ba2f32a9
      	* doc/sourcebuild.texi (Test Directives) Add dg-message.
      gcc/testsuite/
      	* lib/gcc-dg.exp(process_message): New proc.
      	(dg-message): New test directive.
      	* gcc.dg/always_inline.c: Use dg-message.
      	* gcc.dg/always_inline2.c: Ditto.
      	* gcc.dg/always_inline3.c: Ditto.
      	* gcc.dg/invalid-call-1.c: Ditto.
      	* gcc.dg/pr17506.c: Ditto.
      	* gcc.dg/simd-5.c: Ditto.
      	* gcc.dg/simd-6.c: Ditto.
      	* gcc.dg/va-arg-2.c: Ditto.
      	* gcc.dg/cpp/syshdr.c: Ditto.
      	* gcc.dg/cpp/unc4.c: Ditto.
      	* gcc.dg/cpp/trad/mi1.c: Ditto.
      	* gcc.dg/cpp/trad/mi5.c: Ditto.
      	* gcc.dg/cpp/trad/mi7.c: Ditto.
      	* gcc.test-framework/dg-outexistsnot-exp-P.c: Ditto.
      	* gcc.test-framework/dg-outexists-exp-F.c: Ditto.
      	* gcc.test-framework/test-framework.awk: Special-case outexists
      	tests.
      
      Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
      
      From-SVN: r124952
      Janis Johnson committed
    • re PR libfortran/31295 (Uninitialized variable in libgfortran's _gfortran_eoshift0_4) · 1f801ab7
      2007-05-22  Tobias Burnus  <burnus@net-b.de>
      
             PR libgfortran/31295
             * intrinsics/eoshift0.c (eoshift0): Silence uninitialized warning.
             * intrinsics/eoshift2.c (eoshift2): Ditto.
      
      From-SVN: r124948
      Tobias Burnus committed
    • i386-cpuid.h (bit_SSE4_1): New. · 05629956
      2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* gcc.dg/i386-cpuid.h (bit_SSE4_1): New.
      	(bit_SSE4_2): Likewise.
      	(bit_POPCNT): Likewise.
      
      	* gcc.target/i386/i386.exp (check_effective_target_sse4): New.
      	Check if assembler supports SSE4 instructions.
      
      	* gcc.target/i386/sse4_1-blendpd.c: New file.
      	* gcc.target/i386/sse4_1-blendps.c: Likewise.
      	* gcc.target/i386/sse4_1-blendvpd.c: Likewise.
      	* gcc.target/i386/sse4_1-blendvps.c: Likewise.
      	* gcc.target/i386/sse4_1-check.h: Likewise.
      	* gcc.target/i386/sse4_1-dppd-1.c: Likewise.
      	* gcc.target/i386/sse4_1-dppd-2.c: Likewise.
      	* gcc.target/i386/sse4_1-dpps-1.c: Likewise.
      	* gcc.target/i386/sse4_1-dpps-2.c: Likewise.
      	* gcc.target/i386/sse4_1-extractps.c: Likewise.
      	* gcc.target/i386/sse4_1-insertps-1.c: Likewise.
      	* gcc.target/i386/sse4_1-insertps-2.c: Likewise.
      	* gcc.target/i386/sse4_1-movntdqa.c: Likewise.
      	* gcc.target/i386/sse4_1-mpsadbw.c: Likewise.
      	* gcc.target/i386/sse4_1-packusdw.c: Likewise.
      	* gcc.target/i386/sse4_1-pblendvb.c: Likewise.
      	* gcc.target/i386/sse4_1-pblendw.c: Likewise.
      	* gcc.target/i386/sse4_1-pcmpeqq.c: Likewise.
      	* gcc.target/i386/sse4_1-pextrb.c: Likewise.
      	* gcc.target/i386/sse4_1-pextrd.c: Likewise.
      	* gcc.target/i386/sse4_1-pextrq.c: Likewise.
      	* gcc.target/i386/sse4_1-pextrw.c: Likewise.
      	* gcc.target/i386/sse4_1-phminposuw.c: Likewise.
      	* gcc.target/i386/sse4_1-pinsrb.c: Likewise.
      	* gcc.target/i386/sse4_1-pinsrd.c: Likewise.
      	* gcc.target/i386/sse4_1-pinsrq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmaxsb.c: Likewise.
      	* gcc.target/i386/sse4_1-pmaxsd.c: Likewise.
      	* gcc.target/i386/sse4_1-pmaxud.c: Likewise.
      	* gcc.target/i386/sse4_1-pmaxuw.c: Likewise.
      	* gcc.target/i386/sse4_1-pminsb.c: Likewise.
      	* gcc.target/i386/sse4_1-pminsd.c: Likewise.
      	* gcc.target/i386/sse4_1-pminud.c: Likewise.
      	* gcc.target/i386/sse4_1-pminuw.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxbd.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxbq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxbw.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxdq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxwd.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovsxwq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxbd.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxbq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxbw.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxdq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxwd.c: Likewise.
      	* gcc.target/i386/sse4_1-pmovzxwq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmuldq.c: Likewise.
      	* gcc.target/i386/sse4_1-pmulld.c: Likewise.
      	* gcc.target/i386/sse4_1-ptest-1.c: Likewise.
      	* gcc.target/i386/sse4_1-ptest-2.c: Likewise.
      	* gcc.target/i386/sse4_1-ptest-3.c: Likewise.
      	* gcc.target/i386/sse4_1-round.h: Likewise.
      	* gcc.target/i386/sse4_1-roundpd-1.c: Likewise.
      	* gcc.target/i386/sse4_1-roundpd-2.c: Likewise.
      	* gcc.target/i386/sse4_1-roundpd-3.c: Likewise.
      	* gcc.target/i386/sse4_1-roundps-1.c: Likewise.
      	* gcc.target/i386/sse4_1-roundps-2.c: Likewise.
      	* gcc.target/i386/sse4_1-roundps-3.c: Likewise.
      	* gcc.target/i386/sse4_1-roundsd-1.c: Likewise.
      	* gcc.target/i386/sse4_1-roundsd-2.c: Likewise.
      	* gcc.target/i386/sse4_1-roundsd-3.c: Likewise.
      	* gcc.target/i386/sse4_1-roundsd-4.c: Likewise.
      	* gcc.target/i386/sse4_1-roundss-1.c: Likewise.
      	* gcc.target/i386/sse4_1-roundss-2.c: Likewise.
      	* gcc.target/i386/sse4_1-roundss-3.c: Likewise.
      	* gcc.target/i386/sse4_1-roundss-4.c: Likewise.
      
      From-SVN: r124947
      H.J. Lu committed
    • config.gcc (i[34567]86-*-*): Add smmintrin.h to extra_headers. · 9a5cee02
      2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
      	    Richard Henderson  <rth@redhat.com>
      
      	* config.gcc (i[34567]86-*-*): Add smmintrin.h to
      	extra_headers.
      	(x86_64-*-*): Likewise.
      
      	* i386/i386-modes.def (V2QI): New.
      
      	* config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
      	SSE4A.
      	(override_options): Support SSE4.1.
      	(IX86_BUILTIN_BLENDPD): New for SSE4.1.
      	(IX86_BUILTIN_BLENDPS): Likewise.
      	(IX86_BUILTIN_BLENDVPD): Likewise.
      	(IX86_BUILTIN_BLENDVPS): Likewise.
      	(IX86_BUILTIN_PBLENDVB128): Likewise.
      	(IX86_BUILTIN_PBLENDW128): Likewise.
      	(IX86_BUILTIN_DPPD): Likewise.
      	(IX86_BUILTIN_DPPS): Likewise.
      	(IX86_BUILTIN_INSERTPS128): Likewise.
      	(IX86_BUILTIN_MOVNTDQA): Likewise.
      	(IX86_BUILTIN_MPSADBW128): Likewise.
      	(IX86_BUILTIN_PACKUSDW128): Likewise.
      	(IX86_BUILTIN_PCMPEQQ): Likewise.
      	(IX86_BUILTIN_PHMINPOSUW128): Likewise.
      	(IX86_BUILTIN_PMAXSB128): Likewise.
      	(IX86_BUILTIN_PMAXSD128): Likewise.
      	(IX86_BUILTIN_PMAXUD128): Likewise.
      	(IX86_BUILTIN_PMAXUW128): Likewise.
      	(IX86_BUILTIN_PMINSB128): Likewise.
      	(IX86_BUILTIN_PMINSD128): Likewise.
      	(IX86_BUILTIN_PMINUD128): Likewise.
      	(IX86_BUILTIN_PMINUW128): Likewise.
      	(IX86_BUILTIN_PMOVSXBW128): Likewise.
      	(IX86_BUILTIN_PMOVSXBD128): Likewise.
      	(IX86_BUILTIN_PMOVSXBQ128): Likewise.
      	(IX86_BUILTIN_PMOVSXWD128): Likewise.
      	(IX86_BUILTIN_PMOVSXWQ128): Likewise.
      	(IX86_BUILTIN_PMOVSXDQ128): Likewise.
      	(IX86_BUILTIN_PMOVZXBW128): Likewise.
      	(IX86_BUILTIN_PMOVZXBD128): Likewise.
      	(IX86_BUILTIN_PMOVZXBQ128): Likewise.
      	(IX86_BUILTIN_PMOVZXWD128): Likewise.
      	(IX86_BUILTIN_PMOVZXWQ128): Likewise.
      	(IX86_BUILTIN_PMOVZXDQ128): Likewise.
      	(IX86_BUILTIN_PMULDQ128): Likewise.
      	(IX86_BUILTIN_PMULLD128): Likewise.
      	(IX86_BUILTIN_ROUNDPD): Likewise.
      	(IX86_BUILTIN_ROUNDPS): Likewise.
      	(IX86_BUILTIN_ROUNDSD): Likewise.
      	(IX86_BUILTIN_ROUNDSS): Likewise.
      	(IX86_BUILTIN_PTESTZ): Likewise.
      	(IX86_BUILTIN_PTESTC): Likewise.
      	(IX86_BUILTIN_PTESTNZC): Likewise.
      	(IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
      	(IX86_BUILTIN_VEC_SET_V2DI): Likewise.
      	(IX86_BUILTIN_VEC_SET_V4SF): Likewise.
      	(IX86_BUILTIN_VEC_SET_V4SI): Likewise.
      	(IX86_BUILTIN_VEC_SET_V16QI): Likewise.
      	(bdesc_ptest): New.
      	(bdesc_sse_3arg): Likewise.
      	(bdesc_2arg): Likewise.
      	(bdesc_1arg): Likewise.
      	(ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
      	with 3 args.
      	(ix86_expand_sse_4_operands_builtin): New.
      	(ix86_expand_unop_builtin): Support 2 arg builtins with a constant
      	smaller than 8 bits as the 2nd arg.
      	(ix86_expand_sse_ptest): New.
      	(ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
      	(ix86_expand_vector_set): Support SSE4.1.
      	(ix86_expand_vector_extract): Likewise.
      
      	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
      	__SSE4_1__ for -msse4.1.
      
      	* config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
      	(UNSPEC_INSERTPS): Likewise.
      	(UNSPEC_DP): Likewise.
      	(UNSPEC_MOVNTDQA): Likewise.
      	(UNSPEC_MPSADBW): Likewise.
      	(UNSPEC_PHMINPOSUW): Likewise.
      	(UNSPEC_PTEST): Likewise.
      	(UNSPEC_ROUNDP): Likewise.
      	(UNSPEC_ROUNDS): Likewise.
      
      	* config/i386/i386.opt (msse4.1): New for SSE4.1.
      
      	* config/i386/predicates.md (const_pow2_1_to_2_operand): New.
      	(const_pow2_1_to_32768_operand): Likewise.
      
      	* config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
      	file.
      
      	* config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
      	SSE4.1.
      	(sse4_1_insertps): Likewise.
      	(*sse4_1_extractps): Likewise.
      	(sse4_1_ptest): Likewise.
      	(sse4_1_mulv2siv2di3): Likewise.
      	(*sse4_1_mulv4si3): Likewise.
      	(*sse4_1_smax<mode>3): Likewise.
      	(*sse4_1_umax<mode>3): Likewise.
      	(*sse4_1_smin<mode>3): Likewise.
      	(*sse4_1_umin<mode>3): Likewise.
      	(sse4_1_eqv2di3): Likewise.
      	(*sse4_1_pinsrb): Likewise.
      	(*sse4_1_pinsrd): Likewise.
      	(*sse4_1_pinsrq): Likewise.
      	(*sse4_1_pextrb): Likewise.
      	(*sse4_1_pextrb_memory): Likewise.
      	(*sse4_1_pextrw_memory): Likewise.
      	(*sse4_1_pextrq): Likewise.
      	(sse4_1_blendpd): Likewise.
      	(sse4_1_blendps): Likewise.
      	(sse4_1_blendvpd): Likewise.
      	(sse4_1_blendvps): Likewise.
      	(sse4_1_dppd): Likewise.
      	(sse4_1_dpps): Likewise.
      	(sse4_1_movntdqa): Likewise.
      	(sse4_1_mpsadbw): Likewise.
      	(sse4_1_packusdw): Likewise.
      	(sse4_1_pblendvb): Likewise.
      	(sse4_1_pblendw): Likewise.
      	(sse4_1_phminposuw): Likewise.
      	(sse4_1_extendv8qiv8hi2): Likewise.
      	(*sse4_1_extendv8qiv8hi2): Likewise.
      	(sse4_1_extendv4qiv4si2): Likewise.
      	(*sse4_1_extendv4qiv4si2): Likewise.
      	(sse4_1_extendv2qiv2di2): Likewise.
      	(*sse4_1_extendv2qiv2di2): Likewise.
      	(sse4_1_extendv4hiv4si2): Likewise.
      	(*sse4_1_extendv4hiv4si2): Likewise.
      	(sse4_1_extendv2hiv2di2): Likewise.
      	(*sse4_1_extendv2hiv2di2): Likewise.
      	(sse4_1_extendv2siv2di2): Likewise.
      	(*sse4_1_extendv2siv2di2): Likewise.
      	(sse4_1_zero_extendv8qiv8hi2): Likewise.
      	(*sse4_1_zero_extendv8qiv8hi2): Likewise.
      	(sse4_1_zero_extendv4qiv4si2): Likewise.
      	(*sse4_1_zero_extendv4qiv4si2): Likewise.
      	(sse4_1_zero_extendv2qiv2di2): Likewise.
      	(*sse4_1_zero_extendv2qiv2di2): Likewise.
      	(sse4_1_zero_extendv4hiv4si2): Likewise.
      	(*sse4_1_zero_extendv4hiv4si2): Likewise.
      	(sse4_1_zero_extendv2hiv2di2): Likewise.
      	(*sse4_1_zero_extendv2hiv2di2): Likewise.
      	(sse4_1_zero_extendv2siv2di2): Likewise.
      	(*sse4_1_zero_extendv2siv2di2): Likewise.
      	(sse4_1_roundpd): Likewise.
      	(sse4_1_roundps): Likewise.
      	(sse4_1_roundsd): Likewise.
      	(sse4_1_roundss): Likewise.
      	(mulv4si3): Don't expand for SSE4.1.
      	(smax<mode>3): Likewise.
      	(umaxv4si3): Likewise.
      	(uminv16qi3): Likewise.
      	(umin<mode>3): Likewise.
      	(umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
      
      	* doc/extend.texi: Document SSE4.1 built-in functions.
      
      	* doc/invoke.texi: Document -msse4.1.
      
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      
      From-SVN: r124945
      H.J. Lu committed
    • re PR fortran/31627 ([4.1/4.2 only] -bounds-check doesn't check lower bound of assumed-sized array) · c099916d
      	PR fortran/31627
      
      	* trans-array.c (gfc_trans_array_bound_check): Take extra argument to
      	indicate whether we should check the upper bound in that dimension.
      	(gfc_conv_array_index_offset): Check only the lower bound of the
      	last dimension for assumed-size arrays.
      	(gfc_conv_array_ref): Likewise.
      	(gfc_conv_ss_startstride): Likewise.
      
      	* gfortran.dg/bounds_check_7.f90: New test.
      
      From-SVN: r124940
      Francois-Xavier Coudert committed
    • i386.exp (check_effective_target_ssse3): New. · 0f869709
      	* gcc.target/i386/i386.exp (check_effective_target_ssse3): New.
      	(check_effective_target_sse4a): Ditto.
      
      	* gcc.target/i386/ssse3-phsubw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-phaddd.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pabsb.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-psignb.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-phaddsw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pabsd.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-psignd.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pmaddubsw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pmulhrsw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-phaddw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-phsubd.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pabsw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-psignw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-pshufb.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-phsubsw.c: Require effective target ssse3.
      	* gcc.target/i386/ssse3-palignr.c: Require effective target ssse3.
      	* gcc.target/i386/sse4a-insert.c: Require effective target sse4a.
      	* gcc.target/i386/sse4a-extract.c: Require effective target sse4a.
      	* gcc.target/i386/sse4a-montss.c: Require effective target sse4a.
      	* gcc.target/i386/sse4a-montsd.c: Require effective target sse4a.
      
      From-SVN: r124939
      Uros Bizjak committed
    • linux.h (ASM_SPEC): Add asm_pcrel_spec. · bebb3a98
      	* config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
      	* config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
      	* config/m68k/m68k.h (ASM_PCREL_SPEC): New.
      	(ASM_SPEC): Add asm_pcrel_spec.
      	(EXTRA_SPECS): Add asm_pcrel_spec.
      
      From-SVN: r124937
      Nathan Sidwell committed
    • install.texi (Building a cross compiler): Add requirements for Java cross compiler. · c076e75f
      	* doc/install.texi (Building a cross compiler): Add requirements
      	for Java cross compiler.
      
      From-SVN: r124936
      David Daney committed
    • Daily bump. · e175d3bf
      From-SVN: r124933
      GCC Administrator committed
  3. 21 May, 2007 5 commits
    • decl.c (cxx_maybe_build_cleanup): Handle __attribute__((cleanup)). · 5c113154
      	* decl.c (cxx_maybe_build_cleanup): Handle
      	__attribute__((cleanup)).
      	* g++.dg/ext/cleanup-1.C: New test.
      	* g++.dg/ext/cleanup-2.C: Likewise.
      	* g++.dg/ext/cleanup-3.C: Likewise.
      	* g++.dg/ext/cleanup-4.C: Likewise.
      	* g++.dg/ext/cleanup-5.C: Likewise.
      	* g++.dg/ext/cleanup-6.C: Likewise.
      	* g++.dg/ext/cleanup-8.C: Likewise.
      	* g++.dg/ext/cleanup-9.C: Likewise.
      	* g++.dg/ext/cleanup-10.C: Likewise.
      	* g++.dg/ext/cleanup-11.C: Likewise.
      	* g++.dg/ext/cleanup-dtor.C: Likewise.
      
      From-SVN: r124930
      Mark Mitchell committed
    • internal.h (struct cpp_reader): Add new fields: nonexistent_file_hash and nonexistent_file_ob. · 0b4cafec
      	* internal.h (struct cpp_reader): Add new fields:
      	nonexistent_file_hash and nonexistent_file_ob.
      	* files.c: Include "obstack.h".
      	(find_file_in_dir): Before trying to open the file, look up the
      	path name in the hash table of nonexistent files.  After failing
      	to open the file, add the path name to the hash table.
      	(_cpp_find_file): Cache the results of looking up the file name
      	starting with the quote and bracket chain heads, if we can.
      	(nonexistent_file_hash_eq): New static function.
      	(_cpp_init_files): Initialize pfile->nonexistent_file_hash and
      	pfile->nonexistent_file_ob.
      	(_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
      	pfile->nonexistent_file_ob.
      
      From-SVN: r124929
      Ian Lance Taylor committed
    • re PR tree-optimization/31995 (can't determine dependence between p->a[x+i] and p->a[x+i+1]) · a50411de
      2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/31995
              * tree-chrec.c (evolution_function_is_affine_multivariate_p):
              Add loopno argument.  Use evolution_function_is_invariant_rec_p
              instead of evolution_function_is_constant_p.
              Update calls to evolution_function_is_affine_multivariate_p.
              * tree-chrec.h  (evolution_function_is_affine_multivariate_p):
              Add loopno argument.
              * tree-scalar-evolution.c (gather_chrec_stats): Call
              evolution_function_is_affine_multivariate_p with a  loop
              number of 0.
              * tree-data-ref.c (analyze_miv_subscript): Likewise.
              (analyze_overlapping_iterations): Likewise.
              (access_functions_are_affine_or_constant_p):
              Likewise.
              (build_classic_dist_vector_1): If the access functions
              are equal, don't do anything.
      
      2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/31995
              * gcc.dg/vect/vect-102a.c: New test.
      
      From-SVN: r124927
      Andrew Pinski committed
    • c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1... · 60c4429c
      2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
                  Paolo Carlini  <pcarlini@suse.de>
      	    Uros Bizjak  <ubizjak@gmail.com>
      
      	* c-cppbuiltin.c (c_cpp_builtins): Define
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
      	* doc/cpp.texi ([Standard Predefined Macros]): Document.
      
      2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
                  Paolo Carlini  <pcarlini@suse.de>
      	    Uros Bizjak  <ubizjak@gmail.com>
      
      	* gcc.dg/gcc-have-sync-compare-and-swap.c,
      	gcc.target/i386/gcc-have-sync-compare-and-swap-1.c,
      	gcc.target/i386/gcc-have-sync-compare-and-swap-2.c,
      	gcc.target/i386/gcc-have-sync-compare-and-swap-3.c,
      	gcc.target/i386/gcc-have-sync-compare-and-swap-4.c,
      	New testcases.
      
      Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
      Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
      
      From-SVN: r124926
      Paolo Bonzini committed
    • re PR fortran/32002 (insufficient conformance check when assigning the result of… · 1b35264f
      re PR fortran/32002 (insufficient conformance check when assigning the result of an elemental function to an array)
      
      gcc/fortran:
      2005-05-21  Jerry DeLisle  <jvdelisle@verizon.net>
                  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/32002
              * resolve.c (resolve_actual_arglist): Resolve actual argument after
              being identified as variable.
      
      
      gcc/testsuite:
      2005-05-21  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/32002
              * gfortran.dg/compliant_elemental_intrinsics_2.f90: New test.
      
      From-SVN: r124924
      Daniel Franke committed