Commit Graph

113677 Commits

Author SHA1 Message Date
Jakub Jelinek
7e8b1c4bd8 re PR tree-optimization/51246 (ICE in replace_ref_with, at tree-predcom.c:1309)
PR tree-optimization/51246
	* tree-predcom.c (replace_ref_with): Handle also clobber on the
	rhs.

	* gcc.c-torture/compile/pr51246.c: New test.

From-SVN: r181884
2011-12-01 18:03:33 +01:00
Jakub Jelinek
0397b96547 re PR rtl-optimization/51014 (ICE: in apply_opt_in_copies, at loop-unroll.c:2283 with -O2 -g -funroll-loops)
PR rtl-optimization/51014
	* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
	both from bb and orig_bb.

	* g++.dg/opt/pr51014.C: New test.

From-SVN: r181883
2011-12-01 17:57:07 +01:00
Uros Bizjak
c8218030cc lto-lang.c (lto_attribute_table): Handle *tm regparm.
* lto-lang.c (lto_attribute_table): Handle *tm regparm.
	(ignore_attribute): New.

From-SVN: r181882
2011-12-01 17:38:21 +01:00
Janne Blomqvist
8627f5f5de Make a few helper functions static.
2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* module.c (dt_lower_string): Make static.
	(dt_upper_string): Likewise.

From-SVN: r181881
2011-12-01 17:21:13 +02:00
Joern Rennecke
6ebbd277eb re PR tree-optimization/50802 (FAIL: gcc.c-torture/execute/arith-rand-ll.c execution at -O2 and -Os)
PR tree-optimization/50802
        * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
        considering what happens to ranges during sign changes and/or
        intermediate narrowing conversions.

From-SVN: r181880
2011-12-01 14:25:24 +00:00
Janne Blomqvist
d7fb38e9ac PR 25708 Avoid seeking when parsing strings and when peeking.
2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/25708
	* module.c (parse_string): Read string into resizable array
	instead of parsing twice and seeking.
	(peek_atom): New implementation avoiding seeks.
	(require_atom): Save and set column and line explicitly for error
	handling.

From-SVN: r181879
2011-12-01 16:12:37 +02:00
Jakub Jelinek
c136d69611 re PR bootstrap/51201 (build error without Ada compiler installed)
PR bootstrap/51201
	* gcc-interface/Make-lang.in: Initialize RTS_DIR with = instead of :=.

From-SVN: r181877
2011-12-01 10:36:59 +01:00
Paolo Carlini
a95888bb35 re PR c++/51367 (Broken diagnostic: 'pointer_type' not supported by dump_expr)
/cp
2011-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51367
	* pt.c (unify_inconsistency): Use either %qT or %qE depending on
	whether parm is a type or non-type parameter.

/cp
2011-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51367
	* g++.dg/template/error47.C: New.

From-SVN: r181876
2011-12-01 09:34:43 +00:00
Janne Blomqvist
12f300a8aa Don't call stat before opening a file.
2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* misc.c (gfc_open_file): Don't call stat.

From-SVN: r181875
2011-12-01 10:55:32 +02:00
Ian Lance Taylor
3e68d6d75a compiler/runtime: Copy channel implementation from master library.
From-SVN: r181874
2011-12-01 08:06:16 +00:00
Jason Merrill
04f7a48edd re PR c++/51009 (ICE in verify_gimple_stmt)
PR c++/51009
	* name-lookup.c (push_to_top_level): Set stmts_are_full_exprs_p.
	* decl.c (build_aggr_init_full_exprs): Just assert that it's true.
	(check_initializer): Here too.

From-SVN: r181872
2011-12-01 00:40:54 -05:00
John David Anglin
06dd33ac5e re PR other/51272 (ld: Unsatisfied symbol "_ITM_registerTMCloneTable" in file /test/gnu/gcc/objdir/)
PR other/51272
	* config/pa/stublib.c (_ITM_registerTMCloneTable): New stub.
	(_ITM_deregisterTMCloneTable): Likewise.
	(__register_frame_info): Fix unused warning.
	(__deregister_frame_info, __cxa_finalize, _Jv_RegisterClasses,
	pthread_default_stacksize_np): Likewise.
	* config/pa/t-stublib (LIBGCCSTUB_OBJS): Add new objects and rules.

