| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
jump_label.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44841 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
jump_label.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44517 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44370 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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_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
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43178 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41540 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41499 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40971 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40019 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
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_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
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38764 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
| |
(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_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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38598 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
| |
(strength_reduce): Break out from...
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38583 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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.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_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_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
|
|
|
|
|
|
|
| |
(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.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
|