gcc.git
10 years agore PR tree-optimization/59221 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
Jeff Law [Thu, 21 Nov 2013 19:45:16 +0000 (12:45 -0700)]
re PR tree-optimization/59221 (wrong code at -O2 and -O3 on x86_64-linux-gnu)

PR tree-optimization/59221
* tree-ssa-threadedge.c (thread_across_edge): Properly manage
temporary equivalences when threading through joiner blocks.

PR tree-optimization/59221
* gcc.c-torture/execute/pr59221.c: New test.

From-SVN: r205229

10 years agore PR rtl-optimization/55950 (Invalid sqrt constant propagation with -frounding-mode)
Joseph Myers [Thu, 21 Nov 2013 16:20:28 +0000 (16:20 +0000)]
re PR rtl-optimization/55950 (Invalid sqrt constant propagation with -frounding-mode)

PR rtl-optimization/55950
* real.c (real_sqrt): Remove function.
* real.h (real_sqrt): Remove prototype.
* simplify-rtx.c (simplify_const_unary_operation): Do not fold
SQRT using real_sqrt.

From-SVN: r205223

10 years agore PR tree-optimization/59058 (wrong code at -O3 on x86_64-linux-gnu (affecting gcc...
Richard Biener [Thu, 21 Nov 2013 14:09:15 +0000 (14:09 +0000)]
re PR tree-optimization/59058 (wrong code at -O3 on x86_64-linux-gnu (affecting gcc 4.6 to trunk))

2013-11-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59058
* tree-scalar-evolution.h (number_of_exit_cond_executions): Remove.
* tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise.
* tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ...
(LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this.
(NITERS_KNOWN_P): Fold into ...
(LOOP_VINFO_NITERS_KNOWN_P): ... this.
(LOOP_VINFO_PEELING_FOR_NITER): Add.
* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
(vect_do_peeling_for_alignment): Re-use precomputed niter
instead of re-emitting it.
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
* tree-vect-loop.c (vect_get_loop_niters): Use
number_of_latch_executions.
(new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER.
(vect_analyze_loop_form): Simplify.
(vect_analyze_loop_operations): Move epilogue peeling code ...
(vect_analyze_loop_2): ... here and adjust it to compute
LOOP_VINFO_PEELING_FOR_NITER.
(vect_estimate_min_profitable_iters): Use
LOOP_VINFO_PEELING_FOR_ALIGNMENT.
(vect_build_loop_niters): Emit on the preheader.
(vect_generate_tmps_on_preheader): Likewise.
(vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead
of recomputing it.  Adjust.

From-SVN: r205217

10 years agotree-vectorizer.h (LOC, [...]): Remove wrappers and fix all users.
Richard Biener [Thu, 21 Nov 2013 13:57:40 +0000 (13:57 +0000)]
tree-vectorizer.h (LOC, [...]): Remove wrappers and fix all users.

2013-11-21  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
LOC_LINE): Remove wrappers and fix all users.
(struct _loop_vec_info): Remove loop_line_number member.
(LOOP_VINFO_LOC): Remove.
* tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c,
tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE
and LOC_LINE.

From-SVN: r205216

10 years agostring_view: Rep empty string with unit-length static constexpr string.
Edward Smith-Rowland [Thu, 21 Nov 2013 12:30:37 +0000 (12:30 +0000)]
string_view: Rep empty string with unit-length static constexpr string.

2013-11-21  Edward Smith-Rowland  <3dw4rd@verizon.net>

* include/experimental/string_view: Rep empty string with unit-length
static constexpr string. Uncomment _GLIBCXX_VISIBILITY. Enforce
invariant of no nullptr string pointer.
* include/experimental/string_view.tcc: Ditto.
* testsuite/experimental/string_view/cons/char/1.cc: data() for empty
string_view is no longer nullptr.
* testsuite/experimental/string_view/cons/wchar_t/1.cc: Ditto.
* testsuite/experimental/string_view/operations/data/char/1.cc: Ditto.
* testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
Ditto.

From-SVN: r205213

10 years agoImplement __gnu_cxx::hypergeometric_distribution.
Edward Smith-Rowland [Thu, 21 Nov 2013 12:27:02 +0000 (12:27 +0000)]
Implement __gnu_cxx::hypergeometric_distribution.

2013-11-21  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement __gnu_cxx::hypergeometric_distribution.
* include/ext/random: Add hypergeometric_distribution.
* include/ext/random.tcc: Add hypergeometric_distribution.
* testsuite/util/testsuite_random.h (hypergeometric_pdf): New pdf
for the hypergeometric discreet distribution;
(lbincoef): New supporting function for binomial coefficients.
* testsuite/ext/random/hypergeometric_distribution/operators/
serialize.cc: New.
* testsuite/ext/random/hypergeometric_distribution/operators/
equal.cc: New.
* testsuite/ext/random/hypergeometric_distribution/operators/
inequal.cc: New.
* testsuite/ext/random/hypergeometric_distribution/operators/
values.cc: New.
* testsuite/ext/random/hypergeometric_distribution/cons/parms.cc: New.
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc: New.
* testsuite/ext/random/hypergeometric_distribution/requirements/
explicit_instantiation/1.cc: New.
* testsuite/ext/random/hypergeometric_distribution/requirements/
typedefs.cc: New.

From-SVN: r205212

10 years agotree-ssa-forwprop.c (simplify_vce): New function.
Richard Biener [Thu, 21 Nov 2013 11:53:20 +0000 (11:53 +0000)]
tree-ssa-forwprop.c (simplify_vce): New function.

2013-11-21  Richard Biener  <rguenther@suse.de>

* tree-ssa-forwprop.c (simplify_vce): New function.
(ssa_forward_propagate_and_combine): Call it.

From-SVN: r205211

10 years agore PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90 -O0 execution test)
Francois-Xavier Coudert [Thu, 21 Nov 2013 11:37:07 +0000 (11:37 +0000)]
re PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90  -O0  execution test)

PR libfortran/59227
* gfortran.dg/erf_3.F90: XFAIL on spu-* and ia64-*-linux*.
Make more generic for other platforms.

From-SVN: r205210

10 years agoRemove wrong PR link
Andreas Schwab [Thu, 21 Nov 2013 09:24:44 +0000 (09:24 +0000)]
Remove wrong PR link

From-SVN: r205201

10 years agotree-vect-loop-manip.c (vect_build_loop_niters, [...]): Move ...
Richard Biener [Thu, 21 Nov 2013 09:19:31 +0000 (09:19 +0000)]
tree-vect-loop-manip.c (vect_build_loop_niters, [...]): Move ...

2013-11-21  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (vect_build_loop_niters,
vect_generate_tmps_on_preheader): Move ...
* tree-vect-loop.c (vect_build_loop_niters,
vect_generate_tmps_on_preheader): ... here and simplify.
(vect_transform_loop): Call them here and pass down results
to consumers.
* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound):
Get niter variables from caller.
(vect_do_peeling_for_alignment): Likewise.
* tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove.
(vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
Adjust prototypes.

From-SVN: r205199

10 years agotree-ssa-loop-ch.c (copy_loop_headers): Decrement nb_iterations_upper_bound by one.
Richard Biener [Thu, 21 Nov 2013 09:15:38 +0000 (09:15 +0000)]
tree-ssa-loop-ch.c (copy_loop_headers): Decrement nb_iterations_upper_bound by one.

2013-11-21  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-ch.c (copy_loop_headers): Decrement
nb_iterations_upper_bound by one.

From-SVN: r205198

10 years agore PR tree-optimization/59058 (wrong code at -O3 on x86_64-linux-gnu (affecting gcc...
Richard Biener [Thu, 21 Nov 2013 09:15:05 +0000 (09:15 +0000)]
re PR tree-optimization/59058 (wrong code at -O3 on x86_64-linux-gnu (affecting gcc 4.6 to trunk))

2013-11-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59058
* tree-loop-distribution.c (struct partition_s): Add plus_one
member.
(build_size_arg_loc): Apply niter adjustment here.
(generate_memset_builtin): Adjust.
(generate_memcpy_builtin): Likewise.
(classify_partition): Do not use number_of_exit_cond_executions
but record whether niter needs to be adjusted.

From-SVN: r205197

10 years agotree-ssa-tail-merge.c (stmt_local_def): Return false if the statement could throw.
Eric Botcazou [Thu, 21 Nov 2013 09:12:43 +0000 (09:12 +0000)]
tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement could throw.

* tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
could throw.

From-SVN: r205196

10 years agore PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90 -O0 execution test)
Francois-Xavier Coudert [Thu, 21 Nov 2013 08:45:00 +0000 (08:45 +0000)]
re PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90  -O0  execution test)

PR libfortran/59227
* intrinsics/erfc_scaled.c (erfc_scaled_r16): Don't define if
__float128 is not available.

From-SVN: r205193

10 years agoFix ChangeLog entry.
Oleg Endo [Thu, 21 Nov 2013 08:21:44 +0000 (08:21 +0000)]
Fix ChangeLog entry.

From-SVN: r205192

10 years agore PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)
Oleg Endo [Thu, 21 Nov 2013 08:19:38 +0000 (08:19 +0000)]
re PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)

PR target/53976
* config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass.
* config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass.
* config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry.
* config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add
sh_optimize_sett_clrt pass.o to extra_objs.

PR target/53976
* gcc.target/sh/pr53976-1.c: New.

From-SVN: r205191

10 years agoReword comments that mention ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros
David Malcolm [Thu, 21 Nov 2013 01:28:11 +0000 (01:28 +0000)]
Reword comments that mention ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros

gcc/
2013-11-20  David Malcolm  <dmalcolm@redhat.com>

* cfg.c (dump_edge_info): Remove redundant comment.
* cfgcleanup.c (outgoing_edges_match): Reword reference to
EXIT_BLOCK_PTR in comment.
(try_optimize_cfg): Likewise.
* cfgrtl.c (last_bb_in_partition): Likewise.
* cgraph.c (cgraph_node_cannot_return): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
* ipa-split.c (consider_split): Likewise.
* profile.c (find_spanning_tree): Likewise.
* sched-int.h (common_sched_info_def.add_block): Likewise.
* dominance.c (calc_dfs_tree_nonrec): Reword references in
comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros.
* tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references
in comments to now removed ENTRY_BLOCK_PTR macro.
(tree_forwarder_block_p): Reword reference in comment to
EXIT_BLOCK_PTR.
* tree-inline.c (copy_cfg_body): Reword references in comments to
now removed ENTRY_BLOCK_PTR macro.
* tree-ssa-propagate.c (ssa_prop_init): Likewise.
* tree-scalar-evolution.h ( block_before_loop): Likewise.  Add
a comma to the comment to clarify the meaning.

From-SVN: r205182

