Commit Graph

141176 Commits

Author SHA1 Message Date
Ilya Verbin
6fd2e66a09 liboffloadmic: Add missed checks for malloc and strdup return values
liboffloadmic/
	* runtime/offload_engine.cpp (Engine::init_process): Use strdup instead
	of sizeof+malloc+sprintf, check for return value.
	* runtime/offload_env.cpp (MicEnvVar::get_env_var_kind): Check for
	strdup return value.
	* runtime/offload_host.cpp (__offload_init_library_once): Check for
	strdup return value.  Fix size calculation of COI_HOST_THREAD_AFFINITY.
	* runtime/emulator/coi_device.cpp (COIProcessWaitForShutdown): Check for
	malloc return value.

From-SVN: r228622
2015-10-08 19:04:43 +00:00
H.J. Lu
bc8642d6ce Round up the SSE register save area only if needed
There is is no point to round up the SSE register save area to 16 bytes if
the incoming stack boundary is less than 16 bytes.

	* config/i386/i386.c (ix86_compute_frame_layout): Round up the
	SSE register save area to 16 bytes only if the incoming stack
	boundary is no less than 16 bytes.

From-SVN: r228621
2015-10-08 11:57:11 -07:00
Jeff Law
d1acc3f4d2 [PATCH] [1/n] Fix minor SSA_NAME leaks
* tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
	release_ssa_name.  Fix typo in comment.

From-SVN: r228619
2015-10-08 11:50:44 -06:00
Nathan Sidwell
25662751d1 nvptx.h (struct machine_function): Add comment.
* config/nvptx/nvptx.h (struct machine_function): Add comment.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
	may return pointer as well as in memory.
	(nvptx_output_return): Likewise.

From-SVN: r228618
2015-10-08 17:31:36 +00:00
Richard Sandiford
4835c97845 Move sqrt and cbrt simplifications to match.pd
This patch moves the sqrt and cbrt simplification rules to match.pd.
builtins.c now only does the constant folding.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
	(fold_builtin_1): Update accordingly.  Handle constant arguments here.
	* match.pd: Add rules previously handled by fold_builtin_sqrt
	and fold_builtin_cbrt.

gcc/testsuite/
	* gcc.dg/builtins-47.c: Test the optimized dump instead.

From-SVN: r228616
2015-10-08 16:54:37 +00:00
Richard Sandiford
68e57f040c Make tree_expr_nonnegative_warnv_p recurse into SSA names
The upcoming patch to move sqrt and cbrt simplifications to match.pd
caused a regression because the (abs @0)->@0 simplification didn't
trigger for:

        (abs (convert (abs X)))

The simplification is based on tree_expr_nonnegative_p, which at
the moment just gives up if it sees an SSA_NAME.

This patch makes tree_expr_nonnegative_p recurse into SSA name
definitions, but limits the depth of recursion to a small number
for the reason mentioned in the comment (adapted from an existing
comment in gimple_val_nonnegative_real_p).  The patch reuses code
in tree-vrp.c, moving it to gimple-fold.c.  It also replaces calls
to gimple_val_nonnegative_real_p with calls to tree_expr_nonnegative_p.

A knock-on effect is that we can now prove _i_589 < 0 is false in
sequences like:

      i_1917 = ASSERT_EXPR <i_1075, i_1075 == 0>;
      _i_589 = (const int) i_1917;
      _i_1507 = ASSERT_EXPR <_i_589, _i_589 < 0>;

This defeats an assert in tree-vrp.c that ASSERT_EXPR conditions
are never known to be false.  Previously the assert only ever used
local knowledge and so would be limited to cases like x != x for
integer x.  Now that we use global knowledge it's possible to prove
the assertion condition is false in blocks that are in practice
unreachable.  The patch therefore removes the assert.

Bootstrapped & regression-tested on x86_64-linux-gnu.  I didn't write
a specific test because this is already covered by the testsuite if
the follow-on patch is also applied.

