Commit Graph

81000 Commits

Author SHA1 Message Date
Jan Hubicka 9dbe7947ab invoke.texi (-fdump-unnumbered): Update docs when line number notes are gone.
* doc/invoke.texi (-fdump-unnumbered): Update docs when line number
	notes are gone.
	* print-rtl.c (flag_dump_unnumbered): Update comments.
	(print_rtl): Fix my previous change.
	* emit-rtl.c (emit_note_before, emit_note_after): Clear out note
	specific data.

From-SVN: r125026
2007-05-24 14:21:14 +00:00
H.J. Lu 7544f94a79 re PR testsuite/32062 (Some MASKs aren't sufficient in certain sse4_1 tests)
2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR testsuite/32062
	* gcc.target/i386/sse4_1-check.h (MASK): New.

From-SVN: r125025
2007-05-24 07:12:18 -07:00
Zdenek Dvorak 561e8a90fd re PR middle-end/32018 (ICE on optimization)
PR middle-end/32018
	* tree-ssa-threadupdate.c (thread_through_loop_header): Use
	set_loop_copy.
	(thread_through_all_blocks): Call initialize_original_copy_tables
	and free_original_copy_tables.
	* cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
	Use set_loop_copy.
	* tree-cfg.c (tree_duplicate_sese_region): Ditto.
	* cfghooks.c (duplicate_block): Use get_loop_copy.
	* cfg.c: Include cfgloop.h.
	(loop_copy): New hash table.
	(initialize_original_copy_tables): Initialize loop_copy table.
	(free_original_copy_tables): Free loop_copy table.
	(copy_original_table_clear, copy_original_table_set,
	set_loop_copy, get_loop_copy): New functions.
	(set_bb_original, set_bb_copy): Use copy_original_table_set.
	* cfgloop.h (struct loop): Remove copy field.
	* Makefile.in (cfg.o): Add CFGLOOP_H dependency.
	* basic-block.h (set_loop_copy, get_loop_copy): Declare.

From-SVN: r125024
2007-05-24 14:02:12 +00:00
H.J. Lu 66da42bc85 i386.c (ix86_handle_option): Handle SSE4.1 for -msse/-msse2/-msse3.
2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
	-msse/-msse2/-msse3.

From-SVN: r125023
2007-05-24 06:31:05 -07:00
H.J. Lu 5691b85a26 i386.c (ix86_init_mmx_sse_builtins): Mark __builtin_ia32_vec_set_v2di with MASK_64BIT.
2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
	__builtin_ia32_vec_set_v2di with MASK_64BIT.

From-SVN: r125022
2007-05-24 06:28:49 -07:00
Danny Smith 5234b8f573 re PR target/27067 (Compile errors with multiple inheritance where the stdcall attribute is applied to virtual functions.)
ChangeLog
	
	PR target/27067
	* doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
	* targhooks.h (default_mangle_decl_assembler_name): Declare
	default hook.
	* targhooks.c (default_mangle_decl_assembler_name): Define
	default hook.
	* target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
	default hook.
	* target.h (struct gcc_target): Add mangle_decl_assembler_name field.
	* langhooks.c (lhd_set_decl_assembler_name): Call
	targetm.mangle_decl_assembler_name for names with global scope.

	* config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
	default.
	(ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
	* config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
	Declare.
	* config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
	New. Factored out of i386_pe_encode_section_info.
	(gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
	Move check for prior decoration of stdcall
	symbols to i386_pe_encode_section_info.
	(i386_pe_encode_section_info): Adjust call to
	gen_stdcall_or_fastcall_suffix.  Use
	i386_pe_maybe_mangle_decl_assembler_name, if needed.
	(i386_pe_mangle_decl_assembler_name): New. Wrap
	i386_pe_maybe_mangle_decl_assembler_name.


cp/ChangeLog

        * mangle.c (mangle_decl): Call targetm.mangle_decl_assembler_name.

From-SVN: r125020
2007-05-24 10:11:49 +00:00
Francois-Xavier Coudert 4f5497a924 re PR testsuite/32038 (gfortran.dg/pr25603.f is invalid code)
PR fortran/32038
	* gfortran.dg/pr25603.f: Initialize integer variables.

From-SVN: r125019
2007-05-24 09:56:50 +00:00
Jerry DeLisle 1505f3b58e re PR fortran/31716 (segfault with real array bounds)
2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/31716
	* array.c (spec_dimen_size): Test for correct BT_INTEGER type.

From-SVN: r125013
2007-05-24 05:03:51 +00:00
Rafael Avila de Espindola 1e2041330f c-common.c (c_common_signed_or_unsigned_type): Delay the check for INTEGRAL_TYPE_P and TYPE_UNSIGNED.
* c-common.c (c_common_signed_or_unsigned_type): Delay the check for
       INTEGRAL_TYPE_P and TYPE_UNSIGNED.
       * langhooks.c (get_signed_or_unsigned_type): Don't check for
       INTEGRAL_TYPE_P or TYPE_UNSIGNED.
       (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
       TYPE_UNSIGNED.

From-SVN: r125012
2007-05-24 04:38:27 +00:00
GCC Administrator b9061212fa Daily bump.
From-SVN: r125010
2007-05-24 00:17:24 +00:00
Ian Lance Taylor b9a97851b5 * g++.dg/other/vrp1.C: New test.
From-SVN: r125007
2007-05-23 23:00:54 +00:00
Simon Martin 126e073b22 re PR preprocessor/20077 (GCC accepts macro definitions that fail a constraint)
2007-05-23  Simon Martin  <simartin@users.sourceforge.net>

	PR preprocessor/20077
	* macro.c (create_iso_definition): Fixed the method to determine whether
	the token-pasting operator appears at the beginning or the end of a macro.

From-SVN: r125000
2007-05-23 20:58:34 +00:00
Sandra Loosemore a38e0142a8 Fix up MIPS16 hard float and add support for complex.
2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	gcc/
	Fix up MIPS16 hard float and add support for complex.

	* config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
	(TARGET_SOFT_FLOAT_ABI): New.
	(TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
	__mips_soft_float to reflect the ABI in use, not whether the
	FPU is directly accessible (e.g., in MIPS16 mode).
	(UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
	(UNITS_PER_FPVALUE): Likewise.

	* config/mips/mips.c (mips_expand_call): Remove redundant
	TARGET_MIPS16 check.
	(mips_arg_regno): New.
	(function_arg_advance): When setting bits in cum->fp_code for
	MIPS16, don't subtract 1 from cum->arg_number, since it is now
	zero-based.
	(function_arg): Use mips_arg_regno.
	(mips_return_mode_in_fpr_p): New.
	(mips16_call_stub_mode_suffix): New.
	(mips16_cfun_returns_in_fpr_p): New.
	(mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
	(mips_output_function_prologue): Test mips16_hard_float, not
	!TARGET_SOFT_FLOAT, to decide when a function stub is required.
	(mips_expand_epilogue): Call MIPS16 helper routines to copy
	return value into a floating-point register.
	(mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
	(mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
	(mips16_fp_args): Handle MIPS32r2 ISA which supports
	TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
	word of double arguments from or to the high bits of 64-bit
	floating point registers.
	(build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
	(mips16_fpret_double): New helper function.
	(build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
	support for complex modes.  Fill in DECL_RESULT for stubdecl.
	(mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.

	* config/mips/mips16.S 
	(RET, ARG1, ARG2): New.
	(MERGE_GPRf, MERGE_GPRt): New.
	(DELAYt, DELAYf): New.
	(MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
	(MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
	(MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
	(MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
	(SFOP): Renamed to...
	(OPSF3): This, and macro-ified.  Updated all uses.
	(SFOP2): Renamed to...
	(OPSF2): This, and macro-ified.  Updated all uses.
	(SFCMP): Renamed to...
	(CMPSF): This, and macro-ified.  Updated all uses.
	(SFREVCMP): Renamed to...
	(REVCMPSF): This, and macro-ified.  Updated all uses.
	(__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
	(LDDBL1, LDDBL2, RETDBL): Deleted.
	(DFOP): Renamed to...
	(OPDF3): This, and macro-ified.  Updated all uses.
	(DFOP2): Renamed to...
	(OPDF2): This, and macro-ified.  Updated all uses.
	(__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
	(DFCMP): Renamed to...
	(CMPDF): This, and macro-ified.  Updated all uses.
	(DFREVCMP): Renamed to...
	(REVCMPDF): This, and macro-ified.  Updated all uses.
	(__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
	(RET_FUNCTION): New.
	(__mips16_ret_sf, __mips16_ret_df): Macro-ified.
	(__mips16_ret_sc, __mips16_ret_dc): New.
	(STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
	STUB_ARGS_6, STUB_ARGS_10): New.
	(CALL_STUB_NO_RET): New.
	(__mips16_call_stub_1): Macro-ified.
	(__mips16_call_stub_5): Macro-ified.
	(__mips16_call_stub_2): Macro-ified.
	(__mips16_call_stub_6): Macro-ified.
	(__mips16_call_stub_9): Macro-ified.
	(__mips16_call_stub_10): Macro-ified.
	(CALL_STUB_RET): New.
	(__mips16_call_stub_sf_0): Macro-ified.
	(__mips16_call_stub_sf_1): Macro-ified.
	(__mips16_call_stub_sf_5): Macro-ified.
	(__mips16_call_stub_sf_2): Macro-ified.
	(__mips16_call_stub_sf_6): Macro-ified.
	(__mips16_call_stub_sf_9): Macro-ified.
	(__mips16_call_stub_sf_10): Macro-ified.
	(__mips16_call_stub_df_0): Macro-ified.
	(__mips16_call_stub_df_1): Macro-ified.
	(__mips16_call_stub_df_5): Macro-ified.
	(__mips16_call_stub_df_2): Macro-ified.
	(__mips16_call_stub_df_6): Macro-ified.
	(__mips16_call_stub_df_9): Macro-ified.
	(__mips16_call_stub_df_10): Macro-ified.
	(__mips16_call_stub_sc_0): New.
	(__mips16_call_stub_sc_1): New.
	(__mips16_call_stub_sc_5): New.
	(__mips16_call_stub_sc_2): New.
	(__mips16_call_stub_sc_6): New.
	(__mips16_call_stub_sc_9): New.
	(__mips16_call_stub_sc_10): New.
	(__mips16_call_stub_dc_0): New.
	(__mips16_call_stub_dc_1): New.
	(__mips16_call_stub_dc_5): New.
	(__mips16_call_stub_dc_2): New.
	(__mips16_call_stub_dc_6): New.
	(__mips16_call_stub_dc_9): New.
	(__mips16_call_stub_dc_10): New.
	
	* config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
	* config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
	* config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.

	gcc/testsuite/
	* gcc.target/mips/inter/mips16_stubs_1_main.c: New.
	* gcc.target/mips/inter/mips16_stubs_1_x.c: New.
	* gcc.target/mips/inter/mips16_stubs_1_y.c: New.
	* gcc.target/mips/inter/mips16-inter.exp: New.


Co-Authored-By: Nigel Stephens <nigel@mips.com>
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r124999
2007-05-23 16:03:00 -04:00
Kazu Hirata 70c1e0331b * gcc.dg/bf-spl1.c, gcc.dg/m68k-pic-1.c: Enable on fido-*-*.
From-SVN: r124996
2007-05-23 16:32:04 +00:00
Ian Lance Taylor 70f57af18f invoke.texi (Invoking GCC): Document that the order of the -l option matters.
* doc/invoke.texi (Invoking GCC): Document that the order of the
	-l option matters.

From-SVN: r124995
2007-05-23 15:55:34 +00:00
H.J. Lu 8d8aad9734 sse3-addsubpd.c: Don't include stdlib.h nor i386-cpuid.h.
2007-05-23  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/sse3-addsubpd.c: Don't include stdlib.h
	nor i386-cpuid.h.  Include sse3-check.h.  Remove main ().
	* gcc.target/i386/sse3-addsubps.c: Likewise.
	* gcc.target/i386/sse3-haddpd.c: Likewise.
	* gcc.target/i386/sse3-haddps.c: Likewise.
	* gcc.target/i386/sse3-hsubpd.c: Likewise.
	* gcc.target/i386/sse3-hsubps.c: Likewise.
	* gcc.target/i386/sse3-lddqu.c: Likewise.
	* gcc.target/i386/sse3-movddup.c: Likewise.
	* gcc.target/i386/sse3-movshdup.c: Likewise.
	* gcc.target/i386/sse3-movsldup.c: Likewise.

	* gcc.target/i386/ssse3-pabsb.c: Don't include stdlib.h
	nor i386-cpuid.h.  Include ssse3-check.h.  Remove main ().
	* gcc.target/i386/ssse3-pabsd.c: Likewise.
	* gcc.target/i386/ssse3-pabsw.c: Likewise.
	* gcc.target/i386/ssse3-palignr.c: Likewise.
	* gcc.target/i386/ssse3-phaddd.c: Likewise.
	* gcc.target/i386/ssse3-phaddsw.c: Likewise.
	* gcc.target/i386/ssse3-phaddw.c: Likewise.
	* gcc.target/i386/ssse3-phsubd.c: Likewise.
	* gcc.target/i386/ssse3-phsubsw.c: Likewise.
	* gcc.target/i386/ssse3-phsubw.c: Likewise.
	* gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
	* gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
	* gcc.target/i386/ssse3-pshufb.c: Likewise.
	* gcc.target/i386/ssse3-psignb.c: Likewise.
	* gcc.target/i386/ssse3-psignd.c: Likewise.
	* gcc.target/i386/ssse3-psignw.c: Likewise.
	* gcc.target/i386/ssse3-vals.h: Likewise.

	* gcc.target/i386/sse3-check.h: New file.
	* gcc.target/i386/ssse3-check.h: Likewise.

From-SVN: r124994
2007-05-23 08:25:16 -07:00
Paolo Bonzini 7e25695e8c re PR bootstrap/32009 (building gcc4-4.3/4.4.0-20070518 failed on OSX 10.3.9)
2007-05-23  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/32009
	* mh-ppc-darwin: Temporarily disable.

From-SVN: r124990
2007-05-23 14:26:31 +00:00
Francois-Xavier Coudert 7c57b2f1f4 re PR fortran/32046 (wrong code with -O2 for gfortran.dg/interface_12.f90 & result_in_spec_1.f90)
PR fortran/32046
	* trans-expr.c (gfc_trans_zero_assign): Convert the result of
	TYPE_SIZE_UNIT into a signed type.
	(gfc_trans_array_copy):  Likewise.
	(gfc_trans_array_constructor_copy): Likewise.
	* trans-array.c (gfc_trans_create_temp_array): Likewise.
	(gfc_grow_array): Likewise.
	(gfc_array_init_size): Likewise.
	(gfc_duplicate_allocatable): Likewise.
	* trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise.

From-SVN: r124985
2007-05-23 08:25:05 +00:00
Chen Liqin 6d0ceb7638 re PR target/30987 (Problem while compiling gcc for score)
2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>

	PR target/30987
	* config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
	* config/score/predicate.md (const_pow2, const_npow2): remove.
	* config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
	PR target/30474
	* config/score/score.c (score_print_operand): makes sure that only lower 
        bits are used.

From-SVN: r124983
2007-05-23 06:09:20 +00:00
Ian Lance Taylor b80cca7b47 tree-vrp.c (avoid_overflow_infinity): New static function, broken out of set_value_range_to_value.
* tree-vrp.c (avoid_overflow_infinity): New static function,
	broken out of set_value_range_to_value.
	(set_value_range_to_value): Call avoid_overflow_infinity.
	(extract_range_from_assert): Likewise.

From-SVN: r124981
2007-05-23 05:53:21 +00:00
Jerry DeLisle 24016fdb16 re PR fortran/18923 (segfault after subroutine name confusion)
2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/18923
	* resolve.c (resolve_function): Don't call resolve_global_procedure if
	there is no name. Delete duplicated statement in ELSE clause.

Co-Authored-By: Daniel Franke <franke.daniel@gmail.com>

From-SVN: r124979
2007-05-23 04:15:25 +00:00
Andrew Pinski 1809a5208f re PR middle-end/31095 (ICE in expand_expr_real_1, at expr.c:8786)
2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/31095
         * builtins.c (expand_builtin_memmove_args): Strip nops that don't
        change the type before looking for a COMPOUND_EXPR.

2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/31095
        * gcc.c-torture/compile/bcopy-1.c: New testcase.

From-SVN: r124975
2007-05-22 18:17:14 -07:00
GCC Administrator 6a57dd4f38 Daily bump.
From-SVN: r124973
2007-05-23 00:18:45 +00:00
Ian Lance Taylor 1570a70441 lower-subreg.c (decompose_multiword_subregs): If we change an insn, call remove_retval_note on it.
* lower-subreg.c (decompose_multiword_subregs): If we change an
	insn, call remove_retval_note on it.

From-SVN: r124969
2007-05-22 23:42:17 +00:00
Andrew Pinski 1897129fc1 re PR tree-optimization/31606 (ICE in try_instantiate_multiple_fields, at tree-sra.c:1601)
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
2007-05-22 16:05:40 -07:00
H.J. Lu a9535314ca sse4_1-check.h: Don't include <stdio.h>.
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
2007-05-22 15:58:32 -07:00
Paolo Carlini b0e94ec920 testsuite_allocator.h (check_new): Assign false to new_called.
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
2007-05-22 22:43:22 +00:00
Kazu Hirata 0a2acc8a59 20000320-1.x, [...]: XFAIL on m68k-*-* and check_effective_target_coldfire_fpu.
* 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
2007-05-22 21:06:22 +00:00
Ollie Wild 8e89cbfe6c name-lookup.c (ambiguous_decl): Adds check for hidden types.
* 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
2007-05-22 21:05:01 +00:00
Tobias Burnus 6b12f000e0 libgfortran.h: Mark stop_numeric as noreturn.
2007-05-22  Tobias Burnus  <burnus@net-b.de>

       * libgfortran.h: Mark stop_numeric as noreturn.

From-SVN: r124962
2007-05-22 22:55:53 +02:00
Richard Sandiford 09e18274fd regs.h (end_hard_regno): New function.
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
2007-05-22 20:52:39 +00:00
Ollie Wild 6936461f13 decl.c (duplicate_decls): Verify namespace names are unique.
* 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
2007-05-22 20:36:49 +00:00
H.J. Lu 3f457a0db8 i386-2.C: Update comments on header files tested.
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
2007-05-22 13:25:48 -07:00
Ollie Wild ce3fcf8c5f * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r124958
2007-05-22 20:16:21 +00:00
H.J. Lu f0de03cf1c sse4_1-check.h: Don't include ../auto-host.h.
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
2007-05-22 12:50:17 -07:00
Richard Sandiford 408bed3c38 mode-switching.c (reg_dies): Change type of second argument to "HARD_REG_SET *".
gcc/
	* mode-switching.c (reg_dies): Change type of second argument to
	"HARD_REG_SET *".
	(optimize_mode_switching): Update accordingly.

From-SVN: r124955
2007-05-22 19:41:10 +00:00
Richard Sandiford 56b138aed2 hard-reg-set.h (GO_IF_HARD_REG_SUBSET, [...]): Delete in favor of...
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
2007-05-22 19:33:37 +00:00
Janis Johnson 965ff67081 func-array.c: Support -DDBG to report individual failures.
* 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
2007-05-22 18:08:48 +00:00
Janis Johnson ba2f32a925 gcc/
* 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
2007-05-22 18:01:12 +00:00
Tobias Burnus 1f801ab788 re PR libfortran/31295 (Uninitialized variable in libgfortran's _gfortran_eoshift0_4)
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
2007-05-22 18:19:09 +02:00
H.J. Lu 056299563b i386-cpuid.h (bit_SSE4_1): New.
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
2007-05-22 09:14:13 -07:00
H.J. Lu 9a5cee0228 config.gcc (i[34567]86-*-*): Add smmintrin.h to extra_headers.
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
2007-05-22 07:37:19 -07:00
Francois-Xavier Coudert c099916d62 re PR fortran/31627 ([4.1/4.2 only] -bounds-check doesn't check lower bound of assumed-sized array)
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
2007-05-22 09:27:15 +00:00
Uros Bizjak 0f86970940 i386.exp (check_effective_target_ssse3): New.
* 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
2007-05-22 10:15:13 +02:00
Alexandre Oliva dbc30a9698 * misc.c (enumerate_modes): Consider log2_b to always be one.
From-SVN: r124938
2007-05-22 07:00:22 +00:00
Nathan Sidwell bebb3a98ce linux.h (ASM_SPEC): Add asm_pcrel_spec.
* 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
2007-05-22 06:55:27 +00:00
David Daney c076e75f30 install.texi (Building a cross compiler): Add requirements for Java cross compiler.
* doc/install.texi (Building a cross compiler): Add requirements
	for Java cross compiler.

From-SVN: r124936
2007-05-22 04:06:06 +00:00
GCC Administrator e175d3bffe Daily bump.
From-SVN: r124933
2007-05-22 00:18:27 +00:00
Mark Mitchell 5c1131547b decl.c (cxx_maybe_build_cleanup): Handle __attribute__((cleanup)).
* 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
2007-05-21 23:47:29 +00:00
Ian Lance Taylor 0b4cafec04 internal.h (struct cpp_reader): Add new fields: nonexistent_file_hash and nonexistent_file_ob.
* 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
2007-05-21 23:43:53 +00:00