Nathan Sidwell [Thu, 8 Oct 2015 17:31:36 +0000 (17:31 +0000)]
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
Richard Sandiford [Thu, 8 Oct 2015 16:54:37 +0000 (16:54 +0000)]
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
Richard Sandiford [Thu, 8 Oct 2015 16:49:24 +0000 (16:49 +0000)]
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
Martin Jambor [Thu, 8 Oct 2015 16:30:06 +0000 (18:30 +0200)]
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
Jason Merrill [Thu, 8 Oct 2015 16:14:03 +0000 (12:14 -0400)]
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
Jason Merrill [Thu, 8 Oct 2015 16:13:57 +0000 (12:13 -0400)]
format
From-SVN: r228605
Joseph Myers [Thu, 8 Oct 2015 15:55:25 +0000 (16:55 +0100)]
* zh_TW.po: Update.
From-SVN: r228603
Jason Merrill [Thu, 8 Oct 2015 14:42:02 +0000 (10:42 -0400)]
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
Yuri Rumyantsev [Thu, 8 Oct 2015 14:28:53 +0000 (14:28 +0000)]
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
David Edelsohn [Thu, 8 Oct 2015 14:19:57 +0000 (14:19 +0000)]
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
Yuri Rumyantsev [Thu, 8 Oct 2015 13:14:09 +0000 (13:14 +0000)]
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
Marek Polacek [Thu, 8 Oct 2015 10:20:22 +0000 (10:20 +0000)]
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
Tom de Vries [Thu, 8 Oct 2015 09:03:51 +0000 (09:03 +0000)]
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
Andreas Krebbel [Thu, 8 Oct 2015 07:49:41 +0000 (07:49 +0000)]
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
GCC Administrator [Thu, 8 Oct 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228590
Jan Hubicka [Wed, 7 Oct 2015 22:54:35 +0000 (00:54 +0200)]
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
Jeff Law [Wed, 7 Oct 2015 21:56:18 +0000 (15:56 -0600)]
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
Aditya Kumar [Wed, 7 Oct 2015 19:25:35 +0000 (19:25 +0000)]
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
David Edelsohn [Wed, 7 Oct 2015 18:35:23 +0000 (18:35 +0000)]
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
Ian Lance Taylor [Wed, 7 Oct 2015 17:47:45 +0000 (17:47 +0000)]
compiler: Don't make temporaries for constant operands.
Fixes golang/go#12616.
Reviewed-on: https://go-review.googlesource.com/14645
From-SVN: r228578
Uros Bizjak [Wed, 7 Oct 2015 17:42:09 +0000 (19:42 +0200)]
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
Ian Lance Taylor [Wed, 7 Oct 2015 17:22:08 +0000 (17:22 +0000)]
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
James Norris [Wed, 7 Oct 2015 17:09:46 +0000 (17:09 +0000)]
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
Aditya Kumar [Wed, 7 Oct 2015 16:19:09 +0000 (16:19 +0000)]
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
Aditya Kumar [Wed, 7 Oct 2015 15:40:17 +0000 (15:40 +0000)]
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
Marek Polacek [Wed, 7 Oct 2015 14:09:05 +0000 (14:09 +0000)]
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
H.J. Lu [Wed, 7 Oct 2015 13:47:12 +0000 (13:47 +0000)]
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
H.J. Lu [Wed, 7 Oct 2015 13:45:21 +0000 (13:45 +0000)]
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
Andre Vehreschild [Wed, 7 Oct 2015 10:58:46 +0000 (12:58 +0200)]
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
H.J. Lu [Wed, 7 Oct 2015 10:30:12 +0000 (10:30 +0000)]
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
Louis Krupp [Wed, 7 Oct 2015 09:21:58 +0000 (09:21 +0000)]
Check in forgotten test for fortran/65766
From-SVN: r228564
Richard Biener [Wed, 7 Oct 2015 09:04:48 +0000 (09:04 +0000)]
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
Ramana Radhakrishnan [Wed, 7 Oct 2015 08:37:35 +0000 (08:37 +0000)]
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
Richard Sandiford [Wed, 7 Oct 2015 08:09:45 +0000 (08:09 +0000)]
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
Marek Polacek [Wed, 7 Oct 2015 06:52:45 +0000 (06:52 +0000)]
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
Jeff Law [Wed, 7 Oct 2015 02:25:57 +0000 (20:25 -0600)]
[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
Trevor Saunders [Wed, 7 Oct 2015 02:11:17 +0000 (02:11 +0000)]
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
Jason Merrill [Wed, 7 Oct 2015 01:46:54 +0000 (21:46 -0400)]
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
GCC Administrator [Wed, 7 Oct 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228555
Louis Krupp [Tue, 6 Oct 2015 23:47:18 +0000 (23:47 +0000)]
[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
Ian Lance Taylor [Tue, 6 Oct 2015 21:24:17 +0000 (21:24 +0000)]
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
Sandra Loosemore [Tue, 6 Oct 2015 21:10:15 +0000 (17:10 -0400)]
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
Kugan Vivekanandarajah [Tue, 6 Oct 2015 21:08:05 +0000 (21:08 +0000)]
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
Aditya Kumar [Tue, 6 Oct 2015 20:50:35 +0000 (20:50 +0000)]
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
Aditya Kumar [Tue, 6 Oct 2015 20:50:29 +0000 (20:50 +0000)]
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
Aditya Kumar [Tue, 6 Oct 2015 20:50:22 +0000 (20:50 +0000)]
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
Marek Polacek [Tue, 6 Oct 2015 17:59:10 +0000 (17:59 +0000)]
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
Marek Polacek [Tue, 6 Oct 2015 17:56:23 +0000 (17:56 +0000)]
re PR c++/67863 (-Wtautological-compare warns when it shouldn't)
PR c++/67863
* call.c (build_conditional_expr_1): Build the COND_EXPR with
a location.
* c-c++-common/Wtautological-compare-4.c: New test.
From-SVN: r228540
Michael Meissner [Tue, 6 Oct 2015 17:49:17 +0000 (17:49 +0000)]
Remove duplicate target line.
From-SVN: r228539
Michael Meissner [Tue, 6 Oct 2015 17:20:49 +0000 (17:20 +0000)]
re PR target/67808 (LRA ICEs on simple double to long double conversion test case)
[gcc]
2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
Peter Bergner <bergner@vnet.ibm.com>
PR target/67808
* config/rs6000/rs6000.md (extenddftf2): In the expander, only
allow registers, but provide insns for the combiner to create for
loads from memory. Separate VSX code from non-VSX code. For
non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
externaldftf2_internal to externaldftf2_fprs. Reorder constraints
so that registers come before memory operations. Drop support from
converting DFmode to TFmode, if the DFmode value is in a GPR
register.
(extenddftf2_fprs): Likewise.
(extenddftf2_internal): Likewise.
(extenddftf2_vsx): Likewise.
(extendsftf2): In the expander, only allow registers, but provide
insns for the combiner to create for stores and loads.
[gcc/testsuite]
2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
Peter Bergner <bergner@vnet.ibm.com>
PR target/67808
* gcc.target/powerpc/pr67808.c: New test.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r228538
Ramana Radhakrishnan [Tue, 6 Oct 2015 17:00:12 +0000 (17:00 +0000)]
Remove ATTRIBUTE_UNUSED from `decl' parameter of default_elf_asm_named_section
The decl parameter in default_elf_asm_named_section is actually used.
Applied as obvious after an arm-none-eabi build.
Ramana
2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
from the decl parameter.
From-SVN: r228537
Nathan Sidwell [Tue, 6 Oct 2015 16:47:00 +0000 (16:47 +0000)]
re PR middle-end/67861 (coreutils' wc.c:write_counts is miscompiled since commit
7e3a76de7c496449b187c2688d958631cf21a944)
PR 67861
* gimple-fold.c (gimple_fold_builtin): Add break after
BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
From-SVN: r228536
H.J. Lu [Tue, 6 Oct 2015 16:42:13 +0000 (16:42 +0000)]
Rename scop->ctx to isl_context
* graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
to scop->isl_context.
From-SVN: r228535
Eric Botcazou [Tue, 6 Oct 2015 16:39:00 +0000 (16:39 +0000)]
arm.c (arm_emit_probe_stack_range): Adjust comment.
* config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
(output_probe_stack_range): Rotate the loop and simplify.
(thumb1_expand_prologue): Tweak sorry message.
* config/arm/arm.md (probe_stack): Use bare string.
From-SVN: r228534
Nick Clifton [Tue, 6 Oct 2015 16:36:49 +0000 (16:36 +0000)]
* config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
From-SVN: r228533
Nick Clifton [Tue, 6 Oct 2015 16:26:22 +0000 (16:26 +0000)]
gcc * config/msp430/msp430.c (ATTR_NOINIT): New constant.
(ATTR_PERSIST): New constant.
(msp430_data_attr): New function - verifies an attribute that only
applies to variables.
(msp430_attributes): Add noinit and persistent attributes.
(noinit_section): New variable.
(presis_section): New variable.
(TARGET_ASM_INIT_SECTIONS): Define.
(msp430_init_sections): New function - initialises the noinit and
persist section variables.
(msp430_select_section): Add support for noinit and persist
attributes.
(msp430_section_type_flags): Likewise.
* doc/extend.texi: Document the reent, critical, wakeup, noinit
and persistent attributes.
tests * gcc.target/msp430: New directory.
* gcc.target/msp430/msp430.exp: New file. Runs MSP430 specific
tests.
* gcc.target/msp430/data-attributes.c: New file. Checks the
noinit and persistent data attributes.
From-SVN: r228531
Aditya Kumar [Tue, 6 Oct 2015 15:56:15 +0000 (15:56 +0000)]
remove dead code used by the old cloog scheduler
2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-dependences.c (scop_get_transformed_schedule): Remove.
(no_violations): Remove.
(subtract_commutative_associative_deps): Remove.
(compute_deps): Do not call subtract_commutative_associative_deps.
(transform_is_safe): Remove.
(graphite_legal_transform): Remove.
* graphite-poly.h (graphite_legal_transform): Remove.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228530
Aditya Kumar [Tue, 6 Oct 2015 15:56:09 +0000 (15:56 +0000)]
Early exit to avoid redundant computations
Analyze only those bbs which are outside the region for uses which might be
defined inside the region. This is intended to improve the compile time. This
algorithm may be further improved by only looking at the successors of region as
these regions are sese. Added FIXMEs to make this improvement in future.
Passes regtest and bootstrap on x86_64.
gcc/ChangeLog:
2015-10-05 Aditya Kumar <hiraditya@msn.com>
* graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
which are in this region are passed so gcc_assert and remove redundant
computation.
* sese.c (sese_build_liveouts): Pass only those bbs which are not in region.
(sese_bad_liveouts_use): Only BBs which are not in region are passed so
gcc_assert on that and remove unnecessary computation.
(sese_build_liveouts_use): Same.
From-SVN: r228529
Aditya Kumar [Tue, 6 Oct 2015 15:56:03 +0000 (15:56 +0000)]
Move declarations, assign types, renaming.
1. Move declarations near the assignment/usage.
2. Assign type to members which were void*.
3. Rename scop->context to scop::param_context, and scop::ctx to
scop::isl_context
No functional changes intended. Passes regtest and bootstrap.
gcc/ChangeLog:
2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
* graphite-dependences.c (scop_get_reads): Renamed scop->context to scop->param_context.
(scop_get_must_writes): Same.
(scop_get_may_writes): Same.
(scop_get_original_schedule): Same.
(scop_get_transformed_schedule): Same.
(subtract_commutative_associative_deps): Same.
* graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
(generate_isl_context): Same.
(generate_isl_schedule): Same.
(scop_to_isl_ast): Same.
(graphite_regenerate_ast_isl): Same.
* graphite-optimize-isl.c (scop_get_domains): Same.
(optimize_isl): Renamed scop->context to scop->param_context.
* graphite-poly.c (new_poly_bb): Change the type of argument to gimple_poly_bb_p.
(new_scop): Renamed scop->context to scop->param_context.
(free_scop): Same.
(print_scop_context): Same.
* graphite-poly.h (new_poly_dr): Change the type of argument from void* to data_reference_p.
(struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
(new_poly_bb): Change the type of argument from void* to gimple_poly_bb_p.
(pbb_set_black_box): Same.
(struct scop): Rename context to param_context, ctx to isl_context.
* graphite-scop-detection.c (scop_detection::build_scop_bbs_1): Move declarations closer to assignment.
(find_params_in_bb): Same.
(find_scop_parameters): Same.
* graphite-sese-to-poly.c (unsigned ssa_name_version_typesize): Global to be used for statement IDs.
(isl_id_for_pbb): Use ssa_name_version_typesize.
(simple_copy_phi_p): Move declarations closer to assignment.
(build_pbb_scattering_polyhedrons): Same.
(build_scop_scattering): Same.
(isl_id_for_ssa_name): Same.
(extract_affine_name): Same.
(extract_affine_int): Same.
(extract_affine): Same.
(set_scop_parameter_dim): Use renamed member.
(build_loop_iteration_domains): Same.
(add_param_constraints): Same.
(build_scop_iteration_domain): Same.
(pdr_add_data_dimensions): Same.
(build_poly_dr): Same.
(build_scop_drs): Move declarations closer to assignment.
(analyze_drs_in_stmts): Same.
(insert_out_of_ssa_copy): Same.
(insert_out_of_ssa_copy_on_edge): Same.
(propagate_expr_outside_region): Same.
(rewrite_phi_out_of_ssa): Same.
(rewrite_degenerate_phi): Same.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_cross_bb_scalar_dependence): Same.
(handle_scalar_deps_crossing_scop_limits): Same.
(rewrite_cross_bb_scalar_deps): Same.
* graphite.c (graphite_transform_loops): Use renamed member.
From-SVN: r228528
Uros Bizjak [Tue, 6 Oct 2015 15:31:11 +0000 (17:31 +0200)]
re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228527
Ramana Radhakrishnan [Tue, 6 Oct 2015 15:09:43 +0000 (15:09 +0000)]
Fix PR c/65345 for AArch64
2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR c/65345
* config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
Use create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228526
Alexander Fomin [Tue, 6 Oct 2015 13:49:30 +0000 (13:49 +0000)]
AVX-512. Avoid upper-bank registers when splitting vec_extract_lo instruction.
gcc/
PR target/67849
* config/i386/sse.md (define_split vec_select/V8FI): Restrict
split for upper-bank registers when target does not support
AVX512VL.
(define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
split when target does not support AVX512VL.
From-SVN: r228525
David Edelsohn [Tue, 6 Oct 2015 13:46:34 +0000 (13:46 +0000)]
re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
Adjust to use create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228524
Kirill Yukhin [Tue, 6 Oct 2015 13:46:22 +0000 (13:46 +0000)]
builtin_target.c: Fix AVX-512VBMI detection.
gcc/testsuite/
* gcc.target/i386/builtin_target.c: Fix AVX-512VBMI detection.
From-SVN: r228523
Nick Clifton [Tue, 6 Oct 2015 13:42:33 +0000 (13:42 +0000)]
rl78.c (rl78_rtx_costs): Improve cost estimates for multiplication.
* config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
multiplication.
From-SVN: r228521
Venkataramanan Kumar [Tue, 6 Oct 2015 12:48:41 +0000 (12:48 +0000)]
AMD znver1 enablement.
2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
AMD znver1 enablement.
* config.gcc (i[34567]86-*-linux* | ...): Add znver1.
(case ${target}): Add znver1.
* config/i386/cpuid.h(bit_CLZERO): Define.
* config/i386/driver-i386.c: (host_detect_local_cpu): Let
-march=native recognize znver1 processors.
* config/i386/i386-c.c (ix86_target_macros_internal): Add
znver1, clzero def_and_undef.
* config/i386/i386.c (struct processor_costs znver1_cost): New.
(m_znver1): New definition.
(m_AMD_MULTIPLE): Includes m_znver1.
(processor_target_table): Add znver1 entry.
(ix86_target_string) : Add clzero entry.
(static const char *const cpu_names): Add znver1 entry.
(ix86_option_override_internal): Add znver1 instruction sets.
(PTA_CLZERO) : New definition.
(ix86_option_override_internal): Handle new clzerooption.
(ix86_issue_rate): Add znver1.
(ix86_adjust_cost): Add znver1.
(ia32_multipass_dfa_lookahead): Add znver1.
(has_dispatch): Add znver1.
* config/i386/i386.h (TARGET_znver1): New definition.
(TARGET_CLZERO): Define.
(TARGET_CLZERO_P): Define.
(struct ix86_size_cost): Add TARGET_ZNVER1.
(enum processor_type): Add PROCESSOR_znver1.
* config/i386/i386.md (define_attr "cpu"): Add znver1.
(set_attr znver1_decode): New definitions for znver1.
* config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
(mclzero): New.
* config/i386/mmx.md (set_attr znver1_decode): New definitions
for znver1.
* config/i386/sse.md (set_attr znver1_decode): Likewise.
* config/i386/x86-tune.def: Add znver1 tunings.
* config/i386/znver1.md: Introduce znver1 cpu and include new md file.
* gcc/doc/invoke.texi: Add details about znver1
From-SVN: r228520
Richard Biener [Tue, 6 Oct 2015 12:34:15 +0000 (12:34 +0000)]
re PR tree-optimization/67859 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu)
2015-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/67859
* tree-ssa-pre.c (create_expression_by_pieces): Properly
discard not inserted stmts.
* gcc.dg/torture/pr67859.c: New testcase.
From-SVN: r228519
Jonathan Wakely [Tue, 6 Oct 2015 10:27:57 +0000 (11:27 +0100)]
Update template instantiation documentation
* doc/extend.texi (Template Instantiation): Reorder options and
de-emphasize -frepo.
* doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
example instead of -frepo.
From-SVN: r228518
Eric Botcazou [Tue, 6 Oct 2015 09:14:48 +0000 (09:14 +0000)]
re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
* config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
use create_tmp_var_raw rather than create_tmp_var.
From-SVN: r228516
Kirill Yukhin [Tue, 6 Oct 2015 07:55:09 +0000 (07:55 +0000)]
builtin_target.c: Fix AVX-512VBMI detection.
gcc/testsuite/
* gcc.target/i386/builtin_target.c: Fix AVX-512VBMI detection.
From-SVN: r228515
Richard Biener [Tue, 6 Oct 2015 07:52:03 +0000 (07:52 +0000)]
tree-vectorizer.h (vec_info): New base class for...
2015-10-06 Richard Biener <rguenther@suse.de>
* tree-vectorizer.h (vec_info): New base class for...
(_loop_vec_info): ... this and ...
(_bb_vec_info): ... this.
(vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
vect_analyze_data_ref_accesses, vect_analyze_data_refs,
vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
vect_destroy_datarefs): Adjust interface to take a vec_info *
rather than both a loop_vec_info and a bb_vec_info argument.
* tree-vect-data-refs.c (vect_compute_data_refs_alignment,
vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
accordingly.
* tree-vect-loop.c (new_loop_vec_info): Initialize base class.
(destroy_loop_vec_info, vect_analyze_loop_2,
vect_is_simple_reduction_1, get_initial_def_for_induction,
vect_create_epilog_for_reduction, vectorizable_reduction,
vectorizable_live_operation, vect_transform_loop): Adjust.
* tree-vect-patterns.c (type_conversion_p,
vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
check_bool_pattern, vect_recog_bool_pattern,
vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
* tree-vect-slp.c (vect_get_and_check_slp_defs,
vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
(new_bb_vec_info): Initialize base classs.
* tree-vect-stmts.c (record_stmt_cost, process_use,
vect_get_vec_def_for_operand, vect_finish_stmt_generation,
vectorizable_mask_load_store, vectorizable_call,
vectorizable_simd_clone_call, vectorizable_conversion,
vectorizable_assignment, vectorizable_shift,
vectorizable_operation, vectorizable_store,
vectorizable_load, vect_is_simple_cond, vectorizable_condition,
new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
* tree-vectorizer.c (vect_destroy_datarefs): Likewise.
From-SVN: r228514
Kirill Yukhin [Tue, 6 Oct 2015 07:29:05 +0000 (07:29 +0000)]
builtin_target.c: Add check for AES and PCLMUL.
gcc/testsuite/
* gcc.target/i386/builtin_target.c: Add check for AES and PCLMUL.
From-SVN: r228513
GCC Administrator [Tue, 6 Oct 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228510
Kaz Kojima [Mon, 5 Oct 2015 22:18:05 +0000 (22:18 +0000)]
Fix PR65345 in SH backend
Adjust to use create_tmp_var_raw rather than create_tmp_var at
sh_atomic_assign_expand_fenv.
From-SVN: r228502
Paolo Carlini [Mon, 5 Oct 2015 21:43:26 +0000 (21:43 +0000)]
re PR c++/53856 (Default argument allowed on member defined outside of class template)
/cp
2015-10-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53856
* pt.c (check_default_tmpl_args): Per [temp.param]/9, do not
reject default template arguments in out of class definitions
of members of non-template classes.
/testsuite
2015-10-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53856
* g++.dg/template/defarg19.C: New.
* g++.dg/template/defarg20.C: Likewise.
From-SVN: r228501
Richard Sandiford [Mon, 5 Oct 2015 19:46:53 +0000 (19:46 +0000)]
Remove diffstat from ChangeLog.
From-SVN: r228500
Ian Lance Taylor [Mon, 5 Oct 2015 17:59:40 +0000 (17:59 +0000)]
lex: Update unicode letters table to Unicode 8.0.0.
Fixes golang/go#12322.
Reviewed-on: https://go-review.googlesource.com/13985
From-SVN: r228497
Marek Polacek [Mon, 5 Oct 2015 16:33:16 +0000 (16:33 +0000)]
* tree-ssa-loop-im.c
(move_computations_dom_walker::before_dom_children): Don't set
SSA_NAME_ANTI_RANGE_P.
* tree-ssa-phiopt.c (value_replacement): Likewise.
From-SVN: r228496
Aditya Kumar [Mon, 5 Oct 2015 16:03:21 +0000 (16:03 +0000)]
increase the number of parameters
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228494
Aditya Kumar [Mon, 5 Oct 2015 16:03:09 +0000 (16:03 +0000)]
move param detection to scop detection
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228493
Aditya Kumar [Mon, 5 Oct 2015 16:02:59 +0000 (16:02 +0000)]
move scop detection related stuff to graphite-scop-detection.c
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228492
Martin Jambor [Mon, 5 Oct 2015 15:55:54 +0000 (17:55 +0200)]
IPA-CP Alignment lattice cleanup
2015-10-05 Martin Jambor <mjambor@suse.cz>
Jan Hubicka <hubicka@ucw.cz>
* ipa-cp.c (ipcp_alignment_lattice): New type.
(ipcp_param_lattices): Use the above to represent alignment.
(ipcp_alignment_lattice::print): New function.
(print_all_lattices): Use it to print alignment information.
(ipcp_alignment_lattice::top_p): New function.
(ipcp_alignment_lattice::bottom_p): Likewise.
(ipcp_alignment_lattice::set_to_bottom): Likewise.
(ipcp_alignment_lattice::meet_with_1): Likewise.
(ipcp_alignment_lattice::meet_with): Two new overloaded functions.
(set_all_contains_variable): Use set_to_bottom of alignment lattice.
(initialize_node_lattices): Likewise.
(propagate_alignment_accross_jump_function): Work with the new class
for alignment lattices.
(propagate_constants_accross_call): Pass only the alignment lattice to
propagate_alignment_accross_jump_function.
(ipcp_store_alignment_results): Work with the new class for alignment
lattices.
testsuite/
* gcc.dg/ipa/propalign-4.c: New test.
* gcc.dg/ipa/propalign-5.c: Likewise.
Co-Authored-By: Jan Hubicka <hubicka@ucw.cz>
From-SVN: r228491
Marek Polacek [Mon, 5 Oct 2015 15:28:06 +0000 (15:28 +0000)]
re PR middle-end/67821 (ICE in duplicate_ssa_name_range_info)
PR tree-optimization/67821
* tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
* gcc.dg/torture/pr67821-2.c: New test.
* gcc.dg/torture/pr67821.c: New test.
From-SVN: r228490
Jason Merrill [Mon, 5 Oct 2015 15:21:15 +0000 (11:21 -0400)]
Move runtime transactional memory tests to libitm testsute.
From-SVN: r228489
Thomas Schwinge [Mon, 5 Oct 2015 14:07:50 +0000 (16:07 +0200)]
[PR other/65021] mkoffloads -save-temps handling, and cleanup cleanup
gcc/
PR other/65021
* config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
function to...
(mkoffload_cleanup): ... this. Adjust all users.
(maybe_unlink): Look at save_temps and verbose flags instead of
debug flag.
(main): Parse "-save-temps" flag.
(generate_target_descr_file, generate_target_offloadend_file)
(generate_host_descr_file, prepare_target_image): Pass it on.
* config/nvptx/mkoffload.c (tool_cleanup): Implement.
(mkoffload_cleanup): New function.
(maybe_unlink): Look at save_temps and verbose flags instead of
debug flag.
(main): Instead of calling utils_cleanup, register atexit handler
for mkoffload_cleanup.
(main): Parse "-save-temps" flag.
(compile_native, main): Pass it on.
* lto-wrapper.c (compile_offload_image): Likewise.
From-SVN: r228488
Trevor Saunders [Mon, 5 Oct 2015 13:55:08 +0000 (13:55 +0000)]
make more gimple_x_ptr accessors const correct
gcc/ChangeLog:
2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gimple.h (gimple_op_ptr): Require a non const gimple *.
(gimple_assign_lhs_ptr): Likewise.
(gimple_assign_rhs1_ptr): Likewise.
(gimple_assign_rhs2_ptr): Likewise.
(gimple_assign_rhs3_ptr): Likewise.
(gimple_call_lhs_ptr): Likewise.
(gimple_call_fn_ptr): Likewise.
(gimple_call_chain_ptr): Likewise.
(gimple_call_arg_ptr): Likewise.
(gimple_cond_lhs_ptr): Likewise.
(gimple_cond_rhs_ptr): Likewise.
(gimple_switch_index_ptr): Likewise.
(gimple_return_retval_ptr): Likewise.
From-SVN: r228487
Trevor Saunders [Mon, 5 Oct 2015 13:54:50 +0000 (13:54 +0000)]
remove unused gasm accessors
gcc/ChangeLog:
2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gimple.h (gimple_asm_input_op_ptr): Remove.
(gimple_asm_output_op_ptr): Likewise.
From-SVN: r228486
Trevor Saunders [Mon, 5 Oct 2015 13:54:33 +0000 (13:54 +0000)]
remove gimple_location_ptr ()
gcc/ChangeLog:
2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gimple.h (gimple_location_ptr): Remove.
* tree-vrp.c (check_all_array_refs): Adjust.
From-SVN: r228485
Trevor Saunders [Mon, 5 Oct 2015 13:54:11 +0000 (13:54 +0000)]
make build_uses store tree * instead of tree
gcc/ChangeLog:
2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree-ssa-operands.c (build_uses): store tree * instead of
tree.
(finalize_ssa_uses): Adjust.
(append_use): Likewise.
(verify_ssa_operands): Likewise.
From-SVN: r228484
Richard Sandiford [Mon, 5 Oct 2015 13:37:15 +0000 (13:37 +0000)]
Add a build_real_truncate helper function
...which simplifies the match.pd patterns I'm about to add.
Bootstrapped & regression-tested on x86_64-linux-gnu.
gcc/
* real.h (build_real_truncate): Declare.
* tree.c (build_real_truncate): New function.
(strip_float_extensions): Use it.
* builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
(fold_builtin_hypot, fold_builtin_pow): Likewise.
* match.pd: Likewise.
From-SVN: r228483
James Greenhalgh [Mon, 5 Oct 2015 13:18:08 +0000 (13:18 +0000)]
[AArch64] Fix output assembly bug under TLSIE ILP32
2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
From-SVN: r228482
Kirill Yukhin [Mon, 5 Oct 2015 13:16:07 +0000 (13:16 +0000)]
cpuinfo.c (get_intel_cpu): Detect "skylake-avx512".
libgcc/
* config/i386/cpuinfo.c (get_intel_cpu): Detect "skylake-avx512".
gcc/testsuite/
* gcc.target/i386/builtin_target.c: Add check for "skylake-avx512".
From-SVN: r228481
Christian Bruel [Mon, 5 Oct 2015 11:59:27 +0000 (13:59 +0200)]
Cleanup directives.
From-SVN: r228479
Richard Sandiford [Mon, 5 Oct 2015 11:37:49 +0000 (11:37 +0000)]
Remove REAL_VALUE_FROM_CONST_DOUBLE
To maintain symmetry after the previous removal of
CONST_DOUBLE_FROM_REAL_VALUE, this patch also gets rid of
REAL_VALUE_FROM_CONST_DOUBLE. All the macro did was copy the
contents of CONST_DOUBLE_REAL_VALUE into a temporary real_value
structure. In many cases there was no need for this temporary
and we could simply use the CONST_DOUBLE_REAL_VALUE directly.
For that reason this patch is less automatic than the others.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/
* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
* config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
(aarch64_print_operand, aarch64_float_const_representable_p)
(aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
instead of REAL_VALUE_FROM_CONST_DOUBLE.
* config/arc/arc.c (arc_print_operand): Likewise.
* config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
(neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
(vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
Likewise.
* config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
(consttable_16): Likewise.
* config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
* config/avr/avr.c (avr_print_operand): Likewise.
* config/bfin/bfin.md: Likewise (in a define_split).
* config/c6x/c6x.md: Likewise (in a define_split).
* config/cr16/cr16.c (cr16_const_double_ok): Likewise.
(cr16_print_operand): Likewise.
* config/cris/cris.c (cris_print_operand): Likewise.
* config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
* config/fr30/fr30.c (fr30_print_operand): Likewise.
(fr30_const_double_is_zero): Likewise.
* config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
* config/frv/frv.md: Likewise (in a define_split).
* config/frv/predicates.md (int_2word_operand): Likewise.
* config/h8300/h8300.c (h8300_print_operand): Likewise.
* config/i386/i386.c (standard_80387_constant_p): Likewise.
(ix86_print_operand, ix86_split_to_parts): Likewise.
* config/i386/i386.md: Likewise (in a define_split).
* config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
* config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
* config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
* config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
(print_operand): Likewise.
* config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
* config/mep/mep.md: Likewise (in define_split).
* config/microblaze/microblaze.c (microblaze_const_double_ok)
(print_operand): Likewise.
* config/mips/mips.md (consttable_float): Likewise.
* config/mmix/mmix.c (mmix_intval): Likewise.
* config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
* config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
* config/pa/pa.c (pa_singlemove_string): Likewise.
* config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
(pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
* config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
(output_toc): Likewise.
* config/rs6000/rs6000.md: Likewise (in define_splits).
* config/rx/rx.c (rx_print_operand): Likewise.
* config/s390/s390.c (s390_output_pool_entry): Likewise.
* config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
* config/sh/sh.md (consttable_sf, consttable_df): Likewise
(and also in define_splits).
* config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
(fp_high_losum_p): Likewise.
* config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
(*movsf_high): Likewise.
* config/spu/spu.c (const_double_to_hwint): Likewise.
* config/v850/v850.c (const_double_split): Likewise.
* config/vax/vax.c (vax_float_literal): Likewise.
* config/visium/visium.c (visium_expand_copysign): Likewise.
* config/visium/visium.md: Likewise (in define_split).
* config/xtensa/predicates.md (const_float_1_operand): Likewise.
* config/xtensa/xtensa.c (print_operand): Likewise.
(xtensa_output_literal): Likewise.
* cprop.c (implicit_set_cond_p): Likewise.
* dwarf2out.c (insert_float): Likewise.
* expmed.c (expand_mult, make_tree): Likewise.
* expr.c (compress_float_constant): Likewise.
* rtlanal.c (split_double): Likewise.
* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
(simplify_const_unary_operation, simplify_binary_operation_1)
(simplify_const_binary_operation): Likewise.
(simplify_const_relational_operation): Likewise.
* varasm.c (output_constant_pool_2): Likewise.
From-SVN: r228478
Richard Sandiford [Mon, 5 Oct 2015 11:36:08 +0000 (11:36 +0000)]
Remove remaining uses of CONST_DOUBLE_FROM_REAL_VALUE
This patch replaces all uses of CONST_DOUBLE_FROM_REAL_VALUE
with the already-existing const_double_from_real_value.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/
* real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
instead of CONST_DOUBLE_FROM_REAL_VALUE.
(CONST_DOUBLE_FROM_REAL_VALUE): Delete.
* config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
instead of CONST_DOUBLE_FROM_REAL_VALUE.
* config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
* config/i386/i386.c (standard_80387_constant_rtx): Likewise.
(ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
(ix86_emit_swsqrtsf): Likewise.
* config/ia64/ia64.c (ia64_expand_builtin): Likewise.
* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
(fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
* config/pa/pa.c (pa_expand_builtin): Likewise.
* config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
(rs6000_scale_v2df): Likewise.
* config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
* config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
(fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
* config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
(vec_ctul): Likewise.
* config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
* config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
* config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
* cse.c (fold_rtx): Likewise.
* emit-rtl.c (immed_double_const): Likewise (in comments).
(init_emit_once): Likewise.
* expr.c (compress_float_constant, expand_expr_real_1)
(const_vector_from_tree): Likewise.
* optabs.c (expand_float, expand_fix): Likewise.
* reg-stack.c (reg_to_stack): Likewise.
* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
(simplify_const_unary_operation, simplify_binary_operation_1)
(simplify_const_binary_operation, simplify_relational_operation)
(simplify_immed_subreg): Likewise.
From-SVN: r228477
Richard Sandiford [Mon, 5 Oct 2015 11:35:07 +0000 (11:35 +0000)]
Remove remaining uses of REAL_ARITHMETIC
This patch replaces all remaining uses of the old target macro
REAL_ARITHMETIC with calls to the (now generic) real_arithmetic
function.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/ada/
* gcc-interface/trans.c (convert_with_check): Use real_arithmetic
instead of REAL_ARITHMETIC.
gcc/
* doc/tm.texi.in (REAL_ARITHMETIC): Delete.
* doc/tm.texi: Regenerate.
* real.h (REAL_ARITHMETIC): Delete.
* config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
(ix86_expand_round_sse4): Use real_arithmetic instead of
REAL_ARITHMETIC.
* config/i386/sse.md (round<mode>2): Likewise.
* rtl.h (rtx_to_tree_code): Likewise (in comment).
* explow.c (rtx_to_tree_code): Likewise (in comment).
* match.pd: Likewise.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
* tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
(expand_pow_as_sqrts): Likewise.
* tree-pretty-print.c (dump_generic_node): Remove code that
was conditional on REAL_ARITHMETIC being undefined.
From-SVN: r228476
Richard Sandiford [Mon, 5 Oct 2015 11:32:25 +0000 (11:32 +0000)]
Replace REAL_VALUES_LESS with real_less
This patch continues the removal of real-related macros by
replacing REAL_VALUES_LESS with real_less.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/ada/
* gcc-interface/trans.c (convert_with_check): Use real_less instead
of REAL_VALUES_LESS.
gcc/
* doc/tm.texi.in (REAL_VALUES_LESS): Delete.
* doc/tm.texi: Regenerate.
* real.h (real_less): Declare.
(REAL_VALUES_LESS): Delete.
* real.c (real_less): New function.
(real_compare): Use it.
* config/m68k/m68k.c (floating_exact_log2): Use real_less instead
of REAL_VALUES_LESS.
* config/microblaze/microblaze.c (microblaze_const_double_ok):
Likewise.
* fold-const.c (fold_convert_const_int_from_real): Likewise.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
(simplify_const_relational_operation): Likewise.
* tree-call-cdce.c (check_pow): Likewise.
(gen_conditions_for_pow_cst_base): Likewise.
From-SVN: r228475
Richard Sandiford [Mon, 5 Oct 2015 11:30:52 +0000 (11:30 +0000)]
Remove remaining uses of REAL_VALUES_IDENTICAL
This patch continues the removal of real-related macros.
We already had both the old-style REAL_VALUES_IDENTICAL and the
new-style real_identical, so this patch replaces all remaining
uses of the former with the latter.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/
* real.h (REAL_VALUES_IDENTICAL): Delete.
* config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
instead of REAL_VALUES_IDENTICAL.
* fold-const.c (operand_equal_p): Likewise.
* ipa-icf.c (sem_variable::equals): Likewise.
* tree-complex.c (some_nonzerop): Likewise.
(expand_complex_multiplication): Likewise.
* tree.c (simple_cst_equal): Likewise.
* varasm.c (compare_constant): Likewise.
---
gcc/config/m68k/m68k.c | 5 ++---
gcc/fold-const.c | 3 +--
gcc/ipa-icf.c | 4 ++--
gcc/real.h | 1 -
gcc/tree-complex.c | 4 ++--
gcc/tree.c | 2 +-
gcc/varasm.c | 2 +-
7 files changed, 9 insertions(+), 12 deletions(-)
From-SVN: r228474
Richard Sandiford [Mon, 5 Oct 2015 11:29:35 +0000 (11:29 +0000)]
Replace REAL_VALUES_EQUAL with real_equal
Richard B suggested we should replace dconsthalf etc. with
dconst<1, 2> (). When I tried that, the extra comma caused problems
with some lingering uses of the old target macros for handling reals
(e.g. REAL_ARITHMETIC instead of real_arithmetic), since the constant
was then treated as two macro parameters. It would have been possible
to add an extra level of brackets to avoid this, but I thought I might
as well take the opportunity to remove the macros instead. (Note that
I'm only removing macros that caused a problem directly, or are closely
related to ones that did.)
This first patch replaces REAL_VALUES_EQUAL with a real_equal function.
The prototype is the same as for real_identical, which has already
undergone a half-transition in this direction.
Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by
building one target per CPU directory and checking that there were
no new warnings and no changes in testsuite output at -O2.
gcc/c-family/
* c-lex.c (interpret_float): Use real_equal instead of
REAL_VALUES_EQUAL.
gcc/c/
* c-typeck.c (c_tree_equal): Use real_equal instead of
REAL_VALUES_EQUAL.
gcc/cp/
* tree.c (cp_tree_equal): Use real_equal instead of
REAL_VALUES_EQUAL.
gcc/
* real.h (real_equal): Declare.
(REAL_VALUES_EQUAL): Delete.
* real.c (real_equal): New function.
(real_compare): Use it.
* doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
* doc/tm.texi: Regenerate.
* builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
real_equal instead of REAL_VALUES_EQUAL.
* config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
* config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
(fp_const_from_val): Likewise.
* config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
* config/m68k/m68k.c (standard_68881_constant_p): Likewise.
(floating_exact_log2): Likewise.
* config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
* config/vax/vax.c (vax_float_literal): Likewise.
* config/xtensa/predicates.md (const_float_1_operand): Likewise.
* cprop.c (implicit_set_cond_p): Likewise.
* expmed.c (expand_mult): Likewise.
* fold-const.c (const_binop): Likewise.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
(simplify_const_binary_operation): Likewise.
(simplify_const_relational_operation): Likewise.
* tree-call-cdce.c (check_pow): Likewise.
(gen_conditions_for_pow_cst_base): Likewise.
* tree-inline.c (estimate_num_insns): Likewise.
* tree-ssa-dom.c (record_equality): Likewise.
* tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
(gimple_expand_builtin_pow): Likewise.
(pass_optimize_widening_mul::execute): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
* tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
---
gcc/builtins.c | 14 +++++++-------
gcc/c-family/c-lex.c | 6 +++---
gcc/c/c-typeck.c | 2 +-
gcc/config/aarch64/aarch64.c | 2 +-
gcc/config/arm/arm.c | 6 +++---
gcc/config/fr30/fr30.c | 2 +-
gcc/config/m68k/m68k.c | 6 +++---
gcc/config/sh/sh.c | 4 ++--
gcc/config/vax/vax.c | 4 ++--
gcc/config/xtensa/predicates.md | 2 +-
gcc/cp/tree.c | 2 +-
gcc/cprop.c | 2 +-
gcc/doc/tm.texi | 7 -------
gcc/doc/tm.texi.in | 7 -------
gcc/expmed.c | 2 +-
gcc/fold-const.c | 2 +-
gcc/real.c | 10 +++++++++-
gcc/real.h | 4 ++--
gcc/simplify-rtx.c | 16 ++++++++--------
gcc/tree-call-cdce.c | 4 ++--
gcc/tree-inline.c | 5 +++--
gcc/tree-ssa-dom.c | 2 +-
gcc/tree-ssa-math-opts.c | 16 ++++++++--------
gcc/tree-ssa-uncprop.c | 2 +-
gcc/tree-vect-patterns.c | 4 ++--
gcc/tree.c | 6 +++---
26 files changed, 67 insertions(+), 72 deletions(-)
From-SVN: r228473
Richard Biener [Mon, 5 Oct 2015 11:15:10 +0000 (11:15 +0000)]
re PR ipa/67783 (quadratic time consumption in IPA inlining with -O1 and higher)
2015-10-05 Richard Biener <rguenther@suse.de>
PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Only
consider loop header PHI defs as IVs.
From-SVN: r228472