summaryrefslogtreecommitdiffstats
path: root/gcc/loop.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * jump.c (squeeze_notes): Take parms by reference. Handle END beingjason2001-08-221-2/+1
| | | | | | | | | | | | | | a squeezable note. * rtl.h: Adjust. * ifcvt.c (dead_or_predicable): Adjust. * loop.c (find_and_verify_loops): Adjust. * stmt.c (expand_end_case): Adjust. * flow.c (merge_blocks_move_successor_nojumps): Adjust. Modify the head and end insn pointers in the basic block, not just local copies. (merge_blocks_move_predecessor_nojumps): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45107 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-24/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * expr.h: Split out optab- and libfunc-related code to...zack2001-08-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44858 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (check_dbra_loop): Use condjump_label to computegeoffk2001-08-131-5/+1
| | | | | | | jump_label. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44841 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c: Fix comment formatting.kazu2001-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gccspec.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * gengenrtl.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-page.c: Likewise. * global.c: Likewise. * graph.c: Likewise. * ifcvt.c: Likewise. * integrate.c: Likewise. * lcm.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * mbchar.c: Likewise. * optabs.c: Likewise. * predict.c: Likewise. * prefix.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * rtl.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44837 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARYzack2001-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if not already defined. Remove all #ifdefs on STACK_BOUNDARY; this macro is now required. * cselib.c (cselib_process_insn), flow.c (propagate_block), loop.c (find_and_verify_loops), reload.c (reload): Check for rtx code of CALL_INSN, not CALL, when deciding if we need to check for REG_SETJMP note. * gcse.c (compute_hash_table, compute_store_table): Update the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP logic. * config/avr/avr.c: Fix typo. * config/convex/convex.c (expand_movstr): Use adjust_address. * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen variable. * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address. * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h. Fix typo. * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?) Do define STACK_BOUNDARY. * config/i370/i370.c: Include expr.h. * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h, config/pa/som.h, config/v850/v850.h: Take in_ctors and in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS. * config/m88k/m88k.c: Include c-tree.h after expr.h. * config/pdp11/pdp11.c: Include expr.h and toplev.h. * config/romp/romp.c: Include expr.h after tree.h. Include toplev.h. (output_fpop): Use xmalloc, not oballoc. * config/we32k/we32k.c: Include expr.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44768 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (expand_call): Do not emit INSN_SETJMP note.hubicka2001-08-071-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (emit_library_call_value_1): Likewise. (emit_call_1): Emit REG_SETJMP note. * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead of INSN_SETJMP * cselib.c (cselib_process_insn): Likewise. * flow.c (propagate_block): Likewise. * loop.c (find_and_verify_loops): Likewise. * reload.c (find_equiv_regs): Likewise. * reload1.c (reload): Likewise. * resource.c (mark_referenced_resources, mark_set_resources): Likewise. * sched-deps (sched_analyze_insn, sched_analyze): Likewise. * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP. * haifa-sched.c (unlink_other_notes): Likewise. (reemit_notes): Likewise. * sched-ebb.c (sched_ebb): Likewise. * sched-rgc.c (sched_region): Likewise. * rtl.c (note_insn_name): Likewise. (reg_note_name): Add REG_SETJMP * rtl.h (reg_note): Add REG_SETJMP. (insn_note): Remove NOTE_INSN_SETJMP. * profile.c (branch_prob): Add fake edges for setjmp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44700 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (nonlocal_mentioned_p):hubicka2001-08-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Rename CONST_CALL_P to CONST_OR_PURE_CALL_P * calls.c (emit_call_1): Likewise. * cse.c (cse_insn, invalidate_skipped_block): Likewise. * cselib.c (cselib_process_insn): Likewise. * df.c (df_insns_modify): Likewise. * flow.c (need_fake_edge_p): Likewise. (propagate_one_insn): Likewise. * haifa-sched.c (reemit_notes): Likewise. * integrate.c (copy_insn_list): Likewise. * jump.c (delete_prior_computation): Likewise. * local-alloc.c (validate_equiv_mem): Likewise. * loop.c (scan_loop): Likewise. * predict.c (estimate_probability): Likewise. * reload.c (reload): Likewise. * sched-deps (sched_analyze): Likewise. * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P. * gcse.c (compute_hash_table): Likewise. (mark_call): Likewise. (store_killed_in_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44688 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.hubicka2001-08-041-1/+10
| | | | | | | | | | | | | | | | * reload1.c (fixup_abnormal_edges): New static function. (reload): Use it. * flow.c (need_fake_edge_p): New function. (flow_call_edges_add): Fix handling of noreturn and sibbling calls; avoid call insn to be very last insn in the insn stream. * profile.c (branch_prob): Call flow_call_edges_add instead of doing that by hand; cleanup cfg to re-merge basic blocks once we are done. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44635 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (check_dbra_loop): Use single_set to computegeoffk2001-07-311-2/+4
| | | | | | | jump_label. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44517 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix typo spotted by Richard.hubicka2001-07-251-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44370 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (estimate_probability): Avoid duplicated predictions.hubicka2001-07-251-0/+8
| | | | | | | * loop.c (find_and_verify_loops): Grok multiple barriers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44369 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (scan_loop): Add USEs inside PARALLELs into dependencieshubicka2001-07-151-0/+12
| | | | | | | | | | | | | | | | | | of the movable. * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching. * i386-protos.h (ix86_split_fp_branch): Update prototype. (ix86_fp_jump_nontrivial_p): New. * i386.md (fp_jcc_?): Update call of split_fp_branch; use ix86_fp_jump_nontrivial_p. * i386.c (ix86_fp_jump_nontrivial_p): New. (ix86_split_fp_branch): Accept code instead of rtx. (ix86_expand_compare): Expand comparison early in case doing so is resonably cheap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44019 138bc75d-0d04-0410-961f-82ee72b054a4
* * unroll.c: Include predict.h.hubicka2001-06-181-1/+1
| | | | | | | | | | | | | | | | | | (unroll_loop): Drop prediction notes on preconditioning. * predict.def (PRED_LOOP_PRECONDITIONG, PRED_LOOP_CONDITION): New; add comments on the others. * Makefile.in: (unroll.o): Add dependancy on predict.h. * loop.c (strength_reduce): Fix branch prediction. * stmt.c (emit_case_nodes): Optimize test whether index is in given interval. * predict.c (estimate_probability): Do not bail out early when note is present. (combine_predictions_for_insn): Fix note removal code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43441 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix for PR 3128, IA-64 linux kernel miscompilewilson2001-06-131-5/+6
| | | | | | | | | * loop.c (strength_reduce): Move bl->all_reduced set before check_ext_dependant_givs call. (check_ext_dependant_givs): Clear bl->all_reduced when ignoring givs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43298 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c: Include predict.hhubicka2001-06-121-0/+13
| | | | | | | | | | (strength_reduce): Drop branch prediction note in case number of iterations is known. * predict.def (PRED_LOOP_ITERATIONS): new. * Makefile.in (loop.o): Add dependancy on predict.h git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43251 138bc75d-0d04-0410-961f-82ee72b054a4
* do not combine asm stmts in scan_loopaldyh2001-06-111-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43178 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (struct movables): Remove `num'.mmitchel2001-05-111-30/+52
| | | | | | | | | | | | | | | | * loop.c (scan_loop): Don't set it. Use count_insns_in_loop. Adjust call to strength_reduce. (num_unmoved_movables): New function. (move_movables): Don't set movables->num. (strength_reduce): Compute the number of instructions in the loop here, rather than in the caller. (check_dbra_loop): Always clear reversible_mem_store if there are any memory sets. (loop_regs_scan): Don't count instructions here. (count_insn_in_loop): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41966 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".ghazi2001-05-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Likewise. * c-decl.c: Likewise. * combine.c: Likewise. * rs6000.c: Likewise. * except.c: Likewise. * explow.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * integrate.c: Likewise. * loop.c: Likewise. * objc/objc-act.c: Likewise. * recog.c: Likewise. * reg-stack.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * simplify-rtx.c: Likewise. * stmt.c: Likewise. * varasm.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41722 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (try_swap_copy_prop): Go back to checking insn.jason2001-04-251-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41540 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_delete_insns): Add prototype.mmitchel2001-04-231-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41499 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (proagate_one_insn): Remove useless assignment.mmitchel2001-04-211-5/+40
| | | | | | | | | | | | * jump.c (delete_insn): Tidy. * loop.c (try_copy_prop): When deleting an instruction with a REG_RETVAL note, delete the entire libcall sequence. (loop_delete_insns): New function. * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if we're not substituting into them yet. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41486 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.mmitchel2001-04-191-4/+7
| | | | | | | * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41424 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (load_mems): Examine all the instructions in the loopmmitchel2001-04-191-1/+1
| | | | | | | | before concluding that all jumps branch to the first instruction after the loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41417 138bc75d-0d04-0410-961f-82ee72b054a4
* Prevent hoisting code from generating uninitialized accesses.bernds2001-03-301-3/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40971 138bc75d-0d04-0410-961f-82ee72b054a4
* * mkconfig.sh: Include insn-flags.h.rth2001-03-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (CONFIG_H): Include insn-flags.h. (lots of objects): Remove insn-codes.h and insn-flags.h. * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c: Don't include insn-flags.h. * diagnostic.c, expr.h, reload.c, toplev.c: Don't include insn-codes.h. * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, c4x/c4x.c, i960/i960.c, mips/mips.c: Don't include insn-codes.h or insn-flags.h. * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h or insn-flags.h in the generated code. * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". (main): Forward declare struct rtx_def. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40754 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-02-24 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2001-02-251-0/+9
| | | | | | | | * loop.c (check_dbra_loop): A biv has uses besides counting if it is used to set another biv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40042 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (canonicalize_condition): Move to reversed_comparison_code.hubicka2001-02-241-23/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40019 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_giv_reduce_benefit): Copy mode size intom.hayes2001-01-261-10/+13
| | | | | | | | | | | int variable. (check_ext_dependant_givs): Initialise u_start_val and u_end_val. (load_mems): Make last_max_reg unsigned. (try_swap_copy_prop): Use INSN_P and initialise set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39284 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New.m.hayes2001-01-251-14/+41
| | | | | | | | | | | | | | | | (loop_insn_emit_before): No longer static. (move_movables): Replace emit_insn_after with loop_insn_emit_after. (loop_givs_rescan, load_mems): Likewise. (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before. (maybe_eliminate_biv_1): (move_movables): Replace emit_call_insn_before with loop_call_insn_hoist. * loop.h (loop_insn_emit_before): Add. * unroll.c (copy_loop_body): Replace emit_insn_before with loop_insn_emit_before. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39260 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (total_biv_increment): Constify iv_class pointer.m.hayes2001-01-121-6/+116
| | | | | | | | | | | (struct induction): Replace `mem_mode' with `mem' rtx. * unroll.c (total_biv_increment): Constify iv_class pointer. * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx. (find_mem_givs, combine_givs_p): Likewise. (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38933 138bc75d-0d04-0410-961f-82ee72b054a4
* * hard-reg-set.h: Add multiple include guard.m.hayes2001-01-071-102/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (struct loop): Add `sink' field. * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h. (emit_iv_add_mult): Delete. (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define. (loop_iv_add_mult_emit_before, loop_insn_sink): Define. (unroll_loop): Remove end_insert_before argument. * loop.c (loop_givs_rescan): Remove end_insert_before argument. (maybe_eliminate_biv_1): Likewise. (emit_iv_add_mult): Delete. (gen_add_mult, loop_regs_update): New. (loop_insn_emit_after, loop_insn_emit_before): New. (loop_insn_sink, loop_insn_sink_or_swim): New. (emit_iv_add_mult): Delete. (scan_loop): Set loop->sink. (loop_givs_reduce): Use loop_insn_sink and its ilk. (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise. (maybe_eliminate_biv_1): Likewise. (maybe_eliminate_biv_1): Add basic block argument. * unroll.c (unroll_loop): Remove end_insert_before argument. (find_splittable_regs): Likewise. (find_splittable_regs): Use loop_insn_sink and its ilk. (find_splittable_givs, final_biv_value, final_giv_value): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38766 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (loop_insn_hoist): New prototype.m.hayes2001-01-071-22/+51
| | | | | | | | | | | * loop.c (loop_insn_hoist, loop_insn_emit_before): New. (move_movables, loop_givs_rescan): Use loop_insn_hoist. (check_dbra_loop, load_mems): Likewise. * unroll.c (unroll_loop, find_splittable_regs): Likewise. (find_splittable_givs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38765 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (emit_iv_add_mult): Use single_set to examine new insn.m.hayes2001-01-071-3/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38764 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (count_loop_regs_set): Delete.m.hayes2001-01-071-140/+101
| | | | | | | | | | | (load_mems_and_recount_loop_regs_set): Delete. (loop_regs_scan): Merge common code from count_loop_regs_set, scan_loop, and load_mems_and_recount_loop_regs_set. (scan_loop): Call load_mems directly and loop_regs_scan again if new registers created. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38758 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (scan_loop): Use xcalloc for the regs array.rth2001-01-061-9/+5
| | | | | | | | (load_mems_and_recount_loop_regs_set): Zero the new memory received from xrealloc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38752 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (debug_biv, debug_giv): New.m.hayes2001-01-061-95/+118
| | | | | | | | | | | | (loop_biv_dump): Break out from ... (record_biv): ... here. (loop_giv_dump): Break out from ... (record_giv): ... here. (loop_bivs_check): Use print_simple_rtl. * unroll.c (loop_iterations): Use print_simple_rtl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38744 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (struct loop_reg): New.m.hayes2001-01-051-169/+147
| | | | | | | | | | | | | | | (struct loop_regs): Change to use array of `struct loop_reg'. * loop.c: Replace assortment of varrays with single regs array. (count_one_set): Delete may_not_move array argument and use regs array instead. All caller's changed. (count_loop_regs_set): Delete may_not_move and single_usage arguments and use regs array instead. All caller's changed. (find_single_use_in_loop): Replace usage array argument with pointer to regs structure. All caller's changed. (loop_optimize): Delete `moved_once' array. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38700 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (prescan_loop): Set loop_info->has_nonconst_call.m.hayes2001-01-051-4/+8
| | | | | | | | | Use it instead of loop_info->has_call for scanning loop mems. (check_dbra_loop): Replace loop_info->has_call test with loop_info->has_nonconst_call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38699 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (add_label_notes): Increment the label usage count whenlaw2001-01-021-3/+8
| | | | | | | | a note is added to an insn which refers to a CODE_LABEL. * gcse.c (add_label_notes): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38603 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (scan_loop): Use xmalloc to allocate movables.law2001-01-011-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38598 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.m.hayes2001-01-011-3/+3
| | | | | | | | | | (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise. (record_initial): Likewise. * unroll.c (copy_loop_body, loop_iterations): Likewise. (remap_split_bivs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38584 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_ivs_free): New function.m.hayes2001-01-011-26/+38
| | | | | | | (strength_reduce): Break out from... git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38583 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (struct iv): New.m.hayes2001-01-011-35/+24
| | | | | | | | | | | | (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'. (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info', 'reg_biv_class' fields with 'regs' and 'n_regs'. (struct ivs): Rename 'loop_iv_list' field to 'list'. * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array. * unroll.c (loop_iterations): Check array bounds with ivs->n_regs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38582 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (REG_IV_CLASS): New accessor macro.m.hayes2001-01-011-7/+8
| | | | | | | | * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array. * unroll.c (REG_IV_CLASS): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38580 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_giv_reduce_benefit): Break out from strength_reduce.m.hayes2001-01-011-423/+448
| | | | | | | | | | (loop_givs_dead_check, loop_givs_reduce, loop_givs_rescan): Likewise. (prescan_loop): Set pre_header_has_call in loop_info. * loop.h (struct_iv_class): Add `final_value' and `all_reduced'. (struct loop_info): Add `pre_header_has_call'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38578 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_bivs_find): Break out from strength_reduce.m.hayes2001-01-011-102/+202
| | | | | | | | (loop_bivs_init_find, loop_bivs_check, loop_givs_find): Likewise. (loop_givs_check, loop_biv_eliminable_p): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38577 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Define.m.hayes2001-01-011-13/+12
| | | | | | | (scan_loop, record_giv): Use LOOP_REG_LIFETIME and LOOP_REG_GLOBAL_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38576 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Define.m.hayes2001-01-011-25/+26
| | | | | | | | | * loop.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Use in place of direct access to uid_luid array. * unroll.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38575 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud