Commit Graph

120412 Commits

Author SHA1 Message Date
Matthias Klose 3263c9a3a7 2012-11-20 Matthias Klose <doko@ubuntu.com>
* doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces.
        * include/bits/allocator.h: Escape sharp braces in comment.
        * include/profile/impl/profiler_algos.h: Likewise.

From-SVN: r193662
2012-11-20 13:48:28 +00:00
Nick Clifton b84d824df4 v850.c (F): New function.
* config/v850/v850.c (F): New function.  Mark the given insn as
	being frame related.
	(v850_all_frame_related): New function.  Mark the given push insn
	as being frame related.
	(v850_pass_by_reference): When using the RH850 ABI do not pass
	arguments by reference.
	(v850_strict_argument_naming): Delete function.
	(v850_function_arg): Use word alignment with the RH850 ABI.
	(v850_arg_partial_bytes): Likewise.
	(v850_function_arg_advance): Likewise.
	(v850_print_operand): Handle CONST_INT and CONST_DOUBLE.
	(compute_register_save_size): Use df_regs_ever_live_p.
	(increment_stack): Mark prologue adjustments as being frame
	related.
	(expand_prologue): Handle pretend args.  Mark insns generated as
	being frame related.
	(expand_epilogue): Likewise.
	(v850_return_in_memory): When using the RH850 ABI return
	aggregates in memory.
	(v850_setup_incoming_varargs): Delete function.
	(v850_option_override): New function.
	(TARGET_DEBUG_UNWIND_INFO): Delete definition.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/v850/v850.h (ASM_SPEC): Pass 8byte-align and gcc-abi
	options on to assembler.
	(LINK_SPEC): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Define __V850_8BYTE_ALIGN__ and
	__V850_GCC_ABI__.
	(STACK_BOUNDARY): Set to BIGGEST_ALIGNMENT.
	(FUNCTION_BOUNDARY): With the RH850 ABI always 32-bit alignment.
	(BIGGEST_ALIGNMENT): With -8byte-align set to 64-bits.
	(BIGGEST_FIELD_ALIGNMENT): Likewise.
	(enum reg_class): Swap EVEN_REGS and GENERAL_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(struct cum_arg): Delete anonymous_args field.
	(INIT_CUMULATIVE_ARGS): Update.
	(PREFERRED_DEBUG): Set to DWARF2_DEBUG.
	(DWARF2_FRAME_INFO): Define.
	(DWARF2_UNWIND_INFO): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	(DWARF_FRAME_RETURN_COLUMN): Define.
	(TARGET_USE_FPU): Define.
	* config/v850/v850.md: Replace TARGET_V850E2V3 in floating point
	insns with TARGET_USE_FPU.
	(fixuns_truncsfsi2): New pattern.
	(fixuns_truncdfsi2): New pattern.
	(fix_truncsfdi2): New pattern.
	(fixuns_truncsfdi2): New pattern.
	(fix_truncdfdi2): New pattern.
	(fixuns_truncdfdi2): New pattern.
	(unsfloatsisf2): New pattern.
	(unsfloatsidf2): New pattern.
	(floatdisf2): New pattern.
	(unsfloatdisf2): New pattern.
	(floatdidf2): New pattern.
	(unsfloatdidf2): New pattern.
	(fnmasf4): Fix RTl description.
	(fnmssf4): Likewise.
	* config/v850/v850.opt (mrelax): New option.
	(mlong-jumps): Likewise.
	(msoft-float): Likewise.
	(mhard-float): Likewise.
	(mrh850-abi): Likewise.
	(mgcc-abi): Likewise.
	(m8byte-align): Likewise.
	* config/v850/t-v850 (MULTILIB_OPTIONS): Update multilib options.
	(MULTILIB_DIRNAMES): Likewise.

From-SVN: r193661
2012-11-20 13:12:16 +00:00
Uros Bizjak aef5ffaaab i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.
* config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.

