aboutsummaryrefslogtreecommitdiff
path: root/gcc/dojump.c
AgeCommit message (Collapse)AuthorFilesLines
2012-03-07coverage.c (get_gcov_type): Use type_for_mode.Richard Guenther1-30/+0
2012-03-07 Richard Guenther <rguenther@suse.de> * coverage.c (get_gcov_type): Use type_for_mode. (get_gcov_unsigned_t): Likewise. * expr.c (store_constructor): Use type_for_mode. (try_casesi): Likewise. * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove. (add_standard_iv_candidates): Use standard type trees. * dojump.c (do_jump): Remove dead code. From-SVN: r185048
2012-02-09re PR middle-end/52140 (Libdfp testcase encounters ICE when compiled with ↵Peter Bergner1-2/+2
soft-dfp (no -mcpu).) gcc/ PR middle-end/52140 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P. gcc/testsuite/ PR middle-end/52140 * gcc.dg/dfp/pr52140.c: New test. From-SVN: r184045
2011-08-18tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.Richard Sandiford1-2/+5
gcc/ * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. * doc/tm.texi: Regenerate. * target.def (rtx_costs): Add an opno parameter. * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with... (hook_bool_rtx_int_int_int_intp_bool_false): ...this. * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with... (hook_bool_rtx_int_int_int_intp_bool_false): ...this. * cse.c (COST_IN): Add an opno parameter. (notreg_cost): Likewise. Update call to rtx_cost. (COST, fold_rtx): Update accordingly. * dojump.c (prefer_and_bit_test): Update call to rtx_cost. * expmed.c (emit_store_flag): Likewise. * optabs.c (avoid_expensive_constant): Add an opno parameter. Update call to rtx_cost. (expand_binop_directly, expand_binop): Likewise. (expand_twoval_binop, prepare_cmp_insn): Likewise. * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters. (set_src_cost, get_full_set_src_cost): Update accordingly. * rtlanal.c (rtx_cost): Add an opno parameter. Update call to target hook. (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost. (default_adress_cost): Update calls to rtx_cost. * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs) (arm_slowmul_rtx_costs): Adjust calls to rtx_cost. (arm_rtx_costs): Add an opno parameter. * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and adjust any recursive rtx-cost calls. * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise. * config/bfin/bfin.c (bfin_rtx_costs): Likewise. * config/c6x/c6x.c (c6x_rtx_costs): Likewise. * config/cris/cris.c (cris_rtx_costs): Likewise. * config/frv/frv.c (frv_rtx_costs): Likewise. * config/h8300/h8300.c (h8300_rtx_costs): Likewise. * config/i386/i386.c (ix86_rtx_costs): Likewise. * config/ia64/ia64.c (ia64_rtx_costs): Likewise. * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise. * config/lm32/lm32.c (lm32_rtx_costs): Likewise. * config/m32c/m32c.c (m32c_rtx_costs): Likewise. * config/m32r/m32r.c (m32r_rtx_costs): Likewise. * config/m68k/m68k.c (m68k_rtx_costs): Likewise. * config/mcore/mcore.c (mcore_rtx_costs): Likewise. * config/mep/mep.c (mep_rtx_cost): Likewise. * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise. * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost. (mips_zero_extend_cost): Add an opno parameter. * config/mmix/mmix.c (mmix_rtx_costs): Likewise. * config/mn10300/mn10300.c (mn10300_address_cost): Update call to rtx_cost. (mn10300_rtx_costs): Add an opno parameter and adjust any recursive rtx-cost calls. * config/pa/pa.c (hppa_rtx_costs): Likewise. * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. * config/picochip/picochip.c (picochip_rtx_costs): Likewise. * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise. (rs6000_debug_rtx_costs): Likewise. * config/s390/s390.c (s390_rtx_costs): Likewise. * config/score/score-protos.h (score_rtx_costs): Likewise. * config/score/score.c (score_rtx_costs): Likewise. * config/sh/sh.c (andcosts): Update call to rtx_cost. (sh_rtx_costs): Add an opno parameter. * config/sparc/sparc.c (sparc_rtx_costs): Likewise. * config/spu/spu.c (spu_rtx_costs): Likewise. * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise. * config/v850/v850.c (v850_rtx_costs): Likewise. * config/vax/vax.c (vax_rtx_costs): Likewise. * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise. From-SVN: r177852
2011-06-02arm-protos.h (tune_params): Add branch_cost hook.Julian Brown1-0/+1
gcc/ * config/arm/arm-protos.h (tune_params): Add branch_cost hook. * config/arm/arm.c (arm_default_branch_cost): New. (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune) (arm_fa726_tune): Set branch_cost field using arm_default_branch_cost. * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from current_tune structure. * dojump.c (tm_p.h): Include file. From-SVN: r174578
2011-03-24* dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.Eric Botcazou1-8/+30
From-SVN: r171425
2010-05-20double-int.h (double_int_ior): New function.Anatoly Sokolov1-1/+1
* double-int.h (double_int_ior): New function. * tree.h (build_int_cst_wide_type): Remove. * tree.c (build_int_cst_wide_type): Remove. * fold-const.c (native_interpret_int): Use double_int_to_tree instead of build_int_cst_wide_type. * stor-layout.c (set_sizetype): (Ditto.). * dojump.c (do_jump): Use build_int_cstu instead of build_int_cst_wide_type. /java * jcf-parse.c (get_constant): Use double_int_to_tree instead of build_int_cst_wide_type. From-SVN: r159595
2010-04-20double-int.h (double_int_setbit): Declare.Anatoly Sokolov1-1/+2
* double-int.h (double_int_setbit): Declare. * double-int.c (double_int_setbit): New function. * rtl.h (immed_double_int_const): Declare. * emit-rtl.c (immed_double_int_const): New function. * builtins.c (expand_builtin_signbit): Clean up, use double_int_* and immed_double_int_const functions. * optabs.c (expand_absneg_bit, expand_copysign_absneg, expand_copysign_bit): (Ditto.). * simplify-rtx.c (simplify_binary_operation_1): (Ditto.). * tree-ssa-address.c (addr_for_mem_ref): (Ditto.). * dojump.c (prefer_and_bit_test): (Ditto.). * expr.c (convert_modes, reduce_to_bit_field_precision, const_vector_from_tree): (Ditto.). * expmed.c (mask_rtx, lshift_value): (Ditto.). From-SVN: r158566
2010-02-19re PR middle-end/42233 (c++ builtin_expect code generation regression)Jakub Jelinek1-1/+2
PR middle-end/42233 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority. From-SVN: r156903
2010-02-19re PR middle-end/42233 (c++ builtin_expect code generation regression)Jakub Jelinek1-87/+152
PR middle-end/42233 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump, do_jump_1, do_compare_rtx_and_jump): Add PROB argument. * dojump.c: Include output.h. (inv): New inline function. (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump, do_jump_by_parts_greater_rtx, do_jump_by_parts_greater, do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx, do_jump_by_parts_equality, do_compare_and_jump): Add PROB argument, pass it down to other calls. (do_compare_rtx_and_jump): Likewise. If PROB is not -1, add REG_BR_PROB note to the conditional jump. * cfgexpand.c (add_reg_br_prob_note): Removed. (expand_gimple_cond): Don't call it, add the probability as last argument to jumpif_1/jumpifnot_1. * Makefile.in (dojump.o): Depend on output.h. * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump callers. * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise. * stmt.c (do_jump_if_equal): Likewise. * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise. * loop-unswitch.c (compare_and_jump_seq): Likewise. * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Likewise. * optabs.c (expand_doubleword_shift, expand_abs): Likewise. * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and jumpifnot_1 callers. (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump callers. (store_expr): Adjust jumpifnot caller. (store_constructor): Adjust jumpif caller. From-SVN: r156889
2009-12-13re PR tree-optimization/42027 (Performance regression in convolution loop ↵Michael Matz1-0/+5
optimization) PR tree-optimization/42027 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of falling through. From-SVN: r155196
2009-08-25expr.h (jumpifnot_1, [...]): Declare.Michael Matz1-153/+207
* expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare. * dojump.c (do_jump_by_parts_greater): Take two operands instead of full expression. (do_jump_by_parts_equality, do_compare_and_jump): Ditto. (jumpifnot_1, jumpif_1): New wrappers for do_jump_1. (do_jump): Split out code for simple binary comparisons into ... (do_jump_1): ... this, taking the individual operands and code. Change callers to helper function above accordingly. * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary comparisons. From-SVN: r151080
2009-06-28dojump.c (do_compare_rtx_and_jump): Try swapping the condition for floating ↵Paolo Bonzini1-7/+18
point modes. 2009-06-28 Paolo Bonzini <bonzini@gnu.org> * dojump.c (do_compare_rtx_and_jump): Try swapping the condition for floating point modes. * expmed.c (emit_store_flag_1): Move here a bigger part of emit_store_flag. (emit_store_flag): Try swapping the condition for floating point modes. * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better. From-SVN: r149033
2009-06-28builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.Paolo Bonzini1-97/+181
2009-06-28 Paolo Bonzini <bonzini@gnu.org> * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump. * dojump.c (do_jump): Change handling of floating-point ops to use just do_compare_and_jump. (split_comparison): New. (do_compare_rtx_and_jump): Add here logic coming previously in do_jump, using split_comparison. From-SVN: r149031
2009-05-12Merge cond-optab branch.Paolo Bonzini1-58/+0
From-SVN: r147425
2009-05-07re PR middle-end/40057 (Incorrect right shift by 31 with long long)Jakub Jelinek1-4/+5
PR middle-end/40057 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of GEN_INT for 1 << bitnum. (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of build_int_cst_type. * gcc.c-torture/execute/pr40057.c: New test. From-SVN: r147241
2009-03-30combine.c (simplify_comparison): Use have_insn_for.Paolo Bonzini1-4/+2
2009-03-30 Paolo Bonzini <bonzini@gnu.org> * combine.c (simplify_comparison): Use have_insn_for. * dojump.c (do_jump): Likewise. From-SVN: r145285
2009-01-09re PR middle-end/38347 (gfortran.dg/alloc_comp_constructor_1.f90 ICE with ↵Jakub Jelinek1-4/+4
-O2 -fdefault-integer-8) PR middle-end/38347 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of GET_MODE (op0) in operand_subword_force calls. From-SVN: r143204
2008-09-11dojump.c (do_jump): Move below.Paolo Bonzini1-74/+80
2008-09-11 Paolo Bonzini <bonzini@gnu.org> * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to TRUTH_AND_EXPR for boolean (1-bit precision) expressions. (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR. * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return a bool. * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges before finalizing the changes. * tree-vrp.c (extract_range_from_binary_expr): Add limited support for BIT_IOR_EXPR. (simplify_truth_ops_using_ranges): New. (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges, simplify_cond_using_ranges, simplify_switch_using_ranges): Return whether a simplification was made. (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN, use a switch statement and also call simplify_truth_ops_using_ranges. testsuite: 2008-09-11 Paolo Bonzini <bonzini@gnu.org> * gcc.dg/tree-ssa/vrp47.c: New. * gcc.target/i386/andor-2.c: New. From-SVN: r140288
2008-08-31fwprop.c (should_replace_address): Add speed attribute.Jan Hubicka1-2/+2
* fwprop.c (should_replace_address): Add speed attribute. (PR_OPTIMIZE_FOR_SPEED): New flag. (propagate_rtx_1): Use it. (propagate_rtx): Set it. (try_fwprop_subst): Update call of rtx_costs. (forward_propagate_and_simplify): LIkewise. * hooks.c (hook_int_rtx_bool_0): New (hook_bool_rtx_int_int_intp_false): Replace by ... (hook_bool_rtx_int_int_intp_bool_false): .. thisone. * hooks.h (hook_int_rtx_bool_0): New (hook_bool_rtx_int_int_intp_false): Replace by ... (hook_bool_rtx_int_int_intp_bool_false): .. thisone. * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost. (prepare_cmp_insn): UPdate call of rtx_cost. * postreload.c (reload_cse_simplify_set): Update call of rtx_cost. (reload_cse_simplify_operands): Update call of rtx_cost. (reload_cse_move2add): call of rtx_cost. * target.h (struct gcc_target): Update rtx_costs and address_costs. * rtlanal.c (rtx_cost): Add speed argument. (address_cost): Add speed argument (default_address_cost): Likewise. (insn_rtx_cost): Likewise. * cfgloopanal.c (seq_cost): Add speed argument. (target_reg_cost, target_spill_cost): Turn to array. (init_set_costs): Update for speed. (estimate_reg_pressure_cost): Add speed argument. * auto-inc-dec.c (attempt_change): Update call of rtx_cost. * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost. * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed. (seq_cost): Add speed argument. (computation_cost): Add speed arugment. (add_cost, multiply_by_const, get_address_cost): add speed argument. (force_expr_to_var_cost): Update for profile info. (force_var_cost): Likewise. (split_address_cost): Likewise. (ptr_difference_cost): Likewise. (difference_cost): Likewise. (get_computation_cost_at): Likewise. (determine_iv_cost): Likewise. (ivopts_global_cost_for_size): Likewise. (rewrite_use_address): Likewise. (tree_ssa_iv_optimize_loop): Initialize speed field. * cse.c (optimize_this_for_speed_p): New static var. (notreg_cost): Update call of rtx_cost. (cse_extended_basic_block): set optimize_this_for_speed_p. * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost. (noce_try_cmove_arith): Likewise. (noce_try_sign_mask): LIkewise. * expr.c (compress_float_constant): Update rtx_cost calls. * tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument. (addr_to_parts): Likewise. (create_mem_ref): Likewise. * dse.c (find_shift_sequence): Add speed argument. (replace_read): Update call. * calls.c (precompute_register_parameters): Update call of rtx_cost. * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, * neg_cost, shift_cost, shiftadd_cost, shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost, mul_highpart_cost): Increase dimension. (init_expmed): Initialize for both size and speed. (expand_shift): Use profile. (synth_mult): Use profile. (choose_mult_variant): Use profile. (expand_mult): Use profile. (expand_mult_highpart_optab): Use profile. (expand_mult_highpart): Use profile. (expand_smod_pow2): Use profile. (expand_divmod): Use profile. * simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost. * loop-invariant.c (create_new_invariant): Use profile. (gain_for_invariant): Add speed parameter. (best_gain_for_invariant): Likewise. (find_invariants_to_move): Likewise. (move_single_loop_invariants): Set it. * target-def.h (TARGET_RTX_COSTS): Use hook. * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe. (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare. * output.h (default_address_cost): Update prototype. * combine.c (optimize_this_for_speed_p): New static var. (combine_validate_cost): Update call of rtx_cost. (combine_instructions): Set optimize_this_for_speed_p. (expand_compound_operation): Update call of rtx_cost. (make_extraction):Update call of rtx_cost. (force_to_mode):Update call of rtx_cost. (distribute_and_simplify_rtx):Update call of rtx_cost. * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array. (estimate_reg_pressure_cost): Update prototype. * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype. * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p): Remove. * config/alpha/alpha.c (alpha_rtx_costs): Update. (alpha_rtx_costs): Update. * config/frv/frv.c (frv_rtx_costs): Update. * config/s390/s390.c (s390_rtx_costs): Update. * config/m32c/m32c.c (m32c_memory_move_cost): Update. (m32c_rtx_costs): Update. * config/spu/spu.c (TARGET_ADDRESS_COST): Upate. (spu_rtx_costs): Update. * config/sparc/sparc.c (sparc_rtx_costs): Update. * config/m32r/m32r.c (m32r_rtx_costs): Update. * config/i386/i386.c (:ix86_address_cost): Update. (ix86_rtx_costs): Update. * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update. * config/pdp11/pdp11.c (pdp11_rtx_costs): Update. * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update. * config/crx/crx.c (crx_address_cost): Update. * config/xtensa/xtensa.c (xtensa_rtx_costs): Update. * config/stormy16/stormy16.c (xstormy16_address_cost, xstormy16_rtx_costs): Update. * config/m68hc11/m68hc11.c (m68hc11_address_cost, m68hc11_rtx_costs): Update. * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update. * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update. * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update * config/ia64/ia64.c (ia64_rtx_costs): Update. * config/m68k/m68k.c (m68k_rtx_costs): Update. * config/rs6000/rs6000.c (rs6000_rtx_costs): Update. * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update. * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update. (mcore_rtx_costs): update. * config/score/score3.c (score3_rtx_costs): Update. * config/score/score7.c (score7_rtx_costs): Update. * config/score/score3.h (score3_rtx_costs):Update. * config/score/score7.h (score7_rtx_costs): Update. * config/score/score.c (score_rtx_costs): Update. * config/arm/arm.c (arm_address_cost): Update. (arm_rtx_costs_1): Update. (arm_rtx_costs_1): Update. (arm_size_rtx_costs): Update. (arm_size_rtx_costs): Update. (arm_size_rtx_costs): Update. (arm_xscale_rtx_costs): Update. (arm_thumb_address_cost): Update. * config/pa/pa.c (hppa_address_cost): Update. * config/mips/mips.c (mips_rtx_costs): Update. * config/vax/vax.c (vax_address_cost): Update. * config/h8300/h8300.c (h8300_shift_costs): Update. (h8300_rtx_costs): Update. * config/v850/v850.c (TARGET_ADDRESS_COST): Update. (v850_rtx_costs): Update. * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update. * config/bfin/bfin.c (bfin_address_cost): Update. (bfin_rtx_costs): Update. * stmt.c (lshift_cheap_p): Update. From-SVN: r139821
2008-08-30Include basic-block.h in dojump.c to declare optimize_insn_for_speed.Michael Meissner1-0/+1
From-SVN: r139810
2008-08-30optabs.c (expand_abs_nojump): Update BRANCH_COST call.Jan Hubicka1-2/+5
* optabs.c (expand_abs_nojump): Update BRANCH_COST call. * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise. * dojump.c (do_jump): Likewise. * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise. (note-if_info): Add BRANCH_COST. (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith, noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated branch cost. * expr.h (BRANCH_COST): Update default. * predict.c (predictable_edge_p): New function. * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag): Update BRANCH_COST call. * basic-block.h (predictable_edge_p): Declare. * config/alpha/alpha.h (BRANCH_COST): Update. * config/frv/frv.h (BRANCH_COST): Update. * config/s390/s390.h (BRANCH_COST): Update. * config/spu/spu.h (BRANCH_COST): Update. * config/sparc/sparc.h (BRANCH_COST): Update. * config/m32r/m32r.h (BRANCH_COST): Update. * config/i386/i386.h (BRANCH_COST): Update. * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST. * config/sh/sh.h (BRANCH_COST): Update. * config/pdp11/pdp11.h (BRANCH_COST): Update. * config/avr/avr.h (BRANCH_COST): Update. * config/crx/crx.h (BRANCH_COST): Update. * config/xtensa/xtensa.h (BRANCH_COST): Update. * config/stormy16/stormy16.h (BRANCH_COST): Update. * config/m68hc11/m68hc11.h (BRANCH_COST): Update. * config/iq2000/iq2000.h (BRANCH_COST): Update. * config/ia64/ia64.h (BRANCH_COST): Update. * config/rs6000/rs6000.h (BRANCH_COST): Update. * config/arc/arc.h (BRANCH_COST): Update. * config/score/score.h (BRANCH_COST): Update. * config/arm/arm.h (BRANCH_COST): Update. * config/pa/pa.h (BRANCH_COST): Update. * config/mips/mips.h (BRANCH_COST): Update. * config/vax/vax.h (BRANCH_COST): Update. * config/h8300/h8300.h (BRANCH_COST): Update. * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New. * doc/invoke.texi (predictable-branch-cost-outcome): Document. * doc/tm.texi (BRANCH_COST): Update. From-SVN: r139804
2008-08-12re PR middle-end/37014 (internal compiler error: in expand_expr_real_1, at ↵Jakub Jelinek1-2/+2
expr.c:8760) PR middle-end/37014 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. * dojump.c (do_jump): Likewise. * gcc.c-torture/compile/20080812-1.c: New test. From-SVN: r139029
2008-07-26cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.Jan Hubicka1-2/+1
* cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE. * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE. * dojump.c (clear_pending_stack_adjust): Likewise. * print-tree.c (print_node): Ignore DECL_INLINE. * tree-inline.c (inlinable_function_p): Likewise. From-SVN: r138165
2008-05-09pa.c (reloc_needed): Use CASE_CONVERT.Tomas Bily1-2/+1
* config/pa/pa.c (reloc_needed): Use CASE_CONVERT. * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise. * tree-ssa-structalias.c (get_constraint_for): Likewise. * c-common.c (c_common_truthvalue_conversion): Likewise. * tree-object-size.c (compute_object_offset): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * varasm.c (const_hash_1, compare_constant, copy_constant) (compute_reloc_for_constant, output_addressed_constants) (initializer_constant_valid_p): Likewise. * c-omp.c (check_omp_for_incr_expr): Likewise. * gimplify.c (gimplify_expr): Likewise. * c-typeck.c (c_finish_return): Likewise. * tree-vectorizer.c (supportable_widening_operation) (supportable_narrowing_operation): Likewise. * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise. * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise. * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info) (descr_info_loc): Likewise. * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. * fold-const.c (operand_equal_p, make_range, extract_muldiv_1) (fold_unary): Likewise. * builtins.c (get_pointer_alignment): Likewise. * tree-scalar-evolution.c (interpret_rhs_modify_stmt) (instantiate_parameters_1): Likewise. * tree.c (expr_align, stabilize_reference): Likewise. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise. * convert.c (strip_float_extensions): Use CONVERT_EXPR_P. * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. * config/alpha/alpha.c (va_list_skip_additions): Likewise. * c-common.c (c_alignof_expr, check_function_arguments_recurse): Likewise. * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise. * varasm.c (initializer_constant_valid_p, output_constant): Likewise. * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from) (forward_propagate_addr_expr_1, forward_propagate_addr_expr) (forward_propagate_comparison) (tree_ssa_forward_propagate_single_use_vars): Likewise. * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise. * emit-rtl.c (component_ref_for_mem_expr) (set_mem_attributes_minus_bitpos): Likewise. * tree-ssa-phiopt.c (conditional_replacement): Likewise. * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr): Likewise. * c-typeck.c (default_function_array_conversion, build_indirect_ref) (build_function_call, pointer_diff, build_compound_expr) (c_finish_return): Likewise. * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise. * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1): Likewise. * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise. * expr.c (is_aligning_offset): Likewise. * tree-ssa-alias.c (is_escape_site): Likewise. * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes) (check_all_va_list_escapes): Likewise. * tree-ssa-loop-ivopts.c (determine_base_object) (determine_common_wider_type): Likewise. * dojump.c (do_jump): Likewise. * tree-ssa-sccvn.c (simplify_unary_expression): Likewise. * tree-gimple.c (is_gimple_cast): Likewise. * fold-const.c (decode_field_reference, ) (fold_sign_changed_comparison, fold_unary, fold_comparison) (fold_binary): Likewise. * tree-ssa-alias-warnings.c (find_alias_site_helper) (already_warned_in_frontend_p): Likewise. * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise. * tree.c (really_constant_p, get_unwidened): Likewise. * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. * tree-ssa-loop-im.c (rewrite_bittest): Likewise. * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1): Likewise. * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use CONVERT_EXPR_P. (CONVERT_EXPR_P): Define. (CASE_CONVERT): Define. From-SVN: r135114
2008-04-25re PR testsuite/35843 (-fdump-rtl-expand does not exist anymore)Jan Hubicka1-1/+1
PR testsuite/35843 * cfgexpand.c (pass_expand): Turn into RTL pass. * passes.c (execute_one_pass): Do pass typechecking after execution. * tree-pass.h (pass_expand): Turn into RTL pass. * function.h (struct rtl_data): Move here fields accesses_prior_frames, calls_eh_return, saves_all_registers, has_nonlocal_goto, has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda, tail_call_emit, arg_pointer_save_area_init from struct function; turn into bool. (struct function): Move calls_eh_return, saves_all_registers, has_nonlocal_goto, has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda, tail_call_emit, arg_pointer_save_area_init into struct rtl_data. Remove recursive_call_emit and gimplified flags. (current_function_returns_struct, current_function_returns_pcc_struct, current_function_calls_setjmp, current_function_calls_alloca, current_function_accesses_prior_frames, current_function_calls_eh_return, current_function_is_thunk, current_function_stdarg, current_function_profile, current_function_limit_stack, current_function_uses_pic_offset_table, current_function_uses_const_pool, current_function_has_nonlocal_label, current_function_saves_all_registers, current_function_has_nonlocal_goto, current_function_has_asm_statement): Remove accesor macros. * ra-conflict.c (global_conflicts): Update. * tree-tailcall.c (suitable_for_tail_opt_p): Update. (suitable_for_tail_call_opt_p): Update. * builtins.c (expand_builtin_return_addr): Update. (expand_builtin_setjmp_setup): Update. (expand_builtin_nonlocal_goto): Update. * final.c (final_start_function): Update. (profile_function): Update. (leaf_function_p): Update. (only_leaf_regs_used): Update. * df-scan.c (df_get_exit_block_use_set): Update. * dojump.c (clear_pending_stack_adjust): Update. * tree-stdarg.c (gate_optimize_stdarg): Update. * gimple-low.c (lower_function_body): Update. * global.c (compute_regsets): Update. (global_alloc): Update. * dwarf2out.c (dwarf2out_begin_prologue): Update. * expr.c (expand_assignment): Update. * dse.c (dse_step0): Update. (dse_step1): Update. * c-decl.c (store_parm_decls): Update. * local-alloc.c (combine_regs): Update. (find_free_reg): Update. * function.c (assign_parms_augmented_arg_list): Update. (assign_parm_find_data_types): Update. (assign_parms): Update. (allocate_struct_function): Update. (expand_function_start): Update. (expand_function_end): Update. (get_arg_pointer_save_area): Update. (thread_prologue_and_epilogue_insns): Update. (rest_of_match_asm_constraints): Update. * stor-layout.c (variable_size): Update. * gcse.c (gcse_main): Update. (bypass_jumps): Update. * gimplify.c (gimplify_function_tree): Update. * calls.c (emit_call_1): Update. (expand_call): Update. * bt-load.c (compute_defs_uses_and_gen): Update. * except.c (sjlj_assign_call_site_values): Update. (sjlj_emit_function_enter): Update. (can_throw_external): Update. (set_nothrow_function_flags): Update. (expand_builtin_unwind_init): Update. (expand_eh_return): Update. (convert_to_eh_region_ranges): Update. (output_function_exception_table): Update. * emit-rtl.c (gen_tmp_stack_mem): Update. * cfgexpand.c (expand_used_vars): Update. (tree_expand_cfg): Update. * cfgcleanup.c (rest_of_handle_jump): Update. * explow.c (allocate_dynamic_stack_space): Update. * varasm.c (assemble_start_function): Update. (force_const_mem): Update. (mark_constant_pool): Update. * tree-optimize.c (tree_rest_of_compilation): Update. * stack-ptr-mod.c (notice_stack_pointer_modification): Update. * tree-cfg.c (notice_special_calls): Update. (is_ctrl_altering_stmt): Update. (tree_can_make_abnormal_goto): Update. (tree_purge_dead_abnormal_call_edges): Update. * config/alpha/predicates.md: Update. * config/alpha/alpha.c (alpha_sa_mask): Update. (alpha_sa_size): Update. (alpha_does_function_need_gp): Update. (alpha_expand_prologue): Update. (alpha_start_function): Update. (alpha_output_function_end_prologue): Update. (alpha_expand_epilogue): Update. * config/frv/frv.c (frv_stack_info): Update. (frv_expand_epilogue): Update. * config/s390/s390.c (s390_regs_ever_clobbered): Update. (s390_register_info): Update. (s390_frame_info): Update. (s390_init_frame_layout): Update. (s390_can_eliminate): Update. (save_gprs): Update. * config/spu/spu.c (spu_split_immediate): Update. (need_to_save_reg): Update. (spu_expand_prologue): Update. (spu_expand_epilogue): Update. * config/sparc/sparc.md: Update. * config/sparc/sparc.c (eligible_for_return_delay): Update. (sparc_tls_got): Update. (legitimize_pic_address): Update. (sparc_emit_call_insn): Update. (sparc_expand_prologue): Update. (output_return): Update. (print_operand): Update. (sparc_function_ok_for_sibcall): Update. * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update. * config/m32r/m32r.md: Update. * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update. (m32r_compute_frame_size): Update. (m32r_expand_prologue): Update. (m32r_expand_epilogue): Update. (m32r_legitimize_pic_address): Update. * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update. * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. * config/i386/i386.c (ix86_frame_pointer_required): Update. (gen_push): Update. (ix86_save_reg): Update. (ix86_compute_frame_layout): Update. (ix86_expand_prologue): Update. (ix86_expand_epilogue): Update. * config/sh/sh.c (output_stack_adjust): Update. (calc_live_regs): Update. (sh5_schedule_saves): Update. (sh_expand_prologue): Update. (sh_expand_epilogue): Update. (sh_setup_incoming_varargs): Update. (sh_allocate_initial_value): Update. (sh_get_pr_initial_val): Update. * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update. * config/sh/sh.md (label:): Update. * config/avr/avr.c (out_movhi_mr_r): Update. * config/crx/crx.h (enum): Update. * config/xtensa/xtensa.h (along): Update. * config/stormy16/stormy16.c Update. (xstormy16_compute_stack_layout): Update. * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update. (fr30_expand_prologue): Update. * config/cris/cris.c (cris_conditional_register_usage): Update. (cris_reg_saved_in_regsave_area): Update. (cris_initial_frame_pointer_offset): Update. (cris_simple_epilogue): Update. (cris_expand_prologue): Update. (cris_expand_epilogue): Update. (cris_expand_pic_call_address): Update. (cris_asm_output_symbol_ref): Update. (cris_asm_output_label_ref): Update. * config/cris/cris.md Update. * config/iq2000/iq2000.c (compute_frame_size): Update. (iq2000_expand_epilogue): Update. * config/mt/mt.h (save_direction): Update. * config/mn10300/mn10300.c (mn10300_function_value): Update. * config/ia64/ia64.c (ia64_compute_frame_size): Update. (ia64_secondary_reload_class): Update. * config/m68k/m68k.c (m68k_save_reg): Update. (m68k_expand_prologue): Update. (m68k_expand_epilogue): Update. (legitimize_pic_address): Update. * config/rs6000/rs6000.c (rs6000_got_register): Update. (first_reg_to_save): Update. (first_altivec_reg_to_save): Update. (compute_vrsave_mask): Update. (compute_save_world_info): Update. (rs6000_stack_info): Update. (spe_func_has_64bit_regs_p): Update. (rs6000_ra_ever_killed): Update. (rs6000_emit_eh_reg_restore): Update. (rs6000_emit_allocate_stack): Update. (rs6000_emit_prologue): Update. (rs6000_emit_epilogue): Update. (rs6000_output_function_epilogue): Update. (output_profile_hook): Update. (rs6000_elf_declare_function_name): Update. * config/rs6000/rs6000.h (rs6000_args): Update. * config/rs6000/rs6000.md: Update. * config/mcore/mcore.c (mcore_expand_prolog): Update. * config/arc/arc.c (arc_output_function_epilogue): Update. * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update. * config/darwin.c (machopic_function_base_name): Update. * config/score/score3.c (score3_compute_frame_size): Update. (rpush): Update. (rpop): Update. (score3_epilogue): Update. * config/score/score7.c (score7_compute_frame_size): Update. (score7_prologue): Update. (score7_epilogue): Update. * config/score/score.h (FRAME_POINTER_REQUIRED): Update. * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. * config/arm/arm.c (use_return_insn): Update. (require_pic_register): Update. (arm_load_pic_register): Update. (arm_compute_save_reg0_reg12_mask): Update. (arm_compute_save_reg_mask): Update. (thumb1_compute_save_reg_mask): Update. (output_return_instruction): Update. (arm_output_function_prologue): Update. (arm_output_epilogue): Update. (arm_get_frame_offsets): Update. (arm_expand_prologue): Update. (thumb_pushpop): Update. (thumb_exit): Update. (thumb1_expand_prologue): Update. (thumb1_expand_epilogue): Update. (arm_unwind_emit): Update. (arm_output_fn_unwind): Update. * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update. * config/arm/arm.md: Update. * config/pa/pa.md: Update. * config/pa/pa.c (legitimize_pic_address): Update. (compute_frame_size): Update. (hppa_expand_prologue): Update. (hppa_expand_epilogue): Update. (borx_reg_operand): Update. * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update. (HARD_REGNO_RENAME_OK): Update. * config/mips/mips.c (mips_global_pointer): Update. (mips_save_reg_p): Update. (mips_compute_frame_info): Update. (mips_frame_pointer_required): Update. (mips_expand_prologue): Update. (mips_expand_epilogue): Update. (mips_can_use_return_insn): Update. (mips_reorg_process_insns): Update. * config/v850/v850.c (compute_register_save_size): Update. * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update. * config/mmix/mmix.c (along): Update. (mmix_expand_epilogue): Update. * config/bfin/bfin.c (legitimize_pic_address): Update. (must_save_p): Update. (stack_frame_needed_p): Update. (add_to_reg): Update. (bfin_expand_prologue): Update. * stmt.c (expand_asm_operands): Update. * reload1.c (reload): Update. (init_elim_table): Update. From-SVN: r134682
2008-04-23tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as unreachable case.Tomas Bily1-2/+1
* tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as unreachable case. * tree-vrp.c (extract_range_from_unary_expr): Removed unused NON_LVALUE_EXPR. * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. * tree-ssa-structalias.c (get_constraint_for): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * varasm.c (const_hash_1, compare_constant, copy_constant) (compute_reloc_for_constant, output_addressed_constants): Likewise. * emit-rtl.c (component_ref_for_mem_expr) (set_mem_attributes_minus_bitpos): Likewise. * expr.c (highest_pow2_factor, expand_expr_real_1, ) (is_aligning_offset): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise. * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. * dojump.c (do_jump): Likewise. * builtins.c (get_pointer_alignment, get_memory_rtx) (integer_valued_real_p, fold_builtin_next_arg): Likewise. * tree-scalar-evolution.c (instantiate_parameters_1): Likewise. From-SVN: r134591
2007-08-09optabs.c (expand_widen_pattern_expr): Use optabs accestors.Jan Hubicka1-2/+2
* optabs.c (expand_widen_pattern_expr): Use optabs accestors. (expand_ternary_op): Likewise. (expand_vec_shift_expr): Likewise. (expand_binop_directly): Likewise. (expand_binop): Likewise. (sign_expand_binop): Likewise. (expand_twoval_unop): Likewise. (expand_twoval_binop): Likewise. (expand_twoval_binop_libfunc): Likewise. (widen_clz): Likewise. (widen_bswap): Likewise. (expand_parity): Likewise. (expand_unop): Likewise. (expand_abs_nojump): Likewise. (expand_copysign): Likewise. (emit_no_conflict_block): Likewise. (emit_libcall_block): Likewise. (can_compare_p): Likewise. (prepare_cmp_insn): Likewise. (emit_cmp_and_jump_insn_1): Likewise. (prepare_float_lib_cmp): Likewise. (emit_conditional_add): Likewise. (gen_add2_insn): Likewise. (have_add2_insn): Likewise. (gen_sub2_insn): Likewise. (have_sub2_insn): Likewise. (can_extend_p): Likewise. (can_fix_p): Likewise. (can_float_p): Likewise. (expand_float): Likewise. (expand_fix): Likewise. (expand_sfix_optab): Likewise. (new_optab): Likewise. (new_convert_optab): Likewise. (init_libfuncs): Likewise. (init_interclass_conv_libfuncs): Likewise. (init_intraclass_conv_libfuncs): Likewise. (set_conv_libfunc): Likewise. (init_optabs): Likewise. (debug_optab_libfuncs): Likewise. (gen_cond_trap): Likewise. * optabs.h (optab_handler, convert_optab_hanlder): New. * genopinit.c: Update optabs generation table. * reload.c (find_reloads_address_1): Use optabs accestors. * builtins.c (expand_builtin_mathfn): Likewise. (expand_builtin_mathfn_2): Likewise. (expand_builtin_mathfn_3): Likewise. (expand_builtin_interclass_mathfn): Likewise. (expand_builtin_sincos): Likewise. (expand_builtin_cexpi): Likewise. (expand_builtin_powi): Likewise. (expand_builtin_strlen): Likewise. * dojump.c (do_jump): Likewise. * expr.c (convert_move): Likewise. (move_by_pieces): Likewise. (move_by_pieces_ninsns): Likewise. (can_store_by_pieces): Likewise. (store_by_pieces_1): Likewise. (emit_move_via_integer): Likewise. (emit_move_complex): Likewise. (emit_move_ccmode): Likewise. (emit_move_insn_1): Likewise. (emit_single_push_insn): Likewise. (store_constructor): Likewise. (expand_expr_real_1): Likewise. (do_store_flag): Likewise. * ada/misc.c (gnat_compute_largest_alignment): Likewise. (enumerate_modes): Likewise. * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. (supportable_widening_operation): Likewise. (supportable_narrowing_operation): Likewise. * expmed.c (store_bit_field_1): Likewise. (extract_bit_field_1): Likewise. (expand_mult_highpart_optab): Likewise. (expand_smod_pow2): Likewise. (expand_divmod): Likewise. (emit_store_flag): Likewise. * tree-vect-patterns.c (vect_pattern_recog_1): Likewise. * tree-ssa-loop-prefetch.c (nontemporal_store_p): Likewise. * tree-vect-transform.c (vect_model_reduction_cost): Likewise. (vect_create_epilog_for_reduction): Likewise. (vectorizable_reduction): Likewise. (vectorizable_operation): Likewise. (vect_strided_store_supported): Likewise. (vectorizable_store): Likewise. (vect_strided_load_supported): Likewise. (vectorizable_load): Likewise. * combine.c (simplify_comparison): Likewise. * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. (expand_vector_operations_1): Likewise. * config/spu/spu.c (spu_expand_mov): Likewise. (spu_emit_vector_compare): Likewise. * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Likewise. * stmt.c (add_case_node): Likewise. * reload1.c (gen_reload): From-SVN: r127317
2007-07-26Change copyright header to refer to version 3 of the GNU General Public ↵Nick Clifton1-5/+5
License and to point readers at the COPYING3 file and the FSF's license web page. From-SVN: r126948
2006-11-11extended.texi (__builtin_expect): We no longer require second argument to be ↵Jan Hubicka1-31/+0
constant. * extended.texi (__builtin_expect): We no longer require second argument to be constant. * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE. * builtins.c (expand_builtin_expect): Simplify. (expand_builtin_expect_jump): Kill. * final.c (final_scan_insn): Do not skip the removed notes. * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER, EXPECTED_VALUE): Remove. * dojump.c (do_jump): Do not care about __builtin_expect. * predict.c (expected_value_to_br_prob): Kill. * function.c (expand_function_end): Do not expand NOTE_INSN_REPEATED_LINE_NUMBER. * print-rtl.c (print_rtx): Do not pretty print the removed notes. * expect.c (sjlj_emit_function_enter): Emit directly branch probability. * cfgexpand.c (add_reg_br_prob_note): Export. * cfgcleanup.c (rest_of_handle_jump2): Do not call expected_value_to_br_prob. * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes. * rtl.h (add_reg_br_prob_note): Declare. From-SVN: r118696
2006-07-07pointer-set.c (pointer_set_destroy): Correct whitespace.Roger Sayle1-1/+2
* pointer-set.c (pointer_set_destroy): Correct whitespace. * cfgloopanal.c (dump_graph): Likewise. * dojump.c (discard_pending_stack_adjust): Likewise. * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES): Likewise. * alloc-pool.c (dump_alloc_pool_statistics): Likewise. * function.c (finalize_block_changes): Likewise. * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise. * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise. * rtl.c (dump_rtx_statistics): Likewise. * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars): Likewise. * varray.c (dump_varray_statistics): Likewise. * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, decode_decimal64, encode_decimal128, decode_decimal128, decimal_real_to_decimal): Likewise. From-SVN: r115258
2006-04-03builtins.c (dummy_object): Use build_int_cst instead of convert.Roger Sayle1-2/+2
* builtins.c (dummy_object): Use build_int_cst instead of convert. * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert instead of convert. * dojump.c (do_jump): Likewise. * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise. * gimplify.c (gimple_boolify, gimplify_init_constructor, gimplify_boolean_expr): Likewise. * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. * varasm.c (array_size_for_constructor): Likewise. * tree-object-size.c (compute_object_offset): Likewise. From-SVN: r112633
2006-02-14dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU and GEU.Roger Sayle1-0/+10
* dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU and GEU. From-SVN: r110992
2006-02-14re PR middle-end/26279 (ICE in do_compare_rtx_and_jump)Roger Sayle1-0/+5
PR middle-end/26279 PR middle-end/26280 PR middle-end/26283 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. From-SVN: r110983
2006-02-14optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx directly...Roger Sayle1-19/+19
* optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx directly, instead let do_compare_rtx_and_jump handle this for us. * expr.c (expand_expr_real_1): Likewise. * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move before do_jump_by_parts_greater. (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx. * expr.h (do_jump_by_parts_greater_rtx): Delete prototype. From-SVN: r110954
2006-02-13re PR middle-end/25724 (Emits call to __cmpdi2 for long long comparison in ↵Roger Sayle1-67/+121
switches) PR middle-end/25724 * dojump.c (do_jump): Call do_compare_rtx_and_jump. (do_jump_parts_zero_rtx): New function renamed from do_jump_parts_equality_rtx. Made static. Add a mode argument. (do_jump_parts_equality_rtx): New function split out from do_jump_parts_equality. Old implementation renamed as above. Call do_jump_parts_zero_rtx if either operand is zero. (do_jump_parts_equality): Call do_jump_parts_equality_rtx to do all of the heavy lifting. (do_compare_rtx_and_jump): Handle multi-word comparisons by calling either do_jump_by_parts_greater_rtx or do_jump_by_parts_equality_rtx. * expr.h (do_jump_by_parts_equality_rtx): Remove prototype. * expmed.c (do_cmp_and_jump): Now multi-word optimization has moved to do_compare_rtx_and_jump, call it directly. * stmt.c (do_jump_if_equal): Remove static prototype. Add a mode argument. Call do_compare_rtx_and_jump. (emit_case_nodes): Update calls to do_jump_if_equal. From-SVN: r110906
2006-01-31expr.h (expand_normal): new inline function.Marcin Dalecki1-7/+7
2006-01-30 Marcin Dalecki <martin@dalecki.de> * expr.h (expand_normal): new inline function. * builtins.c: use it, use EXPAND_NORMAL explicitely. * dojump.c: use it. * dwarf2out.c: use it. * expr.c: use it. * calls.c: use it. * expmed.c: use it. * except.c: use it. * config/sparc/sparc.c: use it. * config/i386/i386.c: use it. * config/rs6000/rs6000.c: use it. * config/arm/arm.c: use it. * config/mips/mips.c: use it. * stmt.c: use it, use EXPAND_NORMAL explicitely. From-SVN: r110428
2005-10-21dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and TRUTH_OR_EXPR.Paolo Bonzini1-4/+8
2005-10-21 Paolo Bonzini <bonzini@gnu.org> * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and TRUTH_OR_EXPR. From-SVN: r105723
2005-10-19re PR target/19672 (Performance regression in simple loop code)Paolo Bonzini1-1/+37
2005-10-18 Paolo Bonzini <bonzini@gnu.org> PR #19672 * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here. From-SVN: r105606
2005-07-06Removal of -fforce-mem.Fariborz Jahanian1-12/+0
OKed by Richard Henderson. From-SVN: r101666
2005-06-25Update FSF address.Kelley Cook1-2/+2
From-SVN: r101317
2005-05-09dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through to NE_EXPR case.David Edelsohn1-8/+6
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through to NE_EXPR case. From-SVN: r99443
2005-04-27dojump.c: Fix comment typos.Kazu Hirata1-2/+2
* dojump.c: Fix comment typos. emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c: Use fold_buildN instead of fold (buildN (...)). From-SVN: r98848
2005-03-08c-common.c, [...]: Fix comment formatting.Kazu Hirata1-1/+1
* c-common.c, c-opts.c, combine.c, cse.c, dojump.c, gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c, tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting. From-SVN: r96104
2005-01-18calls.c (expand_call): Check DECL_BUILT_IN_CLASS before accessing ↵Eric Botcazou1-1/+1
DECL_FUNCTION_CODE. * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before accessing DECL_FUNCTION_CODE. * dojump.c (do_jump): Likewise. * gimplify.c (gimplify_call_expr): Likewise. * predict.c (expr_expected_value): Likewise. (strip_builtin_expect): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-ssa-loop-im.c (stmt_cost): Likewise * fold-const.c (fold): Test for BUILT_IN_NORMAL. (tree_expr_nonnegative_p): Likewise. From-SVN: r93864
2005-01-04re PR tree-optimization/18308 (ICE in do_jump, at dojump.c:274)Paolo Bonzini1-9/+28
gcc: 2005-01-04 Paolo Bonzini <bonzini@gnu.org> Devang Patel <dpatel@apple.com> PR tree-optimization/18308 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify the operands before creating a new expression. * dojump.c (do_jump): Make drop_through_label available for all cases. Add expansion of COND_EXPR. gcc/testsuite: 2005-01-04 Paolo Bonzini <bonzini@gnu.org> * gcc.dg/vect/pr18308.c: New testcase. Co-Authored-By: Devang Patel <dpatel@apple.com> From-SVN: r92895
2004-12-23re PR middle-end/17746 (ICE when building the Ada RTS)Eric Botcazou1-1/+1
PR middle-end/17746 * expr.c (get_inner_reference): Add 'keep_aligning' parameter. Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT platforms only if keep_aligning is true. (expand_assignment): Adjust call to get_inner_reference. (expand_expr_addr_expr_1): Likewise. (expand_expr_real_1): Likewise. * dojump.c (do_jump): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. * fold-const.c (optimize_bit_field_compare): Likewise. (decode_field_reference): Likewise. (split_address_to_core_and_offset): Likewise. * tree-ssa-loop-ivopts.c (split_address_cost): Likewise. * expr.h (get_inner_reference): Adjust prototype. ada/ * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference. * utils2.c (build_unary_op): Likewise. From-SVN: r92549
2004-12-12re PR middle-end/17564 (New treatment of function pointers when used with ↵Nathanael Nerode1-11/+10
equality operators, when casts are involved) PR middle-end/17564 * dojump.c (do_compare_and_jump): Only canonicalize function pointers in a comparison if both sides are function pointers. Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> From-SVN: r92061
2004-12-11re PR target/18002 ('while' loop performace regression on avr target)Roger Sayle1-16/+44
PR target/18002 PR middle-end/18424 * dojump.c (do_jump): When attempting to reverse the effects of fold_single_bit_test, we need to STRIP_NOPS and narrowing type conversions, and handle BIT_XOR_EXPR that's used to invert the sense of the single bit test. From-SVN: r92024
2004-11-24c-opts.c (c_common_post_options): Don't clear flag_inline_functions.Steven Bosscher1-2/+1
gcc/ * c-opts.c (c_common_post_options): Don't clear flag_inline_functions. * dojump.c (clear_pending_stack_adjust): Remove check on flag_inline_functions, it's always true. * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter that can never trigger. * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at flag_inline_trees, now that flag_inline_functions is never cleared. * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set flag_inline_functions at optimization levels greater than or equal to 3. This is already done by default. ada/ * misc.c (gnat_post_options): Don't clear flag_inline_functions. cp/ * decl.c (cxx_init_decl_processing): Don't clear flag_inline_functions. fortran/ * options.c (gfc_post_options): Don't clear flag_inline_functions. java/ * class.c (make_class_data): Don't check flag_inline_functions. * lang.c (flag_really_inline): Remove unused flag. (java_handle_option): Don't set it here. Remove special handling of flag_inline_functions for Java. (java_init): Don't set flag_inline_trees here. Already done... (java_post_options): ...here. Don't clear flag_inline_functions. From-SVN: r91190
2004-11-22re PR middle-end/18520 (ICE in emit_store_flag, at expmed.c:5081with ↵Roger Sayle1-10/+15
-ffast-math) PR middle-end/18520 * dojump.c (compare_from_rtx): Clarify mode argument in function description. Correct order of mode/cmp_mode arguments in call to simplify_relational_operation. Check "tem" for COMPARISON_P. * gcc.dg/pr18520-1.c: New test case. From-SVN: r90997