Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
From-SVN: r125010
|
|
From-SVN: r125007
|
|
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 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
|
|
From-SVN: r124996
|
|
* doc/invoke.texi (Invoking GCC): Document that the order of the
-l option matters.
From-SVN: r124995
|
|
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 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/32009
* mh-ppc-darwin: Temporarily disable.
From-SVN: r124990
|
|
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 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
|
|
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-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-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
|
|
From-SVN: r124973
|
|
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
|
|
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 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 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
|
|
* 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
|
|
* 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 Tobias Burnus <burnus@net-b.de>
* libgfortran.h: Mark stop_numeric as noreturn.
From-SVN: r124962
|
|
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
|
|
* 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 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
|
|
From-SVN: r124958
|
|
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
|
|
gcc/
* mode-switching.c (reg_dies): Change type of second argument to
"HARD_REG_SET *".
(optimize_mode_switching): Update accordingly.
From-SVN: r124955
|
|
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
|
|
* 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
|
|
* 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
|
|
_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 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 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
|
|
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
|
|
* 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
|
|
From-SVN: r124938
|
|
* 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
|
|
compiler.
* doc/install.texi (Building a cross compiler): Add requirements
for Java cross compiler.
From-SVN: r124936
|
|
From-SVN: r124933
|
|
* 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
|
|
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
|
|
and p->a[x+i+1])
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
|
|
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
|
|
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
|
|
PR fortran/32027
* trans-stmt.c (gfc_trans_do): Fix the value of loop variable
when the loop ends.
* gfortran.dg/do_3.F90: Add checks for the final value of the
loop variable.
From-SVN: r124923
|
|
2007-05-21 H.J. Lu <hongjiu.lu@intel.com>
* trans-stmt.c (gfc_trans_do): Fix a typo in comment.
From-SVN: r124911
|
|
* config/darwin.h (LINK_COMMAND_SPEC): Add .cxx for dsymutil
handling as well.
* config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
Radar 5214697
From-SVN: r124909
|
|
* gcc.c-torture/execute/990127-2.x: New file.
From-SVN: r124908
|
|
2007-05-21 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/c_locale.h: Do not include <cstdarg>, use builtins.
* config/locale/generic/c_locale.h: Likewise.
From-SVN: r124907
|