Commit Graph

113661 Commits

Author SHA1 Message Date
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
Thomas Koenig
645e511b20 re PR fortran/40958 (module files too large)
2011-11-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/40958
	* module.c (prev_module_line):  New variable.
	(prev_module_column):  New variable.
	(prev_character):  New variable.
	(module_char):  Update the new variables.
	(module_unget_char):  New function.
	(parse_string):  Use module_unget_char.
	(parse_integer):  Likewise.
	(parse_name):  Likewise.

From-SVN: r181810
2011-11-29 17:49:24 +00:00
Michael Meissner
7fa14a0130 Enable target specific builtins and macros when using the target attribute or pragma on rs6000
From-SVN: r181809
2011-11-29 17:33:05 +00:00
David Edelsohn
8f5c9d6659 tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
2011-11-29  Dodji Seketeli  <dodji@redhat.com>

        * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
        (maybe_unwind_expanded_macro_loc): Adjust.

From-SVN: r181808
2011-11-29 11:40:50 -05:00
David Edelsohn
43042ea701 trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl if DECL_ONE_ONLY.
2011-11-21  David Edelsohn  <dje.gcc@gmail.com>
            Aldy Hernandez  <aldyh@redhat.com>

        * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
        if DECL_ONE_ONLY.
        (ipa_tm_create_version): Same.

Co-Authored-By: Aldy Hernandez <aldyh@redhat.com>

From-SVN: r181807
2011-11-29 11:32:28 -05:00
Bernd Schmidt
89ff14c265 haifa-sched.c (recompute_todo_spec): Simplify and correct the code checking for a clobber of a condition register...
* haifa-sched.c (recompute_todo_spec): Simplify and correct the
	code checking for a clobber of a condition register when deciding
	whether to predicate.

From-SVN: r181806
2011-11-29 15:58:05 +00:00
Bernd Schmidt
4d5ae4eadc config.host (tic6x-*-uclinux): Append to extra_parts.
* config.host (tic6x-*-uclinux): Append to extra_parts.  Fix
	formatting.

From-SVN: r181805
2011-11-29 15:55:38 +00:00
Yufeng Zhang
9645592c93 Use complex floating-point constant in CDBL.
2011-11-29  Yufeng Zhang  <yufeng.zhang@arm.com>

	Use complex floating-point constant in CDBL.

	* gcc.dg/compat/compat-common.h (CDBL): Replace 1i with 1.0i.

From-SVN: r181804
2011-11-29 15:27:33 +00:00
Diego Novillo
e62acfd26f gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
 	Update field call_stmt_cannot_inline_p from call graph edge, if
 	needed.
 	* gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.

From-SVN: r181803
2011-11-29 09:16:16 -05:00
Sameera Deshpande
635a48fbd6 arm.md (arm_movdi): Update NEG_POOL_RANGE.
* config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
	  (movdf_soft_insn): Likewise.

	* config/arm/fpa.md (thumb2_movdf_fpa): Likewise.

	* config/arm/neon.md (neon_mov<mode>): Likewise.

	* config/arm/vfp.md (movdi_vfp): Likewise.
	  (movdi_vfp_cortexa8): Likewise.
	  (movdf_vfp): Likewise.

From-SVN: r181802
2011-11-29 18:22:27 +05:30
Tobias Burnus
e0516b0583 re PR fortran/51306 (MOVE_ALLOC: Make more middle end friendlier)
2011-11-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51306
        PR fortran/48700
        * check.c (gfc_check_move_alloc): Make sure that from/to
        are both polymorphic or neither.
        * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
        generate inline code.

2011-11-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51306
        PR fortran/48700
        * gfortran.dg/move_alloc_5.f90: Add dg-error.
        * gfortran.dg/select_type_23.f03: Add dg-error.
        * gfortran.dg/move_alloc_6.f90: New.
        * gfortran.dg/move_alloc_7.f90: New.

From-SVN: r181801
2011-11-29 10:57:40 +01:00
Jakub Jelinek
825298c450 re PR middle-end/50074 (gcc.dg/sibcall-6.c execution test on x86_64 with -fPIC)
PR middle-end/50074
	* expr.c (expand_expr_addr_expr_1): Don't call force_operand for
	EXPAND_SUM modifier.

From-SVN: r181800
2011-11-29 09:48:41 +01:00
François Dumont
40207762a8 hashtable.h (_Hashtable<>::_M_rehash): Remove code useless now that the hashtable implementation put the hash code in...
2011-11-29  François Dumont <fdumont@gcc.gnu.org>

	* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Remove code
	useless now that the hashtable implementation put the hash code in
	cache if the hash functor throws.
	* testsuite/23_containers/unordered_set/erase/1.cc: Enhance test by
	checking also distance between begin and end iterators to validate
	underlying data model.
	* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
	* testsuire/23_containers/unordered_map/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/2.cc: New.
	* testsuite/23_containers/unordered_multimap/erase/2.cc: New.

From-SVN: r181799
2011-11-29 07:45:58 +00:00
Ian Lance Taylor
714cb9f01a Implement predefined error interface.
From-SVN: r181798
2011-11-29 07:03:49 +00:00
Ira Rosen
b2a1a74d99 re PR tree-optimization/51301 (Compiler ICE in vect_is_simple_use_1)
PR tree-optimization/51301
        * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
        that the last statement doesn't convert to a bigger type than the
        original type of the computation.

From-SVN: r181797
2011-11-29 07:00:53 +00:00
Richard Henderson
db4e52814d rs6000: Streamline boolval output for compare-and-swap.
* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
        Handle overlap between retval and oldval.  Always compute boolval
        from CR0 EQ value.

From-SVN: r181796
2011-11-28 20:50:13 -08:00
Richard Henderson
20bc9eb1b8 rs6000.c (rs6000_expand_atomic_compare_and_swap): Get new pseudo for target after convert_modes.
* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
        new pseudo for target after convert_modes.
        (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.

From-SVN: r181795
2011-11-28 20:50:01 -08:00