gcc/
	* params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
	* doc/invoke.texi (--param max-ssa-name-query-depth): Document.
	* fold-const.h (tree_unary_nonnegative_warnv_p)
	(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
	(tree_expr_nonnegative_warnv_p): Add depth parameters.
	* fold-const.c: Include gimple-fold.h and params.h.
	(tree_ssa_name_nonnegative_warnv_p): New function.
	(tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
	(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
	(tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
	Add a depth parameter and increment it for recursive calls to
	tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
	to handle SSA names.
	* gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
	(gimple_stmt_nonnegative_warnv_p): Declare.
	* tree-vrp.c (remove_range_assertions): Remove assert that condition
	cannot be proven false.
	(gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
	(gimple_stmt_nonnegative_warnv_p): Move to...
	* gimple-fold.c: ...here.  Add depth parameters and pass them
	down to the tree routines.  Accept statements that aren't
	assignments or calls but just return false for them.
	(gimple_val_nonnegative_real_p): Delete.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
	tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
	Check HONOR_NANs first.

From-SVN: r228614
2015-10-08 16:49:24 +00:00
Martin Jambor
170f473b52 Fix Solaris bootstrap
2015-10-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
	unnecessary MIN.

From-SVN: r228607
2015-10-08 18:30:06 +02:00
Jason Merrill
338976c234 cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
* cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
	* init.c (get_nsdmi): Use it.
	* typeck2.c (massage_init_elt): Use it.

From-SVN: r228606
2015-10-08 12:14:03 -04:00
Jason Merrill
afd7acb2c9 format
From-SVN: r228605
2015-10-08 12:13:57 -04:00
Joseph Myers
de8b96f4e6 * zh_TW.po: Update.
From-SVN: r228603
2015-10-08 16:55:25 +01:00
Jason Merrill
3c769e5a5b re PR c++/67557 (Calling copy constructor of base class in constructor of derived class produces crashing code)
PR c++/67557

	* call.c (is_base_field_ref): New.
	(unsafe_copy_elision_p): New.
	(build_over_call): Use it.

From-SVN: r228602
2015-10-08 10:42:02 -04:00
Yuri Rumyantsev
25a2c75d49 tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi in the tail of outer-loop.
gcc/

	* tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
	in the tail of outer-loop.

gcc/testsuite/

	* gcc.dg/vect/vect-outer-simd-3.c: New test.

From-SVN: r228601
2015-10-08 14:28:53 +00:00
David Edelsohn
a5220d61fa rs6000.c (rs6000_xcoff_debug_unwind_info): Always return UI_NONE.
* config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
return UI_NONE.

From-SVN: r228600
2015-10-08 10:19:57 -04:00
Yuri Rumyantsev
a01e93f11b tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and "cfghooks.h"...
gcc/

	* tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
	"cfghooks.h", add prototypes for introduced new functions.
	(tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
	checks on ability of loop unswitching to tree_unswitch_single_loop;
	invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
	on innermost loop check.
	(tree_unswitch_single_loop): Add all required checks on ability of
	loop unswitching under zero recursive level guard.
	(tree_unswitch_outer_loop): New function.
	(find_loop_guard): Likewise.
	(empty_bb_without_guard_p): Likewise.
	(used_outside_loop_p): Likewise.
	(get_vop_from_header): Likewise.
	(hoist_guard): Likewise.
	(check_exit_phi): Likewise.

gcc/testsuite/

	* gcc.dg/loop-unswitch-2.c: New test.
	* gcc.dg/loop-unswitch-3.c: Likewise.
	* gcc.dg/loop-unswitch-4.c: Likewise.

From-SVN: r228599
2015-10-08 13:14:09 +00:00
Marek Polacek
f28ff5b5c5 tree-ssa-reassoc.c (dump_ops_vector): Print newline after each ops element.
* tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
	ops element.

From-SVN: r228598
2015-10-08 10:20:22 +00:00
Tom de Vries
63b241ca5f Dump only required dse1 file
2015-10-08  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/dse.c: Only dump in dse1 pass.
	* gcc.dg/tree-ssa/pr30375.c: Same.

From-SVN: r228597
2015-10-08 09:03:51 +00:00
Andreas Krebbel
f2c0c24318 S/390: Use create_tmp_var_raw in s390_atomic_assign_expand_fenv.
gcc/ChangeLog:

2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR c/65345
	* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
	create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228594
2015-10-08 07:49:41 +00:00
GCC Administrator
79e56ab6a3 Daily bump.
From-SVN: r228590
2015-10-08 00:16:14 +00:00
Jan Hubicka
ee3db47daa expr.c (store_expr_with_bounds): Handle aggregate moves from BLKmode.
* expr.c (store_expr_with_bounds): Handle aggregate moves from
	BLKmode.
	* gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
	to define gimple type system; compare aggregates only by size.

From-SVN: r228586
2015-10-07 22:54:35 +00:00
Jeff Law
d44bd40ef0 Re: [PATCH] Improve DOM's optimization of control statements
* tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
	here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
	unnecessarily.

@@ -1848,12 +1848,6 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si,

From-SVN: r228585
2015-10-07 15:56:18 -06:00
Aditya Kumar
b0b5710cf6 gather bbs and conditions in a single walk through dominators
Clean up the function to build scop's basic blocks and the function
that gathers the conditions under which a basic block is executed.  We remove
one traversal of the dominator tree.

This refactoring was triggered by the need of a vec<bb> of all the basic blocks
in a region.  We will use that vector in a patch that removes the out-of-ssa
translation of scalar dependences: we will iterate through the basic blocks of a
region to record scalar dependences crossing bbs or going out of the region.

The patch passes bootstrap and regtest on x86_64-linux.

2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
                * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
                (generate_isl_schedule): Same.
                * graphite-optimize-isl.c (scop_get_domains): Same.
                (apply_schedule_map_to_scop): Same.
                * graphite-poly.c (print_iteration_domains): Same.
                (remove_gbbs_in_scop): Same.
                (new_scop): Same.
                (free_scop): Same.
                (print_scop): Same.
                * graphite-poly.h (struct scop): Rename bbs to pbbs.
                (SCOP_BBS): Remove.
                * graphite-scop-detection.c (compare_bb_depths): Remove.
                (graphite_sort_dominated_info): Remove.
                (try_generate_gimple_bb): Move out of scop_detection.
                (all_non_dominated_preds_marked_p): Remove.
                (build_scop_bbs_1): Remove.
                (build_scop_bbs): Remove.
                (nb_pbbs_in_loops): Do not use SCOP_BBS.
                (find_scop_parameters): Same.
                (sese_dom_walker): Rename gather_bbs.
                (before_dom_children): Call try_generate_gimple_bb and collect gbb
                and pbb.
                (build_scops): Call gather_bbs.
                * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
                (add_conditions_to_constraints): Same.
                (build_scop_iteration_domain): Same.
                (build_scop_drs): Same.
                (new_pbb_from_pbb): Same.
                * sese.c (new_sese_info): Create bbs.
                * sese.h (struct sese_info_t): Add bbs.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228581
2015-10-07 19:25:35 +00:00
David Edelsohn
b759335b16 xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit encoding in 64-bit mode.
* config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
encoding in 64-bit mode.

From-SVN: r228579
2015-10-07 14:35:23 -04:00
Ian Lance Taylor
65f52d9af6 compiler: Don't make temporaries for constant operands.
Fixes golang/go#12616.
    
    Reviewed-on: https://go-review.googlesource.com/14645

From-SVN: r228578
2015-10-07 17:47:45 +00:00
Uros Bizjak
cba9c78977 re PR target/66697 (Feature request: -mstackrealign and force_align_arg_pointer for x86_64)
PR target/66697
	* config/i386/i386.c (ix86_option_override_internal): Always use
	8-byte minimum stack boundary in 64-bit mode.
	(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
	(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
	Add a REG_CFA_EXPRESSION note if needed.
	(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
	(ix86_handle_force_align_arg_pointer_attribute): New.
	(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
	(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
	with ix86_handle_force_align_arg_pointer_attribute.
	* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.

testsuite/ChangeLog:

	PR target/66697
	* gcc.target/i386/20060512-1.c: Remove ia32 requirement.
	(PUSH, POP): New defines.
	(sse2_test): Use PUSH and POP to misalign runtime stack.
	* gcc.target/i386/20060512-2.c: Remove ia32 requirement.

From-SVN: r228577
2015-10-07 19:42:09 +02:00
Ian Lance Taylor
0786e1fe86 re PR go/67874 (fd_unix.go does not build when there is fcntl64 and no fcntl syscall)
PR go/67874
    net, runtime: Call C library fcntl function rather than syscall.Syscall.
    
    Not all systems define a fcntl syscall; some only have fcntl64.
    
    Fixes GCC PR go/67874.
    
    Reviewed-on: https://go-review.googlesource.com/15497

From-SVN: r228576
2015-10-07 17:22:08 +00:00
James Norris
919e06d3f5 atomic-dg.exp (atomic_link_flags): Move flag setting to atomic_init.
* testsuite/lib/atomic-dg.exp (atomic_link_flags): Move flag setting
	to atomic_init. (atomic_init): Restrict flags usage.

From-SVN: r228575
2015-10-07 17:09:46 +00:00
Aditya Kumar
91bf00a903 remove unused code
2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-scop-detection.c (parameter_index_in_region): Remove
                use of SESE_ADD_PARAMS.
                (find_scop_parameters): Same.
                * sese.c (new_sese_info): Same.
                * sese.h (struct sese_info_t): Remove add_params.
                (SESE_ADD_PARAMS): Remove.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228574
2015-10-07 16:19:09 +00:00
Aditya Kumar
bafcb15301 move graphite bookkeeping from sese to sese_info
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
                an sese_info_p.
                (copy_def): Same.
                (copy_internal_parameters): Same.
                (translate_isl_ast_to_gimple): Use an sese_l.
                (build_iv_mapping): Same.
                * graphite-poly.c (new_sese): Rename new_sese_info.
                (free_sese): Rename free_sese_info.
                * graphite-poly.h (struct scop): Use an sese_info_p.
                (scop_set_region): Same.
                * graphite-scop-detection.c (struct sese_l): Moved...
                (get_entry_bb): Moved...
                (get_exit_bb): Moved...
                (parameter_index_in_region_1): Use an sese_info_p.
                (parameter_index_in_region): Same.
                (scan_tree_for_params): Same.
                (find_params_in_bb): Same.
                (sese_dom_walker): Use an sese_l.
                * graphite-sese-to-poly.c (remove_invariant_phi): Same.
                (reduction_phi_p): Same.
                (parameter_index_in_region_1): Use an sese_info_p.
                (propagate_expr_outside_region): Use an sese_l.
                * graphite.c: Replace uses of SCOP_REGION.
                * sese.c (sese_record_loop): Use an sese_info_p.
                (build_sese_loop_nests): Same.
                (sese_build_liveouts_use): Same.
                (sese_build_liveouts_bb): Same.
                (sese_build_liveouts_bb): Same.
                (sese_bad_liveouts_use): Same.
                (sese_reset_debug_liveouts_bb): Same.
                (sese_build_liveouts): Same.
                (new_sese): Renamed new_sese_info.
                (free_sese): Renamed free_sese_info.
                (set_rename): Use an sese_info_p.
                (graphite_copy_stmts_from_block): Same.
                (copy_bb_and_scalar_dependences): Same.
                (outermost_loop_in_sese_1): Use an sese_l.
                (outermost_loop_in_sese): Same.
                (if_region_set_false_region): Use an sese_info_p.
                (move_sese_in_condition): Same.
                (scalar_evolution_in_region): Use an sese_l.
                * sese.h (struct sese_l): ... here.
                (SESE_ENTRY): Remove.
                (SESE_ENTRY_BB): Remove.
                (SESE_EXIT): Remove.
                (SESE_EXIT_BB): Remove.
                (sese_contains_loop): Use an sese_info_p.
                (sese_nb_params): Same.
                (bb_in_sese_p): Use an sese_l.
                (stmt_in_sese_p): Same.
                (defined_in_sese_p): Same.
                (loop_in_sese_p): Same.
                (sese_loop_depth): Same.
                (struct ifsese_s): Use an sese_info_p.
                (gbb_loop_at_index): Use an sese_l.
                (nb_common_loops): Same.
                (scev_analyzable_p): Same.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228572
2015-10-07 15:40:17 +00:00
Marek Polacek
b850dd2f0b re PR sanitizer/67867 (UBSan bootstrap fails with error: ‘otype’ may be used uninitialized in this function [-Werror=maybe-uninitialized])
PR sanitizer/67867
	* search.c (accessible_p): Initialize OTYPE to NULL_TREE.

From-SVN: r228569
2015-10-07 14:09:05 +00:00
H.J. Lu
1f3ccbc8e5 Define x86 CALL_USED_REGISTERS_MASK
Define x86 CALL_USED_REGISTERS_MASK used on x86 CALL_USED_REGISTERS.

	* config/i386/i386.c (ix86_conditional_register_usage): Use
	CALL_USED_REGISTERS_MASK.
	* config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.

From-SVN: r228568
2015-10-07 06:47:12 -07:00
H.J. Lu
32a18c8c93 Check $READELF_FOR_TARGET for readelf in configure
Similar to as, ld, nm and objdump, gcc configure should check
$READELF_FOR_TARGET for readelf.

	PR bootstrap/67385
	* configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
	* configure: Regenerated.

From-SVN: r228567
2015-10-07 06:45:21 -07:00
Andre Vehreschild
b0ae33baab re PR fortran/65889 ([6 Regressions] [OOP] ICE with sizeof a polymorphic variable.)
gcc/fortran/ChangeLog:

2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/65889
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
	on stack class objects as sizeof parameter.

gcc/testsuite/ChangeLog:

2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/65889
	* gfortran.dg/sizeof_5.f90: New test.

From-SVN: r228566
2015-10-07 12:58:46 +02:00
H.J. Lu
735e964108 Merge ix86_maybe_switch_abi with ix86_set_current_function
ix86_maybe_switch_abi is called to late during RTL expansion and we
use the stale information from compilation of the previous function.
aggregate_value_p uses call_used_regs.  aggregate_value_p is used by
IPA and return value optimization, which are called before
ix86_maybe_switch_abi is called.  This patch merges ix86_maybe_switch_abi
with ix86_set_current_function.

	PR target/67850
	* config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
	(ix86_set_current_function): This.
	(TARGET_EXPAND_TO_RTL_HOOK): Removed.

From-SVN: r228565
2015-10-07 03:30:12 -07:00
Louis Krupp
bbf3abfa73 Check in forgotten test for fortran/65766
From-SVN: r228564
2015-10-07 09:21:58 +00:00
Richard Biener
3161455c8b tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2015-10-07  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
	(vinfo_for_stmt): Adjust.
	(set_vinfo_for_stmt): Likewise.
	* tree-vectorizer.c (stmt_vec_info_vec): Likewise.
	* tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Remove special-casing
	of inner loop.
	(vect_analyze_loop_1): Remove.
	(vect_analyze_loop_form_1): Avoid building a loop_vec_info for
	inner loop when vectorizing an outer loop by splitting out from ...
	(vect_analyze_loop_form): ... here.

From-SVN: r228563
2015-10-07 09:04:48 +00:00
Ramana Radhakrishnan
baba8d7dc7 Fix PR c/65345 for arm
2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c/65345
	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228562
2015-10-07 08:37:35 +00:00
Richard Sandiford
d01db77a06 Cache reals for 1/4, 1/6 and 1/9
We have a global 1/2 and a cached 1/3, but recalculate 1/4, 1/6 and 1/9
each time we need them.  That seems a bit arbitrary and makes the folding
code more noisy (especially once it's moved to match.pd).

This patch caches the other three constants too.  Bootstrapped &
regression-tested on x86_64-linux-gnu.

gcc/
	* real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
	* real.c (CACHED_FRACTION): New helper macro.
	(dconst_third_ptr): Use it.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
	* builtins.c (fold_builtin_sqrt): Use dconst_quarter and
	dconst_sixth.
	(fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.

From-SVN: r228561
2015-10-07 08:09:45 +00:00
Marek Polacek
5b5dce39b8 cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
* cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
	(genericize_cp_loop): Likewise.
	* decl.c (cxx_maybe_build_cleanup): Likewise.
	* parser.c (cp_parser_binary_expression): Likewise.
	(cp_parser_omp_for_loop): Likewise.
	(cp_parser_omp_construct): Likewise.
	* semantics.c (finish_transaction_stmt): Likewise.
	(build_transaction_expr): Likewise.

From-SVN: r228560
2015-10-07 06:52:45 +00:00
Jeff Law
00852255e4 [PATCH][PR tree-optimization/67816] Fix jump threading when DOM removes conditionals in jump threading path
PR tree-optimization/67816
	* tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
	from remove_jump_threads_starting_at.  Accept an edge rather than
	a basic block.
	* tree-ssa-threadupdate.c (removed_edges): New hash table.
	(remove_jump_threads_including): Note edges that get removed from
	the CFG for later pruning of jump threading paths including them.
	(thread_through_all_blocks): Remove paths which include edges that
	have been removed.
	* tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
	on each outgoing edges when optimizing away a control statement.

	* gcc.c-torture/compile/pr67816.c: New test.

From-SVN: r228559
2015-10-06 20:25:57 -06:00
Trevor Saunders
165ccc5455 reorg.c: use vec<rtx_insn *> instead of rtx_insn_list for the delay insn list
gcc/ChangeLog:

2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (emit_delay_sequence): Store list of delay slot insns
	in a vector instead of rtx_insn_list.
	(add_to_delay_list): Likewise.
	(delete_from_delay_slot): Likewise.
	(optimize_skip): Likewise.
	(redirect_with_delay_list_safe_p): Likewise.
	(check_annul_list_true_false): Likewise.
	(steal_delay_list_from_target): Likewise.
	(steal_delay_list_from_fallthrough): Likewise.
	(redundant_insn): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(fill_eager_delay_slots): Likewise.
	(relax_delay_slots): Likewise.

From-SVN: r228558
2015-10-07 02:11:17 +00:00
Jason Merrill
8237beb118 re PR c++/67810 (Non-expression recognized as fold expression)
PR c++/67810
	* parser.c (cp_parser_fold_expr_p): Remove.
	(is_binary_op): New.
	(cp_parser_fold_expression): Take LHS as parameter.
	(cp_parser_primary_expression): Call it after parsing an expression.
	(cp_parser_binary_expression, cp_parser_assignment_operator_opt)
	(cp_parser_expression): Ignore an operator followed by '...'.
	(is_binary_op): New.
	* pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
	(tsubst_unary_right_fold, tsubst_binary_right_fold): Handle errors.

From-SVN: r228556
2015-10-06 21:46:54 -04:00
GCC Administrator
437d8c8089 Daily bump.
From-SVN: r228555
2015-10-07 00:16:11 +00:00
Louis Krupp
58864d1c7a [multiple changes]
2015-10-06  Louis Krupp <louis.krupp@zoho.com>
	PR fortran/65766
	* resolve.c (gfc_resolve_substring_charlen): For derived type,
	use typespec of string component when resolving substring length.

2015-10-06  Louis Krupp     <louis.krupp@zoho.com>

	PR fortran/65766
	* gfortran.dg/substr_alloc_string_comp_1.f90: New.

From-SVN: r228551
2015-10-06 23:47:18 +00:00
Ian Lance Taylor
c12df35927 compiler: Record each import as a distinct alias.
This patch introduces the Package_alias class which is a
    finer representation of the different between a package and the
    aliases it is imported under.  Each alias keeps track of the location
    of its import statement and how many times that alias has been used.
    This allows the gofrontend to report when a specific import has not
    been used even if a symbol from the package has been used by another
    import.
    
    Fixes golang/go#12326.
    
    Reviewed-on: https://go-review.googlesource.com/14259

From-SVN: r228550
2015-10-06 21:24:17 +00:00
Sandra Loosemore
ce9f2dc532 nios2.c (nios2_symbol_ref_in_small_data_p): For -mgpopt=local, also exclude unintialized common symbols.
2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
	For -mgpopt=local, also exclude unintialized common symbols.
	* doc/invoke.texi (Nios II Options): Document the change.

From-SVN: r228549
2015-10-06 17:10:15 -04:00
Kugan Vivekanandarajah
64e9a944fb iterators.md (vwcore): Add missing cases for V4HF/V8HF modes.
gcc/ChangeLog:

2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/iterators.md (vwcore): Add missing cases for
	 V4HF/V8HF modes.

gcc/testsuite/ChangeLog:

2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

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

From-SVN: r228547
2015-10-06 21:08:05 +00:00
Aditya Kumar
09fefdad6a move dr->alias_set to a helper structure
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (new_scop): Initialize drs.
                * graphite-poly.h (struct dr_info): New.
                (struct scop): Add drs.
                * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
                (pdr_add_memory_accesses): Same.
                (build_poly_dr): Same.
                (build_alias_set): Same.
                (build_scop_drs): Same.
                (build_pbb_drs): Remove.
                * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
                * tree-data-ref.h (data_reference): Remove alias_set.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228545
2015-10-06 20:50:35 +00:00
Aditya Kumar
790befae61 remove unused struct base_alias_pair
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (free_data_refs_aux): Remove.
                (free_gimple_poly_bb): Do not call free_data_refs_aux.
                * graphite-poly.h (struct base_alias_pair): Remove.
                * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
                base_alias_pair and dr->aux.
                (build_alias_set): Same.
                * tree-data-ref.c (create_data_ref): Initialize alias_set.
                * tree-data-ref.h (data_reference): Add alias_set.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228544
2015-10-06 20:50:29 +00:00
Aditya Kumar
4fd0b1760d remove dead code in computation of alias sets
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
                Do not set PDR_BASE_OBJECT_SET.
                * graphite-poly.h (poly_dr): Same.
                (PDR_BASE_OBJECT_SET): Remove.
                (new_poly_dr): Update decl.
                * graphite-sese-to-poly.c (build_poly_dr): Update call to
                new_poly_dr.
                (write_alias_graph_to_ascii_dimacs): Remove.
                (write_alias_graph_to_ascii_dot): Remove.
                (write_alias_graph_to_ascii_ecc): Remove.
                (dr_same_base_object_p): Remove.
                (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
                code.
                (build_base_obj_set_for_drs): Remove.
                (dump_alias_graphs): Remove.
                (build_scop_drs): Remove dead code.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r228543
2015-10-06 20:50:22 +00:00
Marek Polacek
21ba0ceaa5 c-parser.c (c_parser_statement_after_labels): Use protected_set_expr_location.
* c-parser.c (c_parser_statement_after_labels): Use
	protected_set_expr_location.
	(c_parser_omp_clause_num_gangs): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_num_workers): Likewise.
	(c_parser_omp_clause_vector_length): Likewise.
	(c_parser_omp_clause_num_teams): Likewise.
	(c_parser_omp_clause_thread_limit): Likewise.
	* c-typeck.c (build_c_cast): Likewise.
	(c_cast_expr): Likewise.

From-SVN: r228541
2015-10-06 17:59:10 +00:00