From-SVN: r181870
2011-12-01 02:37:06 +00:00
Benjamin Kosnik
a152e96f01 acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros.
2011-11-30  Benjamin Kosnik  <bkoz@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
        size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
        _GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
        _GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
        indicate use of C++11 atomic builtins.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
        * include/Makefile.in: Regenerate.
        * libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
        * libsupc++/Makefile.in: Regenerate.

        * include/bits/atomic_base.h: Move lock-free property macros...
        * libsupc++/atomic_lockfree_defines.h: ...here.
        * include/std/future: Use C++11 macros.
        * libsupc++/eh_ptr.cc: Same.
        * libsupc++/eh_throw.cc: Same.
        * libsupc++/exception: Same.
        * libsupc++/exception_ptr.h: Same.
        * libsupc++/guard.cc: Same.
        * libsupc++/nested_exception.cc: Same.
        * libsupc++/nested_exception.h: Same.
        * src/future.cc: Same.

        * include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.

        * doc/doxygen/user.cfg.in
        * doc/xml/manual/concurrency_extensions.xml

        * testsuite/18_support/exception_ptr/lifespan.cc
        * testsuite/lib/libstdc++.exp

From-SVN: r181869
2011-12-01 02:20:32 +00:00
John David Anglin
de21ce7fa8 re PR middle-end/50283 (FAIL: g++.dg/eh/simd-1.C execution test)
PR middle-end/50283
	* config/pa/pa.md (in_branch_delay): Disallow frame related insns.
	(in_nullified_branch_delay): Likewise.
	(in_call_delay): Likewise.

From-SVN: r181868
2011-12-01 02:08:10 +00:00
GCC Administrator
48325d1cb6 Daily bump.
From-SVN: r181867
2011-12-01 00:18:55 +00:00
Richard Henderson
062f93f255 Swap the action and jmpbuf arguments to GTM_longjmp
On several ABIs, the first register parameter is the same as
the return value register.  Moving the action parameter first
avoids the need for register shuffling on these targets.

        * libitm_i.h (GTM_longjmp): Swap first and second arguments.
        * beginend.c (_ITM_abortTransaction): Update to match.
        (GTM::gtm_thread::restart): Likewise.
        * config/alpha/sjlj.S (GTM_longjmp): Likewise.
        * config/x86/sjlj.S (GTM_longjmp): Likewise.

From-SVN: r181863
2011-11-30 14:29:33 -08:00
Richard Henderson
c08472eaf6 predict.c (expr_expected_value_1): Assume compare-and-swap builtin boolean return is true.
* predict.c (expr_expected_value_1): Assume compare-and-swap builtin
        boolean return is true.

From-SVN: r181862
2011-11-30 14:19:02 -08:00
Jakub Jelinek
ed079c4be7 re PR rtl-optimization/51044 (gfortran.dg/alloc_comp_class_2.f90 gfortran.dg/widechar_intrinsics_10.f90 -O1 ICE)
PR rtl-optimization/51044
	* dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
	rather than just insn body.

From-SVN: r181861
2011-11-30 23:02:14 +01:00
Jakub Jelinek
5c43016f2d re PR target/50725 (-O3 -mstackrealign -march=core2 generates invalid prologue code in callee procedure)
PR target/50725
	* function.c (thread_prologue_and_epilogue_insns): If
	stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
	regset.

	* gcc.target/i386/pr50725.c: New test.

From-SVN: r181860
2011-11-30 23:00:28 +01:00
Jakub Jelinek
336ead04ab re PR middle-end/51089 (internal compiler error: verify_flow_info failed)
PR middle-end/51089
	* tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
	avoid creating duplicate edges here.
	(cleanup_empty_eh_unsplit): And remove it in the caller.

	* gfortran.dg/gomp/pr51089.f90: New test.

