Age | Commit message (Collapse) | Author | Files | Lines |
|
factors/probabilities and the actual scaling to use rounding divides...
First phase of unifying the computation of profile scale factors/probabilities
and the actual scaling to use rounding divides:
- Add new macro GCOV_COMPUTE_SCALE to basic-block.h to compute the scale
factor/probability via a rounding divide.
- Change all locations that already perform rounding divides (inline or via RDIV)
to use the appropriate helper: GCOV_COMPUTE_SCALE, apply_probability or
combine_probabilities.
- Change ipa-cp.c truncating divides to use rounding divides.
- Add comments to all other locations (currently using truncating divides) to
switch them to one of the helpers so they use a rounding divide.
Next phase will be to replace the locations using truncating divides, marked
with a comment here, into rounding divides via the helper methods.
2013-04-08 Teresa Johnson <tejohnson@google.com>
* basic-block.h (GCOV_COMPUTE_SCALE): Define.
* ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
methods.
(estimate_edge_size_and_time): Add comment to suggest using rounding
methods.
(estimate_node_size_and_time): Ditto.
(remap_edge_change_prob): Use helper rounding divide methods.
* value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
(gimple_mod_pow2_value_transform): Ditto.
(gimple_mod_subtract_transform): Ditto.
(gimple_ic_transform): Ditto.
(gimple_stringops_transform): Ditto.
* stmt.c (conditional_probability): Ditto.
(emit_case_dispatch_table): Ditto.
* lto-cgraph.c (merge_profile_summaries): Ditto.
* tree-optimize.c (execute_fixup_cfg): Ditto.
* cfgcleanup.c (try_forward_edges): Ditto.
* cfgloopmanip.c (scale_loop_profile): Ditto.
(loopify): Ditto.
(duplicate_loop_to_header_edge): Ditto.
(lv_adjust_loop_entry_edge): Ditto.
* tree-vect-loop.c (vect_transform_loop): Ditto.
* profile.c (compute_branch_probabilities): Ditto.
* cfgbuild.c (compute_outgoing_frequencies): Ditto.
* lto-streamer-in.c (input_cfg): Ditto.
* gimple-streamer-in.c (input_bb): Ditto.
* ipa-cp.c (update_profiling_info): Ditto.
(update_specialized_profile): Ditto.
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
* cfg.c (update_bb_profile_for_threading): Add comment to suggest using
rounding methods.
* sched-rgn.c (compute_dom_prob_ps): Ditto.
(compute_trg_info): Ditto.
* cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
(purge_dead_edges): Ditto.
* loop-unswitch.c (unswitch_loop): Ditto.
* cgraphclones.c (cgraph_clone_edge): Ditto.
(cgraph_clone_node): Ditto.
* tree-inline.c (copy_bb): Ditto.
(copy_edges_for_bb): Ditto.
(initialize_cfun): Ditto.
(copy_cfg_body): Ditto.
(expand_call_inline): Ditto.
From-SVN: r197595
|
|
* config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
TARGET_CYGWIN64 by TARGET_64BIT.
From-SVN: r197593
|
|
* config/epiphany/epiphany.md (<insn_opname>v2si3):
Use gen_addsi3_i / gen_subsi3_i.
From-SVN: r197592
|
|
From-SVN: r197591
|
|
* config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
(cstoresi4): Also allow re-use of zero result when doing a NE
comparison to a non-zero operand.
Use (clobber (sratch)) for first insn if the gpr output is not needed.
From-SVN: r197590
|
|
* config/epiphany/epiphany.md (logical_op): New code iterator.
(op_mnc): New code attribute.
(<op_mnc>_f, mov_f, cstoresi4): New patterns.
(mov_f+1, mov_f+2): New peephole2 patterns.
From-SVN: r197589
|
|
* config/epiphany/constraints.md (CnL): New constraint.
* config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
* config/epiphany/predicates.md (add_operand): Allow 1024.
From-SVN: r197588
|
|
UNORDERED.
* config/epiphany/epiphany.c (epiphany_select_cc_mode):
Don't use CC_FPmode for ORDERED / UNORDERED.
* config/epiphany/epiphany.md (cmpsf_ord): Make pattern
unconditional.
From-SVN: r197587
|
|
* config/epiphany/epiphany.md (GPR_1): New constant.
(define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
* config/epiphany/epiphany.c (gen_compare_reg):
For flag_finite_math_only, avoid swapping operands when r0 and/or r1
is already in place.
Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
Don't require being called during rtl expansion; If y operlaps r0,
return 0.
(epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
(epiphany_expand_epilogue): Likewise.
From-SVN: r197586
|
|
From-SVN: r197582
|
|
PR c++/34949
PR c++/50243
* tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
contain anything but clobbers, at most one __builtin_stack_restore,
optionally debug stmts and final resx, and if it has at least one
incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
(sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
which isn't defaut definition, remove them.
(unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
* tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
with MEM_REF LHS with SSA_NAME address.
* g++.dg/opt/vt3.C: New test.
* g++.dg/opt/vt4.C: New test.
From-SVN: r197580
|
|
* gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into
x != y.
* gcc.dg/tree-ssa/forwprop-25.c: New test
From-SVN: r197579
|
|
2013-04-08 Richard Biener <rguenther@suse.de>
* gimple-pretty-print.c (debug_gimple_stmt): Do not print
extra newline.
* tree-vect-loop.c (vect_determine_vectorization_factor): Dump
determined vector type.
(vect_analyze_data_refs): Likewise.
(vect_get_new_vect_var): Adjust.
(vect_create_destination_var): Preserve SSA name versions.
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
not dump anything here.
* gfortran.dg/vect/fast-math-mgrid-resid.f: Adjust.
From-SVN: r197578
|
|
* config/epiphany/epiphany.h (struct GTY (()) machine_function):
Add member lr_slot_known.
* config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
if necessary.
* config/epiphany/epiphany.c (epiphany_compute_frame_size):
Remove code that sets lr_slot_offset according to what a previous
version of epiphany_emit_save_restore used to do.
(epiphany_emit_save_restore): When doing an lr save or restore,
set/verify lr_slot_known and lr_slot_offset.
From-SVN: r197577
|
|
For Xinyu Qi.
2013-04-08 Xinyu Qi <xyqi@marvell.com>
PR target/54338
* config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
in ALL_REGS.
From-SVN: r197576
|
|
2013-04-08 Richard Biener <rguenther@suse.de>
* alias.c (find_base_term): Fix thinko in previous change.
From-SVN: r197572
|
|
2013-04-08 Richard Biener <rguenther@suse.de>
* gfortran.dg/vect/fast-math-pr37021.f90: Adjust.
From-SVN: r197571
|
|
2013-04-08 Richard Biener <rguenther@suse.de>
* g++.dg/vect/slp-pr56812.cc: Adjust.
From-SVN: r197569
|
|
* tree-loop-distribution.c (const_with_all_bytes_same): New function.
(generate_memset_builtin): Only handle integer_all_onesp as -1 val if
TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
if possible to compute val.
(classify_partition): Verify CONSTRUCTOR doesn't have any elts.
For QImode integers don't require anything about precision. Use
const_with_all_bytes_same to find out if the constant doesn't have
repeated bytes in it.
* gcc.dg/pr56837.c: New test.
* gcc.dg/tree-ssa/ldist-19.c: Don't check for
"generated memset minus one".
From-SVN: r197568
|
|
2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_expand_insv): Only accept insertions
within mode size.
From-SVN: r197566
|
|
(cfgcleanup.c:1703) with --param min-crossjump-insns=0 on basic code)
PR rtl-optimization/48182
* params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
value to 1.
From-SVN: r197564
|
|
From-SVN: r197562
|
|
attribute.
* parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU
noreturn attribute.
From-SVN: r197555
|
|
From-SVN: r197553
|
|
assignments with an ORDER= attribute)
2013-04-07 Tobias Burnus <burnus@net-b.de>
PR fortran/56849
* iresolve.c (gfc_resolve_reshape): Set shape also
with order=.
2013-04-07 Tobias Burnus <burnus@net-b.de>
PR fortran/56849
* gfortran.dg/reshape_5.f90: New.
From-SVN: r197550
|
|
From-SVN: r197549
|
|
gcc.c-torture/execute/pr51447.c at -O2 and above)
PR target/55487
* config/pa/pa.c (legitimize_pic_address): Before incrementing label
nuses, make sure we have a label.
From-SVN: r197541
|
|
From-SVN: r197540
|
|
gcc:
2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/56843
* config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
(rs6000_emit_swdiv_low_precision): Remove.
(rs6000_emit_swdiv): Rewrite to handle between one and four
iterations of Newton-Raphson generally; modify required number of
iterations for some cases.
* config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
gcc/testsuite:
2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/56843
* gcc.target/powerpc/recip-1.c: Modify expected output.
* gcc.target/powerpc/recip-3.c: Likewise.
* gcc.target/powerpc/recip-4.c: Likewise.
* gcc.target/powerpc/recip-5.c: Add expected output for iterations.
From-SVN: r197534
|
|
variable.
* bb-reorder.c (fix_crossing_unconditional_branches): Remove a
set-but-unused variable.
* cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
basic blocks of released function bodies garbage-collectable.
* ree.c (find_and_remove_re): Do not call df_finish_pass here.
(struct rtl_opt_pass): Add TODO_df_finish.
* rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
From-SVN: r197533
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
gcc/testsuite
* gcc.target/arm/peep-ldrd-1.c: New test.
* gcc.target/arm/peep-strd-1.c: Likewise.
gcc/
* config/arm/constraints.md (q): New constraint.
* config/arm/ldrdstrd.md: New file.
* config/arm/arm.md (ldrdstrd.md) New include.
(arm_movdi): Use "q" instead of "r" constraint
for double-word memory access.
(movdf_soft_insn): Likewise.
* config/arm/vfp.md (movdi_vfp): Likewise.
* config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
* config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
* config/arm/arm.c (gen_operands_ldrd_strd): New function.
(mem_ok_for_ldrd_strd): Likewise.
(output_move_double): Update assertion.
From-SVN: r197530
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md: Comment on splitting Thumb1 patterns.
From-SVN: r197529
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (arm_smax_insn): Convert define_insn into
define_insn_and_split.
(arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
From-SVN: r197528
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
define_insn_and_split.
(arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
(shiftsi3_compare): New pattern.
(rrx): New pattern.
* config/arm/unspecs.md (UNSPEC_RRX): New.
From-SVN: r197527
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
gcc/
* config/arm/arm.md (negdi_extendsidi): New pattern.
(negdi_zero_extendsidi): Likewise.
gcc/testsuite
* gcc.target/arm/negdi-1.c: New test.
* gcc.target/arm/negdi-2.c: Likewise.
* gcc.target/arm/negdi-3.c: Likewise.
* gcc.target/arm/negdi-4.c: Likewise.
From-SVN: r197526
|
|
we use v8 NEON.
2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (add_options_for_arm_v8_neon):
Add -march=armv8-a when we use v8 NEON.
(check_effective_target_vect_call_btruncf): Remove arm-*-*-*.
(check_effective_target_vect_call_ceilf): Likewise.
(check_effective_target_vect_call_floorf): Likewise.
(check_effective_target_vect_call_roundf): Likewise.
(check_vect_support_and_set_flags): Remove check for arm_v8_neon.
* gcc.target/arm/vect-rounding-btruncf.c: New testcase.
* gcc.target/arm/vect-rounding-ceilf.c: Likewise.
* gcc.target/arm/vect-rounding-floorf.c: Likewise.
* gcc.target/arm/vect-rounding-roundf.c: Likewise.
From-SVN: r197523
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
define_insn_and_split.
(arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
(arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
From-SVN: r197522
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (arm_subdi3): Convert define_insn into
define_insn_and_split.
(subdi_di_zesidi,subdi_di_sesidi): Likewise.
(subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
From-SVN: r197521
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (subsi3_carryin): New pattern.
(subsi3_carryin_const): Likewise.
(subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
(subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
From-SVN: r197520
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
From-SVN: r197519
|
|
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
(addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
From-SVN: r197518
|
|
2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_expand_builtin): Change fcode
type to unsigned int.
From-SVN: r197517
|
|
* gcc.target/powerpc/sd-vsx.c: Skip on AIX.
* gcc.target/powerpc/sd-pwr6.c: Same.
* gcc.dg/stack-usage-1.c: Define SIZE on AIX.
* g++.dg/debug/pr56294.C: XFAIL on AIX.
From-SVN: r197516
|
|
gcc/cp:
2013-04-05 Ed Smith-Rowland <3dw4rd@verizon.net>
* g++.dg/cpp0x/ref-qual-multi-neg.C: New test.
gcc/testsuite:
2013-04-05 Ed Smith-Rowland <3dw4rd@verizon.net>
* parser.c (cp_parser_ref_qualifier_seq_opt): Move to
cp_parser_ref_qualifier_opt. Error if more than one ref-qual found.
From-SVN: r197514
|
|
2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* doc/invoke.texi (ARM Options): Document cortex-a53 support.
From-SVN: r197513
|
|
* doc/standards.texi (Standards): The Go frontend supports the Go
1 language standard.
From-SVN: r197507
|
|
From-SVN: r197501
|
|
2013-04-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/40881
* match.c (gfc_match_return): Remove standard notification.
* primary.c (gfc_match_actual_arglist): Add standard notification.
2013-04-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/40881
* gfortran.dg/altreturn_1.f90: Add -std=gnu.
* gfortran.dg/altreturn_4.f90: Ditto.
* gfortran.dg/altreturn_3.f90: Replace -std=legacy by -std=gnu.
* gfortran.dg/altreturn_5.f90: Ditto.
* gfortran.dg/altreturn_6.f90: Ditto.
* gfortran.dg/altreturn_7.f90: Ditto.
From-SVN: r197495
|
|
PR middle-end/56729
* df-scan.c (df_insn_delete): Disable failing assert.
From-SVN: r197492
|
|
2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (check_effective_target_arm_v8_neon_hw):
New procedure.
(check_effective_target_arm_v8_neon_ok_nocache):
Likewise.
(check_effective_target_arm_v8_neon_ok): Change to use
check_effective_target_arm_v8_neon_ok_nocache.
(add_options_for_arm_v8_neon): Use et_arm_v8_neon_flags to set ARMv8
NEON flags.
(check_effective_target_vect_call_btruncf):
Enable for arm and ARMv8 NEON.
(check_effective_target_vect_call_ceilf): Likewise.
(check_effective_target_vect_call_floorf): Likewise.
(check_effective_target_vect_call_roundf): Likewise.
(check_vect_support_and_set_flags): Handle ARMv8 NEON effective
target.
From-SVN: r197491
|