Commit Graph

140167 Commits

Author SHA1 Message Date
Francois-Xavier Coudert
8c07a5f4b4 re PR fortran/54656 (ICE with software REAL(16) for NORM2)
PR fortran/54656

	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
	for quadruple precision BUILT_IN_SQRT.

	* gfortran.dg/norm_4.f90: Rename to...
	* gfortran.dg/norm2_4.f90: this.
	* gfortran.dg/norm2_5.f90: New test.

From-SVN: r226929
2015-08-16 19:47:02 +00:00
Francois-Xavier Coudert
c541d5217e trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type generic BUILT_IN_SIGNBIT.
* trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
	generic BUILT_IN_SIGNBIT.
	(conv_intrinsic_ieee_copy_sign): Likewise.
	* f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
	BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
	BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
	variants of BUILT_IN_SIGNBIT.
	* mathbuiltins.def: Remove SIGNBIT.

From-SVN: r226924
2015-08-16 16:37:18 +00:00
Francois-Xavier Coudert
9f801fd79a re PR libfortran/41387 (OPEN, STATUS='NEW' of a symbolic link to a non-existing file fails.)
PR fortran/41387
	* gfortran.texi: New section "File operations on symbolic links".

From-SVN: r226923
2015-08-16 12:47:15 +00:00
GCC Administrator
2620710ac1 Daily bump.
From-SVN: r226915
2015-08-16 00:16:13 +00:00
Ian Lance Taylor
68bac64063 cp-demangle.c (d_abi_tags): Preserve di->last_name across any ABI tags.
* cp-demangle.c (d_abi_tags): Preserve di->last_name across any
	ABI tags.

From-SVN: r226910
2015-08-15 13:23:30 +00:00
Jason Merrill
60349f15cc re PR c++/65974 (Bogus deprecated-declarations warnings for inline definitions of deprecated virtual methods)
PR c++/65974
	* decl2.c (mark_vtable_entries): Suppress -Wdeprecated.

From-SVN: r226908
2015-08-15 03:59:26 -04:00
GCC Administrator
25a20a1c03 Daily bump.
From-SVN: r226907
2015-08-15 00:16:12 +00:00
Alexandre Oliva
1f9ceff111 [PR64164] Drop copyrename, use coalescible partition as base when optimizing.
for  gcc/ChangeLog

	PR rtl-optimization/64164
	PR bootstrap/66978
	PR middle-end/66983
	PR rtl-optimization/67000
	PR middle-end/67034
	PR middle-end/67035
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Do not coalesce
	maybe-byref parms with SSA_NAMEs of other variables, or
	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
	(ssa_default_def_partition): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(align_local_variable, add_stack_var): Support anonymous SSA
	names.
	(defer_stack_allocation): Likewise.  Declare earlier.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	Do no record deferred-allocation marker in
	SA.partition_to_pseudo.
	(expand_stack_vars): Adjust check for the marker in it.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c: Include stor-layout.h.
	(set_reg_attrs_for_parm): Handle NULL decl.
	(set_reg_attrs_for_decl_rtl): Take mode from expression if
	it's not a DECL.
	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
	rather than its possibly-NULL DECL.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	(read_complex_part): Export.
	* expr.h (read_complex_part): Declare.
	* cfgexpand.h (parm_maybe_byref_p): Declare.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.  Reset complex parm before fetching its default decl
	rtl.
	(assign_parms_unsplit_complex): Use the default-def complex
	parm rtl if it matches the components.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location, and
	fill in its address if the memory location of a maybe-byref
	parm was not assigned by cfgexpand.
	(assign_parm_setup_reg): Likewise.  Adjust its mode as
	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
	sure passed_pointer parms don't need conversion.  Copy address
	or value as needed.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

for  gcc/testsuite/ChangeLog

	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
	* gcc.dg/ssp-1.c: Make counter a register.
	* gcc.dg/ssp-2.c: Likewise.
	* gcc.dg/torture/parm-coalesce.c: New.

From-SVN: r226901
2015-08-14 18:51:50 +00:00
Marek Polacek
d7e90b6653 * tree-core.h (tree_base): Fix typo.
From-SVN: r226900
2015-08-14 17:59:41 +00:00
Ian Lance Taylor
624c7bbf6c compiler: Report unnamed receiver types.
gccgo used to crash when presented with an invalid receiver type in a
    method.  Instead, unnamed receiver types should report an error.
    
    Fixes golang/go#11557.
    
    Reviewed-on: https://go-review.googlesource.com/13245