From-SVN: r181859
2011-11-30 22:59:04 +01:00
Andrew Pinski
9abfe98649 re PR c/51321 (__builtin_types_compatible_p (any_type_t[1][], any_other_type_t) crashes GCC)
2011-11-30  Andrew Pinski  <apinski@cavium.com>

	PR c/51321
	* c-parser.c (c_parser_postfix_expression): Check groktypename results
	before looking at the main variant.

2011-11-30  Andrew Pinski  <apinski@cavium.com>

	* gcc.dg/pr51321.c: New testcase.

From-SVN: r181857
2011-11-30 11:55:36 -08:00
Jakub Jelinek
9790c19e52 re PR rtl-optimization/48721 (ICE: verify_flow_info failed: missing barrier after block 6 with -foptimize-sibling-calls -fsched2-use-superblocks)
PR rtl-optimization/48721
	* sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
	reg_pending_barrier to TRUE_BARRIER.

	* gcc.target/i386/pr48721.c: New test.

From-SVN: r181856
2011-11-30 19:58:33 +01:00
Jakub Jelinek
bbf81a5fae re PR rtl-optimization/48721 (ICE: verify_flow_info failed: missing barrier after block 6 with -foptimize-sibling-calls -fsched2-use-superblocks)
PR rtl-optimization/48721
	* sched-ebb.c (begin_move_insn): Insert empty unreachable
	block after BARRIER if insn is followed by it.

From-SVN: r181855
2011-11-30 19:53:46 +01:00
Paolo Carlini
23ffb99e94 re PR c++/51299 ([C++11] erroneous nullptr warning on dynamic cast)
/cp
2011-11-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51299
	* rtti.c (ifnonnull): Use nullptr_node.
	(build_dynamic_cast_1): Call cp_truthvalue_conversion instead
	of c_common_truthvalue_conversion.

/testsuite
2011-11-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51299
	* g++.dg/warn/Wzero-as-null-pointer-constant-4.C: New.

From-SVN: r181854
2011-11-30 18:31:30 +00:00
Richard Henderson
2e65f38f1b sparc: Add -mmemory-model command-line option.
* config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
	* config/sparc/sparc.opt (mmemory-model=): New option.
	* doc/invoke.texi (Sparc Options): Document it.
	* config/sparc/sparc.c (sparc_option_override): Provide default
	for sparc_memory_model.
	(sparc_emit_membar_for_model): Omit barrier combinations that are
	implied by the memory model.

