[gcc/]

	* config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.


[gcc/testsuite]	

	* gcc.target/arm/thumb-ifcvt-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202493 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/58385
	* fold-const.c (build_range_check): If both low and high are NULL,
	use omit_one_operand_loc to preserve exp side-effects.

	* gcc.c-torture/execute/pr58385.c: New test.


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

	PR middle-end/58377
	* passes.def: Split critical edges before late uninit warning passes.
	* tree-cfg.c (pass_split_crit_edges): Implement clone method.

	* g++.dg/uninit-pred-4.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202496 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
	for (not (neg ...)) and (neg (not ...)) cases.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202506 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-11  Mitsuru Kariya  <kariya_mitsuru@hotmail.com>
	    Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/58358
	* include/bits/stl_algo.h (search_n): Fix to guarantee a number
	of comparisons <= number of elements in the range.
	* testsuite/25_algorithms/search_n/58358.cc: New.
	* testsuite/25_algorithms/search_n/iterator.cc: Extend.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202510 138bc75d-0d04-0410-961f-82ee72b054a4
* config/rl78/predicates.md (rl78_cmp_operator_signed): New.
(rl78_stack_based_mem): New.
* config/rl78/constraints.md (Iv08): New.
(Iv16): New.
(Iv24): New.
(Is09): New.
(Is17): New.
(Is25): New.
(ISsi): New.
(IShi): New.
(ISqi): New.
* config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
(movhi): Likewise.
(movsi): Change from expand to insn-and-split.
(ashrsi3): Clobber AX.
(lshrsi3): New.
(ashlsi3): New.
(cbranchsi4): New.
* config/rl78/rl78.md (CC_REG): Fix.
(addsi3): Allow memory and immediate operands.
(addsi3_internal): Split into...
(addsi3_internal_virt): ...new, and ...
(addsi3_internal_real): ...new.
(subsi): New.
(subsi3_internal_virt): New.
(subsi3_internal_real): New.
(mulsi3): Add memory operand.
(mulsi3_rl78): Likewise.
(mulsi3_g13): Likewise.
* config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
(cbranchqi4_real): Add more constraint options.
(cbranchhi4_real): Expand pattern.
(cbranchhi4_real_signed): New.
(cbranchhi4_real_inverted): New.
(cbranchsi4_real_lt): New.
(cbranchsi4_real_ge): New.
(cbranchsi4_real_signed): New.
(cbranchsi4_real): New.
(peephole2): New.
* config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for constant shifts.
(lshrsi3_virt): Likewise.
(ashlsi3_virt): Likewise.
(cbranchqi4_virt_signed): New.
(cbranchhi4_virt_signed): New.
(cbranchsi4_virt): New.
* config/rl78/rl78.c: Whitespace fixes throughout.
(move_elim_pass): New.
(pass_data_rl78_move_elim): New.
(pass_rl78_move_elim): New.
(make_pass_rl78_move_elim): New.
(rl78_devirt_info): Run devirt earlier.
(rl78_move_elim_info): New.
(rl78_asm_file_start): Register it.
(rl78_split_movsi): New.
(rl78_as_legitimate_address): Allow virtual base registers when
appropriate.
(rl78_addr_space_convert): Remove spurious debug stuff.
(rl78_print_operand_1): Add z,s,S,r,E modifiers.
(rl78_print_operand): More cases for not printing '#'.
(rl78_expand_compare): Remove most of the logic.
(content_memory): New.
(clear_content_memory): New.
(get_content_index): New.
(get_content_name): New.
(display_content_memory): New.
(update_content): New.
(record_content): New.
(already_contains): New.
(insn_ok_now): Re-recog insns with virtual registers.
(add_postponed_content_update): New.
(process_postponed_content_update): New.
(gen_and_emit_move): New.
(transcode_memory_rtx): Record new location content.  Use
gen_and_emit_move.
(force_into_acc): New.
(move_to_acc): Use gen_and_emit_move.
(move_from_acc): Likewise.
(move_acc_to_reg): Likewise.
(move_to_x): Likewise.
(move_to_hl): Likewise.
(move_to_de): Likewise.
(rl78_alloc_physical_registers_op1): Record location content.
(has_constraint): New.
(rl78_alloc_physical_registers_op2): Record location content.
Optimize use of HL.
(rl78_alloc_physical_registers_ro1): Likewise.
(rl78_alloc_physical_registers_cmp): Likewise.
(rl78_alloc_physical_registers_umul): Likewise.
(rl78_alloc_address_registers_macax): New.
(rl78_alloc_physical_registers): Initialize and set location
content memory as needed.
(rl78_reorg): Make sure split2 is called.
(rl78_rtx_costs): New.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202514 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.



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

	* tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
	(dot_rdg): Use popen instead of system in optional code.
	(remaining_stmts, upstream_mem_writes): Remove global bitmaps.
	(already_processed_vertex_p): Adjust.
	(has_anti_or_output_dependence, predecessor_has_mem_write,
	mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
	rdg_flag_uses): Remove.
	(rdg_flag_vertex): Simplify.
	(rdg_flag_vertex_and_dependent): Rely on a correct RDG and
	remove recursion.
	(build_rdg_partition_for_component): Process the first vertex
	of a component only.
	(ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.

	* gcc.dg/tree-ssa/ldist-4.c: Remove undefined behavior.  Adjust
	expected outcome and comment why that happens.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202516 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/extend.texi: Fix errors in x86 FMA builtin naming.
	The FMA instruction names should have a 'v' prefix.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202517 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
            Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/Makefile.in: Import target_cpu, target_vendor,
	target_os and their host_ counterparts. Remove host_canonical and
	target_cpu_default, unused. Remove local ad-hoc computations of
	"host", "targ", "arch", "osys" and "manu". Replace uses of these by
	uses of the now imported family, hence back to filters against
	canonical values. Remove filters on e500 for target_cpu, expected to
	be canonicalized into powerpc. Invert the logic filtering on 64bit
	sparc for VxWorks. Simplify the filtering logic for bareboard tools
	target pairs, now using straight elf/eabi filters on the target_os
	part only.

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

        * gcc-interface/Makefile.in: Import target_cpu, target_vendor,
        target_os and their host_ counterparts. Remove host_canonical and
        target_cpu_default, unused. Remove local ad-hoc computations of
        "host", "targ", "arch", "osys" and "manu". Replace uses of these by
        uses of the now imported family, hence back to filters against
        canonical values. Remove filters on e500 for target_cpu, expected to
        be canonicalized into powerpc. Invert the logic filtering on 64bit
        sparc for VxWorks. Simplify the filtering logic for bareboard tools
        target pairs, now using straight elf/eabi filters on the target_os
        part only.



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