From-SVN: r226899
2015-08-14 17:26:27 +00:00
Marek Polacek
e37dcf4530 re PR middle-end/67133 (ICE at -Os and above on x86_64-linux-gnu in gimple_op, at gimple.h:2274)
PR middle-end/67133
	* gimple.c (infer_nonnull_range_by_attribute): Check that the
	nonnull argument position is not outside function arguments.

	* gcc.dg/torture/pr67133.c: New test.

From-SVN: r226896
2015-08-14 16:29:38 +00:00
Matthew Wahab
356c32e2f4 re PR target/67143 (ICE (could not split insn) on aarch64-linux-gnu)
gcc/
2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/67143
	* config/aarch64/atomics.md (atomic_<optab><mode>): Replace
	'lconst_atomic' with 'const_atomic'.
	(atomic_fetch_<optab><mode>): Likewise.
	(atomic_<optab>_fetch<mode>): Likewise.
	* config/aarch64/iterators.md (lconst-atomic): Move below
	'const_atomic'.
	(const_atomic): New.

gcc/testsuite/
2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
	    Matthias Klose  <doko@debian.org>

	PR target/67143
	* gcc.c-torture/compile/pr67143.c: New
	* gcc.target/aarch64/atomic-op-imm.c
	(atomic_fetch_add_negative_RELAXED): New.
	(atomic_fetch_sub_negative_ACQUIRE): New.


Co-Authored-By: Matthias Klose <doko@debian.org>

From-SVN: r226895
2015-08-14 15:05:42 +00:00
Jonathan Wakely
2548a4d6ba any (any::operator=(const any&)): Move check for self-assignment.
* include/experimental/any (any::operator=(const any&)): Move check
	for self-assignment.
	(any::operator=(any&&)): Add check for self-assignment.
	(any::operator=(_ValueType&&)): Constrain template argument.
	(any::swap(any&)): Add check for self-swap.
	* testsuite/experimental/any/assign/self.cc: Test move and swap.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error.

From-SVN: r226894
2015-08-14 12:51:18 +01:00
Jonathan Wakely
357c9f7edc array: Add feature-test macro.
* include/experimental/array: Add feature-test macro.
	* testsuite/experimental/array/neg.cc: Update dg-error.

From-SVN: r226893
2015-08-14 12:51:05 +01:00
David Edelsohn
d8082c18c8 inclhack.def (aix_stdio_inline): New fix.
* inclhack.def (aix_stdio_inline): New fix.
        (aix_strtof_const): Limit to *-*-aix*.
        (aix_sysmachine): Same.
        (aix_syswait_2): Same.
        (aix_volatile):	Same.
        * fixincl.x: Regenerated.
        * test/base/stdio.h [AIX_STDIO_INLINE]: New test.

From-SVN: r226891
2015-08-14 07:17:29 -04:00
Thomas Schwinge
c9665100d6 Add DWARF2_LINENO_DEBUGGING_INFO, and use it for nvptx
gcc/
	* config/nvptx/nvptx.c (nvptx_option_override): Don't override
	debug options.
	* config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
	(DWARF2_DEBUGGING_INFO): Don't define.
	* debug.h (dwarf2_lineno_debug_hooks): Declare.
	* toplev.c (process_options): Add a case for it.
	* dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
	(dwarf2out_init): Skip most initializations if
	DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
	case.
	* defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
	DWARF2_LINENO_DEBUGGING_INFO.
	* opts.c (set_debug_level): Likewise.

Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>

From-SVN: r226890
2015-08-14 12:37:14 +02:00
Kyrylo Tkachov
4436a80d12 [AArch64][obvious] Fix some target attribute inlining tests for -fPIC
* gcc.target/aarch64/target_attr_5.c: Add static modifier to bar.
	* gcc.target/aarch64/target_attr_8.c: Likewise.
	* gcc.target/aarch64/target_attr_14.c: Likewise.

From-SVN: r226889
2015-08-14 09:54:54 +00:00
Pierre-Marie de Rodat
9d14780002 DWARF2: add extensions to handle biased types
include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_bias): New attribute.

From-SVN: r226888
2015-08-14 09:48:13 +00:00
Pierre-Marie de Rodat
07d574b4dc DWARF2: add extensions to handle fixed point types
include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
	attributes.

From-SVN: r226887
2015-08-14 09:48:02 +00:00
Kyrylo Tkachov
483750e491 [AArch64][obvious] Mark target_attr_1.c as compile-only
* gcc.target/aarch64/target_attr_1.c: Make test compile-only.

From-SVN: r226886
2015-08-14 09:45:44 +00:00
James Greenhalgh
3d0810e14c [Patch ARM/AArch64] Add missing is_neon_type types
gcc/

	* config/arm/types.md (is_neon_type): Add missing types.