10 years agoFixup whitespace.
Mike Stump [Thu, 21 Nov 2013 00:34:13 +0000 (00:34 +0000)]
Fixup whitespace.

From-SVN: r205175

10 years agoDaily bump.
GCC Administrator [Thu, 21 Nov 2013 00:17:03 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r205172

10 years agogimplify.h (gimplify_hasher : typed_free_remove, [...]): Move to gimplify.c.
Andrew MacLeod [Thu, 21 Nov 2013 00:06:23 +0000 (00:06 +0000)]
gimplify.h (gimplify_hasher : typed_free_remove, [...]): Move to gimplify.c.

* gimplify.h (gimplify_hasher : typed_free_remove, struct gimplify_ctx):
Move to gimplify.c.
(free_gimplify_stack): Add prototype.
* gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
(struct gimplify_ctx): Relocate here.
(gimplify_ctxp): Make static.
(ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New.  Manage a
list of struct gimplify_ctx.
(push_gimplify_context): Add default parameters and allocate a struct
from the pool.
(pop_gimplify_context): Free a struct back to the pool.
(gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't
use a local 'struct gimplify_ctx'.
* cgraphunit.c (expand_all_functions): call free_gimplify_stack.
* gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
Likewise.
* omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
lower_omp_ordered, lower_omp_critical, lower_omp_for,
create_task_copyfn, lower_omp_taskreg, lower_omp_target,
lower_omp_teams, execute_lower_omp): Likewise.
* gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
* tree-inline.c (optimize_inline_calls): Likewise.

From-SVN: r205168

10 years agore PR libfortran/49024 (REAL*16 ERFC_SCALED inaccuracy)
Francois-Xavier Coudert [Wed, 20 Nov 2013 22:18:55 +0000 (22:18 +0000)]
re PR libfortran/49024 (REAL*16 ERFC_SCALED inaccuracy)

PR libfortran/49024

* intrinsics/erfc_scaled.c (erfc_scaled_r16): New function.
* intrinsics/erfc_scaled_inc.c: Do not provide quadruple
precision variant.

* gfortran.dg/erf_3.F90: New file.

From-SVN: r205151

10 years agovsx.md (vsx_set_<mode>): Adjust for little endian.
Bill Schmidt [Wed, 20 Nov 2013 21:46:18 +0000 (21:46 +0000)]
vsx.md (vsx_set_<mode>): Adjust for little endian.

gcc:

2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
(vsx_extract_<mode>): Likewise.
(*vsx_extract_<mode>_one_le): New LE variant on
*vsx_extract_<mode>_zero.
(vsx_extract_v4sf): Adjust for little endian.

gcc/testsuite:

2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/pr48258-1.c: Skip for little endian.

From-SVN: r205146

10 years agore PR libstdc++/49204 ([C++0x] remaining issues in <future>)
Jonathan Wakely [Wed, 20 Nov 2013 20:59:19 +0000 (20:59 +0000)]
re PR libstdc++/49204 ([C++0x] remaining issues in <future>)

PR libstdc++/49204
* include/std/future (__future_base::_State_base): Rename to
__future_base::_State_baseV2.
(__future_base::_State_baseV2::~_State_baseV2): Define as defaulted.
(__future_base::_State_baseV2::_M_run_deferred): Rename to
_M_complete_async.
(__future_base::_State_baseV2::_M_has_deferred): Add new virtual.
(__future_base::_State_baseV2::wait_for): Call _M_has_deferred() to
test for a deferred function, or call _M_complete_async() to join an
async thread that has made the shared state ready.
(__future_base::_State_baseV2::wait_until): Likewise.
(__future_base::_Async_state_common): Rename to _Async_state_commonV2.
(__future_base::_Async_state_commonV2::_M_run_deferred): Rename to
_M_complete_async.
* src/c++11/compatibility-thread-c++0x.cc (__future_base::_State_base):
Export old definition.
(__future_base::_Async_state_common): Likewise.
* src/c++11/future.cc (__future_base::_State_base::~_State_base):
Remove.
* doc/xml/manual/status_cxx2011.xml: Update status.
* testsuite/30_threads/async/async.cc: Test future_status::timeout
and future_status::ready.
* testsuite/30_threads/async/sync.cc: Test future_status::deferred.

From-SVN: r205144

10 years agore PR rtl-optimization/59133 (ICE after r204219 on SPEC2006 435.gromacs.)
Vladimir Makarov [Wed, 20 Nov 2013 20:32:57 +0000 (20:32 +0000)]
re PR rtl-optimization/59133 (ICE after r204219 on SPEC2006 435.gromacs.)

2013-11-20  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/59133
* lra.c (expand_reg_data): Add new argument.  Set up ALL_REGS for
new pseudos.
(lra_create_new_reg_with_unique_value): Pass new argument value.
(lra_emit_add, lra_emit_move): Ditto.
* lra-constraints.c (in_class_p): Add check for move for a new
insn.
(change_class): Rename to lra_change_class.  Move to lra-int.h.
(get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
change_class.
(process_addr_reg, process_addr): Ditto.
(curr_insn_transform): Ditto.  Add check on old pseudo for
optional reload.
* lra-int.h (lra_get_regno_hard_regno): Move below.
(lra_change_class): Renamed change_class from lra.c.

2013-11-20  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/59133
* gcc.target/i386/pr59133.c: New.

From-SVN: r205141

10 years agogdbhooks.py: fix prettyprinting of NULL vec<>*
David Malcolm [Wed, 20 Nov 2013 20:00:33 +0000 (20:00 +0000)]
gdbhooks.py: fix prettyprinting of NULL vec<>*

* gdbhooks.py (VecPrinter.children): Don't attempt to iterate
the children of a NULL pointer.

From-SVN: r205139

10 years agoNormalize whitespace.
Mike Stump [Wed, 20 Nov 2013 18:42:08 +0000 (18:42 +0000)]
Normalize whitespace.

From-SVN: r205138

10 years agolra.c (lra): Set lra_in_progress before check_rtl call.
Robert Suchanek [Wed, 20 Nov 2013 18:17:49 +0000 (11:17 -0700)]
lra.c (lra): Set lra_in_progress before check_rtl call.

     * lra.c (lra): Set lra_in_progress before check_rtl call.
     * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
     adding clobber regs when LRA is running

From-SVN: r205136

10 years agoFixup whitespace.
Mike Stump [Wed, 20 Nov 2013 18:04:41 +0000 (18:04 +0000)]
Fixup whitespace.

From-SVN: r205134

10 years agoFixup whitespace.
Mike Stump [Wed, 20 Nov 2013 18:01:12 +0000 (18:01 +0000)]
Fixup whitespace.

From-SVN: r205133

10 years agomips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64 restriction for ISA_MIPS32R2.
Maciej W. Rozycki [Wed, 20 Nov 2013 17:18:12 +0000 (17:18 +0000)]
mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64 restriction for ISA_MIPS32R2.

* config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
restriction for ISA_MIPS32R2.
(ISA_HAS_LXC1_SXC1): New macro.
(ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing.
(ISA_HAS_NMADD4_NMSUB4): Likewise.
(ISA_HAS_FP_RECIP_RSQRT): Likewise.
(ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4.
* config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use
ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4.
(*<ANYF:storex>_<P:mode>): Likewise.

From-SVN: r205130

10 years agomips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
Maciej W. Rozycki [Wed, 20 Nov 2013 17:16:48 +0000 (17:16 +0000)]
mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.

* config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
* config/mips/mips.c (mips_rtx_costs) <DIV>: Check for
ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4.
* config/mips/mips.md (recip_condition): Remove mode attribute.
(div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than
<recip_condition>.
(*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise.

From-SVN: r205129

10 years agore PR target/59207 (uninitialized local variable in sparc_fold_builtin)
Eric Botcazou [Wed, 20 Nov 2013 17:02:36 +0000 (17:02 +0000)]
re PR target/59207 (uninitialized local variable in sparc_fold_builtin)

PR target/59207
* config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
Make sure neg2_ovf is set before being used.

From-SVN: r205127

10 years agoplugin.def: Add comment about register_callback and invoke_plugin_callbacks_full.
Basile Starynkevitch [Wed, 20 Nov 2013 16:42:04 +0000 (16:42 +0000)]
plugin.def: Add comment about register_callback and invoke_plugin_callbacks_full.

2013-11-20  Basile Starynkevitch  <basile@starynkevitch.net>

        * plugin.def: Add comment about register_callback and
        invoke_plugin_callbacks_full.

        * plugin.c (register_callback, invoke_plugin_callbacks_full):
        Handle PLUGIN_INCLUDE_FILE event.

From-SVN: r205125

10 years agors6000.c (rs6000_cannot_change_mode_class): Do not allow subregs of TDmode in FPRs...
Ulrich Weigand [Wed, 20 Nov 2013 16:22:57 +0000 (16:22 +0000)]
rs6000.c (rs6000_cannot_change_mode_class): Do not allow subregs of TDmode in FPRs of smaller size in little-endian.

* config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
allow subregs of TDmode in FPRs of smaller size in little-endian.
(rs6000_split_multireg_move): When splitting an access to TDmode
in FPRs, do not use simplify_gen_subreg.

From-SVN: r205123

10 years agore PR middle-end/21718 (real.c rounding not perfect)
Joseph Myers [Wed, 20 Nov 2013 14:34:49 +0000 (14:34 +0000)]
re PR middle-end/21718 (real.c rounding not perfect)

PR middle-end/21718
* real.c: Remove comment about decimal string conversion and
rounding errors.
(real_from_string): Use MPFR to convert nonzero decimal constant
to REAL_VALUE_TYPE.

testsuite:
* gcc.dg/float-exact-1.c: New test.

From-SVN: r205119

10 years agoarm.c (arm_dwarf_register_span): Take into account the endianness of the D registers...
Eric Botcazou [Wed, 20 Nov 2013 13:58:12 +0000 (13:58 +0000)]
arm.c (arm_dwarf_register_span): Take into account the endianness of the D registers for the legacy encodings.

* config/arm/arm.c (arm_dwarf_register_span): Take into account the
endianness of the D registers for the legacy encodings.

From-SVN: r205118

10 years agore PR rtl-optimization/54300 (regcprop incorrectly looks through parallel register...
Richard Earnshaw [Wed, 20 Nov 2013 13:55:04 +0000 (13:55 +0000)]
re PR rtl-optimization/54300 (regcprop incorrectly looks through parallel register swap operation)

PR rtl-optimization/54300

gcc/

PR rtl-optimization/54300
* regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
outputs in a single-set are killed from the value chains.

gcc/testsuite:

PR rtl-optimization/54300
* gcc.target/arm/pr54300.C: New test.

From-SVN: r205117

10 years agocgraph.h (varpool_node): Add need_bounds_init field.
Ilya Enkovich [Wed, 20 Nov 2013 13:50:44 +0000 (13:50 +0000)]
cgraph.h (varpool_node): Add need_bounds_init field.

        * cgraph.h (varpool_node): Add need_bounds_init field.
        * lto-cgraph.c (lto_output_varpool_node): Output
        need_bounds_init value.
        (input_varpool_node): Read need_bounds_init value.
        * varpool.c (dump_varpool_node): Dump need_bounds_init field.

From-SVN: r205116

10 years agore PR middle-end/59212 (FAIL: g++.dg/plugin/selfassign.c compilation)
Diego Novillo [Wed, 20 Nov 2013 13:48:40 +0000 (08:48 -0500)]
re PR middle-end/59212 (FAIL: g++.dg/plugin/selfassign.c compilation)

PR 59212
* g++.dg/plugin/selfassign.c: Include stringpool.h

From-SVN: r205115

10 years agore PR c++/59173 (Alias template in partial specialization finds name from primary...
Jonathan Wakely [Wed, 20 Nov 2013 13:39:33 +0000 (13:39 +0000)]
re PR c++/59173 (Alias template in partial specialization finds name from primary template)

PR c++/59173
* include/ext/pointer.h (pointer_traits<>::rebind<>): Add template
keyword in nested name.

From-SVN: r205114

10 years agoopts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin.
Jan Hubicka [Wed, 20 Nov 2013 13:11:08 +0000 (14:11 +0100)]
opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin.

* opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin.
* common.opt (fuse-linker-plugin): Add var.

From-SVN: r205110

10 years agodbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
Ilya Enkovich [Wed, 20 Nov 2013 12:28:29 +0000 (12:28 +0000)]
dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.

        * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
        * dwarf2out.c (gen_subprogram_die): Ignore bound args.
        (gen_type_die_with_usage): Skip pointer bounds.
        (dwarf2out_global_decl): Likewise.

From-SVN: r205109

10 years agoRemove unintentional blank link from prevous commit.
Richard Sandiford [Wed, 20 Nov 2013 12:17:31 +0000 (12:17 +0000)]
Remove unintentional blank link from prevous commit.

From-SVN: r205108

10 years ago* gcc.target/powerpc/darwin-longlong.c (msw): Make endian-safe.
Ulrich Weigand [Wed, 20 Nov 2013 12:14:14 +0000 (12:14 +0000)]
* gcc.target/powerpc/darwin-longlong.c (msw): Make endian-safe.

From-SVN: r205106

10 years ago[AArch64] Remove "mode", "mode2" attributes
James Greenhalgh [Wed, 20 Nov 2013 12:12:02 +0000 (12:12 +0000)]
[AArch64] Remove "mode", "mode2" attributes

gcc/
* config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
from all insns.

From-SVN: r205105

10 years agore PR target/57756 (Function target attribute is retaining state of previously seen...
Yuri Rumyantsev [Wed, 20 Nov 2013 11:59:05 +0000 (11:59 +0000)]
re PR target/57756 (Function target attribute is retaining  state of previously seen function)

PR target/57756
* config/i386/i386.c (ix86_option_override_internal): Add missed
argument prefix for 'ix86_fpmath'.
* config/i386/ssemath.h: Add missed definition of
TARGET_FPMATH_DEFAULT_P macros.

From-SVN: r205104

10 years agocuintp.c (UI_From_gnu): Use tree_to_shwi.
Kenneth Zadeck [Wed, 20 Nov 2013 11:57:27 +0000 (11:57 +0000)]
cuintp.c (UI_From_gnu): Use tree_to_shwi.

gcc/ada/
2013-11-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
    Mike Stump  <mikestump@comcast.net>
    Richard Sandiford  <rdsandiford@googlemail.com>

* gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi.
* gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_to_uhwi.
* gcc-interface/utils.c (make_packable_type): Likewise.

gcc/c-family/
2013-11-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
    Mike Stump  <mikestump@comcast.net>
    Richard Sandiford  <rdsandiford@googlemail.com>

* c-ada-spec.c (is_simple_enum): Use tree_to_shwi and tree_to_uhwi
instead of TREE_INT_CST_LOW, in cases where there is a protecting
tree_fits_shwi_p or tree_fits_uhwi_p.
(dump_generic_ada_node): Likewise.
* c-format.c (check_format_arg): Likewise.
* c-pretty-print.c (pp_c_integer_constant): Likewise.

gcc/
2013-11-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
    Mike Stump  <mikestump@comcast.net>
    Richard Sandiford  <rdsandiford@googlemail.com>

* alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
instead of TREE_INT_CST_LOW, in cases where there is a protecting
tree_fits_shwi_p or tree_fits_uhwi_p.
* builtins.c (fold_builtin_powi): Likewise.
* config/epiphany/epiphany.c (epiphany_special_round_type_align):
Likewise.
* dbxout.c (dbxout_symbol): Likewise.
* expr.c (expand_expr_real_1): Likewise.
* fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
(fold_binary_loc): Likewise.
* gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
* gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
* omp-low.c (lower_omp_for_lastprivate): Likewise.
* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
* stor-layout.c (compute_record_mode): Likewise.
* tree-cfg.c (verify_expr): Likewise.
* tree-dfa.c (get_ref_base_and_extent): Likewise.
* tree-pretty-print.c (dump_array_domain): Likewise.
* tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
* tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
* tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
(ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
(vn_reference_lookup_3, simplify_binary_expression): Likewise.
* tree-ssa-structalias.c (bitpos_of_field): Likewise.
(get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
(create_variable_info_for_1): Likewise.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
(vect_verify_datarefs_alignment): Likewise.
(vect_analyze_data_ref_accesses): Likewise.
(vect_prune_runtime_alias_test_list): Likewise.
* tree-vectorizer.h (NITERS_KNOWN_P): Likewise.

Co-Authored-By: Mike Stump <mikestump@comcast.net>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r205103

10 years agotree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed overflow.
Richard Sandiford [Wed, 20 Nov 2013 11:57:06 +0000 (11:57 +0000)]
tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed overflow.

gcc/
* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
overflow.  Use tree_to_shwi.

From-SVN: r205102

10 years agofold-const.c (fold_binary_loc): Use unsigned rather than signed HOST_WIDE_INTs when...
Richard Sandiford [Wed, 20 Nov 2013 11:56:44 +0000 (11:56 +0000)]
fold-const.c (fold_binary_loc): Use unsigned rather than signed HOST_WIDE_INTs when folding (x >> c) << c.

gcc/
* fold-const.c (fold_binary_loc): Use unsigned rather than signed
HOST_WIDE_INTs when folding (x >> c) << c.

From-SVN: r205101

10 years agoc-common.c (check_function_arguments_recurse): Use tree_to_uhwi.
Kenneth Zadeck [Wed, 20 Nov 2013 11:56:34 +0000 (11:56 +0000)]
c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.

gcc/c-family/
2013-11-19  Kenneth Zadeck  <zadeck@naturalbridge.com>

* c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.

From-SVN: r205100

10 years ago[multiple changes]
Andreas Krebbel [Wed, 20 Nov 2013 11:48:07 +0000 (11:48 +0000)]
[multiple changes]

2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
    Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.c (s390_canonicalize_comparison): Don't fold
int comparisons with an out of range condition code.
(s390_optimize_nonescaping_tx): Skip empty BBs.
Generate the new tbegin RTX when removing the FPR clobbers (with
two SETs).
(s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
result before doing the retry calculations.
(s390_init_builtins): Make tbegin "returns_twice" and tabort
"noreturn".
* config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
the TDB setting part of an tbegin.
("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
("tx_assist"): Set unused argument to an immediate zero instead of
loading zero into a GPR and pass it as argument.
* config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
Remove inline and related attributes.
(__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
(__TM_is_illegal, __TM_is_footprint_exceeded)
(__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
check.

2013-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/htm-1.c: Rename to ...
* gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c: ... this
one.
* gcc.target/s390/htm-xl-intrin-1.c: Rename to ...
* gcc.target/s390/htm-builtins-compile-3.c: ... this one.
* gcc.target/s390/htm-builtins-compile-2.c: New testcase.
* gcc.target/s390/htm-builtins-1.c: New testcase.
* gcc.target/s390/htm-builtins-2.c: New testcase.
* gcc.target/s390/s390.exp: Add check for htm machine.

From-SVN: r205099

10 years agore PR target/59035 (FAIL: gcc.dg/torture/c99-contract-1.c -O2 -flto -fno-use-linker...
Richard Biener [Wed, 20 Nov 2013 10:31:24 +0000 (10:31 +0000)]
re PR target/59035 (FAIL: gcc.dg/torture/c99-contract-1.c  -O2 -flto -fno-use-linker-plugin -flto-partition=none  execution test)

2013-11-20  Richard Biener  <rguenther@suse.de>

PR lto/59035
* lto-opts.c (lto_write_options): Write defaults only if
they were not explicitely specified.  Also write
-ffp-contract default.
* lto-wrapper.c (merge_and_complain): Merge -ffp-contract
conservatively.
(run_gcc): Pass through -ffp-contract.

From-SVN: r205096

10 years agomips.c (r10k_simplify_address): Eliminate macro usage.
Jan-Benedict Glaw [Wed, 20 Nov 2013 10:03:53 +0000 (10:03 +0000)]
mips.c (r10k_simplify_address): Eliminate macro usage.

2013-11-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.

[BR]: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02455.html

From-SVN: r205094

10 years ago[AArch64] AArch64 SIMD Builtins Better Type Correctness.
James Greenhalgh [Wed, 20 Nov 2013 09:19:25 +0000 (09:19 +0000)]
[AArch64] AArch64 SIMD Builtins Better Type Correctness.

gcc/
* gcc/config/aarch64/aarch64-builtins.c
(aarch64_simd_itype): Remove.
(aarch64_simd_builtin_datum): Remove itype, add
qualifiers pointer.
(VAR1): Use qualifiers.
(aarch64_build_scalar_type): New.
(aarch64_build_vector_type): Likewise.
(aarch64_build_type): Likewise.
(aarch64_init_simd_builtins): Refactor, remove special cases,
consolidate main loop.
(aarch64_simd_expand_args): Likewise.

From-SVN: r205092

10 years agoRemove gcc/ prefixes
Eric Botcazou [Wed, 20 Nov 2013 08:15:17 +0000 (08:15 +0000)]
Remove gcc/ prefixes

From-SVN: r205091

10 years agore PR c/53001 (-Wfloat-conversion should be available to warn about floating point...
Joshua J Cogliati [Wed, 20 Nov 2013 07:15:40 +0000 (07:15 +0000)]
re PR c/53001 (-Wfloat-conversion should be available to warn about floating point errors)

2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>

PR c/53001
Splitting out a -Wfloat-conversion from -Wconversion for
conversions that lower floating point number precision
or conversion from floating point numbers to integers.

gcc/c-family/

* c-common.c (unsafe_conversion_p): Make this function
return an enumeration with more detail.
(conversion_warning): Use the new return type of
unsafe_conversion_p to separately warn either about conversions
that lower floating point number precision or about the other
kinds of conversions.
  * c-common.h (enum conversion_safety): New enumeration.
  (unsafe_conversion_p): switching return type to
  conversion_safety enumeration.
* c.opt: Adding new warning -Wfloat-conversion and
enabling it with -Wconversion.

gcc/

* doc/invoke.texi: Adding documentation about
-Wfloat-conversion.

gcc/testsuite/

* c-c++-common/Wfloat-conversion.c: Copies relevant
tests from c-c++-common/Wconversion-real.c,
gcc.dg/Wconversion-real-integer.c and gcc.dg/pr35635.c into
new testcase for conversions that are warned about by
-Wfloat-conversion.

From-SVN: r205090

10 years ago* config/m68k/m68k.c (m68k_option_overrides): Fix typo.
Miro Kropacek [Wed, 20 Nov 2013 07:02:48 +0000 (07:02 +0000)]
* config/m68k/m68k.c (m68k_option_overrides): Fix typo.

From-SVN: r205089

10 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Wed, 20 Nov 2013 06:59:27 +0000 (07:59 +0100)]
* ChangeLog: Fix whitespace.

From-SVN: r205088

10 years ago* testsuite/17_intro/static.cc: Ignore AIX TOC reload warnings.
David Edelsohn [Wed, 20 Nov 2013 04:38:14 +0000 (04:38 +0000)]
* testsuite/17_intro/static.cc: Ignore AIX TOC reload warnings.

From-SVN: r205087

10 years agogdbhooks.py: Implement a prettyprinter for vec<>*
David Malcolm [Wed, 20 Nov 2013 03:57:35 +0000 (03:57 +0000)]
gdbhooks.py: Implement a prettyprinter for vec<>*

gcc/
* gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
to "vec<>" instances.
(build_pretty_printer): Register the vec<>* prettyprinter.

From-SVN: r205086

10 years agogdbhooks.py: Reorganize, to support regex matching and typedefs
David Malcolm [Wed, 20 Nov 2013 03:33:33 +0000 (03:33 +0000)]
gdbhooks.py: Reorganize, to support regex matching and typedefs

* gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
(GdbSubprinter.handles_type): New.
(GdbSubprinterTypeList): New subclass of GdbSubprinter.
(GdbSubprinterRegex): New subclass of GdbSubprinter.
(GdbPrettyPrinters.add_printer): Remove in favor of...
(GdbPrettyPrinters.add_printer_for_types): ...this new method
and...
(GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
(GdbPrettyPrinters.__call__): Update search for subprinter
to use handles_type method.
(build_pretty_printer): Update registration of subprinters to
use the new API above, supporting multiple spelling of each type,
and allowing for future regex-based subprinters.

From-SVN: r205085

10 years agors6000.c (altivec_expand_vec_perm_const): Adjust V16QI vector splat case for little...
Bill Schmidt [Wed, 20 Nov 2013 03:03:51 +0000 (03:03 +0000)]
rs6000.c (altivec_expand_vec_perm_const): Adjust V16QI vector splat case for little endian.

2013-11-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
V16QI vector splat case for little endian.

From-SVN: r205080

10 years agotree-ssa-threadedge.c (thread_across_edge): After threading through a joiner...
Jeff Law [Wed, 20 Nov 2013 01:55:17 +0000 (18:55 -0700)]
tree-ssa-threadedge.c (thread_across_edge): After threading through a joiner...

* tree-ssa-threadedge.c (thread_across_edge): After threading
through a joiner, allow threading a normal block requiring
duplication.

* tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
jump threading requests that would muck up the loop structures.

From-SVN: r205074

10 years agotree-ssa-threadupdate.c: Fix trailing whitespace.
Jeff Law [Wed, 20 Nov 2013 01:41:36 +0000 (18:41 -0700)]
tree-ssa-threadupdate.c: Fix trailing whitespace.

* tree-ssa-threadupdate.c: Fix trailing whitespace.
* tree-ssa-threadupdate.h: Likewise.

From-SVN: r205072

10 years ago* gdbinit.in: Add pmz to print out mpz values.
Mike Stump [Wed, 20 Nov 2013 00:50:47 +0000 (00:50 +0000)]
* gdbinit.in: Add pmz to print out mpz values.

From-SVN: r205071

10 years agoDaily bump.
GCC Administrator [Wed, 20 Nov 2013 00:16:56 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r205068

10 years agocommon.opt (ffat-lto-objects): Disable by default.
Jan Hubicka [Tue, 19 Nov 2013 23:52:19 +0000 (23:52 +0000)]
common.opt (ffat-lto-objects): Disable by default.

* common.opt (ffat-lto-objects): Disable by default.
* doc/invoke.texi (fat-lto-objects): Update documentation.
* opts.c: Enable fat-lto-objects on lto plugin disable setups.

From-SVN: r205065

10 years ago* config/bootstrap-lto.mk: Use -ffat-lto-objects.
Jan Hubicka [Tue, 19 Nov 2013 23:51:28 +0000 (00:51 +0100)]
* config/bootstrap-lto.mk: Use -ffat-lto-objects.

From-SVN: r205064

10 years agognu.ver (_ZNSt11regex_errorC*): Export regex_error constructors.
Jonathan Wakely [Tue, 19 Nov 2013 23:22:26 +0000 (23:22 +0000)]
gnu.ver (_ZNSt11regex_errorC*): Export regex_error constructors.

* config/abi/pre/gnu.ver (_ZNSt11regex_errorC*): Export regex_error
constructors.
* testsuite/20_util/addressof/1.cc: Remove { dg-do compile }.
* testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
* testsuite/20_util/allocator_traits/members/select.cc: Likewise. Fix
failure.
* testsuite/28_regex/basic_regex/ctors/extended/cstring.cc: Likewise.
* testsuite/28_regex/init-list.cc: Likewise.
* testsuite/28_regex/regex_error/regex_error.cc: Likewise.
* testsuite/28_regex/sub_match/length.cc: Likewise. Add main.
* testsuite/28_regex/sub_match/cast_char.cc: Likewise. Fix test.
* testsuite/28_regex/sub_match/cast_wchar_t.cc: Likewise.
* testsuite/tr1/7_regular_expressions/regex/cons/char/
c_string_extended.cc: Delete.

From-SVN: r205063

10 years agore PR rtl-optimization/59099 (Erroneous register allocation on 32-bit x86 using regparm)
Martin Jambor [Tue, 19 Nov 2013 22:53:06 +0000 (23:53 +0100)]
re PR rtl-optimization/59099 (Erroneous register allocation on 32-bit x86 using regparm)

2013-11-19  Martin Jambor  <mjambor@suse.cz>

PR rtl-optimization/59099
* ira.c (find_moveable_pseudos): Put back various analyses from ira()
here.
(ira): Move init_reg_equiv and call to
split_live_ranges_for_shrink_wrap up, remove analyses around call
to find_moveable_pseudos.

testsuite/
* gcc.target/i386/pr59099.c: New test.

From-SVN: r205061

10 years agosysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
Alan Modra [Tue, 19 Nov 2013 22:50:33 +0000 (09:20 +1030)]
sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.

* config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Default
to strict alignment on older processors when little-endian.
* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
for ELFv2.

From-SVN: r205060

10 years agoi386-common.c: Enable -freorder-blocks-and-partition at -O2 and up for x86.
Teresa Johnson [Tue, 19 Nov 2013 22:13:49 +0000 (22:13 +0000)]
i386-common.c: Enable -freorder-blocks-and-partition at -O2 and up for x86.

2013-11-19  Teresa Johnson  <tejohnson@google.com>

* common/config/i386/i386-common.c: Enable
-freorder-blocks-and-partition at -O2 and up for x86.
* doc/invoke.texi: Update -freorder-blocks-and-partition default.
* opts.c (finish_options): Only warn if -freorder-blocks-and-
partition was set on command line.

From-SVN: r205058

10 years agoEmit a label for the split cold function part.
Sriraman Tallam [Tue, 19 Nov 2013 22:12:21 +0000 (22:12 +0000)]
Emit a label for the split cold function part.

Emit a label for the split cold function part.  Label name is formed by
suffixing the original function name with "cold".

Patch tested for bootstrap on all default languages on x86_64 and
regression testsuite checked for parity with RUNTESTFLAGS -m32 and m64.

From-SVN: r205057

10 years agonoexcept.cc: Change to compile-only test.
Jonathan Wakely [Tue, 19 Nov 2013 22:03:30 +0000 (22:03 +0000)]
noexcept.cc: Change to compile-only test.

* testsuite/23_containers/forward_list/allocator/noexcept.cc: Change
to compile-only test. Adjust swap overload to handle rebound
allocators.
* testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_set/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/vector/allocator/swap.cc: Add elements
before swapping.

From-SVN: r205056

10 years agoEliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros
David Malcolm [Tue, 19 Nov 2013 21:57:13 +0000 (21:57 +0000)]
Eliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros

gcc/

* basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
(EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
(ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
(EXIT_BLOCK_PTR_FOR_FN): ...this.
(ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
cfun be explicit.
(EXIT_BLOCK_PTR): Likewise.
(FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
(FOR_ALL_BB_FN): Update for renaming of
"ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".

* cfg.c (init_flow): Likewise.
(check_bb_profile): Likewise.
* cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
* cfgcleanup.c (walk_to_nondebug_insn): Likewise.
* cfghooks.c (account_profile_record): Likewise.
* cfgloop.c (init_loops_structure): Likewise.
* cgraphbuild.c (record_eh_tables): Likewise.
(compute_call_stmt_bb_frequency): Likewise.
* ipa-inline-analysis.c (compute_bb_predicates): Likewise.
* lto-streamer-in.c (input_cfg): Likewise.
* predict.c (maybe_hot_frequency_p): Likewise.
* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
* tree-inline.c (initialize_cfun): Likewise.
(copy_cfg_body): Likewise.
(copy_body): Likewise.
(tree_function_versioning): Likewise.

* bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
(find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(connect_traces): Likewise.
(rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
(bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
(fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
macro.
(find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
(find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
(fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
(rotate_loop): Likewise.
* bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
* cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(alloc_aux_for_edges): Likewise.
(clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
(cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(compact_blocks): Likewise.
(clear_edges): Likewise.
* cfganal.c (single_pred_before_succ_order): Remove usage of
ENTRY_BLOCK_PTR macro.
(bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
(bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
(bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
(bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
(inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR
macro.
(post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR
macro.
(remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
(add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
(find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
(verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(print_edge_list): Likewise.
(create_edge_list): Likewise.
(find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
(mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
* cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
macro.
(find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* cfgcleanup.c (delete_unreachable_blocks): Likewise.
(try_optimize_cfg): Likewise.
(try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
(try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
(try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
(merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
(outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
(try_forward_edges): Likewise.
(try_simplify_condjump): Likewise.
* cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
(construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
(expand_gimple_tailcall): Likewise.
* cfghooks.c (can_duplicate_block_p): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(tidy_fallthru_edges): Likewise.
(verify_flow_info): Likewise.
* cfgloop.c (flow_bb_inside_loop_p): Likewise.
(num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
(disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR
macro.
(get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
(bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
(get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
(get_loop_body_in_dom_order): Likewise.
(get_loop_body): Likewise.
* cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
macro.
(remove_path): Remove usage of EXIT_BLOCK_PTR macro.
(fix_bb_placement): Likewise.
* cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
(cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
(cfg_layout_can_merge_blocks_p): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
macro.
(fixup_fallthru_exit_predecessor): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(fixup_reorder_chain): Likewise.
(relink_block_chain): Likewise.
(cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
(rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
(cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
(force_one_exit_fallthru): Likewise.
(rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(rtl_verify_edges): Likewise.
(commit_edge_insertions): Likewise.
(commit_one_edge_insertion): Likewise.
(rtl_split_edge): Likewise.
(force_nonfallthru_and_redirect): Likewise.
(outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
(skip_insns_after_block): Likewise.
(fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
(rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(contains_no_active_insn_p): Likewise.
(emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
(entry_of_function): Likewise.
(last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
(fixup_new_cold_bb): Likewise.
(patch_jump_insn): Likewise.
(try_redirect_by_replacing_jump): Likewise.
(block_label): Likewise.
(could_fall_through): Likewise.
(can_fallthru): Likewise.
* cgraphbuild.c (cgraph_rebuild_references): Remove usage of
ENTRY_BLOCK_PTR macro.
(rebuild_cgraph_edges): Likewise.
* cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
* combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
(distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
(get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
(try_combine): Remove usage of EXIT_BLOCK_PTR macro.
(reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
macro.
(reg_nonzero_bits_for_combine): Likewise.
(set_nonzero_bits_and_sign_copies): Likewise.
(combine_instructions): Likewise.
* cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(bypass_conditional_jumps): Likewise.
(bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
(find_implicit_sets): Likewise.
(cprop_jump): Likewise.
* cse.c (cse_cc_succs): Likewise.
(cse_find_path): Likewise.
* df-problems.c (df_lr_confluence_0): Likewise.
* df-scan.c (df_entry_block_defs_collect): Remove usage of
ENTRY_BLOCK_PTR macro.
(df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
* dominance.c (iterate_fix_dominators): Remove usage of
ENTRY_BLOCK_PTR macro.
(calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR
macro.
(calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
macro.
(calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
* domwalk.c (cmp_bb_postorder): Likewise.
* dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
* except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
macro.
(sjlj_emit_function_enter): Likewise.
* final.c (compute_alignments): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Remove uses of
macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(reposition_prologue_and_epilogue_notes): Remove usage of
EXIT_BLOCK_PTR macro.
(convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
(next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
* gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
(update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
(compute_code_hoist_vbeinout): Likewise.
(should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
(pre_expr_reaches_here_p_work): Likewise.
* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
(gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
ENTRY_BLOCK_PTR macro.
* graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
macro.
* graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
ENTRY_BLOCK_PTR macro.
* graphite-scop-detection.c (build_scops): Likewise.
(create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
(scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
* haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
macro.
(unlink_bb_notes): Likewise.
(create_check_block_twin): Likewise.
(init_before_recovery): Likewise.
(sched_extend_bb): Likewise.
(priority): Likewise.
* hw-doloop.c (reorder_loops): Likewise.
(discover_loop): Likewise.
* ifcvt.c (dead_or_predicable): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
(block_has_only_trap): Likewise.
(cond_exec_find_if_block): Likewise.
(merge_if_block): Likewise.
* ipa-inline-analysis.c (param_change_prob): Remove usage of
ENTRY_BLOCK_PTR macro.
(record_modified): Likewise.
* ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
EXIT_BLOCK_PTR macro.
(local_pure_const): Likewise.
* ipa-split.c (split_function): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(find_split_points): Likewise.
(consider_split): Likewise.
(find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
(verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
* ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
* ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR
macro.
* ira-emit.c (entered_from_non_parent_p): Remove usage of
ENTRY_BLOCK_PTR macro.
(ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
* ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
* ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
macro.
(compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(compute_farthest): Likewise.
(compute_available): Likewise.
(compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
(compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(compute_earliest): Likewise.
(compute_antinout_edge): Likewise.
* loop-iv.c (simplify_using_initial_values): Remove usage of
ENTRY_BLOCK_PTR macro.
* loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
macro.
* lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
macro.
* lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
macro.
* lra-lives.c (lra_create_live_ranges): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
macro.
* lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
macro.
* lto-streamer-out.c (output_cfg): Likewise.
* mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
* mode-switching.c (optimize_mode_switching): Likewise.
(create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
* modulo-sched.c (rest_of_handle_sms): Likewise.
(canon_loop): Likewise.
* omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR
macro.
* postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
macro.
(propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
(estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
(tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
(expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
(tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
(counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
(apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
(estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
(gimple_predict_edge): Likewise.
(probably_never_executed): Likewise.
* profile.c (find_spanning_tree): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(branch_prob): Likewise.
(compute_branch_probabilities): Likewise.
(compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
(is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
(read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
(set_bb_counts): Likewise.
(correct_negative_edge_counts): Likewise.
(get_exec_counts): Likewise.
(instrument_values): Likewise.
(instrument_edges): Likewise.
* reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
(convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
(convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
(reg_to_stack): Likewise.
* regs.h (REG_N_SETS): Likewise.
* reload.c (find_dummy_reload): Likewise.
(combine_reloads): Likewise.
(push_reload): Likewise.
* reload1.c (has_nonexceptional_receiver): Remove usage of
EXIT_BLOCK_PTR macro.
* resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
macro.
(find_basic_block): Likewise.
* sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
(schedule_ebbs): Likewise.
* sched-int.h (sel_sched_p): Likewise.
* sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
macro.
(rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
(haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
(extend_rgns): Likewise.
(find_single_block_region): Likewise.
* sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
ENTRY_BLOCK_PTR macro.
(setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
(sel_create_recovery_block): Likewise.
(bb_ends_ebb_p): Likewise.
(sel_bb_end): Likewise.
(sel_bb_head): Likewise.
(free_lv_sets): Likewise.
(init_lv_sets): Likewise.
(tidy_control_flow): Likewise.
(maybe_tidy_empty_bb): Likewise.
* sel-sched-ir.h (_succ_iter_cond): Likewise.
(_succ_iter_start): Likewise.
(sel_bb_empty_or_nop_p): Likewise.
(get_loop_exit_edges_unique_dests): Likewise.
(inner_loop_header_p): Likewise.
* sel-sched.c (create_block_for_bookkeeping): Likewise.
(find_block_for_bookkeeping): Likewise.
* store-motion.c (remove_reachable_equiv_notes): Likewise.
(insert_store): Likewise.
* trans-mem.c (ipa_tm_transform_clone): Remove usage of
ENTRY_BLOCK_PTR macro.
(tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
(ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
(gate_tm_init): Likewise.
(tm_region_init): Likewise.
* tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
(split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
(move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
macro.
(gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
macro.
(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
(make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
(build_gimple_cfg): Likewise.
(gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
(gimple_can_merge_blocks_p): Likewise.
* tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* tree-complex.c (update_parameter_components): Remove usage of
ENTRY_BLOCK_PTR macro.
* tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
EXIT_BLOCK_PTR macro.
* tree-inline.c (tree_function_versioning): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(delete_unreachable_blocks_update_callgraph): Likewise.
(initialize_cfun): Likewise.
(copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
(copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
(remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
* tree-into-ssa.c (update_ssa): Likewise.
(maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
(insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
(rewrite_into_ssa): Likewise.
(rewrite_debug_stmt_uses): Likewise.
* tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
ENTRY_BLOCK_PTR macro.
* tree-scalar-evolution.h (block_before_loop): Likewise.
* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
(dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
macro.
(propagate_dereference_distances): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
macro.
* tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
(optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
(propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
(mark_control_dependent_edges_necessary): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
* tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
ENTRY_BLOCK_PTR macro.
(tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
* tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(calculate_live_on_exit): Likewise.
(set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
(loe_visit_block): Likewise.
* tree-ssa-live.h (live_on_exit): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(live_on_entry): Likewise.
* tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
EXIT_BLOCK_PTR macro.
* tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
ENTRY_BLOCK_PTR macro.
* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
(bound_difference): Likewise.
* tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
of EXIT_BLOCK_PTR macro.
* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
of ENTRY_BLOCK_PTR macro.
* tree-ssa-math-opts.c (register_division_in): Likewise.
* tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
* tree-ssa-pre.c (compute_avail): Likewise.
(compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
(insert): Remove usage of ENTRY_BLOCK_PTR macro.
* tree-ssa-propagate.c (ssa_prop_init): Likewise.
(simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
(cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
(add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
* tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
(execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
* tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
(compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
(find_pdom): Likewise.
(warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
* tree-stdarg.c (reachable_at_most_once): Likewise.
* tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(eliminate_tail_call): Likewise.
* tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
macro.
(instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
* var-tracking.c (vt_initialize): Remove uses of macros:
ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
(vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
(vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
(vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
EXIT_BLOCK_PTR.
* varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
macro.
* config/bfin/bfin.c (hwloop_optimize): Likewise.
* config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
of EXIT_BLOCK_PTR macro.
* config/arm/arm.c (require_pic_register): Remove usage of
ENTRY_BLOCK_PTR macro.
(arm_r3_live_at_start_p): Likewise.
(any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
* config/frv/frv.c (frv_optimize_membar_global): Likewise.
* config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
ENTRY_BLOCK_PTR macro.
* config/i386/i386.c (ix86_count_insn): Likewise.
(ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
(ix86_pad_short_function): Likewise.
(ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
(ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
(ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
(add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
(ix86_expand_epilogue): Likewise.
* config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
(ia64_expand_prologue): Likewise.

From-SVN: r205055

10 years agoinvoke.texi (mfix-rm7000, [...]): Document.
Catherine Moore [Tue, 19 Nov 2013 21:30:54 +0000 (16:30 -0500)]
invoke.texi (mfix-rm7000, [...]): Document.

2013-11-19  Catherine Moore  <clm@codesourcery.com>

* doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
* config/mips/mips.opt (mfix-rm7000): New option.
* config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
* config/mips/mips.c (mips_reorg_process_insns): Disable
noreorder for TARGET_FIX_RM7000.

From-SVN: r205054

10 years agosh-c.c: Fix typo in include of file attribs.h.
Oleg Endo [Tue, 19 Nov 2013 18:34:44 +0000 (18:34 +0000)]
sh-c.c: Fix typo in include of file attribs.h.

* config/sh/sh-c.c: Fix typo in include of file attribs.h.

From-SVN: r205052

10 years agoarm.c (arm_new_rtx_costs): Handle narrow mode add-shifts properly.
Kyrylo Tkachov [Tue, 19 Nov 2013 17:53:33 +0000 (17:53 +0000)]
arm.c (arm_new_rtx_costs): Handle narrow mode add-shifts properly.

* config/arm/arm.c (arm_new_rtx_costs):
Handle narrow mode add-shifts properly.
* config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
* config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
Declare extern.

From-SVN: r205051

10 years ago[ARM] Add missing type attribute to zero_extend on arm
James Greenhalgh [Tue, 19 Nov 2013 17:40:15 +0000 (17:40 +0000)]
[ARM] Add missing type attribute to zero_extend on arm

gcc/
* config/arm/arm.md (zero_extend<mode>di2): Add type attribute.

From-SVN: r205050

10 years agoppc64-abi-2.c (MAKE_SLOT): New macro to construct parameter slot value in endian...
Ulrich Weigand [Tue, 19 Nov 2013 17:12:14 +0000 (17:12 +0000)]
ppc64-abi-2.c (MAKE_SLOT): New macro to construct parameter slot value in endian-independent way.

* gcc.target/powerpc/ppc64-abi-2.c (MAKE_SLOT): New macro to
construct parameter slot value in endian-independent way.
(fcevv, fciievv, fcvevv): Use it.

From-SVN: r205047

10 years agovector.md ("mov<mode>"): Do not call rs6000_emit_le_vsx_move to move into or out...
Ulrich Weigand [Tue, 19 Nov 2013 17:01:45 +0000 (17:01 +0000)]
vector.md ("mov<mode>"): Do not call rs6000_emit_le_vsx_move to move into or out of GPRs.

* config/rs6000/vector.md ("mov<mode>"): Do not call
rs6000_emit_le_vsx_move to move into or out of GPRs.
* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
source and destination are not GPR hard regs.

From-SVN: r205045

10 years agoEliminate n_edges macro
David Malcolm [Tue, 19 Nov 2013 16:50:04 +0000 (16:50 +0000)]
Eliminate n_edges macro

* basic-block.h (n_edges_for_function): Rename macro to...
(n_edges_for_fn): ...this.
(n_edges): Eliminate macro as work towards making uses of
cfun be explicit.

* cfg.c (init_flow): Update for renaming of "n_edges_for_function"
to "n_edges_for_fn".

* cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
(clear_edges): Likewise.
(free_edge): Likewise.
* cfghooks.c (dump_flow_info): Likewise.
* cprop.c (is_too_expensive): Likewise.
* df-core.c (df_worklist_dataflow_doublequeue): Likewise.
* gcse.c (is_too_expensive): Likewise.
(prune_insertions_deletions): Likewise.
* mcf.c (create_fixup_graph): Likewise.
* sched-rgn.c (haifa_find_rgns): Likewise.
* tree-cfg.c (gimple_dump_cfg): Likewise.
* var-tracking.c (variable_tracking_main_1): Likewise.

From-SVN: r205044

10 years ago[AArch64] Fix over length lines around aarch64_save_or_restore_fprs.
Marcus Shawcroft [Tue, 19 Nov 2013 16:39:32 +0000 (16:39 +0000)]
[AArch64] Fix over length lines around aarch64_save_or_restore_fprs.

From-SVN: r205043

10 years ago[PATCH] [AArch64] Fix whitespace around aarch64_movdi_<mode>low
Marcus Shawcroft [Tue, 19 Nov 2013 16:36:29 +0000 (16:36 +0000)]
[PATCH] [AArch64] Fix whitespace around aarch64_movdi_<mode>low

From-SVN: r205042

10 years ago[AArch64] Fix whitespace around PROFILE_HOOK.
Marcus Shawcroft [Tue, 19 Nov 2013 16:33:03 +0000 (16:33 +0000)]
[AArch64] Fix whitespace around PROFILE_HOOK.

From-SVN: r205041

10 years agovarasm.c (align_variable): Give error instead of warning for unsupported alignment.
Joseph Myers [Tue, 19 Nov 2013 16:29:57 +0000 (16:29 +0000)]
varasm.c (align_variable): Give error instead of warning for unsupported alignment.

* varasm.c (align_variable): Give error instead of warning for
unsupported alignment.
(assemble_noswitch_variable): Likewise.

From-SVN: r205040

10 years agoRevert accidental checkin.
Jan Hubicka [Tue, 19 Nov 2013 16:29:09 +0000 (16:29 +0000)]
Revert accidental checkin.

From-SVN: r205039

10 years agoc-opts.c: Include plugin.h.
Basile Starynkevitch [Tue, 19 Nov 2013 16:26:52 +0000 (16:26 +0000)]
c-opts.c: Include plugin.h.

[gcc/c-family]
2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>

        * c-opts.c: Include plugin.h.
        (cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.

[gcc/]
2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>

        * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
        cb_file_change.

From-SVN: r205038

10 years ago* ipa/devirt9.C: Fix previous change.
Jan Hubicka [Tue, 19 Nov 2013 16:26:21 +0000 (17:26 +0100)]
* ipa/devirt9.C: Fix previous change.

From-SVN: r205037

10 years agoloop-doloop.c (doloop_optimize_loops): Remove unused loop iterator argument from...
Peter Bergner [Tue, 19 Nov 2013 16:21:32 +0000 (10:21 -0600)]
loop-doloop.c (doloop_optimize_loops): Remove unused loop iterator argument from FOR_EACH_LOOP.

* loop-doloop.c (doloop_optimize_loops): Remove unused
loop iterator argument from FOR_EACH_LOOP.

From-SVN: r205036

10 years ago[AArch64] Fix 20101011-1.c
Cesar Philippidis [Tue, 19 Nov 2013 15:50:57 +0000 (07:50 -0800)]
[AArch64] Fix 20101011-1.c

2013-11-19  Cesar Philippidis  <cesar@codesourcery.com>

* gcc.c-torture/execute/20101011-1.c (__aarch64__):
Remove defined(__linux__).

From-SVN: r205035

10 years agoConvert gimple types from a union to C++ inheritance
David Malcolm [Tue, 19 Nov 2013 15:50:46 +0000 (15:50 +0000)]
Convert gimple types from a union to C++ inheritance

Patch partially autogenerated by refactor_gimple.py from
https://github.com/davidmalcolm/gcc-refactoring-scripts
revision 05fc808c61bd8ddd2372f29b79ceb2491360d298

* Makefile.in (GIMPLE_H): Add dep on is-a.h.
* coretypes.h (union gimple_statement_d): Remove declaration.
(gimple): Convert from being a "union gimple_statement_d *"
to a "struct gimple_statement_base *".
(const_gimple): Likewise (with "const").
* ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace
with...
(ggc_alloc_cleared_gimple_statement_stat): ...this.
* gimple-pretty-print.c (debug): Change parameter from a
"gimple_statement_d &" to a "gimple_statement_base &".
(debug): Change parameter from a "gimple_statement_d *" to
a "gimple_statement_base *".
* gimple-pretty-print.h (debug): Update declarations as above.
* gimple.c (gimple_alloc_stat): Update for renaming of
ggc_alloc_cleared_gimple_statement_d_stat to
ggc_alloc_cleared_gimple_statement_stat.
* gimple.h: Include "is-a.h" for use by is_a_helper
specializations in followup autogenerated patch.
(struct gimple statement_base): Make this type usable as a base
class by adding "desc", "tag" and "variable_size" to GTY, thus
using opting-in to gengtype's support for simple inheritance.
(gimple_statement_with_ops_base): Convert to a subclass of
gimple_statement_base, dropping initial "gsbase" field.  Note
that this type is abstract, with no GSS_ value, and thus no GTY
tag value.
(gimple_statement_with_ops): Convert to a subclass of
gimple_statement_with_ops_base, dropping initial "opbase" field.
Add tag value to GTY marking.  Update marking of op field to
reflect how num_ops field is accessed via inheritance.
(gimple_statement_with_memory_ops_base): Convert to a subclass of
gimple_statement_with_ops_base, dropping initial "opbase" field.
Add tag value to GTY marking.
(gimple_statement_with_memory_ops): Convert to a subclass of
public gimple_statement_with_memory_ops_base, dropping initial
"membase" field.  Add tag value to GTY marking.  Update marking
of op field to reflect how num_ops field is accessed via
inheritance.
(gimple_statement_call): Analogous changes that also update the
marking of the "u" union.
(gimple_statement_omp): Convert to a subclass of
gimple_statement_base, dropping initial "gsbase" field, adding
tag value to GTY marking.
(gimple_statement_bind): Likewise.
(gimple_statement_catch): Likewise.
(gimple_statement_eh_filter): Likewise.
(gimple_statement_eh_else): Likewise.
(gimple_statement_eh_mnt): Likewise.
(gimple_statement_phi): Likewise.
(gimple_statement_eh_ctrl): Likewise.
(gimple_statement_try): Likewise.
(gimple_statement_wce): Likewise.
(gimple_statement_asm): Convert to a subclass of
gimple_statement_with_memory_ops_base, dropping initial
"membase" field, adding tag value to GTY marking, and updating
marking of op field.
(gimple_statement_omp_critical): Convert to a subclass of
gimple_statement_omp, dropping initial "omp" field, adding tag
value to GTY marking.
(gimple_statement_omp_for): Likewise.
(gimple_statement_omp_parallel): Likewise.
(gimple_statement_omp_task): Convert to a subclass of
gimple_statement_omp_parallel, dropping initial "par" field,
adding tag value to GTY marking.
(gimple_statement_omp_sections): Convert to a subclass of
gimple_statement_omp, dropping initial "omp" field, adding
tag value to GTY marking.
(gimple_statement_omp_continue): Convert to a subclass of
gimple_statement_base, dropping initial "gsbase" field, adding
tag value to GTY marking.
(gimple_statement_omp_single): Convert to a subclass of
gimple_statement_omp, dropping initial "omp" field, adding
tag value to GTY marking.
(gimple_statement_omp_atomic_load): Convert to a subclass of
gimple_statement_base, dropping initial "gsbase" field, adding
tag value to GTY marking.
(gimple_statement_omp_atomic_store): Convert to a subclass of
gimple_statement_base, dropping initial "gsbase" field, adding
tag value to GTY marking.
(gimple_statement_transaction): Convert to a subclass of
gimple_statement_with_memory_ops_base, dropping initial "gsbase"
field, adding tag value to GTY marking.
(union gimple_statement_d): Remove.
* system.h (CONST_CAST_GIMPLE): Update to use
"struct gimple_statement_base *" rather than
"union gimple_statement_d *".
* tree-ssa-ccp.c (gimple_htab): Convert underlying type from
gimple_statement_d to gimple_statement_base.

* gimple.h (gimple_use_ops): Port from union to usage of
dyn_cast.
(gimple_set_use_ops): Port from union to usage of as_a.
(gimple_set_vuse): Likewise.
(gimple_set_vdef): Likewise.
(gimple_call_internal_fn): Port from union to a static_cast,
given that the type has already been asserted.
(gimple_omp_body_ptr): Port from unchecked union usage to
a static_cast.
(gimple_omp_set_body): Likewise.

* gimple-iterator.c (update_bb_for_stmts): Update for conversion of
gimple types to a true class hierarchy.
(update_call_edge_frequencies): Likewise.
(gsi_insert_seq_nodes_before): Likewise.
(gsi_insert_seq_nodes_after): Likewise.
(gsi_split_seq_after): Likewise.
(gsi_set_stmt): Likewise.
(gsi_split_seq_before): Likewise.
(gsi_remove): Likewise.
* gimple-iterator.h (gsi_one_before_end_p): Likewise.
(gsi_next): Likewise.
(gsi_prev): Likewise.
* gimple-pretty-print.c (dump_gimple_debug): Likewise.
* gimple-ssa.h (gimple_vuse_op): Likewise.
(gimple_vdef_op): Likewise.
* gimple-streamer-in.c (input_gimple_stmt): Likewise.
* gimple-streamer-out.c (output_gimple_stmt): Likewise.
* gimple.c (gimple_set_code): Likewise.
(gimple_alloc_stat): Likewise.
(gimple_set_subcode): Likewise.
(gimple_build_call_internal_1): Likewise.
(gimple_check_failed): Likewise.
(gimple_call_flags): Likewise.
(gimple_set_bb): Likewise.
* gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
(is_a_helper <gimple_statement_bind> (gimple)): Likewise.
(is_a_helper <gimple_statement_call> (gimple)): Likewise.
(is_a_helper <gimple_statement_catch> (gimple)): Likewise.
(is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
(is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
(is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
(is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
(is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
(is_a_helper <gimple_statement_phi> (gimple)): Likewise.
(is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
(is_a_helper <gimple_statement_try> (gimple)): Likewise.
(is_a_helper <gimple_statement_wce> (gimple)): Likewise.
(is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
(is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
(is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
(is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
(is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_atomic_store>
(const_gimple)): Likewise.
(is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_for> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_single> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_omp_task> (const_gimple)):
Likewise.
(is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
(is_a_helper <const gimple_statement_transaction> (const_gimple)):
Likewise.
(gimple_seq_last): Update for conversion of gimple types to a true
class hierarchy.
(gimple_seq_set_last): Likewise.
(gimple_code): Likewise.
(gimple_bb): Likewise.
(gimple_block): Likewise.
(gimple_set_block): Likewise.
(gimple_location): Likewise.
(gimple_location_ptr): Likewise.
(gimple_set_location): Likewise.
(gimple_no_warning_p): Likewise.
(gimple_set_no_warning): Likewise.
(gimple_set_visited): Likewise.
(gimple_visited_p): Likewise.
(gimple_set_plf): Likewise.
(gimple_plf): Likewise.
(gimple_set_uid): Likewise.
(gimple_uid): Likewise.
(gimple_init_singleton): Likewise.
(gimple_modified_p): Likewise.
(gimple_set_modified): Likewise.
(gimple_expr_code): Likewise.
(gimple_has_volatile_ops): Likewise.
(gimple_set_has_volatile_ops): Likewise.
(gimple_omp_subcode): Likewise.
(gimple_omp_set_subcode): Likewise.
(gimple_omp_return_set_nowait): Likewise.
(gimple_omp_section_set_last): Likewise.
(gimple_omp_parallel_set_combined_p): Likewise.
(gimple_omp_atomic_set_need_value): Likewise.
(gimple_omp_atomic_set_seq_cst): Likewise.
(gimple_num_ops): Likewise.
(gimple_set_num_ops): Likewise.
(gimple_assign_nontemporal_move_p): Likewise.
(gimple_assign_set_nontemporal_move): Likewise.
(gimple_assign_rhs_code): Likewise.
(gimple_assign_set_rhs_code): Likewise.
(gimple_call_internal_p): Likewise.
(gimple_call_with_bounds_p): Likewise.
(gimple_call_set_with_bounds): Likewise.
(gimple_call_set_tail): Likewise.
(gimple_call_tail_p): Likewise.
(gimple_call_set_return_slot_opt): Likewise.
(gimple_call_return_slot_opt_p): Likewise.
(gimple_call_set_from_thunk): Likewise.
(gimple_call_from_thunk_p): Likewise.
(gimple_call_set_va_arg_pack): Likewise.
(gimple_call_va_arg_pack_p): Likewise.
(gimple_call_set_nothrow): Likewise.
(gimple_call_set_alloca_for_var): Likewise.
(gimple_call_alloca_for_var_p): Likewise.
(gimple_call_copy_flags): Likewise.
(gimple_cond_code): Likewise.
(gimple_cond_set_code): Likewise.
(gimple_cond_make_false): Likewise.
(gimple_cond_make_true): Likewise.
(gimple_asm_volatile_p): Likewise.
(gimple_asm_set_volatile): Likewise.
(gimple_asm_set_input): Likewise.
(gimple_asm_input_p): Likewise.
(gimple_try_kind): Likewise.
(gimple_try_set_kind): Likewise.
(gimple_try_catch_is_cleanup): Likewise.
(gimple_try_set_catch_is_cleanup): Likewise.
(gimple_wce_cleanup_eh_only): Likewise.
(gimple_wce_set_cleanup_eh_only): Likewise.
(gimple_debug_bind_p): Likewise.
(gimple_debug_source_bind_p): Likewise.
(gimple_omp_for_set_kind): Likewise.
(gimple_omp_for_set_combined_p): Likewise.
(gimple_omp_for_set_combined_into_p): Likewise.
(gimple_omp_target_set_kind): Likewise.
(gimple_transaction_subcode): Likewise.
(gimple_transaction_set_subcode): Likewise.
(gimple_predict_predictor): Likewise.
(gimple_predict_set_predictor): Likewise.
(gimple_predict_outcome): Likewise.
(gimple_predict_set_outcome): Likewise.
(gimple_transaction_set_label): Likewise.
(gimple_transaction_set_body): Likewise.
(gimple_transaction_label_ptr): Likewise.
(gimple_transaction_label): Likewise.
(gimple_transaction_body_ptr): Likewise.
(gimple_omp_continue_set_control_use): Likewise.
(gimple_omp_continue_control_use_ptr): Likewise.
(gimple_omp_continue_control_use): Likewise.
(gimple_omp_continue_set_control_def): Likewise.
(gimple_omp_continue_control_def_ptr): Likewise.
(gimple_omp_continue_control_def): Likewise.
(gimple_omp_atomic_load_rhs_ptr): Likewise.
(gimple_omp_atomic_load_rhs): Likewise.
(gimple_omp_atomic_load_set_rhs): Likewise.
(gimple_omp_atomic_load_lhs_ptr): Likewise.
(gimple_omp_atomic_load_lhs): Likewise.
(gimple_omp_atomic_load_set_lhs): Likewise.
(gimple_omp_atomic_store_val_ptr): Likewise.
(gimple_omp_atomic_store_val): Likewise.
(gimple_omp_atomic_store_set_val): Likewise.
(gimple_omp_for_cond): Likewise.
(gimple_omp_for_set_cond): Likewise.
(gimple_omp_sections_set_control): Likewise.
(gimple_omp_sections_control_ptr): Likewise.
(gimple_omp_sections_control): Likewise.
(gimple_omp_sections_set_clauses): Likewise.
(gimple_omp_sections_clauses_ptr): Likewise.
(gimple_omp_sections_clauses): Likewise.
(gimple_omp_teams_set_clauses): Likewise.
(gimple_omp_teams_clauses_ptr): Likewise.
(gimple_omp_teams_clauses): Likewise.
(gimple_omp_target_set_data_arg): Likewise.
(gimple_omp_target_data_arg_ptr): Likewise.
(gimple_omp_target_data_arg): Likewise.
(gimple_omp_target_set_child_fn): Likewise.
(gimple_omp_target_child_fn_ptr): Likewise.
(gimple_omp_target_child_fn): Likewise.
(gimple_omp_target_set_clauses): Likewise.
(gimple_omp_target_clauses_ptr): Likewise.
(gimple_omp_target_clauses): Likewise.
(gimple_omp_single_set_clauses): Likewise.
(gimple_omp_single_clauses_ptr): Likewise.
(gimple_omp_single_clauses): Likewise.
(gimple_omp_task_set_arg_align): Likewise.
(gimple_omp_task_arg_align_ptr): Likewise.
(gimple_omp_task_arg_align): Likewise.
(gimple_omp_task_set_arg_size): Likewise.
(gimple_omp_task_arg_size_ptr): Likewise.
(gimple_omp_task_arg_size): Likewise.
(gimple_omp_task_set_copy_fn): Likewise.
(gimple_omp_task_copy_fn_ptr): Likewise.
(gimple_omp_task_copy_fn): Likewise.
(gimple_omp_task_set_data_arg): Likewise.
(gimple_omp_task_data_arg_ptr): Likewise.
(gimple_omp_task_data_arg): Likewise.
(gimple_omp_task_set_child_fn): Likewise.
(gimple_omp_task_child_fn_ptr): Likewise.
(gimple_omp_task_child_fn): Likewise.
(gimple_omp_task_set_clauses): Likewise.
(gimple_omp_task_clauses_ptr): Likewise.
(gimple_omp_task_clauses): Likewise.
(gimple_omp_parallel_set_data_arg): Likewise.
(gimple_omp_parallel_data_arg_ptr): Likewise.
(gimple_omp_parallel_data_arg): Likewise.
(gimple_omp_parallel_set_child_fn): Likewise.
(gimple_omp_parallel_child_fn_ptr): Likewise.
(gimple_omp_parallel_child_fn): Likewise.
(gimple_omp_parallel_set_clauses): Likewise.
(gimple_omp_parallel_clauses_ptr): Likewise.
(gimple_omp_parallel_clauses): Likewise.
(gimple_omp_for_set_pre_body): Likewise.
(gimple_omp_for_pre_body_ptr): Likewise.
(gimple_omp_for_set_incr): Likewise.
(gimple_omp_for_incr_ptr): Likewise.
(gimple_omp_for_incr): Likewise.
(gimple_omp_for_set_final): Likewise.
(gimple_omp_for_final_ptr): Likewise.
(gimple_omp_for_final): Likewise.
(gimple_omp_for_set_initial): Likewise.
(gimple_omp_for_initial_ptr): Likewise.
(gimple_omp_for_initial): Likewise.
(gimple_omp_for_set_index): Likewise.
(gimple_omp_for_index_ptr): Likewise.
(gimple_omp_for_index): Likewise.
(gimple_omp_for_collapse): Likewise.
(gimple_omp_for_set_clauses): Likewise.
(gimple_omp_for_clauses_ptr): Likewise.
(gimple_omp_for_clauses): Likewise.
(gimple_omp_critical_set_name): Likewise.
(gimple_omp_critical_name_ptr): Likewise.
(gimple_omp_critical_name): Likewise.
(gimple_eh_dispatch_set_region): Likewise.
(gimple_eh_dispatch_region): Likewise.
(gimple_resx_set_region): Likewise.
(gimple_resx_region): Likewise.
(gimple_phi_set_arg): Likewise.
(gimple_phi_arg): Likewise.
(gimple_phi_set_result): Likewise.
(gimple_phi_result_ptr): Likewise.
(gimple_phi_result): Likewise.
(gimple_phi_num_args): Likewise.
(gimple_phi_capacity): Likewise.
(gimple_wce_set_cleanup): Likewise.
(gimple_wce_cleanup_ptr): Likewise.
(gimple_try_set_cleanup): Likewise.
(gimple_try_set_eval): Likewise.
(gimple_try_cleanup_ptr): Likewise.
(gimple_try_eval_ptr): Likewise.
(gimple_eh_else_set_e_body): Likewise.
(gimple_eh_else_set_n_body): Likewise.
(gimple_eh_else_e_body_ptr): Likewise.
(gimple_eh_else_n_body_ptr): Likewise.
(gimple_eh_must_not_throw_set_fndecl): Likewise.
(gimple_eh_must_not_throw_fndecl): Likewise.
(gimple_eh_filter_set_failure): Likewise.
(gimple_eh_filter_set_types): Likewise.
(gimple_eh_filter_failure_ptr): Likewise.
(gimple_eh_filter_types_ptr): Likewise.
(gimple_eh_filter_types): Likewise.
(gimple_catch_set_handler): Likewise.
(gimple_catch_set_types): Likewise.
(gimple_catch_handler_ptr): Likewise.
(gimple_catch_types_ptr): Likewise.
(gimple_catch_types): Likewise.
(gimple_asm_string): Likewise.
(gimple_asm_set_label_op): Likewise.
(gimple_asm_label_op): Likewise.
(gimple_asm_set_clobber_op): Likewise.
(gimple_asm_clobber_op): Likewise.
(gimple_asm_set_output_op): Likewise.
(gimple_asm_output_op_ptr): Likewise.
(gimple_asm_output_op): Likewise.
(gimple_asm_set_input_op): Likewise.
(gimple_asm_input_op_ptr): Likewise.
(gimple_asm_input_op): Likewise.
(gimple_asm_nlabels): Likewise.
(gimple_asm_nclobbers): Likewise.
(gimple_asm_noutputs): Likewise.
(gimple_asm_ninputs): Likewise.
(gimple_bind_set_block): Likewise.
(gimple_bind_block): Likewise.
(gimple_bind_add_seq): Likewise.
(gimple_bind_add_stmt): Likewise.
(gimple_bind_set_body): Likewise.
(gimple_bind_body_ptr): Likewise.
(gimple_bind_append_vars): Likewise.
(gimple_bind_set_vars): Likewise.
(gimple_bind_vars): Likewise.
(gimple_call_clobber_set): Likewise.
(gimple_call_use_set): Likewise.
(gimple_call_set_internal_fn): Likewise.
(gimple_call_set_fntype): Likewise.
(gimple_call_fntype): Likewise.
(gimple_omp_return_lhs_ptr): Likewise.
(gimple_omp_return_lhs): Likewise.
(gimple_omp_return_set_lhs): Likewise.
(gimple_omp_taskreg_set_data_arg): Likewise.
(gimple_omp_taskreg_data_arg_ptr): Likewise.
(gimple_omp_taskreg_data_arg): Likewise.
(gimple_omp_taskreg_set_child_fn): Likewise.
(gimple_omp_taskreg_child_fn_ptr): Likewise.
(gimple_omp_taskreg_child_fn): Likewise.
(gimple_omp_taskreg_set_clauses): Likewise.
(gimple_omp_taskreg_clauses_ptr): Likewise.
(gimple_omp_taskreg_clauses): Likewise.
(gimple_vuse): Likewise.
(gimple_vdef): Likewise.
(gimple_vuse_ptr): Likewise.
(gimple_vdef_ptr): Likewise.
* tree-inline.c (copy_debug_stmt): Likewise.
* tree-phinodes.c (make_phi_node): Likewise.

* gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
(is_a_helper <gimple_statement_with_ops>::test): New.
(is_a_helper <const gimple_statement_with_memory_ops>::test): New.
(is_a_helper <gimple_statement_with_memory_ops>::test): New.

* gimple-streamer-in.c (input_gimple_stmt): Port from union
access to use of as_a.
* gimple.c (gimple_build_asm_1): Likewise.
(gimple_build_try): Likewise.  Also, return a specific subclass
rather than just gimple.
(gimple_build_resx): Port from union access to use of as_a.
(gimple_build_eh_dispatch): Likewise.
(gimple_build_omp_for): Likewise.  Also, convert allocation of iter
now that gengtype no longer provides a typed allocator function.
(gimple_copy): Likewise.
* gimple.h (gimple_build_try): Return a specific subclass rather
than just gimple.
* gimplify.c (gimplify_cleanup_point_expr): Replace union access
with subclass access by making use of new return type of
gimple_build_try.
* tree-phinodes.c: (allocate_phi_node): Return a
"gimple_statement_phi *" rather than just a gimple.
(resize_phi_node): Likewise.
(make_phi_node): Replace union access with subclass access by
making use of new return type of allocate_phi_node.
(reserve_phi_args_for_new_edge): Replace union access with as_a.
(remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
than just a gimple.
(remove_phi_args): Update for change to remove_phi_arg_num.

* gdbhooks.py (GimplePrinter.to_string): Update lookup of
code field to reflect inheritance, rather than embedding of
the base gimple type.

From-SVN: r205034

10 years agostring_view (_S_max_size): Remove.
Paolo Carlini [Tue, 19 Nov 2013 15:45:15 +0000 (15:45 +0000)]
string_view (_S_max_size): Remove.

2013-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

* include/experimental/string_view (_S_max_size): Remove.
(basic_string_view<>::max_size): Adjust.
* testsuite/experimental/string_view/capacity/1.cc: Clean-up.
* testsuite/experimental/string_view/inserters/pod/10081-out.cc:
Likewise.

From-SVN: r205033

10 years agocfgloop.h (struct loop_iterator): C++-ify, add constructor and destructor and make...
Richard Biener [Tue, 19 Nov 2013 15:19:09 +0000 (15:19 +0000)]
cfgloop.h (struct loop_iterator): C++-ify, add constructor and destructor and make fel_next a member function.

2013-11-19  Richard Biener  <rguenther@suse.de>

* cfgloop.h (struct loop_iterator): C++-ify, add constructor
and destructor and make fel_next a member function.
(fel_next): Transform into ...
(loop_iterator::next): ... this.
(fel_init): Transform into ...
(loop_iterator::loop_iterator): ... this.
(loop_iterator::~loop_iterator): New.
(FOR_EACH_LOOP): Remove loop-iterator argument.
(FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
* cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
graphite-clast-to-gimple.c, graphite-scop-detection.c,
graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
uses of FOR_EACH_LOOP and remove loop_iterator variables.  Replace
FOR_EACH_LOOP_BREAK with break.

From-SVN: r205032

10 years agoruntime: Update for change to libbacktrace library.
Ian Lance Taylor [Tue, 19 Nov 2013 15:02:27 +0000 (15:02 +0000)]
runtime: Update for change to libbacktrace library.

From-SVN: r205031

10 years agore PR tree-optimization/59164 (ice: tree check: expected tree that contains ‘decl...
Richard Biener [Tue, 19 Nov 2013 15:00:10 +0000 (15:00 +0000)]
re PR tree-optimization/59164 (ice: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_cst’ in get_var_info, at tree-into-ssa.c:380)

2013-11-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59164
* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
Uncomment assert.
* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
check whether we can create an epilogue loop to reflect the
cases where we create one.

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

From-SVN: r205030

10 years ago* doc/xml/manual/status_cxx2014.xml: Create new table for TS statuses.
Jonathan Wakely [Tue, 19 Nov 2013 14:58:46 +0000 (14:58 +0000)]
* doc/xml/manual/status_cxx2014.xml: Create new table for TS statuses.

From-SVN: r205029

10 years agobacktrace.h (backtrace_syminfo_callback): Add symsize argument.
Jakub Jelinek [Tue, 19 Nov 2013 14:46:03 +0000 (15:46 +0100)]
backtrace.h (backtrace_syminfo_callback): Add symsize argument.

* backtrace.h (backtrace_syminfo_callback): Add symsize argument.
* elf.c (elf_syminfo): Pass 0 or sym->size to the callback as
last argument.
* btest.c (struct symdata): Add size field.
(callback_three): Add symsize argument.  Copy it to the data->size
field.
(f23): Set symdata.size to 0.
(test5): Likewise.  If sizeof (int) > 1, lookup address of
((uintptr_t) &global) + 1.  Verify symdata.val and symdata.size
values.

From-SVN: r205028

10 years agographite-sese-to-poly.c: Include expr.h.
Andrew MacLeod [Tue, 19 Nov 2013 13:34:31 +0000 (13:34 +0000)]
graphite-sese-to-poly.c: Include expr.h.

* graphite-sese-to-poly.c: Include expr.h.

From-SVN: r205027

10 years agore PR middle-end/58956 (wrong code at -O1 and above (affecting gcc 4.6 to trunk))
Richard Biener [Tue, 19 Nov 2013 13:28:35 +0000 (13:28 +0000)]
re PR middle-end/58956 (wrong code at -O1 and above (affecting gcc 4.6 to trunk))

2013-11-19  Richard Biener  <rguenther@suse.de>

PR middle-end/58956
* tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
loads into stmts that may clobber it.

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

From-SVN: r205026