Age | Commit message (Collapse) | Author | Files | Lines |
|
From-SVN: r181770
|
|
gcc/testsuite:
2011-11-27 Aldy Hernandez <aldyh@redhat.com>
Iain Sandoe <iains@gcc.gnu.org>
* gcc.dg/lto/trans-mem-2_0.c: Add dg-lto-do link. Add dummy
functions for _ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable.
* gcc.dg/lto/trans-mem-1_0.c: Add dg-lto-do link.
* gcc.dg/lto/trans-mem-1_1.c: Add dummy functions for
_ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable.
Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org>
From-SVN: r181766
|
|
libgcc:
* config/darwin-crt-tm.c: Correct comments, use correct licence.
From-SVN: r181765
|
|
libgcc:
* config/darwin-crt-tm.c: Remove dummy _ITM_ functions.
From-SVN: r181764
|
|
gcc/
PR target/51278
* config/mips/mips.c (mips_rtx_costs): Handle baddu.
From-SVN: r181763
|
|
gcc/
* config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
From-SVN: r181762
|
|
gcc/
* config/mips/mips-protos.h (mips_emit_binary): Declare.
* config/mips/mips.c (mips_emit_binary): Make global.
(mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
(mips_conditional_register_usage): Don't treat LO and HI as
register operands in MIPS16 mode.
(mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
for MIPS16 code.
* config/mips/predicates.md (muldiv_target_operand): New predicate.
(move_operand): Allow hilo_operand.
* config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
target of MIPS16 multiplies, then move it into the target register.
(mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
(<u>mulsidi3_32bit_mips16): New expander.
(<u>mulsidi3_32bit): Use muldiv_target_operand.
(<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
(<u>mulsidi3_64bit): Require !TARGET_MIPS16. Split into
<u>mulsidi3_64bit_split.
(<u>mulsidi3_64bit_mips16): New expander.
(<u>mulsidi3_64bit_split): Likewise, using expansions from
two previous define_splits.
(<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
muldiv_target_operand.
(<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
(<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
Split into <su>mulsi3_highpart_split.
(<su>mulsi3_highpart_split): New expander.
(<su>muldi3_highpart): Turn into a define_expand.
Use <su>muldi3_highpart_split for MIPS16 code.
(<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
Require !TARGET_MIPS16. Split into <su>muldi3_highpart_split.
(<su>muldi3_highpart_split): New expander.
(<u>mulditi3): Explicitly specify LO as the target of MIPS16
multiplies, then move it into the target register.
(<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
(divmod<mode>4, udivmod<mode>4): Turn into define_expands.
Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
move LO into operand 0.
(divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
from <u>divmod<mode>4. Use muldiv_target_operand.
Require !TARGET_MIPS16. Split into <u>divmod<mode>4_split.
(<u>divmod<mode>4_split): New expander.
(<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
(mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
gcc/testsuite/
* gcc.target/mips/mult-2.c, gcc.target/mips/mult-3.c,
gcc.target/mips/mult-4.c, gcc.target/mips/mult-5.c,
gcc.target/mips/mult-6.c, gcc.target/mips/mult-7.c,
gcc.target/mips/mult-8.c, gcc.target/mips/mult-9.c,
gcc.target/mips/mult-10.c, gcc.target/mips/mult-11.c,
gcc.target/mips/mult-12.c, gcc.target/mips/mult-13.c,
gcc.target/mips/mult-14.c, gcc.target/mips/mult-15.c,
gcc.target/mips/mult-16.c, gcc.target/mips/mult-17.c,
gcc.target/mips/mult-18.c, gcc.target/mips/mult-19.c,
gcc.target/mips/div-1.c, gcc.target/mips/div-2.c,
gcc.target/mips/div-3.c, gcc.target/mips/div-4.c,
gcc.target/mips/div-5.c, gcc.target/mips/div-6.c,
gcc.target/mips/div-7.c, gcc.target/mips/div-8.c,
gcc.target/mips/div-9.c, gcc.target/mips/div-10.c,
gcc.target/mips/div-11.c, gcc.target/mips/div-12.c: New tests.
* gcc.target/mips/fix-r4000-1.c (foo, bar): Add NOMIPS16.
* gcc.target/mips/fix-r4000-2.c (foo): Likewise.
* gcc.target/mips/fix-r4000-3.c (foo): Likewise.
* gcc.target/mips/fix-r4000-4.c (foo): Likewise.
* gcc.target/mips/fix-r4000-5.c (foo): Likewise.
* gcc.target/mips/fix-r4000-6.c (foo): Likewise.
* gcc.target/mips/fix-r4000-7.c (foo): Likewise.
* gcc.target/mips/fix-r4000-8.c (foo): Likewise.
* gcc.target/mips/fix-r4000-9.c (foo): Likewise.
* gcc.target/mips/fix-r4000-10.c (foo): Likewise.
* gcc.target/mips/fix-r4000-11.c (foo): Likewise.
* gcc.target/mips/fix-r4000-12.c (foo): Likewise.
From-SVN: r181761
|
|
x_operand_reg_set.
gcc/
* hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
and x_operand_reg_set.
(accessible_reg_set, operand_reg_set): New macros.
* reginfo.c (init_reg_sets): Initialize accessible_reg_set and
operand_reg_set.
(saved_accessible_reg_set, saved_operand_reg_set): New variables.
(save_register_info): Save them.
(restore_register_info): Restore them.
(init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
Remove NO_REGS registers from operand_reg_set. Treat members
of operand_reg_set as fixed.
* recog.c (general_operand): Check operand_reg_set rather than
NO_REGS.
(register_operand, nonmemory_operand): Likewise.
* varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
register variables. Check accessible_reg_set and operand_reg_set.
* config/mips/mips.c (mips_conditional_register_usage): Remove
inaccessible register from accessible_reg_set, rather than just
making them fixed.
gcc/testsuite/
* gcc.target/mips/mips.exp (mips-dg-options): Make -mno-dsp
imply -mno-dspr2.
* gcc.target/mips/no-dsp-1.c: New test.
* gcc.target/mips/soft-float-1.c: Likewise.
From-SVN: r181760
|
|
From-SVN: r181759
|
|
* doc/xml/manual/using.xml (Prerequisites): Refer to x86 instead
of i386.
From-SVN: r181758
|
|
* scripts/run_doxygen (problematic): Change Linux reference to
GNU/Linux.
From-SVN: r181757
|
|
* doc/xml/manual/abi.xml (Prerequisites): Refer to GNU/Linux.
Fix reference to GCC.
From-SVN: r181756
|
|
* config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
for Linux.
From-SVN: r181755
|
|
From-SVN: r181754
|
|
* optabs.c (expand_atomic_fetch_op): Always return result.
From-SVN: r181750
|
|
* optabs.c (init_sync_libfuncs_1): Include max in iteration.
From-SVN: r181749
|
|
* omp-low.c (expand_omp_atomic): Assume anything aligned to
BIGGEST_ALIGNMENT is aligned.
From-SVN: r181748
|
|
* config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
(UNSPECV_TAS_1, UNSPECV_TAS_2): New.
(I): New mode iterator.
(xz): New mode attribute.
* config/m68k/sync.md: New file.
From-SVN: r181747
|
|
libgcc/
* config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
* config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
gcc/
* config/m68k/linux-atomic.c: New file.
* config/m68k/t-linux: New file.
* config.host (m68k-uclinux, m68k-linux): Use it.
From-SVN: r181746
|
|
PR gcov-profile/51297
* gcov.c (main): Allocate initial names and sources arrays.
(find_source): Don't check for null name or source arrays here.
From-SVN: r181745
|
|
* crtstuff.c (__TMC_LIST__): Mark used not unused.
(__TMC_END__): Only declare if hidden is available; in the definition,
if hidden is unavailable add a null record.
(deregister_tm_clones, register_tm_clones): New.
(__do_global_dtors_aux, frame_dummy): Use them.
(__do_global_dtors, __do_global_ctors_1): Likewise.
From-SVN: r181744
|
|
verify_flow_info failed)
PR rtl-optimization/49912
* cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
when counting n_branch.
* g++.dg/other/pr49912.C: New test.
From-SVN: r181743
|
|
* gcc.dg/vect/fast-math-vect-call-2.c: Require vect_double
effective target.
* gcc.dg/vect/fast-math-bb-slp-call-2.c: Ditto.
From-SVN: r181742
|
|
* gcc.dg/vect/fast-math-vect-call-2.c: Require vect_double
effective target.
From-SVN: r181741
|
|
PR libstdc++/51296
* testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
on alpha*-*-osf*.
* testsuite/30_threads/future/cons/constexpr.cc: Disable debug
symbols.
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
From-SVN: r181740
|
|
* config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
From-SVN: r181739
|
|
PR middle-end/50074
* calls.c (mem_overlaps_already_clobbered_arg_p):
Return false if no outgoing arguments have been stored so far.
From-SVN: r181738
|
|
From-SVN: r181735
|
|
* trans-array.c (set_loop_bounds): Remove dead conditions.
From-SVN: r181731
|
|
fortran/
PR fortran/51250
PR fortran/43829
* trans-array.c (gfc_trans_create_temp_array): Get dimension from
the right gfc_ss struct.
testsuite/
PR fortran/51250
PR fortran/43829
* gfortran.dg/inline_sum_3.f90: New test.
From-SVN: r181730
|
|
failure on 32-bit Solaris/x86)
PR testsuite/51258
* lib/target-supports.exp
(check_effective_target_sync_long_long): Also supported on 32bit
x86 targets. Add comment about required dg-options.
Add alpha*-*-* targets.
(check_effective_target_sync_long_long_runtime): Ditto.
* gcc.dg/atomic-op-4.c (dg-options): Add -march=pentium for
32bit x86 targets.
* gcc.dg/atomic-compare-exchange-4.c: Ditto.
* gcc.dg/atomic-exchange-4.c: Ditto.
* gcc.dg/atomic-load-4.c: Ditto.
* gcc.dg/atomic-store-4.c: Ditto.
* gcc.dg/di-longlong64-sync-1.c: Ditto.
* gcc.dg/di-sync-multithread.c: Ditto.
* gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto.
* gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto.
From-SVN: r181728
|
|
failure on 32-bit Solaris/x86)
PR testsuite/51258
* lib/target-supports.exp
(check_effective_target_sync_int_128_runtime): New procedure.
(check_effective_target_sync_long_long_runtime): Ditto.
(check_effective_target_sync_long_long): Add arm*-*-*.
(check_effective_target_sync_longlong): Remove.
* gcc.dg/atomic-op-5.c: Require sync_int_128_runtime effective target.
* gcc.dg/atomic-compare-exchange-5.c: Ditto.
* gcc.dg/atomic-exchange-5.c: Ditto.
* gcc.dg/atomic-load-5.c: Ditto.
* gcc.dg/atomic-store-5.c: Ditto.
* gcc.dg/simulate-thread/atomic-load-int128.c: Ditto.
* gcc.dg/simulate-thread/atomic-other-int128.c: Ditto.
* gcc.dg/atomic-op-4.c: Require sync_long_long_runtime
effective target.
* gcc.dg/atomic-compare-exchange-4.c: Ditto.
* gcc.dg/atomic-exchange-4.c: Ditto.
* gcc.dg/atomic-load-4.c: Ditto.
* gcc.dg/atomic-store-4.c: Ditto.
* gcc.dg/di-longlong64-sync-1.c: Ditto.
* gcc.dg/di-sync-multithread.c: Ditto.
* gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto.
* gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto.
From-SVN: r181727
|
|
2011-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/50408
* trans-decl.c (gfc_get_module_backend_decl): Also copy
ts.u.derived from the gsym if the ts.type is BT_CLASS.
(gfc_get_extern_function_decl): Copy also the backend_decl
for the symbol's ts.u.{derived,cl} from the gsym.
* trans-types.c (gfc_copy_dt_decls_ifequal): Directly
return if "from" and "to" are the same.
2011-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/50408
* gfortran.dg/whole_file_35.f90: New.
From-SVN: r181725
|
|
2011-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/51302
* trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.
2011-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/51302
* gfortran.dg/volatile13.f90: New.
From-SVN: r181724
|
|
From-SVN: r181723
|
|
* config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
From-SVN: r181722
|
|
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
PR other/51011
* tree.h (is_builtin_name): No longer external.
* builtins.c (is_builtin_name): Make static.
* varasm.c (incorporeal_function_p): __sync and __atomic external calls
are not incorporeal and may need asm label processing.
From-SVN: r181721
|
|
PR target/50566
* config/avr/avr-protos.h (avr_log_t): Add field .builtin.
* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
Don't bypass TARGET_ALL_DEBUG. Print self-info with ?.
(avr_log_vadump): Support %D and %X to print double_int.
(avr_double_int_pop_digit): New static function.
(avr_dump_double_int_hex): New static function.
From-SVN: r181718
|
|
From-SVN: r181715
|
|
PR target/51287
* i386.c (distance_non_agu_define): Fix insn attr check.
From-SVN: r181713
|
|
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
PR c/51256
* c-common.c (get_atomic_generic_size): Check for various error
conditions
(resolve_overloaded_atomic_exchange,
resolve_overloaded_atomic_compare_exchange,
resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
error_mark_node for error conditions.
* gcc.dg/atomic-pr51256.c: New. Test error conditions.
From-SVN: r181709
|
|
/cp
2011-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51227
* pt.c (instantiate_class_template_1): If lambda_function (type)
is NULL_TREE do not instantiate_decl.
/testsuite
2011-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51227
* g++.dg/cpp0x/lambda/lambda-ice5.C: New.
From-SVN: r181707
|
|
From-SVN: r181706
|
|
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
* optab.c (maybe_emit_atomic_exchange): New. Try to emit an
atomic_exchange pattern.
(maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange
using __sync_lock_test_and_set.
(maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
exchange using a compare_and_swap loop.
(expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set.
(expand_atomic_test_and_set): New. Expand test_and_set operation.
(expand_atomic_exchange): Use new maybe_emit_* functions.
(expand_atomic_store): Use new maybe_emit_* functions.
* builtins.c (expand_builtin_sync_lock_test_and_set): Call
expand_sync_lock_test_and_set routine.
(expand_builtin_atomic_exchange): Remove parameter from call.
(expand_builtin_atomic_clear): Use atomic_clear pattern if present.
(expand_builtin_atomic_test_and_set): Add target and simply call
expand_atomic_test_and_set.
(expand_builtin): Add target to expand_builtin_atomic_test_and_set.
* expr.h (expand_atomic_exchange): Add parameter.
(expand_sync_lock_test_and_set): New prototype.
(expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
From-SVN: r181702
|
|
gcc/
2011-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/51134
* config/i386/i386.h (processor_costs): Revert revision 181357.
* config/i386/i386.c (cost models): Likewise.
(core_cost): Likewise.
(promote_duplicated_reg): Likewise.
(promote_duplicated_reg_to_size): Likewise.
(processor_target): Likewise.
(expand_set_or_movmem_via_loop_with_iter): Likewise.
(expand_set_or_movmem_via_loop): Likewise.
(emit_strset): Likewise.
(expand_movmem_epilogue): Likewise.
(expand_setmem_epilogue): Likewise.
(expand_movmem_prologue): Likewise.
(expand_setmem_prologue): Likewise.
(expand_constant_movmem_prologue): Likewise.
(expand_constant_setmem_prologue): Likewise.
(decide_alg): Likewise.
(decide_alignment): Likewise.
(ix86_expand_movmem): Likewise.
(ix86_expand_setmem): Likewise.
(ix86_slow_unaligned_access): Likewise.
* config/i386/i386.md (strset): Likewise.
* config/i386/sse.md (vec_dupv4si): Likewise.
(vec_dupv2di): Likewise.
gcc/testsuite/
2011-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/51134
* gcc.target/i386/sw-1.c: Revert revision 181357.
From-SVN: r181701
|
|
* config/avr/avr.md (*rotlhi2.15): Set length to 4.
From-SVN: r181700
|
|
2011-11-24 Tobias Burnus <burnus@net-b.de>
PR fortran/51218
* resolve.c (pure_subroutine): If called subroutine is
impure, unset implicit_pure.
(resolve_function): Move impure check to simplify code.
2011-11-24 Tobias Burnus <burnus@net-b.de>
PR fortran/51218
* gfortran.dg/implicit_pure_1.f90: New.
From-SVN: r181698
|
|
PR testsuite/51258
* gcc.dg/atomic-compare-exchange-5.c: Add -mcx16 on i?86-*-*.
* gcc.dg/atomic-exchange-5.c: Likewise.
* gcc.dg/atomic-load-5.c: Likewise.
* gcc.dg/atomic-op-5.c: Likewise.
* gcc.dg/atomic-store-5.c: Likewise.
* gcc.dg/simulate-thread/atomic-other-int128.c: Fix typo.
From-SVN: r181697
|
|
* s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access.
From-SVN: r181696
|
|
with -O2 -fwhole-program -fno-tree-loop-optimize -fno-tree-vrp -funroll-loops)
PR rtl-optimization/50290
* gcc.dg/pr50290.c: New test.
From-SVN: r181694
|