From-SVN: r226885
2015-08-14 09:38:36 +00:00
Yuri Rumyantsev
3e0f334989 driver-i386.c (host_detect_local_cpu): Add support for skylake.
gcc/

	* config/i386/driver-i386.c (host_detect_local_cpu): Add support
	for skylake.
	* config/i386/i386.c (PTA_SKYLAKE): New macros.
	(processor_alias_table): Add skylake description.
	(enum processor_model): Add skylake processor.
	(arch_names_table): Add skylake record.
	* doc/invoke.texi: Add skylake item.

gcc/testsuite/

	* gcc.target/i386/builtin_target.c: Add skylake check.

libgcc/

	* config/i386/cpuinfo.c (enum processor_subtypes): Add skylake.
	(get_intel_cpu): Likewise.

From-SVN: r226884
2015-08-14 09:11:01 +00:00
David Malcolm
baf3fbad0d jit: on OS X, add -Wl,-undefined,dynamic_lookup to driver invocation
gcc/jit/ChangeLog:
	* jit-playback.c (invoke_driver): On OS X, add
	"-Wl,-undefined,dynamic_lookup" to the driver arguments.

From-SVN: r226882
2015-08-14 01:18:14 +00:00
GCC Administrator
3f7fd1822b Daily bump.
From-SVN: r226881
2015-08-14 00:16:11 +00:00
Ian Lance Taylor
d96fa208a5 dwarf.c (read_function_entry): Add vec_inlined parameter.
* dwarf.c (read_function_entry): Add vec_inlined parameter.
	Change all callers.

From-SVN: r226878
2015-08-13 22:56:01 +00:00
Jeff Law
cfbbe6decf pr66314.c: Moved from here to ..
* gcc.dg/pr66314.c: Moved from here to ..
	* gcc.dg/asan/pr66314.c: Here.  Use -fno-sanitize=all
	to clear all sanitizers before -fsanitize=kernel-address.

From-SVN: r226877
2015-08-13 16:19:56 -06:00
Andrew MacLeod
68c6cacb78 ira-int.h: Include recog.h.
* ira-int.h: Include recog.h.
	* ira-build.c: Don't include recog.h.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* sched-deps.c: Likewise.
	* sel-sched.c: Likewise.
	* target-globals.c: Likewise.

From-SVN: r226876
2015-08-13 21:39:03 +00:00
Richard Sandiford
9016329382 re PR middle-end/55035 (reload1.c:3766:41: error: ‘orig_dup[0]’ may be used uninitialized in this function (for fr30, microblaze, moxie, rl78))
gcc/
	PR bootstrap/55035
	* reload1.c (elimination_costs_in_insn): Make it obvious to the
	compiler that the n_dups and n_operands loop bounds are invariant.

From-SVN: r226874
2015-08-13 20:22:34 +00:00
Kyrylo Tkachov
c4f855e939 [RTL-ifcvt] Allow PLUS+immediate expression in noce_try_store_flag_constants
* ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
	expressions in A and B.

	* gcc.target/aarch64/cinc_common_1.c: New test.

From-SVN: r226869
2015-08-13 17:06:14 +00:00
Paolo Carlini
42b7febc53 re PR c++/53421 (__attribute__((__may_alias__)) prevents taking address of conversion operator member function)
2015-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53421
	* g++.dg/ext/attribute-may-alias-1.C: New.
	* g++.dg/ext/attribute-may-alias-2.C: Likewise.

From-SVN: r226868
2015-08-13 15:45:37 +00:00
Ville Voutilainen
708768eb18 neg.s: Remove.
2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>

        * testsuite/experimental/array/neg.s: Remove.
        * testsuite/experimental/array/neg.ii.gz: Remove.

From-SVN: r226866
2015-08-13 18:00:20 +03:00
Ville Voutilainen
9638eccd55 Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array.
2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement std::experimental::fundamentals_v2::make_array and
	std::experimental::fundamentals_v2::to_array.
	* include/Makefile.am: Add array.
	* include/Makefile.in: Add array.
	* include/experimental/array: New.
	* testsuite/experimental/array/make_array.cc: Likewise.
	* testsuite/experimental/array/neg.cc: Likewise.
	* doc/html/manual/status.html: Mark make_array as Y.
	* doc/xml/manual/status_cxx2017.xml: Likewise.

From-SVN: r226865
2015-08-13 17:55:46 +03:00
Jonathan Wakely
db23e4c46f alloc_traits.h: Add feature-test macro.
* include/bits/alloc_traits.h: Add feature-test macro.
	* include/bits/allocator.h: Likewise.
	* include/bits/range_access.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/unordered_map.h: Likewise.