From-SVN: r193660
2012-11-20 13:54:23 +01:00
Nick Clifton 47c9ac7241 rx.c (rx_function_arg_boundary): When using the RX ABI align stack arguments to their natural alignment.
* config/rx/rx.c (rx_function_arg_boundary): When using the RX ABI
	align stack arguments to their natural alignment.
	(rx_narrow_volatile_bitfield): New function.  Allows narrow
	volatile bitfields.
	(rx_ok_to_inline): New function.  Do not inline functions with
	local variables into a naked caller.
	(TARGET_NARROW_VOLATILE_BITFIELD): Define.
	(TARGET_CAN_INLINE_P): Define.
	* config/rx/rx.c (TARGET_CPU_CPP_BUILTINS): Define __RX_ABI__ or
	__RX_GC_ABI__.
	(ASM_SPEC): Pass -mgcc-abi on to the assembler.
	(STRICT_ALIGNMENT): Set to false.
	(CTORS_SECTION_ASM_OP): Add executable attribute.
	(DTORS_SECTION_ASM_OP): Add executable attribute.
	(INIT_ARRAY_SECTION_ASM_OP): Add executable attribute.
	(FINI_ARRAY_SECTION_ASM_OP): Add executable attribute.
	* config/rx/rx.md (subdi3): Don't allow MEMs as the third operand,
	as it causes too much reload pressure.
	* config/rx/rx.opt (mgcc-abi): New option.
	(mrx-abi): New option.
	* config/rx/t-rx (MULTILIB_OPTIONS): Show how to add an ABI
	multilib.
	(MULTILIB_DIRNAMES): Likewise.

From-SVN: r193659
2012-11-20 12:22:44 +00:00
James Greenhalgh 342be7f736 gcc/
* config/aarch64/aarch64-builtins.c
	(aarch64_simd_builtin_type_bits): Rename to...
	(aarch64_simd_builtin_type_mode): ...this, make sequential.
	(aarch64_simd_builtin_datum): Refactor members.
	(VAR1, VAR2, ..., VAR12): Update accordingly.
	(aarch64_simd_builtin_data): Include from aarch64-simd-builtins.def.
	(aarch64_builtins): Update accordingly.
	(init_aarch64_simd_builtins): Refactor, rename to...
	(aarch64_init_simd_builtins): ...this.
	(aarch64_simd_builtin_compare): Remove.
	(locate_simd_builtin_icode): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_init_builtins): New.
	(aarch64_expand_builtin): New.
	* config/aarch64/aarch64-simd-builtins.def: New file.
	* config/aarch64/aarch64.c (aarch64_init_builtins):
	Move to aarch64-builtins.c.
	(aarch64_expand_builtin): Likewise.
	* config/aarch64/aarch64.h
	(aarch64_builtins): Move to aarch64-builtins.c.


Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>

From-SVN: r193658
2012-11-20 12:10:37 +00:00
Martin Jambor dffdd6e5b0 re PR tree-optimization/55260 (ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with -O2 -fno-inline -fipa-cp-clone)
2012-11-20  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55260
	* ipa-cp.c (find_aggregate_values_for_callers_subset): Rename info to
	dest_info, use caller_info instead of info when determining whether
	callee is a clone.

	* testsuite/g++.dg/torture/pr55260-1.C: New test.

From-SVN: r193657
2012-11-20 12:20:41 +01:00
Andrey Turetskiy e7d8fc6c10 sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge *avx2_pmulhrswv16hi3 and...
* config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge                                                 
        *avx2_pmulhrswv16hi3 and *ssse3_pmulhrswv8hi3 into one pattern.

From-SVN: r193656
2012-11-20 11:05:10 +00:00
James Greenhalgh c5c18dd18f Fix to commit 193651.
gcc/testsuite/
	* gcc.target/aarch64/atomic-comp-swap-release-acquire.c:
	Actually add this file.
	* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
	* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
	* gcc.target/aarch64/atomic-op-char.c: Likewise.
	* gcc.target/aarch64/atomic-op-consume.c: Likewise.
	* gcc.target/aarch64/atomic-op-imm.c: Likewise.
	* gcc.target/aarch64/atomic-op-int.c: Likewise.
	* gcc.target/aarch64/atomic-op-long.c: Likewise.
	* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
	* gcc.target/aarch64/atomic-op-release.c: Likewise.
	* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
	* gcc.target/aarch64/atomic-op-short.c: Likewise.

