summaryrefslogtreecommitdiff
path: root/gcc/unroll.c
Commit message (Collapse)AuthorAgeFilesLines
* Permit doloop treatment for preconditioned loops.dalej2002-10-071-0/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57902 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (copy_loop_body): Remove REG_EQUAL note attached todje2002-10-051-0/+7
| | | | | | | copied instruction if the note is not loop invariant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57834 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (loop_iterations): Revert 2002-09-08 change.sayle2002-10-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57720 138bc75d-0d04-0410-961f-82ee72b054a4
* * reload.c (push_reload): Handle subregs and secondary memory.hubicka2002-09-301-2/+2
| | | | | | | | | | | * reload1.c (gen_reload): Likewise. * jump.c (reg_or_subregno): New function. * rtl.h (reg_or_subregno): Declare * unroll.c (find_splittable_givs): Handle subregs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57663 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (simplify_cmp_and_jump_insns): New.rth2002-09-271-44/+80
| | | | | | | | (unroll_loop): Use it. Use simplify_gen_foo+force_operand instead of expand_simple_foo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57596 138bc75d-0d04-0410-961f-82ee72b054a4
* * LANGUAGES: Follow spelling conventions.kazu2002-09-271-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.def: Likewise. * sbitmap.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * sibcall.c: Likewise. * simplify-rtx.c: Likewise. * ssa.c: Likewise. * stab.def: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * target.h: Likewise. * timevar.c: Likewise. * toplev.c: Likewise. * tree-dump.c: Likewise. * tree-inline.c: Likewise. * tree.c: Likewise. * tree.def: Likewise. * tree.h: Likewise. * unroll.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. * treelang/treelang.texi: Likewise. * treelang/treetree.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57587 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/6405sayle2002-09-081-1/+1
| | | | | | | | | | * unroll.c (loop_iterations): last_loop_insn should be the previous non-note instruction before loop->end. * loop.c (strength_reduce): The conditional jump is the last non-note instruction before loop->end (as above). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56956 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (biv_total_increment): Don't try to compute the totalgeoffk2002-08-211-1/+2
| | | | | | | increment for FP BIVs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56479 138bc75d-0d04-0410-961f-82ee72b054a4
* * df.c (df_insn_table_realloc): Change parameter to unsigned.ghazi2002-08-021-3/+3
| | | | | | | | | * optabs.c (expand_binop): Make variable unsigned. * simplify-rtx.c (simplify_subreg): Likewise. * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55960 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.amylaar2002-07-301-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55877 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (verify_addresses): Remove.rth2002-07-291-132/+2
| | | | | | | (find_splittable_givs): Never split DEST_ADDR givs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55858 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (find_splittable_givs): Do not split DEST_ADDR givsrth2002-07-221-99/+3
| | | | | | | that are not unrolled completely. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55635 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/7130amodra2002-07-201-0/+3
| | | | | | | | | * loop.h (struct loop_info): Add "preconditioned". * unroll.c (unroll_loop): Set it. * doloop.c (doloop_modify_runtime): Correct count for unrolled loops. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55598 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (loop_iterations): Handle EQ loops.amodra2002-06-301-6/+37
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55111 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (check_final_value): Use v->always_executedrth2002-06-151-2/+4
| | | | | | | | | | instead of v->always_computable. * unroll.c (final_giv_value): Don't calculate the final value as a function of the biv if the giv is not computed for every loop iteration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54634 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-06-05 David S. Miller <davem@redhat.com>davem2002-06-111-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete SEQUENCE rtl usage outside of reorg and ssa passes. * rtl.h (gen_sequence, emit_insns, emit_insns_before, emit_insns_before_scope, emit_insns_after, emit_insns_after_scope): Delete declaration. * ada/misc.c (insert_code_for): Use emit_insn* instead of emit_insns_foo. * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE. (alpha_set_memflags): Fix comment. (set_frame_related_p): Use get_insns instead of gen_sequence. * config/alpha/alpha.md (setjmp receiver splitter): Avoid emitting no insns. * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of gen_sequence. (arm_gen_load_multiple, arm_gen_store_multiple): Likewise. * config/fr30/fr30.c (fr30_move_double): Likewise. * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr): Likewise. * config/ia64/ia64.c (spill_restore_mem): Likewise. * config/ia64/ia64.md (conditional move spliiter): Avoid emitting no insns. * config/m32r/m32r.c (gen_split_move_double): Use get_insns instead of gen_sequence. * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise. (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise. * config/sh/sh.c (sh_need_epilogue): Likewise. * config/sparc/sparc.md (current_function_calls_alloca, flat): New attributes. (setjmp pattern and split): Use them to avoid splitter which emits no RTL. * genattrtab.c (main): Emit include of function.h * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use get_insns instead of gen_sequence. * config/cris/cris.c (cris_split_movdx): Likewise. * emit-rtl.c (emit_insns*): Kill. (try_split): Expect insn list instead of SEQUENCE. (make_jump_insn_raw, make_call_insn_raw): Fix comments. (emit_*insn*): Reimplement to work with INSN lists and PATTERNs. Make them abort if a SEQUENCE is given and RTL checking is enabled. (emit_*_scope): Don't forget to set scope on final insn. (gen_sequence): Move from here... * ssa.c (gen_sequence): To here as private function. * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix comments. (expand_builtin_return, expand_builtin_mathfn): Likewise. (expand_builtin_strlen): Use get_insns instead of gen_sequence. (expand_builtin_saveregs): Use emit_insn_foo, fix comments. (expand_builtin_expect_jump): Use get_insns and fix comments. * calls.c (try_to_integrate): Use emit_insn_foo. (expand_call, emit_library_call_value_1): Likewise. * expr.c (emit_queue): Handle insn lists instead of SEQUENCE. (emit_move_insn_1): Use get_insns instead of gen_sequence. (expand_expr): Use emit_insn_foo. * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo. * except.c (build_post_landing_pads): Likewise. * flow.c (attempt_auto_inc): Likewise. * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label, expand_nl_goto_receivers, expand_decl_cleanup): Likewise. * function.c (fixup_var_refs_insn): Use get_insns instead of gen_sequence. (fixup_var_refs_1): Likewise and expect insn list from gen_foo. (fixup_memory_subreg): Use get_insns instead of gen_sequence. (fixup_stack_1, purge_addressof_1, expand_main_function, get_arg_pointer_save_area): Likewise. (optimize_bit_field, instantiate_virtual_regs_1, assign_parms, expand_function_end): Use emit_insn_foo. (record_insns, keep_stack_depressed): Work with insn list instead of SEQUENCE, fix comments. * ifcvt.c (noce_emit_store_flag, noce_try_store_flag, noce_try_store_flag_constants, noce_try_store_flag_inc, noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Use emit_insn_foo. (noce_process_if_block): Use get_insns instead of gen_sequence. * optabs.c (add_equal_note): Work with insn list, fix comments. (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo. (expand_unop, expand_complex_abs, expand_unop_insn, expand_no_conflict_block): Likewise. (gen_move_insn): Use get_insns instead of gen_sequence. (gen_cond_trap): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. (emit_initial_value_sets): Use emit_insn_foo. * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise. (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently now that RTL generators give insn lists. * sibcall.c (replace_call_placeholder): Use emit_insn_foo. * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns instead of gen_sequence. (doloop_optimize): Work with insn lists instead of SEQUENCE rtl. * explow.c (emit_stack_save, emit_stack_restore): Use get_insns instead of gen_sequence. * loop.c (move_movables, emit_prefetch_instructions, gen_add_mult, check_dbra_loop, gen_load_of_final_value): Likewise. (loop_regs_update): Work with insn list instead of SEQUENCE rtl. (product_cheap_p): Likewise, and add commentary about RTL wastage here. * lcm.c (optimize_mode_switching): Use get_insns instead of gen_sequence. * profile.c (gen_edge_profiler): Likewise. * regmove.c (copy_src_to_dest): Likewise. * reg-stack.c (compensate_edge): Likewise and fix comment. * gcse.c (process_insert_insn): Likewise. (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl. * jump.c (delete_prior_computation): Update comment. * genemit.c (gen_expand, gen_split, main): Use get_insns instead of gen_sequence, update comments to match. * recog.c (peephole2_optimize): Work with insn lists instead of SEQUENCE rtl. * sched-vis.c (print_pattern): Abort on SEQUENCE. * unroll.c (unroll_loop, find_splittable_givs, final_giv_value): Use get_insns instead of gen_sequence. (copy_loop_body): Likewise and don't emit dummy NOTE. * genrecog.c: Don't mention SEQUENCE rtl in comments. * combine.c (try_combine): Expect insn lists from split generator. * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by hand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54497 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (emit_prefetch_instructions): Properly place the address computation.hubicka2002-06-021-47/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill. (set_block_for_insn): Turn into macro. * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn. * cfglayout.c (insn_scopes): Kill. (scope_to_insns_initialize): Do not use insn_scopes. (scope_to_insns_finalize): Likewise. (duplicate_insn_chain): Likewise. (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes. * cfgrtl.c (basic_block_for_insn): Kill. (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify. (create_basic_block_structure): Use reorder_insns. (compute_bb_for_insn): Do not use basic_block_for_insn. (merge_blocks_nomove): Likewise. (update_bb_for_insn): Likewise. (verify_flow_info): Likewise. (set_block_for_insn): Kill. * combine.c (try_combine): Update gen_rtx_INSN call. * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call. (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear scopes and BBs. (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify. (emit_note_before, emit_note_after, emit_line_note_after, emit_note): Clear BB. (emit_insns_after): Simplify. (emit_copy_of_insn_after): Copy scope. * final.c (final_start_function): Lower scopes. * flow.c (check_function_return_warnings): Do not rely on deleted insn. * integrate.c (copy_insn_list): Cope scopes. * jump.c (duplicate_loop_exit_test): LIkewise; simplify. * loop.c (loop_optimize): Do not care block notes. * print-rtl.c (print_rtx): Print BB. * recog.c (apply_change_group): Simplify. * rtl.c (copy_rtx): Handle 'B'. * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields. * rtl.h (Field accessors): Update indexes. * sched-ebb.c (schedule_ebbs): Do not lower notes. * sched-rgn.c (schedule_insns): Likewise. * toplev.c (rest_of_compilation): Lower notes. * unroll.c (unroll_loop): Do not care scoping notes. (copy_loop_body): Copy scopes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54188 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.h: Fix formatting.kazu2002-05-311-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | * timevar.h: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * toplev.h: Likewise. * tree.c: Likewise. * tree-dump.h: Likewise. * tree.h: Likewise. * tree-inline.h: Likewise. * unroll.c: Likewise. * unwind-dw2.c: Likewise. * unwind-dw2-fde.c: Likewise. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2-fde.h: Likewise. * unwind.h: Likewise. * unwind-sjlj.c: Likewise. * varasm.c: Likewise. * varray.h: Likewise. * vmsdbg.h: Likewise. * vmsdbgout.c: Likewise. * xcoffout.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54123 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (unroll_loop): Zero label_map.rth2002-03-251-2/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51300 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/5891jakub2002-03-151-0/+1
| | | | | | | * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50791 138bc75d-0d04-0410-961f-82ee72b054a4
* Add --param max-unrolled-insns=<n> supportmeissner2002-03-141-7/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50787 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (loop_iterations): Return 0 if the add_val forgrahams2002-02-271-1/+12
| | | | | | | a BIV is REG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50100 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (unroll_loop): Lower final_value to nonmemory operand;hubicka2002-01-251-1/+14
| | | | | | | avoid it's copies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49224 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (final_reg_note_copy): Fix previous commit.hubicka2002-01-141-4/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48858 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (final_reg_note_copy): Properly handlehubicka2002-01-141-10/+5
| | | | | | | | REG_LABEL (unroll_loops): Fix LOOP_CONDITION heuristics. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48839 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL notehubicka2002-01-121-4/+9
| | | | | | | referencing outside. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48803 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/5269rth2002-01-101-3/+12
| | | | | | | | * unroll.c (precondition_loop_p): Make *increment be the correct sign when n_iterations known, to avoid confusing caller. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48752 138bc75d-0d04-0410-961f-82ee72b054a4
* * toplev.c: Fix formatting.kazu2002-01-101-2/+2
| | | | | | | | | | | | | * tree.c: Likewise. * tree-dump.c: Likewise. * unroll.c: Likewise. * unwind-dw2.c: Likewise. * unwind-dw2-fde.c: Likewise. * unwind-dw2-fde-glibc.c: Likewise. * unwind-sjlj.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48749 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (copy_loop_body): Always properly update JUMP_LABEL andhubicka2002-01-071-3/+5
| | | | | | | LABEL_NUSES. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48600 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c: Move include files above first use of `const'.ghazi2001-12-301-17/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48400 138bc75d-0d04-0410-961f-82ee72b054a4
* * collect2.c (is_ctor_dtor): Const-ify.ghazi2001-12-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * m88k-protos.c (output_file_start): Likewise. * m88k.c (m88k_lang_independent_options, output_options, output_file_start): Likewise. * fix-header.c (files_to_ignore, std_include_entry, include_entry, std_include_table, main): Likewise. * protoize.c (longopts): Likewise. * regclass.c (int_reg_class_contents): Likewise. * toplev.c (dump_file, f_options, W_options): Make static. (lang_independent_options, f_options, W_options): Const-ify. * tree-dump.c (dump_file_info): Likewise. * unroll.c (_factor): Make static. java: * chartables.h: Const-ify. * gjavah.c (options): Likewise. * jcf-dump.c (options): Likewise. * jv-scan.c (options): Likewise. * lex.c (java_start_char_p, java_part_char_p): Likewise. * parse.y (binop_lookup): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48322 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-12-01 Olivier Hainque <hainque@act-europe.fr>sirl2001-12-011-11/+24
| | | | | | | | * unroll.c (loop_iterations): Give up on jumps with null JUMP_LABEL while scanning for multiple back edges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47510 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (unroll_loop): Correct special exit cases.dje2001-11-301-9/+32
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47499 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (loop_iterations): Move last change ...rth2001-11-271-35/+0
| | | | | | | * doloop.c (doloop_modify_runtime): ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47387 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (loop_iterations): Detect one situation in which werth2001-11-271-0/+35
| | | | | | | overestimate the number of iterations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47386 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (copy_loop_body): Update LABEL_NUSES for thelaw2001-11-211-0/+1
| | | | | | | exit label as necessary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47227 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (copy_loop_body): Initialize JUMP_LABEL field afterlaw2001-11-161-0/+1
| | | | | | | creating a new jump insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47090 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_field): Pass tree instead of max size; callers changed.kenner2001-11-161-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns. * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * expmed.c: Remove ALIGN arg from calls to compare_from_rtx, compare_rtx_and_jump, and emit_cmp_jump_insns. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes. * config/clipper/clipper.c, config/h8300/h8300.c: Likewise. * config/i386/i386.c,config/mips/mips.c: Likewise. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. * emit-rtl.c (change_address): Fix typo in default alignment. (adjust_address_1): Use mode of NEW, not MODE, when setting size. * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. * rtl.h (REGNO_PTR_FRAME_P): New macro. * expr.c (store_field): Pass tree instead of max size; callers changed. Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns. * explow.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/d30v/d30v.c: Reflect above changes. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * ada/trans.c, ada/utils2.c: Remove PALIGN parameter to get_inner_reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47078 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c (calculate_giv_inc): Use find_last_value rathergeoffk2001-11-041-6/+5
| | | | | | | | than just hoping the last instruction is the right SET. [Fixes 990604-1.c on stormy16.] git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46769 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,jsm282001-10-281-1/+1
| | | | | | | | | | | | | ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc, configure, configure.in, except.c, except.h, flow.c, function.c, gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def, predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c, sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c, unroll.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46595 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-11 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2001-10-111-5/+4
| | | | | | | * unroll.c (loop_iterations): Fixup last patch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46197 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-10 Stan Shebs <shebs@apple.com>shebs2001-10-111-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46173 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2001-10-101-0/+5
| | | | | | | | | PR c++/4512 * unroll.c (loop_iterations): Ignore insns generated by loop unrolling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46153 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-08 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2001-10-081-0/+21
| | | | | | | * unroll.c (loop_iterations): Extend check for multiple back edges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46099 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (cfgrtl.o): Add.hubicka2001-09-251-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): Declare. * cfg.c (HAVE_return): Undefine. * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): New global functions. (first_delete_block): New static variable. (init_flow): Clear first_delete_block. (basic_block_for_insn, label_value_list, tail_recursion_label_list, can_delete_note_p, can_delete_label_p, commit_one_edge_insertion, try_redirect_by_replacing_jump, last_loop_beg_note, back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect, delete_insn, delete_insn_chain, create_basic_block_structure, create_basic_block, flow_delete_block, compute_bb_for_insn, free_bb_for_insn, update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, split_block, merge_blocks_nomove, block_label, try_redirect_by_replacing_jump, last_loop_beg_note, redirect_edge_and_branch, force_nonfallthru_and_redirect, force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge, tidy_fallthru_edges, split_edge, insert_insn_on_edge, commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, purge_all_dead_edges): Move to .... * cfgrtl.c: New file; .... Here. * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block. (reroder_basic_block): Use alloc_aux_for_blocks. * predict.c (estimate_bb_frequencies): Likewise; use alloc_aux_for_edges. * profile.c (compute_branch_probabilities): Likewise. (branch_prob): Likewise. * reg-stack.c (reg_to_stack): Likewise. * emit-rtl.c (emit_insns_after): Never return NULL. * basic-block.h (set_block_for_new_insns): Delete. * cfgrtl.c (set_block_for_new_insns): Delete. * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn calls when crossjumping. * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call. * unroll.c (copy_loop_body): Use delete_insn. * final.c (final, final_scan_insn): Use delete_insn/delete_note. * function.c (fixup_var_refs_insn, fixup_var_refs_1, keep_stack_depressed): Likewise. * gcse.c (cprop_cc0_jump): Likewise. * local-alloc.c (update_equiv_regs): Likewise. * loop.c (scan_loop, loop_delete_insns): Likewise. * regmove.c (try_auto_increment, fixup_match_1): Likewise. * reload1.c (reload, calculate_needs_all_insns, reload_as_needed, delete_output_reload, delete_address_reloads_1, reload_cse_delete_noop_set, reload_combine, reload_cse_move2add): Likewise. * sibcall.c (replace_call_placeholder): Likewise. * cse.c (cse_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45807 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.hubicka2001-09-211-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cfg.c (delete_insn): Rename from ....; use remove_insn; do not remove some labels. (flow_delete_insn): This one. (delete_insn_chain): Rename from ...; do not care labels. (flow_delete_insn_chain): ... this one. (flow_delete_block): Remove the insns one BB has been expunged. (merge_blocks_nomove): Likewise. (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care updating BB boundaries. (tidy_fallthru_edge): Likewise. (commit_one_edge_insertion): Likewise. * cfgbuild.c (find_basic_block): Likewise. (find_basic_blocks_1): Likewise. * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise. (try_crossjump_to_edge): Likewise. (try_optimize_cfg): Likewise. * cse.c (delete_trivially_dead_insns): Likewise. * df.c (df_insn_delete): Likewise. * doloop.c (doloop_modify): Use delete_related_insns. * emit-rtl.c (try_split): Likewise. (remove_insn): Update BB boundaries. * expect.c (connect_post_landing_pads): Use delete_related_insns. * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care updating BB boundaries. (propagate_block_delete_insn): Likewise. (propagate_block_delete_libcall): Likewise. * function.c (delete_handlers): Use delete_related_insns. (thread_prologue_and_epilogue_insns): Likewise. * gcse.c (delete_null_pointer_checks): Use delete_related_insns. * genpeep.c (gen_peephole): Use delete_related_insns. * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating BB boundaries. (find_cond_trap): Likewise. * integrate.c (save_for_inline): Use delete_related_insns. (copy_insn_list): Likewise. * jump.c (pruge_linie_number_notes): Likewise. (duplicate_loop_exit_test): Likewise. (delete_computation): Likewise. (delete_related_insn): Rename from ...; use delete_insn (delete_insn): ... this one. (redirect_jump): Use delete_related_insns. * loop.c (scan_loop): Likewise. (move_movables): Likewise. (find_and_verify_loops): Likewise. (check_dbra_loop): Likewise. * recog.c (peephole2_optimize): Likewise. * reg-stack.c (delete_insn_for_stacker): Remove. (move_for_stack_reg): Use delete_insn. * regmove.c (combine_stack_adjustments_for_block): Likewise. * reload1.c (delete_address_reloads): Use delete_related_insns. (fixup_abnormal_edges): Use delete_insn. * recog.c (emit_delay_sequence): Use delete_related_insns. (delete_from-delay_slot): Likewise. (delete_scheduled_jump): likewise. (optimize_skip): Likewise. (try_merge_delay_insns): Likewise. (full_simple_delay_slots): Likewise. (fill_slots_from_thread): Likewise. (relax_delay_slots): Likewise. (make_return_insns): Likewise. (dbr_schedule): Likewise. * rtl.h (delete_insn): Rename to delete_related_insns. (delete_insn, delete_insn_chain): New prototypes. * ssa-ccp (sse_fast_dce): Remove deleting of DEF, as it is done by df_insn_delete already. * ssa-dce.c (delete_insn_bb): Use delete_insn. * ssa.c (convert_from_ssa): Use delete_related_insns. * unroll.c (unroll_loop): Likewise. (calculate_giv_inc): Likewise. (copy_loop_body): Likewise. * i386-protos.h (ix86_libcall_value, ix86_function_value, ix86_function_arg_regno_p, ix86_function_arg_boundary, ix86_return_in_memory, ix86_function_value): Declare. * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers): new static valurables. (x86_64_reg_class): New enum (x86_64_reg_class_name): New array. (classify_argument, examine_argument, construct_container, merge_classes): New static functions. (optimization_options): Enable flag_omit_frame_pointer and disable flag_pcc_struct_return on 64bit. (ix86_libcall_value, ix86_function_value, ix86_function_arg_regno_p, ix86_function_arg_boundary, ix86_return_in_memory, ix86_function_value): New global functions. (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg. (function_arg_advance): Handle x86_64 passing conventions. (function_arg): Likewise. * i386.h (FUNCTION_ARG_BOUNDARY): New macro. (RETURN_IN_MEMORY): Move offline. (FUNCTION_VALUE, LIBCALL_VALUE): Likewise. (FUNCTION_VALUE_REGNO_P): New macro. (FUNCTION_ARG_REGNO_P): Move offline. (struct ix86_args): Add maybe_vaarg. * next.h (FUNCTION_VALUE_REGNO_P): Delete. * unix.h (FUNCTION_VALUE_REGNO_P): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45726 138bc75d-0d04-0410-961f-82ee72b054a4
* * dbxout.c (dbxout_parms): Fix typo in comment.hp2001-09-111-1/+1
| | | | | | | | | | | * unroll.c (loop_find_equiv_value): Ditto. * toplev.c (rest_of_compilation): Ditto. * loop.c (scan_loop): Ditto. (scan_loop): Ditto. * dwarf2out.c (struct dw_fde_struct): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45531 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,gerald2001-08-221-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45105 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (OTI_flodiv, flodiv_optab): Kill.zack2001-08-181-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45008 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (only_sets_cc0_p): New prototype.wehle2001-08-151-2/+2
| | | | | | | | | | | | | * jump.c (sets_cc0_p): Handle INSN. (only_sets_cc0_p): New function. * flow.c (merge_blocks_nomove): Use only_sets_cc0_p. (tidy_fallthru_edge): Likewise. * integrate.c (copy_insn_list): Likewise. * unroll.c (unroll_loop): Likewise. (copy_loop_body): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44927 138bc75d-0d04-0410-961f-82ee72b054a4