aboutsummaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
AgeCommit message (Collapse)AuthorFilesLines
2005-11-22optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of explicitly ↵Ben Elliston1-8/+8
testing GET_MODE_CLASS (x) ==... * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. * genopinit.c (gen_insn): Likewise. * reload.c (find_equiv_reg): Likewise. * loop.c (load_mems): Likewise. * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. * cse.c (find_comparison_args, fold_rtx): Likewise. * dwarf2out.c (add_const_value_attribute): Likewise. * expr.c (convert_move): Likewise. * recog.c (general_operand, register_operand): Likewise. * reg-stack.c (replace_reg): Likewise. * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. * c-common.c (handle_vector_size_attribute): Likewise. * simplify-rtx.c (simplify_const_unary_operation): Likewise. (simplify_binary_operation_1): Likewise. (simplify_const_binary_operation): Likewise. (simplify_relational_operation): Likewise. (simplify_const_relational_operation): Likewise. (simplify_immed_subreg): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * expmed.c (expand_mult): Likewise. * stor-layout.c (layout_type): Likewise. From-SVN: r107322
2005-11-16fold-const.c (const_binop): Don't constant fold the operation if the result ↵Eric Botcazou1-0/+11
has overflowed and... * fold-const.c (const_binop): Don't constant fold the operation if the result has overflowed and flag_trapping_math. * simplify-rtx.c (simplify_const_binary_operation): Likewise. From-SVN: r107092
2005-09-26re PR middle-end/23831 (ICE in immed_double_const with vectorized multipication)Uros Bizjak1-1/+3
PR middle-end/23831 * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. From-SVN: r104650
2005-09-06simplify-rtx.c (simplify_binary_operation_1): Correct the condition for ↵Saurabh Verma1-2/+2
detecting cases like (a&a) and (a^a). * simplify-rtx.c (simplify_binary_operation_1): Correct the condition for detecting cases like (a&a) and (a^a). From-SVN: r103955
2005-09-06re PR rtl-optimization/23098 (store of 0.0 to float)Jakub Jelinek1-0/+8
PR rtl-optimization/23098 * cse.c (fold_rtx_mem): Call delegitimize_address target hook. * simplify-rtx.c (constant_pool_reference_p): New function. * rtl.h (constant_pool_reference_p): New prototype. * config/i386/i386.md (pushf split, mov[sdx]f split): Use constant_pool_reference_p in condition and avoid_constant_pool_reference in preparation statements. * gcc.target/i386/pr23098.c: New test. From-SVN: r103935
2005-09-02re PR rtl-optimization/20365 (simplify_plus_minus results are erratic)J"orn Rennecke1-4/+14
PR rtl-optimization/20365 * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg to short. New member ix. (simplify_plus_minus_op_data_cmp): Break ties using ix member. (simplify_plus_minus): Initialize ix members before calling qsort. From-SVN: r103771
2005-08-21simplify-rtx.c (simplify_immed_subreg): Only clear up to elem_bitsize bits, ↵Jakub Jelinek1-1/+1
not max_bitsize. * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear up to elem_bitsize bits, not max_bitsize. * gcc.target/i386/sse-4.c: New test. From-SVN: r103318
2005-08-16simplify-rtx.c (simplify_const_relational_operation): When extracting ↵Ulrich Weigand1-1/+11
arguments of a COMPARE, recompute the mode as well. * simplify-rtx.c (simplify_const_relational_operation): When extracting arguments of a COMPARE, recompute the mode as well. From-SVN: r103143
2005-07-28re PR rtl-optimization/23047 (Combine ignores flag_wrapv)James A. Morrison1-2/+6
2005-07-27 James A. Morrison <phython@gcc.gnu.org> PR rtl-optimization/23047 * simplify-rtx.c (simplify_const_relational_operation): Respect flag_wrapv for comparisons with ABS. From-SVN: r102459
2005-06-25Update FSF address.Kelley Cook1-2/+2
From-SVN: r101317
2005-05-26simplify-rtx.c (avoid_constant_pool_reference): Support offsetted addresses ↵Paolo Bonzini1-14/+29
in the constant pool. 2005-05-26 Paolo Bonzini <bonzini@gnu.org> * simplify-rtx.c (avoid_constant_pool_reference): Support offsetted addresses in the constant pool. From-SVN: r100198
2005-04-24re PR rtl-optimization/21163 (internal compiler error: in ↵Richard Henderson1-49/+61
output_constant_pool_2, at varasm.c:3135) PR rtl-opt/21163 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check for SCALAR_INT_MODE_P instead of not MODE_CC before returning constm1_rtx. <AND, LSHIFTRT, UMIN>: Use CONST0_RTX. <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX. <DIV, MOD>: Likewise. From-SVN: r98678
2005-04-23re PR rtl-optimization/21102 (ICE: in immed_double_const, on SSE2 intrinsics)Richard Henderson1-2/+2
PR rtl-opt/21102 * simplify-rtx.c (simplify_binary_operation): Fix mode check before performing some integral scalar simplifications. From-SVN: r98631
2005-04-13Fix result of folding of xor operation on two identical vectors.Fariborz Jahanian1-1/+1
OKed by Roger Sayle. From-SVN: r98107
2005-04-07re PR target/20093 (23_containers/deque/cons/2.cc execution test fails on ↵Joseph Myers1-1/+1
ia64-hpux, -milp32) PR target/20093 * simplify-rtx.c (simplify_unary_operation_1): Check SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension. From-SVN: r97775
2005-03-24re PR rtl-optimization/20532 (Bad code for DImode left shifts by 31 and then 1)Alexandre Oliva1-18/+72
gcc/ChangeLog: PR rtl-optimization/20532 * simplify-rtx.c (simplify_binary_operation_1): Protect from overflow when adding coefficients for PLUS or MINUS. (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of two as multiplier. gcc/testsuite/ChangeLog: PR rtl-optimization/20532 * gcc.target/i386/badshift.c: New. From-SVN: r96982
2005-03-21rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.Paolo Bonzini1-22/+3
2005-03-21 Paolo Bonzini <bonzini@gnu.org> * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit. * rtlhooks.c (gen_lowpart_no_emit_general): New. * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare. (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New. * simplify-rtx.c (simplify_binary_operation_1): Use it. From-SVN: r96799
2005-03-10re PR rtl-optimization/20412 (RTL checking failure in the combiner)Andrew Pinski1-1/+1
PR rtl-opt/20412 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the correct mode. PR rtl-opt/20412 * gcc.c-torture/compile/pr20412.c: New test. From-SVN: r96264
2005-03-05combine.c (simplify_and_const_int): Use gen_int_mode instead of GEN_INT ↵Kazu Hirata1-5/+2
(trunc_int_for_mode (...)). * combine.c (simplify_and_const_int): Use gen_int_mode instead of GEN_INT (trunc_int_for_mode (...)). * loop-iv.c (iv_number_of_iterations): Likewise. * postreload.c (reload_cse_move2add): Likewise. * simplify-rtx.c (simplify_const_unary_operation, simplify_const_binary_operation): Likewise. * stor-layout.c (get_mode_bounds): Likewise. From-SVN: r95935
2005-02-28simplify-rtx.c (simplify_unary_operation_1, [...]): New, extracted from...Paolo Bonzini1-1230/+1265
2005-02-28 Paolo Bonzini <bonzini@gnu.org> * simplify-rtx.c (simplify_unary_operation_1, simplify_const_unary_operation): New, extracted from... (simplify_unary_operation): ... this one. (simplify_binary_operation_1, simplify_const_binary_operation): New, extracted from... (simplify_binary_operation): ... this one. * rtl.h (simplify_const_unary_operation, simplify_const_binary_operation): Add prototypes. From-SVN: r95686
2005-02-23re PR target/20018 ([ia64] unable to find a register to spill in class`PR_REG')Roger Sayle1-0/+2
PR target/20018 PR rtl-optimization/20097 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating BImode SUBREGs of SImode registers which confuse the ia64 backend. From-SVN: r95461
2005-02-21simplify-rtx.c (simplify_unary_operation): Add a missing "break" statement.Paolo Bonzini1-0/+1
2005-02-21 Paolo Bonzini <bonzini@gnu.org> * simplify-rtx.c (simplify_unary_operation): Add a missing "break" statement. From-SVN: r95321
2005-02-12c-tree.h, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c, simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow spelling conventions. From-SVN: r94939
2005-02-08simplify-rtx.c (simplify_relational_operation_1): Avoid creating zero ↵Roger Sayle1-11/+4
extensions of BImode operands. * simplify-rtx.c (simplify_relational_operation_1): Avoid creating zero extensions of BImode operands. Call lowpart_subreg instead of gen_lowpart_common and gen_lowpart_SUBREG. From-SVN: r94730
2005-02-07re PR rtl-optimization/19800 (mmix-knuth-mmixware broken, building ↵Roger Sayle1-3/+11
newlib/libm/common/s_fmax.c) PR rtl-optimization/19800 * simplify_rtx.c (simplify_relational_operaration_1): Explicitly call gen_lowpart_common and gen_lowpart_SUBREG instead of calling gen_lowpart. From-SVN: r94691
2005-02-06simplify-rtx.c (simplify_relational_operation_1): Simplify (ne:SI ↵Roger Sayle1-0/+12
(zero_extract:SI FOO (const_int 1) BAR) (const_int 0)) into... * simplify-rtx.c (simplify_relational_operation_1): Simplify (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0)) into just (zero_extract:SI FOO (const_int 1) BAR). Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> Co-Authored-By: Paolo Bonzini <paolo.bonzini@lu.unisi.ch> From-SVN: r94684
2005-02-03re PR middle-end/19405 (18_support/numeric_limits.cc fails on ppc-darwin ↵Roger Sayle1-2/+6
(long doubles)) PR middle-end/19405 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro. * fold-const.c (const_binop): Avoid constant folding floating point operations in modes that use composite representations. * simplify-rtx.c (simplify_binary_operation): Likewise. From-SVN: r94653
2005-01-21re PR rtl-optimization/576 (gcc performs invalid optimization with float ↵Roger Sayle1-6/+15
operations when different rounding mode.) PR rtl-optimization/576 * real.c (real_arithmetic): Change return type from void to bool to return an indication that the result may be inexact. * real.h (real_arithmeric): Update prototype. * fold-const.c (const_binop): Don't constant fold floating point expressions when the user specifies -frounding-math and the result may depend upon the run-time rounding mode. (fold_convert_const_real_from_real): Clean-up. (fold_initializer): Ignore flag_rounding_math for initializers. * simplify-rtx.c (simplify_binary_operation): Likewise, don't constant fold FP operations with flag_rounding_math if the result may depend upon the run-time rounding mode. From-SVN: r94020
2005-01-14simplify-rtx.c (simplify_binary_operation): Optimize (and (sign_extend X) C) ↵Roger Sayle1-1/+18
into (zero_extend (and X C)). * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize (and (sign_extend X) C) into (zero_extend (and X C)). From-SVN: r93629
2005-01-07simplify-rtx.c (simplify_subreg): Simplify truncations of shifts of sign or ↵Roger Sayle1-0/+49
zero extended values. * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts of sign or zero extended values. From-SVN: r93022
2005-01-04re PR middle-end/17767 (MMX intrinsics cause internal compiler error)Uros Bizjak1-1/+1
PR middle-end/17767 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt any simplifications of vector mode comparison operators. * simplify-rtx.c (simplify_relational_operation): Fix variable name. testsuite: * gcc.dg/i386-mmx-6.c: New test case. From-SVN: r92896
2005-01-03* simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.Richard Henderson1-6/+38
From-SVN: r92861
2004-12-26simplify-rtx.c (simplify_relational_operation_1): Don't simplify plus/minus ↵Richard Henderson1-1/+2
across EQ for floating-point. * simplify-rtx.c (simplify_relational_operation_1): Don't simplify plus/minus across EQ for floating-point. From-SVN: r92631
2004-12-20re PR rtl-optimization/18942 (Do loop is not as optimized as 3.3.2)Zdenek Dvorak1-1/+18
PR rtl-optimization/18942 * simplify-rtx.c (simplify_relational_operation_1): Simplify x + cst1 == cst2 to x == cst2 - cst1. Made static. From-SVN: r92429
2004-12-16simplify-rtx.c (simplify_replace_rtx): Do not blindly replace hard registers.Richard Henderson1-1/+1
* simplify-rtx.c (simplify_replace_rtx): Do not blindly replace hard registers. [[Split portion of a mixed commit.]] Co-Authored-By: Aldy Hernandez <aldyh@redhat.com> From-SVN: r92278.2
2004-12-13re PR rtl-optimization/18928 (ice on valid code with -O2 -fPIC)Roger Sayle1-12/+17
PR rtl-optimization/18928 * simplify_rtx.c (plus_minus_operand_p): New function to encode the test for suitable operands for calls to simplify_plus_minus. Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P. (simplify_binary_operation): Use plus_minus_operand_p. * gcc.dg/pr18928-1.c: New test case. From-SVN: r92109
2004-12-09simplify-rtx.c (simplify_subreg): In the CONCAT case...Richard Sandiford1-7/+12
* simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether the request subreg is entirely contained in the requested component. (simplify_gen_subreg): Return null for CONCATs that are rejected by simplify_subreg. * expmed.c (store_bit_field): Create a temporary when changing the value to an integer mode. From-SVN: r91965
2004-12-02re PR target/18774 (mmix-knuth-mmixware testsuite failure: ↵Richard Henderson1-0/+4
gcc.c-torture/execute/20020227-1.c -Os -O2 compile) PR 18774 * simplify-rtx.c (simplify_immed_subreg): Fail complex modes. From-SVN: r91672
2004-11-28re PR rtl-optimization/18420 (ICE compiling mesa at -O2)Ulrich Weigand1-2/+1
PR rtl-optimization/18420 * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change. From-SVN: r91419
2004-11-23rtl.h (validate_subreg): Declare.Richard Henderson1-19/+14
* rtl.h (validate_subreg): Declare. * emit-rtl.c (validate_subreg): New. (gen_rtx_SUBREG): Use it. * simplify-rtx.c (simplify_subreg): Likewise. (simplify_gen_subreg): Likewise. Remove duplicate asserts. * expr.c (emit_move_insn_1): Tidy complex move code. Use memory fallback whenever gen_realpart/gen_imagpart would not be able to create SUBREGs. From-SVN: r91126
2004-11-23simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly instead ↵Richard Henderson1-3/+4
of using a SUBREG temporary. * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly instead of using a SUBREG temporary. From-SVN: r91114
2004-11-23simplify-rtx.c (simplify_binary_operation): Do not simplify inner elements ↵Uros Bizjak1-0/+1
of constant arguments of VEC_CONCAT insn. rtl-optimization/18614 * simplify-rtx.c (simplify_binary_operation): Do not simplify inner elements of constant arguments of VEC_CONCAT insn. testsuite: * gcc.dg/pr18614-1.c: New test. From-SVN: r91094
2004-11-20simplify-rtx.c (simplify_ternary_operation): Use trunc_int_for_mode.Aldy Hernandez1-1/+1
* simplify-rtx.c (simplify_ternary_operation): Use trunc_int_for_mode. From-SVN: r90948
2004-10-28re PR target/15286 (ICE cause by reload)Ulrich Weigand1-1/+2
PR target/15286 * final.c (alter_subreg): Compute correct offset to use with paradoxical SUBREGs of memory operands. * recog.c (general_operand): Allow paradoxical SUBREGs of memory operands after reload. * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg has failed when passed a hard register. From-SVN: r89752
2004-10-18simplify-rtx.c (mode_signbit_p): Externalize function...Pat Haugen1-2/+1
2004-10-18 Pat Haugen <pthaugen@us.ibm.com> * simplify-rtx.c (mode_signbit_p): Externalize function... * rtl.h (mode_signbit_p): ... to here. * combine.c (simplify_shift_const): Recognize PLUS signbit as canonical form of XOR signbit and move to outer op. From-SVN: r89235
2004-10-09[multiple changes]Roger Sayle1-8/+34
2004-10-09 Roger Sayle <roger@eyesopen.com> PR rtl-optimization/17853 * simplify-rtx.c (simplify_relational_operation): Correct comment. Reorganize handling of comparison operations with floating point results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE). Likewise, introduce support for comparison operations with vector result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro. * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro. * doc/tm.texi: Likewise. 2004-10-09 Stuart Hastings <stuart@apple.com> Roger Sayle <roger@eyesopen.com> PR rtl-optimization/17853 * gcc.dg/i386-mmx-5.c: New testcase. From-SVN: r88826
2004-09-09ra-build.c (copy_insn_p, [...]): Use gcc_assert and gcc_unreachable instead ↵Nathan Sidwell1-129/+105
of abort. * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1, live_out_1, prune_hardregs_for_mode, init_one_web_common, reinit_one_web, add_subweb, add_subweb_2, init_web_parts, record_conflict, compare_and_free_webs, init_webs_defs_uses, parts_to_webs_1, parts_to_webs, reset_conflicts, check_conflict_numbers, remember_web_was_spilled, handle_asm_insn, ra_build_free): Use gcc_assert and gcc_unreachable instead of abort. * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end, put_move, remove_move, combine, select_spill, colorize_one_web, try_recolor_web, insert_coalesced_conflicts, check_colors, break_precolored_alias, restore_conflicts_from_coalesce, sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise. * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads, reloads_to_loads, rewrite_program2, emit_colors): Likewise. * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra, check_df): Likewise. * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc, real_arithmetic, real_compare, real_exponent, real_ldexp, real_identical, real_to_integer, real_to_integer2, real_to_decimal, real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo, real_digit, real_nan, real_maxval, round_for_format, real_convert, real_to_target, real_from_target, real_hash, encode_ieee_single, encode_ieee_double, encode_ieee_extended, encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single, encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise. * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok, extract_insn, peep2_next_insn, peep2_reg_dead_p, peep2_find_free_register, peephole2_optimize, store_data_bypass_p, if_test_bypass_p): Likewise. * reg-stack.c (record_label_references, get_asm_operand_n_inputs, stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn, emit_swap_insn, swap_to_top, move_for_stack_reg, subst_stack_regs_pat, subst_asm_stack_regs, change_stack, compensate_edge, convert_regs_1): Likewise. * regclass.c (init_reg_sets, init_reg_sets_1, memory_move_secondary_cost): Likewise. * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx): Likewise. * reload.c (push_secondary_reload, find_valid_class, push_reload, operands_match_p, decompose, immune_p, find_reloads, find_reloads_toplev, find_reloads_address_1, subst_reloads, copy_replacements, refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p): Likewise. * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload, count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn, verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use, reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict, choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns, do_output_reload, fixup_abnormal_edges): Likewise. * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags, fill_slots_from_thread, relax_delay_slots): Likewise. * resource.c (mark_referenced_resources, mark_set_resources): Likewise. * rtl.c (copy_rtx, rtx_equal_p): Likewise. * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p, dead_or_set_p, find_reg_fusage, remove_note, replace_rtx, subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p, find_first_parameter_load, can_hoist_insn_p, hoist_update_store, hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise. * rtlhooks.c (gen_lowpart_general): Likewise. * sbitmap.c (sbitmap_difference): Likewise. * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2, sched_analyze, add_forward_dependence): Likewise. * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise. * sched-rgn.c (debug_regions, compute_trg_info, schedule_region, schedule_insns): Likewise. * sched-vis.c (print_pattern): Likewise. * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise. * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, simplify_const_relational_operation, simplify_ternary_operation, simplify_immed_subreg, simplify_subreg, simplify_gen_subreg): Likewise. * sreal.c (copy, sreal_sub, sreal_div): Likewise. * stmt.c (force_label_rtx, expand_goto, expand_asm_operands, resolve_operand_name_1, expand_return, expand_decl, expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise. * stor-layout.c (put_pending_size, smallest_mode_for_size, int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type, set_sizetype, get_mode_bounds): Likewise. From-SVN: r87244
2004-09-04md.texi (shift patterns): New anchor.Richard Sandiford1-30/+15
* doc/md.texi (shift patterns): New anchor. Add reference to TARGET_SHIFT_TRUNCATION_MASK. * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document. * target.h (shift_truncation_mask): New target hook. * targhook.h (default_shift_truncation_mask): Declare. * targhook.c (default_shift_truncation_mask): Define. * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define. (TARGET_INITIALIZER): Include it. * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise reject all out-of-range values. Fix sign-extension code for modes whose width is smaller than HOST_BITS_PER_WIDE_INT. * optabs.c (simplify_expand_binop, force_expand_binop): New functions. (expand_superword_shift, expand_subword_shift): Likewise. (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise. (expand_binop): Use them to implement double-word shifts. * config/arm/arm.c (arm_shift_truncation_mask): New function. (TARGET_SHIFT_TRUNCATION_MASK): Define. From-SVN: r87079
2004-07-27cfgexpand.c (tree_expand_cfg): Fix comment.Steven Bosscher1-4/+1
* cfgexpand.c (tree_expand_cfg): Fix comment. * calls.c (expand_call): Ignore rtx_equal_function_value_matters. * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets): Remove. (prepare_function_start): Don't set rtx_equal_function_value_matters. * integrate.c (copy_rtx_and_substitute): Don't test for it. * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets. Don't set rtx_equal_function_value_matters. Don't register RTL hooks here again. Update leading comment. * rtl.c (rtx_equal_function_value_matters): Remove. (rtx_equal_p): Don't test for it. * simplify-rtx.c (simplify_binary_operation, simplify_subreg): Likewise. * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND. * rtl.c (note_insn_name): Likewise. * emit-rtl.c (remove_unnecessary_notes): Don't handle it. * final.c (final_scan_insn): Likewise. * except.c (finish_eh_generation): Don't call cfg_cleanup from here. * passes.c (rest_of_handle_eh): Do it here. * stmt.c (struct nesting): Remove struct nesting block member. (struct stmt_status): Remove x_block_start_count field. (current_block_start_count): Remove. From-SVN: r85228
2004-07-26c-common.c (disable_builtin_function): Rename variable n to ↵Bernardo Innocenti1-19/+19
new_disabled_builtin. * c-common.c (disable_builtin_function): Rename variable n to new_disabled_builtin. * c-decl.c (duplicate_decls): Rename parameter decl to new_decl. Rename local variable old to old_decl. * gensupport.c (shift_output_template): Rename parameter old to src. * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to old_rtx and newx to new_rtx. From-SVN: r85175