From-SVN: r226864
2015-08-13 14:57:41 +01:00
Jonathan Wakely
0072c9ac90 2.cc: New.
* testsuite/30_threads/mutex/unlock/2.cc: New.
	* testsuite/30_threads/recursive_mutex/unlock/2.cc: New.
	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: New.
	* testsuite/30_threads/shared_mutex/unlock/1.cc: New.
	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: New.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: New.

From-SVN: r226863
2015-08-13 14:57:35 +01:00
Eelis van der Weegen
4c80e54478 shared_mutex (shared_mutex::unlock()): Fix typo.
2015-08-13  Eelis van der Weegen  <eelis@eelis.net>

	* include/std/shared_mutex (shared_mutex::unlock()): Fix typo.

From-SVN: r226862
2015-08-13 14:57:28 +01:00
Richard Biener
34c896978b tree.c (nonnull_arg_p): Move from ...
2015-08-13  Richard Biener  <rguenther@suse.de>

	* tree.c (nonnull_arg_p): Move from ...
	* tree-vrp.c (nonnull_arg_p): ... here.
	* tree.h (nonnull_arg_p): Declare.
	* tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
	here, register ptr != 0 for nonnull_arg_p pointer arguments.
	Properly initialize static chain and by-reference result pointer.
	(run_scc_vn): Adjust.

From-SVN: r226861
2015-08-13 12:34:36 +00:00
Robert Suchanek
2ef38880ef [MIPS] Enable load/store bonding for I6400
gcc/
	* config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
	I6400.

From-SVN: r226860
2015-08-13 11:45:21 +00:00
Matthew Wahab
54a8e4f651 atomic-inst-cas.c: New.
* gcc.target/aarch64/atomic-inst-cas.c: New.
	* gcc.target/aarch64/atomic-inst-ops.inc: New.

From-SVN: r226859
2015-08-13 11:30:53 +00:00
Matthew Wahab
b0770c0f18 * config/aarch64/aarch64-protos.h
(aarch64_gen_atomic_cas): Declare.
	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
	Choose appropriate instruction pattern for the target.
	(aarch64_gen_atomic_cas): New.
	* config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
	(atomic_compare_and_swap<mode>_1): Rename to
	aarch64_compare_and_swap<mode>.  Fix some indentation.
	(aarch64_compare_and_swap<mode>_lse): New.
	(aarch64_atomic_cas<mode>): New.

From-SVN: r226858
2015-08-13 11:28:42 +00:00
Matthew Wahab
045c2d32d9 aarch64.h (AARCH64_ISA_LSE): New.
* config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
	(TARGET_LSE): New.

From-SVN: r226857
2015-08-13 11:20:07 +00:00
Andreas Schwab
adacb5b14e * gcc.dg/tree-ssa/vrp33.c: Add -fno-tree-fre.
From-SVN: r226856
2015-08-13 10:26:04 +00:00
Paolo Carlini
1841dfbf07 re PR c++/62164 (5.0: ICE: error: Both section and comdat group is set)
2015-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62164
	* g++.dg/torture/pr62164.C: New.

From-SVN: r226855
2015-08-13 10:18:47 +00:00
Richard Biener
310d5e7d8c re PR tree-optimization/67191 (ICE: in before_dom_children, at tree-ssa-sccvn.c:4372)
2015-08-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67191
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
	assert we value-numbered last stmts operand because it can validly
	trigger for unreachable code.

	* gcc.dg/torture/pr67191.c: New testcase.
	* g++.dg/torture/pr67191.C: Likewise.

From-SVN: r226854
2015-08-13 09:39:50 +00:00
Kyrylo Tkachov
d27555bfee [RTL-ifcvt] Improve conditional select ops on immediates (fix failing x86_64 cmov tests)
PR rtl-optimization/67103
	* ifcvt.c (noce_try_store_flag_constants): Move
	x = (-(test != 0) & (b - a)) + a transformation to...
	(noce_try_cmove): ... Here.  Try it if normal conditional
	move fails.