From-SVN: r193654
2012-11-20 10:56:52 +00:00
James Greenhalgh 86c818c229 Fix revision 193651.
gcc/
	* config/aarch64/atomics.md: Actually add this file.

From-SVN: r193653
2012-11-20 10:51:02 +00:00
Sofiane Naci 0462169c73 aarch64.md (define_attr "sync_*"): Remove.
gcc/
	* config/aarch64/aarch64.md
	(define_attr "sync_*"): Remove.
	(define_attr "length"): Update.
	Include atomics.md.
	* config/aarch64/aarch64-protos.h
	(aarch64_expand_compare_and_swap): Add function prototype.
	(aarch64_split_compare_and_swap): Likewise.
	(aarch64_split_atomic_op): Likewise.
	(aarch64_expand_sync): Remove function prototype.
	(aarch64_output_sync_insn): Likewise.
	(aarch64_output_sync_lock_release): Likewise.
	(aarch64_sync_loop_insns): Likewise.
	(struct aarch64_sync_generator): Remove.
	(enum aarch64_sync_generator_tag): Likewise.
	* config/aarch64/aarch64.c
	(aarch64_legitimize_sync_memory): Remove function.
	(aarch64_emit): Likewise.
	(aarch64_insn_count): Likewise.
	(aarch64_output_asm_insn): Likewise.
	(aarch64_load_store_suffix): Likewise.
	(aarch64_output_sync_load): Likewise.
	(aarch64_output_sync_store): Likewise.
	(aarch64_output_op2): Likewise.
	(aarch64_output_op3): Likewise.
	(aarch64_output_sync_loop): Likewise.
	(aarch64_get_sync_operand): Likewise.
	(aarch64_process_output_sync_insn): Likewise.
	(aarch64_output_sync_insn): Likewise.
	(aarch64_output_sync_lock_release): Likewise.
	(aarch64_sync_loop_insns): Likewise.
	(aarch64_call_generator): Likewise.
	(aarch64_expand_sync): Likewise.
	(* emit_f): Remove variable.
	(aarch64_insn_count): Likewise.
	(FETCH_SYNC_OPERAND): Likewise.
	(aarch64_emit_load_exclusive): New function.
	(aarch64_emit_store_exclusive): Likewise.
	(aarch64_emit_unlikely_jump): Likewise.
	(aarch64_expand_compare_and_swap): Likewise.
	(aarch64_split_compare_and_swap): Likewise.
	(aarch64_split_atomic_op): Likewise.
	* config/aarch64/iterators.md
	(atomic_sfx): New mode attribute.
	(atomic_optab): New code attribute.
	(atomic_op_operand): Likewise.
	(atomic_op_str): Likewise.
	(syncop): Rename to atomic_op.
	* config/aarch64/sync.md: Delete.
	* config/aarch64/atomics.md: New file.

gcc/testsuite
	* gcc.target/aarch64/atomic-comp-swap-release-acquire.c: New testcase.
	* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
	* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
	* gcc.target/aarch64/atomic-op-char.c: Likewise.
	* gcc.target/aarch64/atomic-op-consume.c: Likewise.
	* gcc.target/aarch64/atomic-op-imm.c: Likewise.
	* gcc.target/aarch64/atomic-op-int.c: Likewise.
	* gcc.target/aarch64/atomic-op-long.c: Likewise.
	* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
	* gcc.target/aarch64/atomic-op-release.c: Likewise.
	* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
	* gcc.target/aarch64/atomic-op-short.c: Likewise.

