aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
AgeCommit message (Collapse)AuthorFilesLines
2002-03-08cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been removed; ↵Jan Hubicka1-5/+7
fix return value. * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been removed; fix return value. * combine.c (combine_instructions): Dirtify blocks where we failed to update liveness; purge dead edges; use update_life_info_in_dirty_blocks. * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine. From-SVN: r50454
2002-03-07defaults.h (MODE_HAS_NANS, [...]): New.Richard Sandiford1-9/+12
* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New. (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New. * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New. (HONOR_SIGN_DEPENDENT_ROUNDING): New. * builtins.c (expand_builtin_mathfn): Use HONOR_NANS. * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y unless x and y could be infinite. (expand_unordered_cmp): New, mostly split from expand_tree_builtin. Check that the common type of both arguments is a real, even for targets without unordered comparisons. Allow an integer argument to be compared against a real. (expand_tree_builtin): Use expand_unordered_cmp. * combine.c (combine_simplify_rtx): Use the new HONOR_... macros. * cse.c (fold_rtx): Likewise. Fix indentation. * fold-const.c (fold_real_zero_addition_p): New. (fold): Use it, and the new HONOR_... macros. * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros. * jump.c (reversed_comparison_code_parts): After searching for the true comparison mode, use HONOR_NANS to decide whether it can be safely reversed. (reverse_condition_maybe_unordered): Remove IEEE check. * simplify-rtx.c (simplify_binary_operation): Use the new macros to decide which simplifications are valid. Allow the following simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b), and (a - -b) to (a + b). (simplify_relational_operation): Use HONOR_NANS. * doc/tm.texi: Document the MODE_HAS_... macros. From-SVN: r50401
2002-03-07combine.c (simplify_comparison): If simplifying a logical shift right and ↵Richard Earnshaw1-0/+5
compare with constant... * combine.c (simplify_comparison): If simplifying a logical shift right and compare with constant, force the comparison to unsigned. From-SVN: r50400
2002-02-28rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition to take ptr_extend ↵Steve Ellcey1-2/+2
into account as third type of extension. * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition to take ptr_extend into account as third type of extension. (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit fields used by SUBREG_PROMOTED_UNSIGNED_P. * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro. (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1. * calls.c (precompute_arguments): Use new macro. (expand_call): Ditto. * combine.c (nonzero_bits): Ditto. (record_promoted_value): Ditto. * expr.c (store_expr): Ditto. (expand_expr): Ditto. * function.c (assign_parms): Ditto. From-SVN: r50174
2002-02-20combine.c (do_SUBST): Sanity check substitutions of CONST_INTs...Alexandre Oliva1-1/+70
* combine.c (do_SUBST): Sanity check substitutions of CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs. (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a CONST_INT into its operand. (known_cond): Likewise, for ZERO_EXTEND. * simplify-rtx.c (simplify_unary_operation): Fix condition to allow for simplification of wide modes. Reject CONST_INTs in ZERO_EXTEND when their actual mode is not given. From-SVN: r49920
2002-02-19i386.md ("mmx_uavgv8qi3"): Use const_vector.Aldy Hernandez1-0/+1
2002-02-19 Aldy Hernandez <aldyh@redhat.com> * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector. ("mmx_uavgv4hi3"): Same. ("pmulhrwv4hi3"): Same. * tree-inline.c (walk_tree): Handle vectors. * c-common.c (constant_expression_warning): Handle vectors. (overflow_warning): Same. * sched-deps.c (sched_analyze_2): Handle vectors. * rtlanal.c (rtx_unstable_p): Handle vectors. (rtx_varies_p): Same. (count_occurrences): Same. (regs_set_between_p): Same. (modified_between_p): Same. (modified_in_p): Same. (volatile_insn_p): Same. (volatile_refs_p): Same. (side_effects_p): Same. (may_trap_p): Same. (inequality_comparisons_p): Same. (replace_regs): Same. (computed_jump_p_1): Same. * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th argument. (inner_mode_array): New. (copy_rtx): Handle vectors. (copy_most_rtx): Same. (rtx_equal_p): Same. (get_mode_alignment): Adjust for vectors. * resource.c (mark_referenced_resources): Handle vectors. (mark_set_resources): Same. * reload1.c (eliminate_regs): Handle vectors. (elimination_effects): Same. (scan_paradoxical_subregs): Same. * reload.c (subst_reg_equivs): Handle vectors. * regrename.c (scan_rtx): Handle vectors. * regclass.c (reg_scan_mark_refs): Handle vectors. * recog.c (find_single_use_1): Handle vectors. * local-alloc.c (equiv_init_varies_p): Handle vectors. (contains_replace_regs): Same. (memref_referenced_p): Same. * integrate.c (copy_rtx_and_substitute): Handle vectors. (subst_constants): Same. * genattrtab.c (attr_copy_rtx): Handle vectors. (encode_units_mask): Same. (clear_struct_flag): Same. (count_sub_rtxs): Same. * gcse.c (want_to_gcse_p): Handle vectors. (oprs_unchanged_p): Same. (hash_expr_1): Same. (oprs_not_set_p): Same. (expr_killed_p): Same. (compute_transp): Same. (store_ops_ok): Same. * function.c (purge_addressof_1): Do not allow paradoxical subregs of vectors. (fixup_var_refs_1): Same. (instantiate_virtual_regs_1): Same. * fold-const.c (operand_equal_p): Handle vectors. (fold): Same. (rtl_expr_nonnegative_p): Same. * flow.c (mark_used_regs): Handle vectors. * df.c (df_uses_record): Handle vectors. * cselib.c (cselib_subst_to_values): Handle vectors. (cselib_mem_conflict_p): Same. (hash_rtx): Same. * cse.c (canon_reg): Handle vectors. (fold_rt): Same. (cse_process_notes): Same. (count_reg_usage): Same. (canon_hash): Same. * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR. * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR. * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors. (gen_rtx): Handle CONST_VECTOR. (gen_const_vector_0): New. (copy_rtx_if_shared): CONST_VECTORs can be shared. (reset_used_flags): Same. (copy_insn_1): Same. (initializer_constant_valid_p): Handle VECTOR_CST. * doc/c-tree.texi (Expression trees): Document VECTOR_CST. * doc/rtl.texi (Constants): Document const_vector. (CONST0_RTX): Update for vectors. (RTL sharing): Same. * print-tree.c (print_node): Add case for VECTOR_CST. * tree.h (TREE_VECTOR_CST_ELTS): New. (struct tree_vector): New. (union tree_node): Add vector node. (build_vector): Add prototype. * tree.def (VECTOR_CST): New. * tree.c (build_vector): New. * expmed.c (make_tree): Handle CONST_VECTOR. * rtl.h (CONSTANT_P): CONST_VECTORs are constants too. (CONST_VECTOR_ELT): New. (CONST_VECTOR_NUNITS): New. * machmode.h (GET_MODE_INNER): New. (DEF_MACHMODE): Accept 8th arg. * machmode.def: Add 8th argument for vector inner mode. Add inner vector modes for vectors. * rtl.def (VEC_CONST): Remove. (CONST_VECTOR): New. * expr.c (clear_storage): Allow vectors. (is_zeros_p): Handle VECTOR_CST. * varasm.c (output_constant_pool): Handle vectors. (rtx_const): Add veclo and vechi fields. (kind): Add RTX_VECTOR. (decode_rtx_const): Add case for vector. * config/rs6000/rs6000-protos.h: Add zero_constant. * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector constants. Force easy vector constants into memory. (easy_vector_constant): New. (emit_easy_vector_constant): New. (rs6000_legitimize_reload_address): Do not generate bad reloads on darwin. * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what instruction does. ("altivec_lvxl"): Same. (altivec_lvebx): Same. (altivec_lvehx): Same. (altivec_lvewx): Same. ("*movv4si_const0"): New. ("*movv4sf_const0"): New. ("*movv8hi_const0"): New. ("*movv16qi_const0"): New. From-SVN: r49853
2002-02-14combine.c (known_cond): After replacing the REG of a SUBREG, try to simplify it.Alexandre Oliva1-0/+19
* combine.c (known_cond): After replacing the REG of a SUBREG, try to simplify it. From-SVN: r49775
2002-02-11combine.c (try_combine): Apply substitutions in CALL_INSN_FUNCTION_USAGE too.Alexandre Oliva1-0/+20
* combine.c (try_combine): Apply substitutions in CALL_INSN_FUNCTION_USAGE too. From-SVN: r49670
2002-02-04combine.c (nonzero_bits): Re-introduce special case for sp/fp/ap wrt ↵Richard Henderson1-2/+7
REGNO_POINTER_ALIGN. * combine.c (nonzero_bits): Re-introduce special case for sp/fp/ap wrt REGNO_POINTER_ALIGN. From-SVN: r49501
2002-02-04combine.c (force_to_mode): Remove STACK_BIAS code.Richard Henderson1-73/+19
* combine.c (force_to_mode): Remove STACK_BIAS code. (nonzero_bits): Likewise. Replace sp/fp special case with REGNO_POINTER_ALIGN. * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP. (HARD_FRAME_POINTER_REGNUM): New. (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update. (FIXED_REGS, CALL_USED_REGS): Update. (REG_ALLOC_ORDER, REGISTER_NAMES): Update. (CONDITIONAL_REGISTER_USAGE): Update for HFP. (HARD_REGNO_NREGS): Update for SFP. (STACK_POINTER_OFFSET): Include bias here ... (FIRST_PARM_OFFSET): ... not here. (STACK_BIAS): Remove. (INIT_EXPANDERS): New. (STARTING_FRAME_OFFSET): Do not include bias. (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP. (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise. * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP. * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise. * config/sparc/sparc.c (mem_min_alignment): Update for HFP. (sparc_nonflat_function_prologue, epilogue_renumber): Likewise. (MUST_SAVE_REGISTER): Likewise. (sparc_flat_function_prologue): Likewise. (sparc_flat_function_epilogue): Likewise. (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK. (sparc_init_modes): SFP is GENERAL_REGS. (sparc_builtin_saveregs): SFP does not have bias applied. From-SVN: r49486
2002-02-04combine.c (recog_for_combine): Create a dummy insn with PATTERN pat for recog.Jakub Jelinek1-8/+9
* combine.c (recog_for_combine): Create a dummy insn with PATTERN pat for recog. * gcc.dg/20020201-4.c: New test. From-SVN: r49473
2002-01-23combine.c (simplify_and_const_int): Don't trunc_int_for_mode "nonzero" as ↵Alan Modra1-11/+14
that might add "1" bits. * combine.c (simplify_and_const_int): Don't trunc_int_for_mode "nonzero" as that might add "1" bits. Ensure "constop" is properly sign extened. (force_to_mode): Tweak for sign extended constop. From-SVN: r49112
2002-01-21combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.Franz Sirl1-0/+1
2002-01-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP. From-SVN: r49057
2002-01-18bitmap.h: Fix comment formatting.Kazu Hirata1-1/+1
* bitmap.h: Fix comment formatting. * combine.c: Likewise. * cppfiles.c: Likewise. * c-pragma.h: Likewise. * c-typeck.c: Likewise. * df.c: Likewise. * dwarf2out.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * genattrtab.c: Likewise. * gthr-win32.h: Likewise. * haifa-sched.c: Likewise. * predict.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * unwind-dw2-fde.h: Likewise. * unwind-pe.h: Likewise. * vmsdbgout.c: Likewise. From-SVN: r48987
2002-01-14combine.c (simplify_shift_const): Always generate new rtx for shift ↵Hartmut Penner1-7/+1
expression instead of reusing given expression. * combine.c (simplify_shift_const): Always generate new rtx for shift expression instead of reusing given expression. From-SVN: r48831
2002-01-11re PR other/5299 (then -> than fixes)Craig Rodrigues1-1/+1
2002-01-11 Craig Rodrigues <rodrigc@gcc.gnu.org> PR other/5299 * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments. * combine.c (force_to_mode): Same. * reload1.c (clear_reload_reg_in_use): Same. From-SVN: r48780
2002-01-10* combine.c (expand_field_assignment): Use subreg_lsb().Kazu Hirata1-3/+1
From-SVN: r48742
2002-01-10* combine.c (can_combine_p): Fix a comment typo.Kazu Hirata1-1/+1
From-SVN: r48712
2002-01-08* combine.c (combine_instructions): Fix typo.Graham Stott1-1/+1
From-SVN: r48630
2002-01-07combine.c (combine_instructions): Replace XEXP (links, 0) with link.Graham Stott1-1/+1
* combine.c (combine_instructions): Replace XEXP (links, 0) with link. From-SVN: r48595
2002-01-05* combine.c: Fix formatting.Kazu Hirata1-35/+35
From-SVN: r48569
2002-01-03builtins.c: Fix formatting.Kazu Hirata1-6/+6
* builtins.c: Fix formatting. * c-typeck.c: Likewise. * combine.c: Likewise. * expr.c: Likewise. * loop.c: Likewise. From-SVN: r48512
2001-12-28combine.c (try_combine): Mask off sign bits when combining stores to the low ↵Geoffrey Keating1-1/+2
and high parts of a... * combine.c (try_combine): Mask off sign bits when combining stores to the low and high parts of a two-word value. From-SVN: r48339
2001-12-21combine.c (nonzero_bits): If using reg_nonzero_bits, we don't know anything ↵Jakub Jelinek1-2/+10
about bits outside of X mode. * combine.c (nonzero_bits): If using reg_nonzero_bits, we don't know anything about bits outside of X mode. (num_sign_bit_copies): Likewise. From-SVN: r48239
2001-12-20combine.c (distribute_notes): Avoid adding REG_LABEL notes to JUMP_INSNs ↵Jakub Jelinek1-0/+19
with JUMP_LABEL. * combine.c (distribute_notes): Avoid adding REG_LABEL notes to JUMP_INSNs with JUMP_LABEL. * gcc.c-torture/execute/20011219-1.c: New test. From-SVN: r48198
2001-12-14combine.c (record_dead_and_set_regs): Use regs_invalidated_by_call.Zack Weinberg1-1/+8
* combine.c (record_dead_and_set_regs): Use regs_invalidated_by_call. Don't note stores for CALL_INSNs. From-SVN: r48009
2001-12-11combine.c (simplify_and_const_int): Simplify (AND (PLUS X Y) C) if C has ↵Richard Henderson1-0/+17
only low bits set and doesn't intersect... * combine.c (simplify_and_const_int): Simplify (AND (PLUS X Y) C) if C has only low bits set and doesn't intersect with X or Y. From-SVN: r47921
2001-12-12combine.c (combine_simplify_rtx): Can't simplify cases that use mode class ↵Alan Matsuoka1-0/+2
MODE_CC. 2001-11-30 Alan Matsuoka <alanm@redhat.com> * combine.c (combine_simplify_rtx) : Can't simplify cases that use mode class MODE_CC. From-SVN: r47917
2001-12-11combine.c (simplify_shift_const): Move SHIFT_COUNT_TRUNCATED simplification ↵Richard Henderson1-14/+13
above out of range check. * combine.c (simplify_shift_const): Move SHIFT_COUNT_TRUNCATED simplification above out of range check. From-SVN: r47912
2001-12-10combine.c (known_cond): Check mode of each operand to determine if COND is ↵Jeffrey A Law1-1/+7
comparing floating point values. * combine.c (known_cond): Check mode of each operand to determine if COND is comparing floating point values. From-SVN: r47855
2001-11-11ChangeLog.2, [...]: Fix spelling errors.Joseph Myers1-8/+8
* ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, collect2.c, combine.c, config.in, configure, configure.in, conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c, genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c, reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix spelling errors. From-SVN: r46928
2001-10-30combine.c (num_sign_bit_copies): Avoid signed/unsigned warnings.Kaveh R. Ghazi1-2/+2
* combine.c (num_sign_bit_copies): Avoid signed/unsigned warnings. From-SVN: r46625
2001-10-11rtl.h (REG_VTABLE_REF): New.Richard Henderson1-0/+6
* rtl.h (REG_VTABLE_REF): New. * rtl.c (reg_note_name): Add it. * combine.c (distribute_notes): Handle it. * final.c (final_scan_insn): Handle it. * tree.def (VTABLE_REF): New. * expr.c (expand_expr): Handle it. * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New. * output.h: Declare them. cp/ * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead of an asm statement. (build_vtbl_ref_1): Split out from build_vtbl_ref. (build_vfn_ref): Use it to handle vtable descriptors before calling build_vtable_entry_ref. * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. testsuite/ * g++.old-deja/g++.other/crash18.C: Add -S to options. From-SVN: r46195
2001-10-10* combine.c (try_combine): Handle a SEQUENCE of one insn.Richard Henderson1-0/+6
From-SVN: r46177
2001-10-11alias.c: Remove uses of "register" specifier in declarations of arguments ↵Stan Shebs1-34/+34
and local... 2001-10-10 Stan Shebs <shebs@apple.com> * alias.c: Remove uses of "register" specifier in declarations of arguments and local variables. * c-common.c: Ditto. * c-convert.c: Ditto. * c-decl.c: Ditto. * c-format.c: Ditto. * c-semantics.c: Ditto. * c-typeck.c: Ditto. * caller-save.c: Ditto. * calls.c: Ditto. * cfg.c: Ditto. * cfgbuild.c: Ditto. * cfgrtl.c: Ditto. * collect2.c: Ditto. * combine.c: Ditto. * convert.c: Ditto. * cppexp.c: Ditto. * cppfiles.c: Ditto. * cse.c: Ditto. * dbxout.c: Ditto. * defaults.h: Ditto. * df.c: Ditto. * dwarf2out.c: Ditto. * dwarfout.c: Ditto. * emit-rtl.c: Ditto. * explow.c: Ditto. * expmed.c: Ditto. * expr.c: Ditto. * final.c: Ditto. * fix-header.c: Ditto. * floatlib.c: Ditto. * flow.c: Ditto. * fold-const.c: Ditto. * function.c: Ditto. * gcc.c: Ditto. * gcse.c: Ditto. * gen-protos.c: Ditto. * genattrtab.c: Ditto. * gencheck.c: Ditto. * genconfig.c: Ditto. * genemit.c: Ditto. * genextract.c: Ditto. * genflags.c: Ditto. * gengenrtl.c: Ditto. * genoutput.c: Ditto. * genpeep.c: Ditto. * genrecog.c: Ditto. * gensupport.c: Ditto. * global.c: Ditto. * gmon.c: Ditto. * graph.c: Ditto. * haifa-sched.c: Ditto. * hard-reg-set.h: Ditto. * hash.c: Ditto. * integrate.c: Ditto. * jump.c: Ditto. * lists.c: Ditto. * local-alloc.c: Ditto. * loop.c: Ditto. * mips-tdump.c: Ditto. * mips-tfile.c: Ditto. * optabs.c: Ditto. * prefix.c: Ditto. * print-rtl.c: Ditto. * read-rtl.c: Ditto. * real.c: Ditto. * recog.c: Ditto. * reg-stack.c: Ditto. * regclass.c: Ditto. * regmove.c: Ditto. * reload.c: Ditto. * reload1.c: Ditto. * reorg.c: Ditto. * resource.c: Ditto. * rtl.c: Ditto. * rtlanal.c: Ditto. * scan.c: Ditto. * sched-deps.c: Ditto. * sched-rgn.c: Ditto. * sdbout.c: Ditto. * simplify-rtx.c: Ditto. * stmt.c: Ditto. * stor-layout.c: Ditto. * toplev.c: Ditto. * tradcif.y: Ditto. * tradcpp.c: Ditto. * tree.c: Ditto. * unroll.c: Ditto. * varasm.c: Ditto. * xcoffout.c: Ditto. From-SVN: r46173
2001-10-10calls.c: Fix formatting.Kazu Hirata1-1/+1
* calls.c: Fix formatting. * c-decl.c: Likewise. * cfgcleanup.c: Likewise. * combine.c: Likewise. * cppfiles.c: Likewise. * cpplib.c: Likewise. * cppmacro.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * dwarf2out.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * ggc-page.c: Likewise. * integrate.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * reload1.c: Likewise. * reload.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * sched-rgn.c: Likewise. * sdbout.c: Likewise. * stmt.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. From-SVN: r46145
2001-09-16basic-block.h (free_bb_for_insn): Declare.Jan Hubicka1-1/+0
* basic-block.h (free_bb_for_insn): Declare. * bb-reorder.c (label_for_bb): Use block_label. (emit_jump_to_block_after): Remove. (insert_intra_1): Do not update block_for_insn. (insert_inter_bb_scope_notes): Likewise; update bb->end * cfg.c (free_bb_for_insn): New. (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call. (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries. (commit_one_edge_insertion): Likewise. (commit_one_edge_insertion): Do not update BB boundary. (commit_edge_insertions): Do not call compute_bb_for_insn. * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn. * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb. (merge_blocks_move_successor_nojumps): Likewise. (try_crossjump_to_edge): Do not update block_for_insn. * combine.c (combine_instructions): Remove compute_bb_for_insn call. * df.c (df_pattern_emit_later): Do not update BB boundary. (df_jump_pattern_emit_after): Likewise. (df_insn_move_before): Use emit_insn_before. * emit-rtl.c (try_split): Emit after trial to get bb boundary updated properly. (add_insn_after, add_insn_before, emit_insns_after): Update BB boundaries and basic_block_for_insn. (reorder_insns_nobb): Rename from reorder_insns. (reorder_insns): New. (emit_block_insn_before, emit_block_insn_after): Kill. * flow.c (check_function_return_warnings): Do not call compute_bb_for_insn; Do not free basic_block_for_insn. (attempt_auto_inc): Do not update basic_block_for_insn. * function.c (emit_return_into_block): Likewise; do not update BB boundaries. * gcse.c (handle_avail_expr): Do not update basic_block_for_insn. (insert_insn_end_bb): Use emit_insn_before; Likewise. (pre_insert_copy_insn): Likewise. (update_ld_motion_notes): Likewise. (insert_insn_start_bb): Likewise. (replace_store_insn): Likewise. * ifcvt.c (noce_process_if_block): Likewise. (if_convert): Do not call compute_bb_for_insn. * lcm.c (optimize_mode_switching): Do not update BB boundaries. Use emit_insn_before and emit_insn_after. * recog.c (split_all_insns): Do not update BB boundaries; Do not call compute_bb_for_insn. (peephole2_optimize): Do not update BB boundaries. * reg-stack.c (emit_pop_insn): Use emit_insn_after and emit_insn_before. (emit_swap_insn): Likewise. (convert_regs_1): Likewise. * reload1.c (reload): Call compute_bb_for_insn. * rtl.h (reorder_insns_nobb): Declare. * ssa.c (rename_equivalent_regs): Use emit_insn_before. * toplev.c (rest_of_compilation): Call free_bb_for_insn at places CFG is invalidated; do not call compute_bb_for_insn. * cfg.c (expunge_block): Invalidate BB structure. * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN array. * cfg.c (verify_flow_info): Verify the basic_block_for_insn array. From-SVN: r45647
2001-09-11combine.c (simplify_shift_const): Treat shifts by the mode size as undefined.Richard Sandiford1-1/+1
* combine.c (simplify_shift_const): Treat shifts by the mode size as undefined. From-SVN: r45538
2001-08-27combine.c (combine_simplify_rtx): Don't reverse condition if there is no ↵Richard Henderson1-1/+4
reverse for the condition. * combine.c (combine_simplify_rtx): Don't reverse condition if there is no reverse for the condition. (simplify_comparison): Don't simplify subregs from INT to FP. * gcc.c-torture/execute/ieee/fp-cmp-4.c (main): Make "data" static. * gcc.c-torture/execute/ieee/fp-cmp-5.c: New. From-SVN: r45220
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". From-SVN: r45105
2001-08-22expmed.c (mode_for_extraction): New function.Zack Weinberg1-54/+23
* expmed.c (mode_for_extraction): New function. (store_bit_field, extract_bit_field): Use it. * expr.h: Prototype it and provide an enum for its first argument. * combine.c, function.c, recog.c: Don't include insn-codes.h. Use mode_for_extraction rather than testing HAVE_insv/extv/extzv and digging through the insn_data tables. * Makefile.in: Update dependencies. From-SVN: r45086
2001-08-18optabs.h (OTI_flodiv, [...]): Kill.Zack Weinberg1-16/+11
* optabs.h (OTI_flodiv, flodiv_optab): Kill. * genopinit.c: Put floating point divide insns in sdiv_optab. * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab. * config/gofast.h, config/c4x/c4x.h, config/ia64/hpux_longdouble.h, config/mips/mips.h, config/pa/long_double.h, config/rs6000/sysv4.h, config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab. * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv. (init_optabs): Use init_optabv for overflow-trapping optabs. Don't init flodiv_optab. Give mov_optab, movstrict_optab, and cmp_optab RTX codes so have_insn_for can find them. * optabs.c (expand_simple_binop, expand_simple_unop, have_insn_for, gen_sub3_insn): New interfaces. * expr.h: Prototype new functions. (enum optab_methods): Move here from optabs.h. * builtins.c, combine.c, doloop.c, function.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c: Use new functions instead of working directly with optabs. * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, unroll.c: Don't include optabs.h. * caller-save.c, combine.c, function.c, stmt.c: Just include insn-codes.h, not optabs.h. * Makefile.in: Update dependencies. * combine.c (make_compound_operation, simplify_comparison): Fix typos testing for this or that instruction. From-SVN: r45008
2001-08-13expr.h: Split out optab- and libfunc-related code to...Zack Weinberg1-0/+1
* expr.h: Split out optab- and libfunc-related code to... * optabs.h, libfuncs.h: ... these new headers. * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. (OPTABS_H): New. (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to dependencies. * mkconfig.sh: Don't include insn-codes.h from config.h. * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether enum insn_code is available. Move reload_in_optab and reload_out_optab array declarations to optabs.h. * regmove.c (gen_add3_insn): Move to optabs.c, export from there, prototype in expr.h. * gencodes.c: Cleanup: zap global variables, don't use printf where puts will do, don't bother defining MAX_INSN_CODE which nothing uses, let CODE_FOR_nothing get its value implicitly. * genemit.c, genopinit.c: Include optabs.h in generated file. * genoutput.c: Include insn-codes.h in generated file. * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: Include optabs.h. * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, config/m88k/m88k.c, config/sparc/sparc.c: Include libfuncs.h. * reload.c: Include expr.h and optabs.h before reload.h. * config/alpha/alpha.c: Include tree.h before reload.h. * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, and reload.h in that order. * config/sparc/sparc.c: Include debug.h. * recog.c: Include insn-codes.h. cp: * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. * except.c: Include libfuncs.h. java: * Make-lang.in (java/decl.o): Update dependencies. * decl.c: Include libfuncs.h, don't include toplev.h. From-SVN: r44858
2001-08-11rtl.h (REG_EH_RETHROW): Remove.Richard Henderson1-1/+0
* rtl.h (REG_EH_RETHROW): Remove. * rtl.c (reg_note_name): Update. * combine.c (distribute_notes): Don't check for it. From-SVN: r44809
2001-08-11* combine.c (distribute_notes): Place REG_SETJMP.Richard Henderson1-0/+1
From-SVN: r44806
2001-08-08combine.c (combine_simplify_rtx): Update comment and remove erroneous test.Graham Stott1-3/+2
* combine.c (combine_simplify_rtx): Update comment and remove erroneous test. From-SVN: r44703
2001-08-03combine.c, [...]: consistently use "VAX", "VAXen", and "MicroVAX" in ↵Lars Brinkhoff1-2/+2
comments and documentation. * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c, simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h, config/convex/convex.h, config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c, config/mips/mips.h, config/mn10200/mn10200.h, config/mn10300/mn10300.h, config/pdp11/pdp11.md, config/v850/v850.h, config/vax/openbsd.h, config/vax/openbsd1.h, config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h, cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX" in comments and documentation. From-SVN: r44589
2001-08-01alias.c: Fix comment formatting.Kazu Hirata1-3/+3
* alias.c: Fix comment formatting. * bitmap.c: Likewise. * builtins.c: Likewise. * calls.c: Likewise. * c-common.c: Likewise. * c-decl.c: Likewise. * c-dump.c: Likewise. * c-lex.c: Likewise. * collect2.c: Likewise. * combine.c: Likewise. * conflict.c: Likewise. * cppfiles.c: Likewise. * cppinit.c: Likewise. * cpplex.c: Likewise. * cpplib.c: Likewise. * cppmacro.c: Likewise. * cppspec.c: Likewise. * c-pragma.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * c-semantics.c: Likewise. * c-typeck.c: Likewise. From-SVN: r44547
2001-07-30* combine.c (try_combine): Avoid barrier after noop jumpsJan Hubicka1-4/+7
From-SVN: r44470
2001-07-29Suggested by Richard Henderson and Richard Kenner:Jan Hubicka1-12/+10
* combine.c (recog_for_combine): Use the fake recog only if instruction does not match. * rtl.h (NOOP_MOVE_INSN_CODE): New. * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE. * combine.c (try_combine): Discover noop jump as direct jump. From-SVN: r44464