* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
	[reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204031 138bc75d-0d04-0410-961f-82ee72b054a4


	* builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
	* gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
	Move to targhooks.c.
	(dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
	* targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
	Relocate from gimplify.c.
	* targhooks.h: Add 2 prototypes.
	* tree.h. Delete 2 prototypes.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204032 138bc75d-0d04-0410-961f-82ee72b054a4
	* go.test/go-test.exp (errchk): Combine quoted strings in
	comments.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204033 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: Implement 3-index slicing.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204034 138bc75d-0d04-0410-961f-82ee72b054a4
Correct the date, which was wrong in commit r204021


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204035 138bc75d-0d04-0410-961f-82ee72b054a4
2013-08-24  Sriraman Tallam  <tmsriram@google.com>

	* cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
	Change param_is to use the struct and not the pointer to the struct.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204039 138bc75d-0d04-0410-961f-82ee72b054a4
PR rtl/58542

* optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
instead of create_convert_operand_to.
(maybe_emit_sync_lock_test_and_set): Likewise.
(expand_atomic_compare_and_swap): Likewise.
(maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204040 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204043 138bc75d-0d04-0410-961f-82ee72b054a4
        * expr.c (expand_expr_real_1): Use mode of memory reference rather
        than mode of address computation when calling memory_address_addr_space.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204044 138bc75d-0d04-0410-961f-82ee72b054a4
        * mode-classes.def (MODE_POINTER_BOUNDS): New.
        * tree.def (POINTER_BOUNDS_TYPE): New.
        * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
        (POINTER_BOUNDS_MODE): New.
        (make_pointer_bounds_mode): New.
        * machmode.h (POINTER_BOUNDS_MODE_P): New.
        * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
        (layout_type): Support POINTER_BOUNDS_TYPE.
        * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
        * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
        (type_contains_placeholder_1): Likewise.
        * tree.h (POINTER_BOUNDS_TYPE_P): New.
        * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
        * doc/rtl.texi (MODE_POINTER_BOUNDS): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204045 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/constraints.md (B): New.
	(Ti): New.
	(Tb): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
	* config/i386/i386-modes.def (BND32): New.
	(BND64): New.
	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.c (isa_opts): Add mmpx.
	(regclass_map): Add bound registers.
	(dbx_register_map): Likewise.
	(dbx64_register_map): Likewise.
	(svr4_dbx_register_map): Likewise.
	(PTA_MPX): New.
	(ix86_option_override_internal): Support MPX ISA.
	(ix86_conditional_register_usage): Support bound registers.
	(print_reg): Likewise.
	(ix86_code_end): Add MPX bnd prefix.
	(output_set_got): Likewise.
	(ix86_output_call_insn): Likewise.
	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
	(ix86_print_operand_punct_valid_p): Likewise.
	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
	UNSPEC_BNDMK_ADDR.
	(ix86_class_likely_spilled_p): Add bound regs support.
	(ix86_hard_regno_mode_ok): Likewise.
	(x86_order_regs_for_local_alloc): Likewise.
	(ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
	(FIXED_REGISTERS): Add bound registers.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_NREGS): Likewise.
	(TARGET_MPX): New.
	(VALID_BND_REG_MODE): New.
	(FIRST_BND_REG): New.
	(LAST_BND_REG): New.
	(reg_class): Add BND_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BND_REGNO_P): New.
	(ANY_BND_REG_P): New.
	(BNDmode): New.
	(HI_REGISTER_NAMES): Add bound registers.
	* config/i386/i386.md (UNSPEC_BNDMK): New.
	(UNSPEC_BNDMK_ADDR): New.
	(UNSPEC_BNDSTX): New.
	(UNSPEC_BNDLDX): New.
	(UNSPEC_BNDLDX_ADDR): New.
	(UNSPEC_BNDCL): New.
	(UNSPEC_BNDCU): New.
	(UNSPEC_BNDCN): New.
	(UNSPEC_MPX_FENCE): New.
	(BND0_REG): New.
	(BND1_REG): New.
	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_immediate): Likewise.
	(prefix_0f): Likewise.
	(memory): Likewise.
	(prefix_rep): Check for bnd prefix.
	(length_nobnd): New.
	(length): Use length_nobnd if specified.
	(BND): New.
	(bnd_ptr): New.
	(BNDCHECK): New.
	(bndcheck): New.
	(*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
	(*jcc_2): Likewise.
	(jump): Likewise.
	(simple_return_internal): Likewise.
	(simple_return_pop_internal): Likewise.
	(*indirect_jump): Add MPX bnd prefix.
	(*tablejump_1): Likewise.
	(simple_return_internal_long): Likewise.
	(simple_return_indirect_internal): Likewise.
	(<mode>_mk): New.
	(*<mode>_mk): New.
	(mov<mode>): New.
	(*mov<mode>_internal_mpx): New.
	(<mode>_<bndcheck>): New.
	(*<mode>_<bndcheck>): New.
	(<mode>_ldx): New.
	(*<mode>_ldx): New.
	(<mode>_stx): New.
	(*<mode>_stx): New.
	* config/i386/predicates.md (lea_address_operand): Rename to...
	(address_no_seg_operand): ... this.
	(address_mpx_no_base_operand): New.
	(address_mpx_no_index_operand): New.
	(bnd_mem_operator): New.
	* config/i386/i386.opt (mmpx): New.
	* doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
	* doc/rtl.texi Add documentation for BND32mode and BND64mode.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204046 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-25  Tobias Burnus  <burnus@net-b.de>

        PR other/33426
        * parser.c (cp_parser_iteration_statement,
        cp_parser_for, cp_parser_c_for, cp_parser_pragma): Handle
        IVDEP pragma.

        * g++.dg/parse/ivdep.C: New.
        * g++.dg/vect/pr33426-ivdep.cc: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204047 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/i386.h (TARGET_MPX): New define.
	(TARGET_MPX_P): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204048 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-25  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (fopenmp): Change supported OpenMP version
        to 4.0.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204049 138bc75d-0d04-0410-961f-82ee72b054a4
	* recog.c (search_ofs): New static variable moved from...
	(peep2_find_free_register): ...here.
	(peephole2_optimize): Initialize it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204050 138bc75d-0d04-0410-961f-82ee72b054a4
	* c-c++-common/pr57793.c: Add expected error messages for
	targets with small integers.
	* gcc.dg/c99-stdint-1.c: Only run on 32-bit plus targets.
	* gcc.dg/c99-stdint-2.c: Likewise.
	* gcc.dg/cdce1.c: Likewise.
	* gcc.dg/fold-overflow-1.c: Likewise.
	* gcc.dg/utf-cvt.c: Likewise.
	* gcc.dg/ftrapv-1.c: Only run on targets that support trapping
	arithmetic.
	* gcc.dg/ftrapv-2.c: Likewise.
	* gcc.dg/pr30286.c: Likewise.
	* gcc.dg/pr19340.c: Only run on targets that support
	scheduling.
	* lib/target-supports.exp (check_effective_target_trapping): New
	proc.  Returns true if the target supports trapping arithmetic.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204053 138bc75d-0d04-0410-961f-82ee72b054a4
	PR rtl-optimization/58831
	* alias.c (init_alias_analysis): At the beginning of each iteration, set
	the reg_seen[N] bit if static_reg_base_value[N] is non-null.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204055 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54812
	* g++.dg/cpp0x/defaulted47.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204057 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58626
	* tree-loop-distribution.c (enum rdg_dep_type): Remove
	anti_dd, output_dd and input_dd.
	(struct rdg_edge): Remove level and relation members.
	(RDGE_LEVEL, RDGE_RELATION): Remove.
	(dot_rdg_1): Adjust.
	(create_rdg_edge_for_ddr): Remove.
	(create_rdg_edges_for_scalar): Adjust.
	(create_edge_for_control_dependence): Likewise.
	(create_rdg_edges): Split into ...
	(create_rdg_flow_edges): ... this
	(create_rdg_cd_edges): ... and this.
	(free_rdg): Adjust.
	(build_rdg): Likewise, do not compute data dependences or
	add edges for them.
	(pg_add_dependence_edges): New function.
	(pgcmp): Likewise.
	(distribute_loop): First apply all non-dependence based
	partition mergings.  Then compute dependences between partitions
	and merge and order partitions according to them.

	* gcc.dg/torture/pr58626.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204062 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-25  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
	ADDR_EXPR in the defining statement.

gcc/testsuite/
	* gcc.dg/tree-ssa/alias-23.c: New file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204065 138bc75d-0d04-0410-961f-82ee72b054a4