From-SVN: r193651
2012-11-20 10:07:34 +00:00
Jakub Jelinek 206604dccd re PR debug/55094 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2224)
PR middle-end/55094
	* builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note
	on the trap insn for !ACCUMULATE_OUTGOING_ARGS.
	* cfgcleanup.c (outgoing_edges_match): Don't look at debug insns
	on the first old_insns_match_p call.  For !ACCUMULATE_OUTGOING_ARGS
	fail if the last real insn doesn't have REG_ARGS_SIZE note.

	* gcc.dg/pr55094.c: New test.

From-SVN: r193649
2012-11-20 09:38:11 +01:00
Jakub Jelinek 1b845c6e70 re PR bootstrap/55370 (Bad libgcc.map)
PR bootstrap/55370
	* libgcc-std.ver.in: Add GCC_4.8.0 and %inherit for it.

From-SVN: r193648
2012-11-20 09:36:31 +01:00
Jakub Jelinek 40155239d6 re PR middle-end/54921 (wrong code with -Os -fno-omit-frame-pointer -fsched2-use-superblocks -fstack-protector -ftree-slp-vectorize)
PR rtl-optimization/54921
	* cselib.h (fp_setter_insn): New prototype.
	* cselib.c (fp_setter_insn): New function.
	(cselib_process_insn): If frame_pointer_needed,
	call cselib_invalidate_rtx (stack_pointer_rtx) after
	processing a frame pointer setter.
	* var-tracking.c (fp_setter): Removed.
	(vt_initialize): Use fp_setter_insn instead of fp_setter.

	* gcc.dg/pr54921.c: New test.

From-SVN: r193647
2012-11-20 09:34:43 +01:00
Michael Meissner 4ced1d6de8 rs6000.md (movdf_hardfloat32): Reorder move constraints so that the traditional floating point loads...
2012-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move
	constraints so that the traditional floating point loads, stores,
	and moves are done first, then the VSX loads, stores, and moves,
	and finally the GPR loads, stores, and moves so that reload
	chooses FPRs over GPRs, and uses the traditional load/store
	instructions which provide an offset.
	(movdf_hardfloat64): Likewise.

From-SVN: r193645
2012-11-20 00:55:58 +00:00
Jonathan Wakely 6b1328eb3c array_allocator.h: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.
* include/ext/array_allocator.h: Replace uses of
	__GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.

From-SVN: r193644
2012-11-20 00:24:18 +00:00
GCC Administrator b51eb4ffa1 Daily bump.
From-SVN: r193643
2012-11-20 00:18:39 +00:00
Richard Sandiford 0343822bd8 re PR middle-end/55359 (ICE in simplify_subreg accessing an unaligned subvector)
gcc/
	PR middle-end/55359
	* simplify-rtx.c (simplify_subreg): Return null for invalid offsets.

gcc/testsuite/
	* gcc.target/i386/pr55359.c: New test.

From-SVN: r193640
2012-11-19 23:28:04 +00:00
Jonathan Wakely 0e8330d91d typedefs.cc: Check rebind and improve propagate_on_container_move_assignment check.
* testsuite/20_util/allocator/requirements/typedefs.cc: Check rebind
	and improve propagate_on_container_move_assignment check.

From-SVN: r193639
2012-11-19 22:35:11 +00:00
Jonathan Wakely 1b5dc776ca stl_algo.h (reverse_copy): Update comment per DR 2074.
* include/bits/stl_algo.h (reverse_copy): Update comment per DR 2074.
	* include/bits/unordered_map.h: Apply DR 2005 resolution.
	* doc/xml/manual/status_cxx2011.xml: Update per DR 2048.
	* include/bits/allocator.h (allocator): Apply DR 2103 resolution.
	* include/ext/array_allocator.h: Likewise.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/new_allocator.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal): Add
	additional specializations.
	* include/std/functional: Add comment about DR resolution.
	* include/std/future: Likewise.
	* include/std/scoped_allocator: Likewise.
	* include/std/thread: Likewise.
	* testsuite/20_util/allocator/requirements/typedefs.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193638