From-SVN: r181853
2011-11-30 08:10:24 -08:00
Richard Henderson
99ee7887c6 sparc: Convert to atomic_exchange.
* config/sparc/sync.md (I124MODE): New mode iterator.
        (memory_barrier): Remove.
        (atomic_exchangesi): New.
        (swapsi): Rename from *swapsi.
        (atomic_test_and_set<I124MODE>): New.
        (ldstubqi): Rename from *ldstubqi, merge with expander.
        (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
        (sync_lock_test_and_setsi): Remove.
        (sync_lock_test_and_set<I12MODE>): Remove.

From-SVN: r181852
2011-11-30 07:58:53 -08:00
Richard Henderson
470b6e5160 sparc: Convert to atomic_compare_and_swap.
* config/sparc/constraints.md ("w"): New.
        * config/sparc/predicates.md (mem_noofs_operand): New.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
        Generate the boolean result of the atomic_compare_exchange.
        (sparc_expand_compare_and_swap): New.
        * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
        (atomic_compare_and_swap<I48MODE>_1): Rename from
        *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
        (*atomic_compare_and_swapdi_v8plus): Rename from
        *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
        (sync_compare_and_swap<I12MODE>): Remove.
        (sync_compare_and_swap<I48MODE>): Remove.

From-SVN: r181851
2011-11-30 07:53:45 -08:00
Richard Henderson
cfe8fee796 sparc: Convert to atomic_load/store.
* config/sparc/predicates.md (register_or_v9_zero_operand): New.
        * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
        * config/sparc/sync.md (atomic_load<I>): New.
        (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.

From-SVN: r181849
2011-11-30 07:48:13 -08:00
Richard Henderson
9a7389088f sparc: Convert to mem_thread_fence.
* config/sparc/predicates.md (zero_or_v7_operand): New.
        * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
        * config/sparc/sparc-protos.h: Update.
        * config/sparc/sync.md (mem_thread_fence): New.
        (memory_barrier): Use sparc_emit_membar_for_model.
        (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
        (*membar_v8): Accept and ignore the membar mask.
        (*membar): Accept and print the membar mask.

From-SVN: r181848
2011-11-30 07:46:22 -08:00
Matthew Gretton-Dann
ef5784915f arm.c (arm_issue_rate): Cortex-A15 can triple issue.
* gcc/config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
	* gcc/config/arm/arm.md (mul64): New attribute.
	(generic_sched): Cortex-A15 is not scheduled generically.
	(cortex-a15.md): Include.
	* gcc/config/arm/cortex-a15.md: New machine description.
	* gcc/config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.

From-SVN: r181843
2011-11-30 13:51:35 +00:00
Matthew Gretton-Dann
c819d921c9 * gcc/config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
From-SVN: r181842
2011-11-30 13:41:04 +00:00
Iain Sandoe
fea3ca9130 shift flag_next/gnu_runtime to modern opts system.
gcc:

	* doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
	* doc/tm.texi: Regenerate.
	* flags.h (flag_next_runtime): Remove references.
	* toplev.c: Likewise.
	* defaults.h (NEXT_OBJC_RUNTIME): Provide default.
	* gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
	* config/darwin.c (darwin_override_options): Provide default
	Objective-C abi settings and target conflict checks.
	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
	code. Adjust indenting.

gcc/c-family:

	* c.opt (fgnu-runtime): Provide full description.
	(fnext-runtime): Likewise.
	* c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.

From-SVN: r181837
2011-11-30 10:42:58 +00:00
Matthew Gretton-Dann
0f14d442fc MAINTAINERS (write-after-approval): Add self.
* MAINTAINERS (write-after-approval): Add self.

From-SVN: r181836
2011-11-30 09:53:56 +00:00
Alan Modra
ab6dd406ba re PR libgomp/51298 (libgomp team_barrier locking failures)
PR libgomp/51298
	* config/linux/bar.h: Use atomic rather than sync builtins.
	* config/linux/bar.c: Likewise.  Add missing acquire
	synchronisation on generation field.
	* task.c (gomp_barrier_handle_tasks): Regain lock so as to not
	double unlock.

From-SVN: r181833
2011-11-30 15:14:13 +10:30
Alan Modra
b40c885f18 ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
* ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
	* critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
	* config/linux/mutex.h: Use atomic rather than sync builtins.
	* config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
	* config/linux/omp-lock.h: Comment fix.
	* config/linux/arm/mutex.h: Delete.
	* config/linux/powerpc/mutex.h: Delete.
	* config/linux/ia64/mutex.h: Delete.
	* config/linux/mips/mutex.h: Delete.

From-SVN: r181832
2011-11-30 14:32:53 +10:30
Alan Modra
3e348fccfa re PR libgomp/51249 (semaphore implemetation for linux leaves threads blocked)
PR libgomp/51249
	* config/linux/sem.h: Rewrite.
	* config/linux/sem.c: Rewrite.

From-SVN: r181831
2011-11-30 14:13:57 +10:30
Ian Lance Taylor
b87974949f runtime: Copy runtime_panicstring from master library.
From-SVN: r181830
2011-11-30 00:21:52 +00:00
GCC Administrator
a592211185 Daily bump.
From-SVN: r181829
2011-11-30 00:19:14 +00:00
Joseph Myers
a4f71b01d1 * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
(REG_CLASS_CONTENTS): Add NON_SP_REGS.
	(REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
	* config/sh/constraints.md (u): New constraint.

From-SVN: r181825
2011-11-29 23:37:06 +00:00
Ian Lance Taylor
b740cb6335 libgo: update to weekly.2011-10-25
Changes were mainly straightforward to merge.

From-SVN: r181824
2011-11-29 23:02:54 +00:00
Oleg Endo
cebc182b78 re PR target/51337 (SH Target: Various testsuite ICEs for -m2a -O0)
PR target/51337
	* config/sh/sh.c (sh_secondary_reload): Add case when FPUL
	register is being loaded from a pseudo in memory.

From-SVN: r181823
2011-11-29 22:52:55 +00:00
Ian Lance Taylor
08ee945e0b runtime: If no sem_timedwait, use pthread_cond_timedwait.
From-SVN: r181821
2011-11-29 21:58:48 +00:00
DJ Delorie
85b8555ed3 .
* configure.ac (rl78-*-*) New case.
	* configure: Regenerate.
	* MAINTAINERS: Add myself as RL78 maintainer.

libgcc
	* config.host (rl78-*-elf): New case.
	* config/rl78: New directory for the Renesas RL78.

gcc
	* config.gcc (rl78-*-elf): New case.
	* doc/extend.texi: Add RL78 documentation.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/contrib.texi: Add RL78.
	* doc/install.texi: Add rl78-*-elf.
	* config/rl78: New directory for the Renesas RL78.

contrib
	* config-list.mk (LIST): Add rl78-elf.

From-SVN: r181819
2011-11-29 16:36:43 -05:00
Jakub Jelinek
c360c0fb8a re PR tree-optimization/51247 (ICE in set_value_range, at tree-vrp.c:417)
PR tree-optimization/51247
	* tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
	types instead of adding 1 subtract -1 and instead of subtracting 1
	add -1 to avoid overflows.

	* gcc.c-torture/compile/pr51247.c: New test.

From-SVN: r181818
2011-11-29 22:03:09 +01:00
Andreas Tobler
781c528f2e config.rpath (ld_shlibs): Fix detection of FreeBSD-10 and up.
2011-11-29  Andreas Tobler  <andreast@fgznet.ch>

	* config.rpath (ld_shlibs): Fix detection of FreeBSD-10 and up.
	(libname_spec): Likewise.
	* configure: Regenerate with autoconf -I ../../.

From-SVN: r181816
2011-11-29 21:12:00 +01:00
Andrew MacLeod
91f59d8bf4 re PR target/50123 (cmpxchg generated for atomic and with zero/or with -1)
2011-11-29  Andrew MacLeod  <amacleod@redhat.com>

	PR target/50123
	* optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
	instructions for a FECTH_OP or OP_FECTH sequence.
	(expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
	* testsuite/gcc.dg/atomic-op-optimize.c: New.  Test for optimizations.

From-SVN: r181815
2011-11-29 19:42:44 +00:00
Ian Lance Taylor
421ecf992e runtime: If O_CLOEXEC is not defined, define it as 0.
From-SVN: r181814
2011-11-29 19:26:00 +00:00
Sanjoy Das
8afa2bfbdc compiler: Define and use backend-independent Location class.
From Sanjoy Das.

	* go-location.h: New file.
	* go-linemap.cc: New file.
	* go-gcc.cc: Change all uses of source_location to Location.
	* Make-lang.in (GO_OBJS): Add go/go-linemap.o.
	(GO_LINEMAP_H): New variable.
	(GO_LEX_H): Use $(GO_LINEMAP_H).
	(GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise.
	(go/go-linemap.o): New target.

Co-Authored-By: Ian Lance Taylor <iant@google.com>

From-SVN: r181813
2011-11-29 19:10:50 +00:00
Uros Bizjak
09ad58e618 sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
* config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
	(movdi_via_fpu): Remove.
	(loaddi_via_fpu): New insn pattern.
	(storedi_via_fpu): Ditto.
	(atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
	(atomic_storedi_fpu): Ditto.
	* reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
	(subst_stack_regs_pat): Handle UNSPEC_STA.

From-SVN: r181812
2011-11-29 20:03:08 +01:00
Uros Bizjak
c6b4cec7ea i386.md (*floathi<mode>2_i387_with_temp): Do not allocate scratch memory for alternative 0.
* config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
	allocate scratch memory for alternative 0.

From-SVN: r181811
2011-11-29 18:55:29 +01:00