From-SVN: r226853
2015-08-13 09:11:13 +00:00
Richard Biener
89711ff6cb tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize comparison operand order and commutative ternary op operand order.
2015-08-12  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
	comparison operand order and commutative ternary op operand order.
	(sccvn_dom_walker::cond_stack): New state to track temporary
	expressions.
	(sccvn_dom_walker::after_dom_children): Remove tempoary expressions
	no longer valid.
	(sccvn_dom_walker::record_cond): Add a single temporary conditional
	expression.
	(sccvn_dom_walker::record_conds): Add a temporary conditional
	expressions and all related expressions also true/false.
	(sccvn_dom_walker::before_dom_children): Record temporary
	expressions based on the controlling condition of a single
	predecessor.  When trying to simplify a conditional statement
	lookup expressions we might have inserted earlier.

	* testsuite/gcc.dg/tree-ssa/ssa-fre-47.c: New testcase.
	* testsuite/gcc.dg/tree-ssa/ssa-fre-48.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/ssa-fre-49.c: Likewise.
	* testsuite/g++.dg/tree-ssa/pr61034.C: Adjust.
	* testsuite/gcc.dg/fold-compare-2.c: Likewise.
	* testsuite/gcc.dg/pr50763.c: Likewise.
	* testsuite/gcc.dg/predict-3.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/20030709-2.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/pr19831-3.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/pr20657.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/pr21001.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/pr37508.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp04.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp07.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp09.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp16.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp20.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp25.c: Likewise.
	* testsuite/gcc.dg/tree-ssa/vrp87.c: Likewise.

From-SVN: r226852
2015-08-13 07:52:06 +00:00
Robert Suchanek
43eb7f8acd [MIPS] Remove W32 and W64 pseudo-processors.
gcc/
	* config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
	pseudo-processors.
	* config/mips/mips.md (processor): Remove w32 and w64.

From-SVN: r226851
2015-08-13 07:41:45 +00:00
Richard Biener
9fe4f60adb re PR tree-optimization/66502 (SCCVN can't handle PHIs optimistically optimally)
2015-08-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66502
	PR tree-optimization/67167
	* tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
	backedge arguments.
	(vn_phi_lookup): Adjust.
	(vn_phi_insert): Likewise.
	(visit_phi): Prefer to value-number to another PHI node
	over value-numbering to a PHI argument.
	(init_scc_vn): Mark DFS back edges.

	* gcc.dg/tree-ssa/ssa-fre-46.c: New testcase.

From-SVN: r226850
2015-08-13 07:06:10 +00:00
Richard Biener
003b40ae57 gimple.h (gcall::code_): New constant static member.
2015-08-13  Richard Biener  <rguenther@suse.de>

	* gimple.h (gcall::code_): New constant static member.
	(gcond::code_): Likewise.
	* gimple.c (gcall::code_): Define.
	(gcond::code_): Likewise.
	(is_a_helper <const gcond *>): Add.
	(gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
	and forward to a new gcall overload with less checking and a
	cheaper way to access the operand.
	(gimple_call_lhs_ptr): Likewise.
	(gimple_call_set_lhs): Likewise.
	(gimple_call_internal_p): Likewise.
	(gimple_call_with_bounds_p): Likewise.
	(gimple_call_set_with_bounds): Likewise.
	(gimple_call_internal_fn): Likewise.
	(gimple_call_set_ctrl_altering): Likewise.
	(gimple_call_ctrl_altering_p): Likewise.
	(gimple_call_fntype): Likewise.
	(gimple_call_fn): Likewise.
	(gimple_call_fn_ptr): Likewise.
	(gimple_call_set_fndecl): Likewise.
	(gimple_call_fndecl): Likewise.
	(gimple_call_chain): Likewise.
	(gimple_call_num_args): Likewise.
	(gimple_call_arg): Likewise.
	(gimple_call_arg_ptr): Likewise.
	(gimple_call_set_arg): Likewise.
	(gimple_call_noreturn_p): Likewise.
	(gimple_cond_code): Likewise.
	(gimple_cond_lhs): Likewise.
	(gimple_cond_rhs): Likewise.
	(gimple_has_lhs): Reduce checking.

From-SVN: r226849
2015-08-13 06:59:25 +00:00
Naveen H.S
95765f369f re PR middle-end/25529 ((unsigned * 2)/2 is not changed into unsigned &0x7FFFFFFF)
2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/25529
	* match.pd (div (mult @0 @1) @1) : New simplifier.

From-SVN: r226847
2015-08-13 04:37:22 +00:00
Ian Lance Taylor
b02520e940 compiler: Flatten erroneous subtrees into errors.
Between the lowering and flattening passes of the compiler, there are
    several passes that modify the lowered Go parse tree and as errors are
    discovered, several nodes transform into error nodes.  However, for a
    higher level node such as a construction expression, the erroneous
    nodes in the subtrees might not propagate their error.  The flatten
    phase for a node now looks for errors in the subtree and flattens the
    node into an error node if any are found.
    
    Fixes golang/go#11559, golang/go#11536, golang/go#11558.
    
    Reviewed-on: https://go-review.googlesource.com/13097

From-SVN: r226845
2015-08-13 01:04:42 +00:00