2012-11-19 22:28:00 +00:00
Aldy Hernandez 639498a875 * trans-mem.c (execute_tm_mark): Release bb_regions.
From-SVN: r193637
2012-11-19 22:17:58 +00:00
Jonathan Wakely 207585a63d hashtable.h: Improve comments.
* include/bits/hashtable.h: Improve comments.
	* include/bits/hashtable_policy.h: Likewise.

From-SVN: r193636
2012-11-19 21:33:52 +00:00
Eric Botcazou 5f4340fe3b thread_local-order1.C: Add dg-require-cxa-atexit.
* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
	* g++.dg/tls/thread_local3g.C: Likewise.
	* g++.dg/tls/thread_local4g.C: Likewise.
	* g++.dg/tls/thread_local5g.C: Likewise.
	* g++.dg/tls/thread_local6g.C: Likewise.
	* g++.dg/tls/thread_local-cse.C: XFAIL on Solaris 9.
	* g++.dg/tls/thread_local2.C: Likewise.
	* g++.dg/tls/thread_local2g.C: Likewise.
	* g++.dg/tls/thread_local6.C: Likewise.

From-SVN: r193634
2012-11-19 18:57:31 +00:00
Aldy Hernandez b5e10eac56 trans-mem (collect_bb2reg): Stop scanning at irrevocable
* trans-mem (collect_bb2reg): Stop scanning at irrevocable
	* blocks.
	(get_bb_regions_instrumented): Add new traverse_clone argument and
	use it.
	(expand_regions_1): Same.
	(expand_region): Same.
	(execute_tm_mark): Pass new argument to expand_regions.
	(expand_block_edges): Pass new argument to
	get_bb_regions_instrumented.
testsuite/
	* g++.dg/tm/pr51516.C: Adjust for uninstrumented code path.
	* gcc.dg/tm/clone-1.c: New test.

From-SVN: r193633
2012-11-19 18:43:40 +00:00
Mike Stump a59a2c2116 * compare_tests: Add export LC_ALL=C to make sort happier.
From-SVN: r193631
2012-11-19 18:16:36 +00:00
Sofiane Naci 75f1d6fc41 gcc/
* config/aarch64/aarch64.c
	(aarch64_output_mi_thunk): Refactor to generate RTL patterns.

From-SVN: r193630
2012-11-19 18:10:09 +00:00
David Edelsohn 2adc5085c1 Add PR bootstrap/55384 to ChangeLog entry.
From-SVN: r193629
2012-11-19 13:07:21 -05:00
David Edelsohn a82da27bc5 re PR target/55276 (ppc: callee-saved vector registers not preserved)
2012-11-19  Mans Rullgard  <mans@mansr.com>

        PR target/55276
        * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
        for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
        !TARGET_ALTIVEC_VRSAVE.
        (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
        not vrsave_mask.

From-SVN: r193628
2012-11-19 11:58:31 -05:00
Mans Rullgard 8192d7302c rs6000.c (rs6000_stack_info): Always set vrsave_mask for TARGET_ALTIVEC_ABI.
2012-11-19  Mans Rullgard  <mans@mansr.com>

        * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
        for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
        !TARGET_ALTIVEC_VRSAVE.
        (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
        not vrsave_mask.

From-SVN: r193627
2012-11-19 11:55:05 -05:00
Ian Lance Taylor 041af827a0 re PR translation/53764 (Typo in translatable string: "literalto")
PR translation/53764
compiler: Fix typo in error message.

Reported by Roland Stigge.

From-SVN: r193626
2012-11-19 16:28:04 +00:00
David Edelsohn e053cf01e3 * system.h (vec_free): Undef.
From-SVN: r193625
2012-11-19 09:47:11 -05:00
Paolo Carlini 37f458dc1e re PR c++/55368 (Comma before semicolon in struct definition is not rejected)
/cp
2012-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55368
	* parser.c (cp_parser_member_declaration): Emit an error in case
	of stray comma at end of member declaration.

/testsuite
2012-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55368
	* g++.dg/parse/struct-5.C: New.

From-SVN: r193624
2012-11-19 14:41:26 +00:00
Jason Merrill e252e96aae * class.c (one_inheriting_sig): Don't inherit base copy ctors.
From-SVN: r193623
2012-11-19 09:05:59 -05:00
Jason Merrill 61d1b82145 re PR c++/55262 ([C++0x] g++.dg/cpp0x/inh-ctor10.C ICEs with -g)
PR c++/55262
	* method.c (implicitly_declare_fn): Set DECL_PARM_INDEX on
	the parms of an inheriting ctor.

From-SVN: r193622
2012-11-19 09:05:48 -05:00
Jason Merrill 5aeb734800 re PR c++/55261 ([C++0x] ICE (SIGSEGV) when inheriting implicit constructor)
PR c++/55261
	* class.c (add_implicitly_declared_members): Use
	lookup_fnfields_slot to get the base constructors.

From-SVN: r193621
2012-11-19 09:05:36 -05:00
Jakub Jelinek abcc192bdb re PR middle-end/54630 (GCC 4.8 --enable-languages=c build fails: Undefined symbols: ___cxa_guard_acquire and ___cxa_guard_release)
PR middle-end/54630
	* tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
	keyword from ssa_name_hash var.

	* class.c (fixed_type_or_null_ref_ht): New variable.
	(fixed_type_or_null): Use it instead of local static ht.

From-SVN: r193620
2012-11-19 14:44:15 +01:00
Matthias Klose c293d490e4 libtool-version: Bump soversion.
2012-11-19  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

From-SVN: r193619
2012-11-19 11:49:48 +00:00
Maxim Kuznetsov 477c104eaf md.texi: Document define_subst.
* doc/md.texi: Document define_subst.
        * gensupport.c (MAX_OPERANDS): New define.
        (operand_data): New.
        (match_operand_entries_in_pattern): New.
        (used_operands_numbers): New.
        (subst_true): New.
        (subst_false): New.
        (define_subst_queue): New.
        (define_subst_tail): New.
        (define_subst_attr_queue): New.
        (define_subst_attr_tail): New.
        (has_subst_attribute): New.
        (subst_pattern_match): New.
        (get_alternatives_number): New.
        (alter_output_for_subst_insn): New.
        (alter_attrs_for_subst_insn): New.
        (process_substs_on_one_elem): New.
        (subst_dup): New.
        (process_define_subst): New.
        (duplicate_alternatives): New.
        (duplicate_each_alternative): New.
        (constraints_handler_t): New typedef.
        (alter_constraints): New.
        (adjust_operands_numbers): New.
        (replace_duplicating_operands_in_pattern): New.
        (remove_from_queue): New.
        (process_rtx): Handle define_subst and define_subst_attr.
        (change_subst_attribute): New.
        (alter_predicate_for_insn): Fix formatting.
        (alter_attrs_for_insn): Likewise.
        (alter_output_for_insn): Likewise.
        (mark_operands_from_match_dup): New.
        (mark_operands_used_in_match_dup): New.
        (find_first_unused_number_of_operand): New.
        (renumerate_operands_in_pattern): New.
        (generate_match_dup): New.
        (check_define_attr_duplicates): New.
        (init_rtx_reader_args_cb): Add checking for duplicated attrs and
        processing of define_subst.
        (read_md_rtx): Handle define_subst.
        * read-rtl.c (struct subst_attr_to_iter_mapping): New.
        (substs): New global.
        (apply_subst_iterator): New.
        (bind_subst_iter_and_attr): New.
        (find_subst_iter_by_attr): New.
        (map_attr_string): Handle subst-iterators.
        (add_condition_to_rtx): Handle define_subst.
        (apply_iterators): Likewise.
        (initialize_iterators): Likewise.
        (add_define_attr_for_define_subst): New.
        (add_define_subst_attr): New.
        (read_subst_mapping): New.
        (read_rtx): Handle define_subst_attr.
        (read_rtx_code): Add subst-attributes recognition during reading of
        strings.
        * rtl.def (DEFINE_EXPAND): Add vector of attributes.
        (DEFINE_SUBST): New.
        (DEFINE_SUBST_ATTR): New.


Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r193618
2012-11-19 10:19:20 +00:00
Tom de Vries d826d5c209 re PR rtl-optimization/55315 (comparing address to constant is folded in cse)
2012-11-19  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/55315

	* gcc.target/mips/pr55315.c: New test.

From-SVN: r193617
2012-11-19 09:35:54 +00:00
Tom de Vries bc2164e876 re PR rtl-optimization/55315 (comparing address to constant is folded in cse)
2012-11-19  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/55315

	* rtlanal.c (nonzero_address_p): Don't assume a nonzero address plus a
	const is a nonzero address.

From-SVN: r193616
2012-11-19 09:35:48 +00:00
Ian Lance Taylor a3ce4803ea reflect: Fix invalid sharing in valueInterface.
From-SVN: r193614
2012-11-19 05:34:08 +00:00
Teresa Johnson 822a258a98 This patch addresses the bogus "Invocation mismatch" messages seen in parallel profiledbootstrap builds of gcc.
This patch addresses the bogus "Invocation mismatch" messages seen in parallel
profiledbootstrap builds of gcc. See PR bootstrap/55051 for a discussion of
why this is occurring and why this checking is inaccurate. Leave it in when
!GCOV_LOCKED, to warn about concurrent update issues requiring locking.

2012-11-18  Teresa Johnson  <tejohnson@google.com>

	PR bootstrap/55051
	* libgcov.c (gcov_exit): Remove merged program summary
	comparison unless !GCOV_LOCKED.

From-SVN: r193612
2012-11-19 05:20:59 +00:00
Sandra Loosemore c513ecbf35 extend.texi: Use @smallexample consistently.
2012-11-18  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi: Use @smallexample consistently.  Add @noindent
	when continuing a sentence or paragraph past an example.  Change
	tabs to spaces in examples.

From-SVN: r193611
2012-11-18 22:55:32 -05:00
GCC Administrator 57bedc3c6b Daily bump.
From-SVN: r193610
2012-11-19 00:19:24 +00:00
Richard Sandiford d2eeb2d179 gcc/
* doc/md.texi (extv@var{m}, extvmisalign@var{m}, extzv@var{m})
	(extzvmisalign@var{m}, insv@var{m}, insvmisalign@var{m}): Document.
	(insv, extv, extzv): Deprecate.
	* optabs.def (insv_optab, extv_optab, extzv_optab)
	(insvmisalign_optab, extvmisalign_optab, extzvmisalign_optab):
	New optabs.
	* optabs.c (get_optab_extraction_insn): New function.
	(get_extraction_insn): Use it.
	* config/mips/mips.md (extv): Split into...
	(extvmisalign<mode>, extv<mode>): ...these new patterns.  Rename
	existing extv<mode> pattern to...
	(*extv<mode>): ...this.
	(extzv): Split into...
	(extzvmisalign<mode>, extzv<mode>): ...these new patterns.  Rename
	existing extzv<mode> pattern to...
	(*extzv<mode>): ...this.
	(insv): Split into...
	(insvmisalign<mode>, insv<mode>): ...these new patterns.  Rename
	existing insv<mode> pattern to...
	(*insv<mode>): ...this.  Use const_int_operand rather than
	immediate_operand.
	* config/mips/mips.c (mips_block_move_straight): Use set_mem_size
	to set the size of BLKmode accesses.
	(mips_get_unaligned_mem): Require OP0 to be a BLKmode memory,
	turning it from an "rtx *" to an rtx.
	(mips_expand_ext_as_unaligned_load): Simplify for new optab
	interface.  Update call to mips_get_unaligned_mem.
	(mips_expand_ins_as_unaligned_store): Update call to
	mips_get_unaligned_mem.

From-SVN: r193606
2012-11-18 17:34:06 +00:00
Richard Sandiford fcdd52b73c Makefile.in (recog.o): Add insn-codes.h.
gcc/
	* Makefile.in (recog.o): Add insn-codes.h.
	* expr.h (extraction_pattern): Move to optabs.h.
	(mode_for_extraction): Delete.
	* optabs.h (extraction_insn): New structure.
	(extraction_pattern): Moved from expr.h.
	(get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare.
	* optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv)
	(HAVE_extzv, CODE_FOR_extzv): Provide defaults.
	(extraction_type): New enum.
	(get_traditional_extraction_insn, get_extraction_insn)
	(get_best_reg_extraction_insn, get_best_mem_extraction_insn):
	New functions.
	* combine.c (make_extraction): Use get_best_reg_extraction_insn
	instead of mode_for_extraction.
	* expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv)
	(CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv):
	Remove fallback definitions.
	(mode_for_extraction): Delete.
	(adjust_bit_field_mem_for_reg): New function.
	(store_bit_field_using_insv): Replace OP_MODE parameter with
	an extraction_insn.  Pass struct_mode to narrow_bit_field_mem.
	(extract_bit_field_using_extv): Likewise EXT_MODE.
	(store_bit_field_1): Use get_best_reg_extraction_insn and
	get_best_mem_extraction_insn instead of mode_for_extraction.
	Use adjust_bit_field_mem_for_reg when forcing memory to a
	register and doing a register insertion.  Update calls to
	store_bit_field_using_insv.
	(extract_bit_field_1): Likewise extractions and calls to
	extract_bit_field_using_extv.
	(store_Bit_field): When narrowing to a bitregion, don't use the
	insv mode as a limit.
	* recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv):
	Provide defaults.
	(simplify_while_replacing): Use insn_data instead of
	mode_for_extraction.

From-SVN: r193605
2012-11-18 17:33:38 +00:00
Richard Sandiford 8b7d5dab44 stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Set up a default value of bitregion_end_.
gcc/
	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
	Set up a default value of bitregion_end_.
	(bit_field_mode_iterator::next_mode): Always apply bitregion_end_
	check.  Include SLOW_UNALIGNED_ACCESS in the alignment check.
	(get_best_mode): Ignore modes that are wider than the alignment.

From-SVN: r193604
2012-11-18 17:33:15 +00:00
Richard Sandiford 073a544dd9 machmode.h (bit_field_mode_iterator): New class.
gcc/
	* machmode.h (bit_field_mode_iterator): New class.
	(get_best_mode): Change final parameter to bool.
	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator)
	(bit_field_mode_iterator::next_mode): New functions, split out from...
	(get_best_mode): ...here.  Change final parameter to bool.
	Use bit_field_mode_iterator.

From-SVN: r193603
2012-11-18 17:33:01 +00:00
Richard Sandiford 26f8b97630 expmed.c (narrow_bit_field_mem): New function.
gcc/
	* expmed.c (narrow_bit_field_mem): New function.
	(store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field)
	(extract_bit_field_1): Use it.

From-SVN: r193602
2012-11-18 17:32:45 +00:00
Richard Sandiford 5f2cbd0deb expr.h (adjust_address_1): Add a size parameter.
gcc/
	* expr.h (adjust_address_1): Add a size parameter.
	(adjust_address, adjust_address_nv, adjust_bitfield_address)
	(adjust_bitfield_address_nv): Adjust accordingly.
	(adjust_bitfield_address_size): Define.
	* emit-rtl.c (adjust_address_1): Add a size parameter.
	Use it to set the size if MODE has no size.  Check whether
	the size matches before returning the original memref.
	Require the size to be known for adjust_object.
	(adjust_automodify_address_1, widen_memory_access): Update calls
	to adjust_address_1.

From-SVN: r193601
2012-11-18 17:32:29 +00:00
Richard Sandiford 6cf9964974 combine.c (make_extraction): Handle TRUNCATEd INNERs.
gcc/
	* combine.c (make_extraction): Handle TRUNCATEd INNERs.

From-SVN: r193600
2012-11-18 17:32:04 +00:00