Age | Commit message (Collapse) | Author | Files | Lines |
|
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* function.h: Flatten file. Remove includes, adjust prototypes to
reflect only what is in function.h.
(enum direction, struct args_size, struct locate_and_pad_arg_data,
ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
from expr.h.
(ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
(optimize_function_for_size_p, optimize_function_for_speed_p): Move
prototypes to predict.h.
(init_varasm_status): Move prototype to varasm.h.
* expr.h: Adjust include files.
(enum direction, struct args_size, struct locate_and_pad_arg_data,
ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
to function.h.
(locate_and_pad_parm): Move prototype to function.h.
* rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
assign_temp, reposition_prologue_and_epilogue_notes,
prologue_epilogue_contains, sibcall_epilogue_contains,
update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
set_return_jump_label): Move prototypes to function.h.
* predict.h (optimize_function_for_size_p,
optimize_function_for_speed_p): Relocate prototypes from function.h.
* shrink-wrap.h (emit_return_into_block, active_insn_between,
convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
function.h.
* varasm.h (init_varasm_status): Relocate prototype from function.h.
* genattrtab.c (write_header): Add predict.h to include list.
* genconditions.c (write_header): Add predict.h to include list.
* genemit.c (main): Adjust header file includes.
* gengtype.c (ifiles): Add flattened function.h header files.
* genoutput.c (output_prologue): Add predict.h to include list.
* genpreds.c (write_insn_preds_c): Adjust header file includes.
* genrecog.c (write_header): Add flattened function.h header files.
* alias.c: Adjust include files.
* auto-inc-dec.c: Likewise.
* basic-block.h: Likewise.
* bb-reorder.c: Likewise.
* bt-load.c: Likewise.
* builtins.c: Likewise.
* caller-save.c: Likewise.
* calls.c: Likewise.
* cfgbuild.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfgloop.c: Likewise.
* cfgloop.h: Likewise.
* cfgrtl.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine-stack-adj.c: Likewise.
* combine.c: Likewise.
* coverage.c: Likewise.
* cprop.c: Likewise.
* cse.c: Likewise.
* cselib.c: Likewise.
* dbxout.c: Likewise.
* ddg.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dojump.c: Likewise.
* dwarf2cfi.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* explow.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* function.c: Likewise.
* gcse.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-low.c: Likewise.
* gimple-streamer.h: Likewise.
* haifa-sched.c: Likewise.
* ifcvt.c: Likewise.
* ira.c: Likewise.
* jump.c: Likewise.
* lcm.c: Likewise.
* loop-invariant.c: Likewise.
* lra-assigns.c: Likewise.
* lra-coalesce.c: Likewise.
* lra-constraints.c: Likewise.
* lra-eliminations.c: Likewise.
* lra-lives.c: Likewise.
* lra-spills.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-in.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* mode-switching.c: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* optabs.c: Likewise.
* passes.c: Likewise.
* postreload-gcse.c: Likewise.
* postreload.c: Likewise.
* predict.c: Likewise.
* profile.c: Likewise.
* recog.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regcprop.c: Likewise.
* reginfo.c: Likewise.
* regrename.c: Likewise.
* reload.c: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* rtlanal.c: Likewise.
* sched-deps.c: Likewise.
* sched-ebb.c: Likewise.
* sched-rgn.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched.c: Likewise.
* shrink-wrap.c: Likewise.
* simplify-rtx.c: Likewise.
* statistics.c: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* symtab.c: Likewise.
* targhooks.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-nested.c: Likewise.
* tree-nrv.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-tailcall.c: Likewise.
* tree.c: Likewise.
* tsan.c: Likewise.
* valtrack.c: Likewise.
* varasm.c: Likewise.
* vmsdbgout.c: Likewise.
* web.c: Likewise.
* testsuite/g++.dg/plugin/pragma_plugin.c: Adjust include files.
* config/aarch64/aarch64.c: Add flattened includes from function.h.
* config/alpha/alpha.c: Likewise.
* config/arc/arc.c: Likewise.
* config/arm/arm.c: Likewise.
* config/avr/avr-log.c: Likewise.
* config/avr/avr.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/cr16/cr16.c: Likewise.
* config/cris/cris.c: Likewise.
* config/darwin.c: Likewise.
* config/epiphany/epiphany.c: Likewise.
* config/epiphany/mode-switch-use.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.
* config/fr30/fr30.c: Likewise.
* config/frv/frv.c: Likewise.
* config/h8300/h8300.c: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/lm32/lm32.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/m32r/m32r.c: Likewise.
* config/m68k/m68k.c: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mep/mep-pragma.c: Likewise.
* config/mep/mep.c: Likewise.
* config/microblaze/microblaze.c: Likewise.
* config/mips/mips.c: Likewise.
* config/mmix/mmix.c: Likewise.
* config/mn10300/mn10300.c: Likewise.
* config/moxie/moxie.c: Likewise.
* config/msp430/msp430.c: Likewise.
* config/nds32/nds32-cost.c: Likewise.
* config/nds32/nds32-fp-as-gp.c: Likewise.
* config/nds32/nds32-intrinsic.c: Likewise.
* config/nds32/nds32-isr.c: Likewise.
* config/nds32/nds32-md-auxiliary.c: Likewise.
* config/nds32/nds32-memory-manipulation.c: Likewise.
* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
* config/nds32/nds32-predicates.c: Likewise.
* config/nds32/nds32.c: Likewise.
* config/nios2/nios2.c: Likewise.
* config/pa/pa.c: Likewise.
* config/pdp11/pdp11.c: Likewise.
* config/rl78/rl78.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/s390/s390.c: Likewise.
* config/score/score.c: Likewise.
* config/sh/sh.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/spu/spu.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/tilegx/tilegx.c: Likewise.
* config/tilepro/tilepro.c: Likewise.
* config/v850/v850.c: Likewise.
* config/vax/vax.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* ada/gcc-interface/misc.c: Adjust include files.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* c/c-decl.c: Adjust include files.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* c-family/c-pragma.c: Adjust include files.
* c-family/c-semantics.c: Likewise.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* cp/cp-tree.h: Adjust include files.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* fortran/f95-lang.c: Adjust include files.
* fortran/trans-decl.c: Likewise.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* java/class.c: Adjust include files.
* java/resource.c: Likewise.
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* objc/objc-act.c: Adjust include files.
From-SVN: r216337
|
|
2014-10-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/63380
* tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
may trap.
* gcc.dg/torture/pr63380-1.c: New testcase.
* gcc.dg/torture/pr63380-2.c: Likewise.
From-SVN: r216038
|
|
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
From-SVN: r213400
|
|
loop; reduced test case)
2014-07-31 Richard Biener <rguenther@suse.de>
PR tree-optimization/61964
* tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
by structural equality.
* gcc.dg/torture/pr61964.c: New testcase.
From-SVN: r213375
|
|
Some files in gcc, like lto or tree, do large scale incremential hashing.
The current jhash implementation of this could be likely improved
by using an incremential hash that does not do a full rehashing
for every new value added.
This patch adds a new "inchash" class that abstracts the internal
state of the hash. This makes it easier to plug in new hashes
and also cleans up the code a bit.
Right now it is just implemented in the same way as the old
iterative hash in tree.c. The previous iterative hash code
from tree.c moved into a new separate file. Also I fixed up all
users to include the new header.
It should not really significantly change any hashing by itself,
it's mostly a cleanup at this point.
v2: Remove begin. Add commutative interface.
Add merge hash interface. Add add_flag.
gcc/:
2014-07-25 Andi Kleen <ak@linux.intel.com>
* Makefile.in (OBJS): Add inchash.o.
(PLUGIN_HEADERS): Add inchash.h.
* ipa-devirt.c: Include inchash.h.
* lto-streamer-out.c: Dito.
* tree-ssa-dom.c: Dito.
* tree-ssa-pre.c: Dito.
* tree-ssa-sccvn.c: Dito.
* tree-ssa-tail-merge.c: Dito.
* asan.c: Dito.
* tree.c (iterative_hash_hashval_t): Move to ...
(iterative_hash_host_wide_int): Move to ...
* inchash.c: Here. New file.
* tree.h (iterative_hash_hashval_t): Move to ...
(iterative_hash_host_wide_int): Move to ...
* inchash.h: Here. New file.
gcc/lto/:
2014-07-25 Andi Kleen <ak@linux.intel.com>
* lto.c: Include inchash.h
From-SVN: r213054
|
|
gcc/
* hash-table.h: Remove a layer of indirection from hash_table so that
it contains the hash table's data instead of a pointer to the data.
* alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
fold-const.c, gcse.c, ggc-common.c,
gimple-ssa-strength-reduction.c, gimplify.c,
graphite-clast-to-gimple.c, graphite-dependences.c,
graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
postreload-gcse.c, sese.c, statistics.c, store-motion.c,
trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
tree-ssa-live.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-tail-merge.c,
tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
vtable-verify.c, vtable-verify.h: Adjust.
gcc/c/
* c-decl.c: Adjust.
gcc/cp/
* class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
Adjust.
gcc/java/
* jcf-io.c: Adjust.
gcc/lto/
* lto.c: Adjust.
gcc/objc/
* objc-act.c: Adjust.
From-SVN: r211936
|
|
statement, if any.
* tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
call statement, if any.
(gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
statements, if any. Tidy up.
From-SVN: r211342
|
|
2014-06-06 Richard Biener <rguenther@suse.de>
* cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
(construct_init_block): Likewise.
(construct_exit_block): Likewise.
(pass_expand::execute): Likewise.
* graphite.c (graphite_transforms): Replace check for current_loops
with a check for > 1 loops.
(pass_graphite_transforms::execute): Adjust.
* ipa-split.c (split_function): Remove check for current_loops.
* omp-low.c (expand_parallel_call): Likewise.
(expand_omp_for_init_counts): Likewise.
(extract_omp_for_update_vars): Likewise.
(expand_omp_for_generic): Likewise.
(expand_omp_sections): Likewise.
(expand_omp_target): Likewise.
* tracer.c (tail_duplicate): Likewise.
(pass_tracer::execute): Likewise.
* trans-mem.c (expand_transaction): Likewise.
* tree-complex.c (expand_complex_div_wide): Likewise.
* tree-eh.c (lower_resx): Likewise.
(cleanup_empty_eh_merge_phis): Likewise.
* tree-predcom.c (run_tree_predictive_commoning): Replace check for
current_loops with a check for > 1 loops.
(pass_predcom::execute): Adjust.
* tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
* tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
* tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
* tree-switch-conversion.c (process_switch): Likewise.
* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
* tree-vrp.c (vrp_visit_phi_node): Likewise.
(execute_vrp): Likewise.
* ubsan.c (ubsan_expand_null_ifn): Likewise.
From-SVN: r211306
|
|
2014-05-06 Richard Biener <rguenther@suse.de>
* tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
(TODO_verify_all): Adjust.
* asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
TODO_verify_stmts and TODO_verify_rtl_sharing.
* bb-reorder.c: Likewise.
* cfgexpand.c: Likewise.
* cprop.c: Likewise.
* cse.c: Likewise.
* function.c: Likewise.
* fwprop.c: Likewise.
* gcse.c: Likewise.
* gimple-ssa-isolate-paths.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* ipa-split.c: Likewise.
* loop-init.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* modulo-sched.c: Likewise.
* postreload-gcse.c: Likewise.
* predict.c: Likewise.
* recog.c: Likewise.
* sched-rgn.c: Likewise.
* store-motion.c: Likewise.
* tracer.c: Likewise.
* trans-mem.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-complex.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-object-size.c: Likewise.
* tree-parloops.c: Likewise.
* tree-pass.h: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sink.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tsan.c: Likewise.
* var-tracking.c: Likewise.
* bt-load.c: Likewise.
* cfgcleanup.c: Likewise.
* combine-stack-adj.c: Likewise.
* combine.c: Likewise.
* compare-elim.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.
* config/i386/i386.c: Likewise.
* config/mips/mips.c: Likewise.
* config/s390/s390.c: Likewise.
* config/sh/sh_treg_combine.cc: Likewise.
* config/sparc/sparc.c: Likewise.
* dce.c: Likewise.
* dse.c: Likewise.
* final.c: Likewise.
* ifcvt.c: Likewise.
* mode-switching.c: Likewise.
* passes.c: Likewise.
* postreload.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regcprop.c: Likewise.
* regrename.c: Likewise.
* web.c: Likewise.
From-SVN: r210106
|
|
From-SVN: r206289
|
|
gcc/
* basic-block.h (FOR_EACH_BB): Eliminate macro.
* asan.c (transform_statements, execute_sanopt): Eliminate
use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
explicit.
* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
insert_section_boundary_note, rest_of_handle_reorder_blocks,
duplicate_computed_gotos): Likewise.
* cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
* cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
* cfgbuild.c (find_many_sub_basic_blocks): Likewise.
* cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
* cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
Likewise.
* cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
verify_loop_structure): Likewise.
* cfgloopanal.c (mark_loop_exit_edges): Likewise.
* cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
verify_hot_cold_block_grouping, purge_all_dead_edges,
fixup_abnormal_edges, record_effective_endpoints,
outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
break_superblocks): Likewise.
* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
cgraph_rebuild_references): Likewise.
* combine-stack-adj.c (combine_stack_adjustments): Likewise.
* combine.c (delete_noop_moves, create_log_links,
combine_instructions): Likewise.
* config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
* config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
Likewise.
* config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
c6x_reorg): Likewise.
* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
* config/frv/frv.c (frv_optimize_membar): Likewise.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
* config/ia64/ia64.c (ia64_reorg): Likewise.
* config/mips/mips.c (mips_annotate_pic_calls): Likewise.
* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
* config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
* config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
* config/tilegx/tilegx.c (tilegx_gen_bundles,
reorder_var_tracking_notes): Likewise.
* config/tilepro/tilepro.c (tilepro_gen_bundles,
reorder_var_tracking_notes): Likewise.
* coverage.c (coverage_compute_cfg_checksum): Likewise.
* cprop.c (compute_hash_table_work, compute_cprop_data,
local_cprop_pass, find_implicit_sets): Likewise.
* cse.c (cse_condition_code_reg): Likewise.
* dce.c (prescan_insns_for_dce): Likewise.
* df-core.c (df_compact_blocks): Likewise.
* df-problems.c (df_word_lr_alloc): Likewise.
* df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
df_update_entry_exit_and_calls): Likewise.
* dominance.c (calculate_dominance_info, verify_dominators,
debug_dominance_info): Likewise.
* dse.c (dse_step5_nospill): Likewise.
* except.c (finish_eh_generation): Likewise.
* final.c (compute_alignments): Likewise.
* function.c (thread_prologue_and_epilogue_insns,
rest_of_match_asm_constraints): Likewise.
* gcse.c (compute_hash_table_work, prune_expressions,
compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
find_explicit_erroneous_behaviour): Likewise.
* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
* haifa-sched.c (haifa_sched_init): Likewise.
* hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
Likewise.
* ifcvt.c (if_convert): Likewise.
* init-regs.c (initialize_uninitialized_regs): Likewise.
* ipa-prop.c (ipcp_transform_function): Likewise.
* ipa-pure-const.c (analyze_function): Likewise.
* ipa-split.c (find_split_points, execute_split_functions): Likewise.
* ira-build.c (form_loop_tree): Likewise.
* ira-costs.c (find_costs_and_classes): Likewise.
* ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
* ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
mark_elimination, update_equiv_regs, find_moveable_pseudos,
split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
* jump.c (mark_all_labels): Likewise.
* lcm.c (compute_laterin, compute_insert_delete, compute_available,
compute_nearerout, compute_rev_insert_delete): Likewise.
* loop-init.c (fix_loop_structure): Likewise.
* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
* lower-subreg.c (decompose_multiword_subregs,
decompose_multiword_subregs): Likewise.
* lra-assigns.c (assign_by_spills): Likewise.
* lra-coalesce.c (lra_coalesce): Likewise.
* lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
Likewise.
* lra-eliminations.c (lra_init_elimination): Likewise.
* lra-spills.c (assign_spill_hard_regs, spill_pseudos,
lra_final_code_change): Likewise.
* lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
update_inc_notes): Likewise.
* mcf.c (adjust_cfg_counts): Likewise.
* mode-switching.c (optimize_mode_switching): Likewise.
* modulo-sched.c (rest_of_handle_sms): Likewise.
* omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
expand_omp_target): Likewise.
* postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
* postreload.c (reload_cse_regs_1): Likewise.
* predict.c (strip_predict_hints, tree_bb_level_predictions,
tree_estimate_probability, expensive_function_p,
estimate_bb_frequencies, compute_function_frequency): Likewise.
* profile.c (is_inconsistent, compute_branch_probabilities,
branch_prob): Likewise.
* ree.c (find_removable_extensions): Likewise.
* reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
* regcprop.c (copyprop_hardreg_forward): Likewise.
* reginfo.c (init_subregs_of_mode): Likewise.
* regrename.c (regrename_analyze): Likewise.
* regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
Likewise.
* reload1.c (has_nonexceptional_receiver, reload,
calculate_elim_costs_all_insns): Likewise.
* resource.c (init_resource_info, free_resource_info): Likewise.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (is_cfg_nonregular, find_single_block_region,
haifa_find_rgns, sched_rgn_local_init): Likewise.
* sel-sched-dump.c (sel_dump_cfg_2): Likewise.
* sel-sched-ir.c (init_lv_sets, free_lv_sets,
make_regions_from_the_rest): Likewise.
* sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
* stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
* store-motion.c (compute_store_table, build_store_vectors,
one_store_motion_pass): Likewise.
* tracer.c (tail_duplicate): Likewise.
* trans-mem.c (compute_transaction_bits): Likewise.
* tree-call-cdce.c (tree_call_cdce): Likewise.
* tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
fold_cond_expr_cond, make_edges, assign_discriminators,
make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
dump_cfg_stats, gimple_verify_flow_info, print_loop,
execute_fixup_cfg): Likewise.
* tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
* tree-complex.c (init_dont_simulate_again, tree_lower_complex):
Likewise.
* tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
* tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
mark_reachable_handlers): Likewise.
* tree-emutls.c (lower_emutls_function_body): Likewise.
* tree-if-conv.c (main_tree_if_conversion): Likewise.
* tree-inline.c (optimize_inline_calls): Likewise.
* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
* tree-object-size.c (compute_object_sizes): Likewise.
* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
insert_backedge_copies, tree_profiling): Likewise.
* tree-scalar-evolution.c (scev_const_prop): Likewise.
* tree-sra.c (scan_function, sra_modify_function_body,
propagate_dereference_distances, ipa_sra_modify_function_body,
convert_callers): Likewise.
* tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
create_outofssa_var_map, coalesce_partitions): Likewise.
* tree-ssa-copy.c (init_copy_prop): Likewise.
* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
* tree-ssa-dce.c (find_obviously_necessary_stmts,
eliminate_unnecessary_stmts): Likewise.
* tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
Likewise.
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
* tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
new_tree_live_info, calculate_live_on_exit, dump_live_info,
analyze_memory_references, fill_always_executed_in,
tree_ssa_lim_finalize): Likewise.
* tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
* tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
Likewise.
* tree-ssa-ter.c (find_replaceable_exprs): Likewise.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges,
tree_ssa_uncprop): Likewise.
* tree-ssa-uninit.c (warn_uninitialized_vars,
execute_late_warn_uninitialized): Likewise.
* tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
* tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
Likewise.
* tree-switch-conversion.c (do_switchconv): Likewise.
* tree-vect-generic.c (expand_vector_operations): Likewise.
* tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
execute_vect_slp): Likewise.
* tree-vrp.c (check_all_array_refs, remove_range_assertions,
vrp_initialize, identify_jump_threads, instrument_memory_accesses):
Likewise.
* ubsan.c (ubsan_pass): Likewise.
* value-prof.c (verify_histograms, gimple_value_profile_transformations,
gimple_find_values_to_profile): Likewise.
* var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
vt_initialize, delete_debug_insns, vt_finalize): Likewise.
gcc/testsuite/
* g++.dg/plugin/selfassign.c (execute_warn_self_assign): Eliminate
use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
explicit.
* gcc.dg/plugin/selfassign.c (execute_warn_self_assign): Likewise.
From-SVN: r205828
|
|
* basic-block.h (last_basic_block): Eliminate macro.
* asan.c (transform_statements): Eliminate use of last_basic_block
in favor of last_basic_block_for_fn, in order to make use of cfun
explicit.
* bb-reorder.c (copy_bb, reorder_basic_blocks): Likewise.
* bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out,
link_btr_uses, build_btr_def_use_webs, migrate_btr_defs): Likewise.
* cfg.c (compact_blocks): Likewise.
* cfganal.c (mark_dfs_back_edges,
control_dependences::control_dependences, post_order_compute,
pre_and_rev_post_order_compute_fn, dfs_enumerate_from, compute_idf,
single_pred_before_succ_order): Likewise.
* cfgbuild.c (make_edges): Likewise.
* cfgexpand.c (add_scope_conflicts, gimple_expand_cfg): Likewise.
* cfghooks.c (verify_flow_info): Likewise.
* cfgloop.c (verify_loop_structure): Likewise.
* cfgloopanal.c (just_once_each_iteration_p,
mark_irreducible_loops): Likewise.
* cfgloopmanip.c (fix_bb_placements, remove_path,
update_dominators_in_loop): Likewise.
* cfgrtl.c (create_basic_block_structure, rtl_create_basic_block,
break_superblocks, rtl_flow_call_edges_add): Likewise.
* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
* config/frv/frv.c (frv_optimize_membar): Likewise.
* config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
* cprop.c (compute_local_properties, find_implicit_sets,
bypass_conditional_jumps, one_cprop_pass): Likewise.
* cse.c (cse_main): Likewise.
* df-core.c (rest_of_handle_df_initialize, df_worklist_dataflow,
df_analyze, df_grow_bb_info, df_compact_blocks): Likewise.
* df-problems.c (df_lr_verify_solution_start,
df_live_verify_solution_start, df_md_local_compute): Likewise.
* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
calc_idoms): Likewise.
* domwalk.c (dom_walker::walk): Likewise.
* dse.c (dse_step0, dse_step3): Likewise.
* function.c (epilogue_done): Likewise.
* gcse.c (alloc_gcse_mem, compute_local_properties,
prune_insertions_deletions, compute_pre_data,
pre_expr_reaches_here_p, one_pre_gcse_pass,
compute_code_hoist_vbeinout, should_hoist_expr_to_dom, hoist_code,
one_code_hoisting_pass): Likewise.
* graph.c (draw_cfg_nodes_no_loops): Likewise.
* graphite-sese-to-poly.c (build_scop_bbs): Likewise.
* haifa-sched.c (unlink_bb_notes): Likewise.
* ipa-split.c (execute_split_functions): Likewise.
* ira-build.c (create_loop_tree_nodes,
remove_unnecessary_regions): Likewise.
* ira-emit.c (ira_emit): Likewise.
* ira.c (find_moveable_pseudos, ira): Likewise.
* lcm.c (compute_antinout_edge, compute_laterin,
compute_insert_delete, pre_edge_lcm, compute_available,
compute_nearerout, compute_rev_insert_delete,
pre_edge_rev_lcm): Likewise.
* loop-unroll.c (opt_info_start_duplication,
apply_opt_in_copies): Likewise.
* lower-subreg.c (decompose_multiword_subregs): Likewise.
* lra-lives.c (lra_create_live_ranges): Likewise.
* lra.c (lra): Likewise.
* mode-switching.c (optimize_mode_switching): Likewise.
* recog.c (split_all_insns): Likewise.
* regcprop.c (copyprop_hardreg_forward): Likewise.
* regrename.c (regrename_analyze): Likewise.
* reload1.c (reload): Likewise.
* resource.c (init_resource_info): Likewise.
* sched-rgn.c (haifa_find_rgns, extend_rgns, compute_trg_info,
realloc_bb_state_array, schedule_region, extend_regions): Likewise.
* sel-sched-ir.c (sel_extend_global_bb_info, extend_region_bb_info,
recompute_rev_top_order, sel_init_pipelining,
make_regions_from_the_rest): Likewise.
* store-motion.c (remove_reachable_equiv_notes,build_store_vectors)
Likewise.
* tracer.c (tail_duplicate): Likewise.
* trans-mem.c (tm_region_init, get_bb_regions_instrumented): Likewise.
* tree-cfg.c (create_bb, cleanup_dead_labels, gimple_dump_cfg,
gimple_flow_call_edges_add): Likewise.
* tree-cfgcleanup.c (split_bbs_on_noreturn_calls,
cleanup_tree_cfg_1): Likewise.
* tree-complex.c (tree_lower_complex): Likewise.
* tree-inline.c (copy_cfg_body): Likewise.
* tree-into-ssa.c (mark_phi_for_rewrite, rewrite_into_ssa,
prepare_def_site_for, update_ssa): Likewise.
* tree-ssa-dce.c (tree_dce_init, perform_tree_ssa_dce): Likewise.
* tree-ssa-dom.c (record_edge_info): Likewise.
* tree-ssa-live.c (new_tree_live_info, live_worklist): Likewise.
* tree-ssa-loop-im.c (fill_always_executed_in_1): Likewise.
* tree-ssa-loop-manip.c (copy_phi_node_args
gimple_duplicate_loop_to_header_edge): Likewise.
* tree-ssa-pre.c (compute_antic): Likewise.
* tree-ssa-propagate.c (ssa_prop_init): Likewise.
* tree-ssa-reassoc.c (init_reassoc): Likewise.
* tree-ssa-sccvn.c (init_scc_vn): Likewise.
* tree-ssa-tail-merge.c (init_worklist): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
* tree-stdarg.c (reachable_at_most_once): Likewise.
* tree-vrp.c (find_assert_locations): Likewise.
* var-tracking.c (vt_find_locations): Likewise.
From-SVN: r205826
|
|
gcc/
* basic-block.h (BASIC_BLOCK): Eliminate macro.
* alias.c (init_alias_analysis): Eliminate BASIC_BLOCK macro in
favor of uses of BASIC_BLOCK_FOR_FN, making uses of cfun explicit.
* bt-load.c (compute_defs_uses_and_gen, compute_out, link_btr_uses,
block_at_edge_of_live_range_p, migrate_btr_defs): Likewise.
* caller-save.c (insert_one_insn): Likewise.
* cfg.c (debug_bb, get_bb_original, get_bb_copy): Likewise.
* cfgexpand.c (add_scope_conflicts): Likewise.
* cfghooks.c (verify_flow_info): Likewise.
* cfgloop.c (flow_loops_find): Likewise.
* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
* config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
* config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
* cse.c (cse_main): Likewise.
* dce.c (fast_dce): Likewise.
* df-core.c (df_set_blocks, df_worklist_propagate_forward,
df_worklist_propagate_backward, df_worklist_dataflow_doublequeue,
df_bb_replace, df_dump_region): Likewise.
* df-problems.c (df_rd_bb_local_compute, df_lr_bb_local_compute,
df_live_bb_local_compute, df_chain_remove_problem)
df_chain_create_bb, df_word_lr_bb_local_compute, df_note_bb_compute,
df_md_bb_local_compute, df_md_local_compute,
df_md_transfer_function): Likewise.
* df-scan.c (df_scan_blocks, df_reorganize_refs_by_reg_by_insn,
df_reorganize_refs_by_insn, df_bb_refs_collect,
df_record_entry_block_defs, df_update_entry_block_defs,
df_record_exit_block_uses): Likewise.
* dominance.c (nearest_common_dominator_for_set): Likewise.
* gcse.c (hoist_code): Likewise.
* graph.c (draw_cfg_nodes_no_loops): Likewise.
* ipa-inline-analysis.c (param_change_prob,
estimate_function_body_sizes): Likewise.
* ipa-split.c (dominated_by_forbidden): Likewise.
* loop-unroll.c (apply_opt_in_copies): Likewise.
* lower-subreg.c (decompose_multiword_subregs): Likewise.
* lra-lives.c (lra_create_live_ranges): Likewise.
* predict.c (propagate_freq): Likewise.
* regrename.c (regrename_analyze): Likewise.
* regstat.c (regstat_bb_compute_ri,
regstat_bb_compute_calls_crossed): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* sched-ebb.c (ebb_fix_recovery_cfg): Likewise.
* sched-int.h (EBB_FIRST_BB, EBB_LAST_BB): Likewise.
* sched-rgn.c (debug_region, dump_region_dot, too_large,
haifa_find_rgns, extend_rgns, compute_dom_prob_ps, update_live,
propagate_deps, sched_is_disabled_for_current_region_p): Likewise.
* sched-vis.c (debug_bb_n_slim): Likewise.
* sel-sched-ir.c (sel_finish_global_and_expr, verify_backedges,
purge_empty_blocks, sel_remove_loop_preheader): Likewise.
* sel-sched.c (remove_insns_that_need_bookkeeping)
(current_region_empty_p, sel_region_init,
simplify_changed_insns): Likewise.
* trans-mem.c (execute_tm_mark, execute_tm_edges,
tm_memopt_compute_antic, ipa_tm_scan_irr_function): Likewise.
* tree-cfg.c (make_edges, end_recording_case_labels,
label_to_block_fn, gimple_debug_bb, gimple_flow_call_edges_add,
remove_edge_and_dominated_blocks, remove_edge_and_dominated_blocks,
gimple_purge_all_dead_eh_edges,
gimple_purge_all_dead_abnormal_call_edges): Likewise.
* tree-cfgcleanup.c (fixup_noreturn_call,
split_bbs_on_noreturn_calls, cleanup_tree_cfg_1): Likewise.
* tree-inline.c (copy_cfg_body, fold_marked_statements): Likewise.
* tree-into-ssa.c (set_livein_block, prune_unused_phi_nodes,
insert_phi_nodes_for, insert_updated_phi_nodes_for): Likewise.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
* tree-ssa-live.c (live_worklist): Likewise.
* tree-ssa-loop-manip.c (compute_live_loop_exits,
add_exit_phis_var, find_uses_to_rename, copy_phi_node_args): Likewise.
* tree-ssa-pre.c (compute_antic): Likewise.
* tree-ssa-reassoc.c (update_range_test, optimize_range_tests): Likewise.
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
* tree-ssa-tail-merge.c (same_succ_hash, same_succ_def::equal,
same_succ_flush_bbs, update_worklist, set_cluster,
same_phi_alternatives, find_clusters_1, apply_clusters,
update_debug_stmts): Likewise.
* tree-ssa-threadupdate.c (mark_threaded_blocks,
thread_through_all_blocks): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
* tree-vrp.c (find_assert_locations): Likewise.
From-SVN: r205822
|
|
* gimple.h: Remove all includes.
(recalculate_side_effects): Move prototype to gimplify.h.
* Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
* gengtype.c (open_base_files): Add gimple.h include list.
* gimplify.h (recalculate_side_effects): Relocate prototype here.
* gimple.c: Adjust include list.
(recalculate_side_effects): Move to gimplify.c.
* gimplify.c: Adjust include list.
(recalculate_side_effects): Relocate from gimple.c.
* alias.c: Add required include files removed from gimple.h.
* asan.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfgexpand.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraph.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* cilk-common.c: Likewise.
* data-streamer.c: Likewise.
* data-streamer-in.c: Likewise.
* data-streamer-out.c: Likewise.
* dse.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gimple-builder.c: Likewise.
* gimple-expr.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-iterator.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-ssa-isolate-paths.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimple-walk.c: Likewise.
* gimplify-me.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* internal-fn.c: Likewise.
* ipa.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* langhooks.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-compress.c: Likewise.
* lto-opts.c: Likewise.
* lto-section-in.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* omp-low.c: Likewise.
* opts-global.c: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* profile.c: Likewise.
* sese.c: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* symtab.c: Likewise.
* targhooks.c: Likewise.
* toplev.c: Likewise.
* tracer.c: Likewise.
* trans-mem.c: Likewise.
* tree-affine.c: Likewise.
* tree.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nested.c: Likewise.
* tree-nrv.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-loop-unswitch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sink.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vrp.c: Likewise.
* tsan.c: Likewise.
* ubsan.c: Likewise.
* value-prof.c: Likewise.
* varpool.c: Likewise.
* var-tracking.c: Likewise.
* vtable-verify.c: Likewise.
* ada/gcc-interface/trans.c: Add required include files from gimple.h.
* c/c-typeck.c: Add required include files from gimple.h.
* c-family/c-common.c: Add required include files from gimple.h.
* c-family/c-gimplify.c: Likewise
* c-family/cilk.c: Likewise
* cp/class.c: Add required include files from gimple.h.
* cp/cp-gimplify.c: Likewise
* cp/decl2.c: Likewise
* cp/init.c: Likewise
* cp/optimize.c: Likewise
* cp/pt.c: Likewise
* cp/semantics.c: Likewise
* cp/tree.c: Likewise
* cp/typeck.c: Likewise
* cp/vtable-class-hierarchy.c: Likewise
* fortran/trans.c: Add required include files from gimple.h.
* fortran/trans-expr.c: Likewise
* fortran/trans-openmp.c: Likewise
* go/gofrontend/expressions.cc: Add required include files from
gimple.h.
* go/gofrontend/gogo-tree.cc: Likewise
* go/gofrontend/types.cc: Likewise
* go/go-gcc.cc: Likewise
* go/go-lang.c: Likewise
* java/java-gimplify.c: Add required include files from gimple.h.
* lto/lto.c: Add required include files from gimple.h.
* lto/lto-lang.c: Likewise
* lto/lto-object.c: Likewise
* lto/lto-partition.c: Likewise
* lto/lto-symtab.c: Likewise
* objc/objc-act.c: Add required include files from gimple.h.
* config/darwin.c: Add required include files removed from gimple.h.
* config/aarch64/aarch64-builtins.c: Likewise.
* config/aarch64/aarch64.c: Likewise.
* config/alpha/alpha.c: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/winnt.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/s390/s390.c: Likewise.
* config/sh/sh.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/spu/spu.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/tilegx/tilegx.c: Likewise.
* config/tilepro/tilepro.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
* testsuite/gcc.dg/plugin/finish_unit_plugin.c: Add required include
files removed from gimple.h.
* testsuite/gcc.dg/plugin/ggcplug.c: Likewise.
* testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
* testsuite/gcc.dg/plugin/start_unit_plugin.c: Likewise.
* testsuite/g++.dg/plugin/selfassign.c: Likewise.
From-SVN: r205272
|
|
throw.
* tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
could throw.
From-SVN: r205196
|
|
This patch applies the rule that functions defined in FOO.c must be
declared in FOO.h. One of the worst offenders in the code base is
tree.h, unsurprisingly.
The patch creates several new headers: attribs.h calls.h fold-const.h
gcc-symtab.h print-rtl.h print-tree.h stmt.h stor-layout.h stringpool.h
tree-nested.h tree-object-size.h varasm.h.
Functions in each corresponding .c file got moved to those headers and
others that already existed. I wanted to make this patch as mechanical
as possible, so I made no attempt to fix problems like having
build_addr defined in tree-inline.c. I left that for later.
There were some declarations that I could not move out of tree.h
because of header poisoning or the use of target macros. We forbid the
inclusion of things like expr.h from FE files. While that's a
reasonable idea, the FE file *still* manage to at expr.c functionality
because the declarations they want to use were defined in tree.h.
The affected files are builtins.h, emit-rtl.h and expr.h.
If that functionality is allowed to be accessed from the FEs,
then I will later move those functions out of expr.c into tree.c.
I have moved these declarations to the bottom of tree.h so they
are easy to identify later.
There is a namespace collision with libcpp. The file gcc/symtab.c
cannot use gcc/symtab.h because the #include command picks up
libcpp/include/symtab.h first. So I named this file gcc-symtab.h
for now.
Finally, I added a new header to PLUGIN_HEADERS to account for the
tree.h refactoring. I did not add all headers factored out of tree.h
because it is unclear (and impossible to tell) what plugins need.
This adds the one header used by the plugins in the testsuite.
This will be changing quite dramatically as we progress with the header
refactoring.
This patch should offer some minimal incremental build advantages
by reducing the size of tree.h. Changes that would otherwise
affected tree.h, will now go to other headers which are less
frequently included.
* tree.h: Include fold-const.h.
(aggregate_value_p): Moved to function.h.
(alloca_call_p): Moved to calls.h.
(allocate_struct_function): Moved to function.h.
(apply_tm_attr): Moved to attribs.h.
(array_at_struct_end_p): Moved to expr.h.
(array_ref_element_size): Moved to tree-dfa.h.
(array_ref_low_bound): Moved to tree-dfa.h.
(array_ref_up_bound): Moved to tree.h.
(assemble_alias): Moved to cgraph.h.
(bit_from_pos): Moved to stor-layout.h.
(build_addr): Moved to tree-nested.h.
(build_duplicate_type): Moved to tree-inline.h.
(build_fold_addr_expr): Moved to fold-const.h.
(build_fold_addr_expr_with_type): Moved to fold-const.h.
(build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
(build_fold_indirect_ref): Moved to fold-const.h.
(build_fold_indirect_ref_loc): Moved to fold-const.h.
(build_personality_function): Moved to tree.h.
(build_range_check): Moved to fold-const.h.
(build_simple_mem_ref): Moved to fold-const.h.
(build_simple_mem_ref_loc): Moved to fold-const.h.
(build_tm_abort_call): Moved to trans-mem.h.
(byte_from_pos): Moved to stor-layout.h.
(call_expr_flags): Moved to calls.h.
(can_move_by_pieces): Moved to expr.h.
(categorize_ctor_elements): Moved to expr.h.
(change_decl_assembler_name): Moved to gcc-symtab.h.
(combine_comparisons): Moved to fold-const.h.
(complete_ctor_at_level_p): Moved to tree.h.
(component_ref_field_offset): Moved to tree-dfa.h.
(compute_builtin_object_size): Moved to tree-object-size.h.
(compute_record_mode): Moved to stor-layout.h.
(constant_boolean_node): Moved to fold-const.h.
(constructor_static_from_elts_p): Moved to varasm.h.
(cxx11_attribute_p): Moved to attribs.h.
(debug_body): Moved to print-tree.h.
(debug_find_tree): Moved to tree-inline.h.
(debug_fold_checksum): Moved to fold-const.h.
(debug_head): Moved to print-tree.h.
(debug_head): Moved to print-tree.h.
(debug_raw): Moved to print-tree.h.
(debug_tree): Moved to print-tree.h.
(debug_vec_tree): Moved to print-tree.h.
(debug_verbose): Moved to print-tree.h.
(debug_verbose): Moved to print-tree.h.
(decl_attributes): Moved to attribs.h.
(decl_binds_to_current_def_p): Moved to varasm.h.
(decl_default_tls_model): Moved to varasm.h.
(decl_replaceable_p): Moved to varasm.h.
(div_if_zero_remainder): Moved to fold-const.h.
(double_int mem_ref_offset): Moved to fold-const.h.
(dump_addr): Moved to print-tree.h.
(element_precision): Moved to machmode.h.
(expand_dummy_function_end): Moved to function.h.
(expand_function_end): Moved to function.h.
(expand_function_start): Moved to function.h.
(expand_label): Moved to stmt.h.
(expr_first): Moved to tree-iterator.h.
(expr_last): Moved to tree-iterator.h.
(finalize_size_functions): Moved to stor-layout.h.
(finish_builtin_struct): Moved to stor-layout.h.
(finish_record_layout): Moved to stor-layout.h.
(fixup_signed_type): Moved to stor-layout.h.
(fixup_unsigned_type): Moved to stor-layout.h.
(flags_from_decl_or_type): Moved to calls.h.
(fold): Moved to fold-const.h.
(fold_abs_const): Moved to fold-const.h.
(fold_binary): Moved to fold-const.h.
(fold_binary_loc): Moved to fold-const.h.
(fold_binary_to_constant): Moved to fold-const.h.
(fold_build1): Moved to fold-const.h.
(fold_build1_initializer_loc): Moved to fold-const.h.
(fold_build1_loc): Moved to fold-const.h.
(fold_build1_stat_loc): Moved to fold-const.h.
(fold_build2): Moved to fold-const.h.
(fold_build2_initializer_loc): Moved to fold-const.h.
(fold_build2_loc): Moved to fold-const.h.
(fold_build2_stat_loc): Moved to fold-const.h.
(fold_build3): Moved to fold-const.h.
(fold_build3_loc): Moved to fold-const.h.
(fold_build3_stat_loc): Moved to fold-const.h.
(fold_build_call_array): Moved to fold-const.h.
(fold_build_call_array_initializer): Moved to fold-const.h.
(fold_build_call_array_initializer_loc): Moved to fold-const.h.
(fold_build_call_array_loc): Moved to fold-const.h.
(fold_build_cleanup_point_expr): Moved to fold-const.h.
(fold_convert): Moved to fold-const.h.
(fold_convert_loc): Moved to fold-const.h.
(fold_convertible_p): Moved to fold-const.h.
(fold_defer_overflow_warnings): Moved to fold-const.h.
(fold_deferring_overflow_warnings_p): Moved to fold-const.h.
(fold_fma): Moved to fold-const.h.
(fold_ignored_result): Moved to fold-const.h.
(fold_indirect_ref): Moved to fold-const.h.
(fold_indirect_ref_1): Moved to fold-const.h.
(fold_indirect_ref_loc): Moved to fold-const.h.
(fold_read_from_constant_string): Moved to fold-const.h.
(fold_real_zero_addition_p): Moved to fold-const.h.
(fold_single_bit_test): Moved to fold-const.h.
(fold_strip_sign_ops): Moved to fold-const.h.
(fold_ternary): Moved to fold-const.h.
(fold_ternary_loc): Moved to fold-const.h.
(fold_unary): Moved to tree-data-ref.h.
(fold_unary_ignore_overflow): Moved to fold-const.h.
(fold_unary_ignore_overflow_loc): Moved to fold-const.h.
(fold_unary_loc): Moved to fold-const.h.
(fold_unary_to_constant): Moved to fold-const.h.
(fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
(fold_undefer_overflow_warnings): Moved to fold-const.h.
(folding_initializer): Moved to fold-const.h.
(free_temp_slots): Moved to function.h.
(generate_setjmp_warnings): Moved to function.h.
(get_attribute_name): Moved to attribs.h.
(get_identifier): Moved to stringpool.h.
(get_identifier_with_length): Moved to stringpool.h.
(get_inner_reference): Moved to tree.h.
(gimple_alloca_call_p): Moved to calls.h.
(gimplify_parameters): Moved to function.h.
(highest_pow2_factor): Moved to expr.h.
(indent_to): Moved to print-tree.h.
(init_attributes): Moved to attribs.h.
(init_dummy_function_start): Moved to function.h.
(init_function_start): Moved to function.h.
(init_inline_once): Moved to tree-inline.h.
(init_object_sizes): Moved to tree-object-size.h.
(init_temp_slots): Moved to function.h.
(init_tree_optimization_optabs): Moved to optabs.h.
(initialize_sizetypes): Moved to stor-layout.h.
(initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
(initializer_constant_valid_p): Moved to varasm.h.
(int_const_binop): Moved to fold-const.h.
(internal_reference_types): Moved to stor-layout.h.
(invert_tree_comparison): Moved to fold-const.h.
(invert_truthvalue): Moved to fold-const.h.
(invert_truthvalue_loc): Moved to fold-const.h.
(is_tm_ending_fndecl): Moved to trans-mem.h.
(is_tm_may_cancel_outer): Moved to trans-mem.h.
(is_tm_pure): Moved to trans-mem.h.
(is_tm_safe): Moved to trans-mem.h.
(layout_decl): Moved to stor-layout.h.
(layout_type): Moved to stor-layout.h.
(lookup_attribute_spec): Moved to attribs.h.
(make_accum_type): Moved to stor-layout.h.
(make_decl_one_only): Moved to varasm.h.
(make_decl_rtl): Moved to tree.h.
(make_decl_rtl_for_debug): Moved to varasm.h.
(make_fract_type): Moved to stor-layout.h.
(make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
(make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
(make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
(make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
(make_or_reuse_signed_accum_type): Moved to stor-layout.h.
(make_or_reuse_signed_fract_type): Moved to stor-layout.h.
(make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
(make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
(make_range): Moved to fold-const.h.
(make_range_step): Moved to fold-const.h.
(make_sat_signed_accum_type): Moved to stor-layout.h.
(make_sat_signed_fract_type): Moved to stor-layout.h.
(make_sat_unsigned_accum_type): Moved to stor-layout.h.
(make_sat_unsigned_fract_type): Moved to stor-layout.h.
(make_signed_accum_type): Moved to stor-layout.h.
(make_signed_fract_type): Moved to stor-layout.h.
(make_signed_type): Moved to stor-layout.h.
(make_unsigned_accum_type): Moved to stor-layout.h.
(make_unsigned_fract_type): Moved to stor-layout.h.
(make_unsigned_type): Moved to stor-layout.h.
(mark_decl_referenced): Moved to varasm.h.
(mark_referenced): Moved to varasm.h.
(may_negate_without_overflow_p): Moved to fold-const.h.
(maybe_get_identifier): Moved to stringpool.h.
(merge_ranges): Moved to fold-const.h.
(merge_weak): Moved to varasm.h.
(mode_for_size_tree): Moved to stor-layout.h.
(multiple_of_p): Moved to fold-const.h.
(must_pass_in_stack_var_size): Moved to calls.h.
(must_pass_in_stack_var_size_or_pad): Moved to calls.h.
(native_encode_expr): Moved to fold-const.h.
(native_interpret_expr): Moved to fold-const.h.
(non_lvalue): Moved to fold-const.h.
(non_lvalue_loc): Moved to fold-const.h.
(normalize_offset): Moved to stor-layout.h.
(normalize_rli): Moved to stor-layout.h.
(notice_global_symbol): Moved to varasm.h.
(omit_one_operand): Moved to fold-const.h.
(omit_one_operand_loc): Moved to fold-const.h.
(omit_two_operands): Moved to fold-const.h.
(omit_two_operands_loc): Moved to fold-const.h.
(operand_equal_p): Moved to tree-data-ref.h.
(parse_input_constraint): Moved to stmt.h.
(parse_output_constraint): Moved to stmt.h.
(place_field): Moved to stor-layout.h.
(pop_function_context): Moved to function.h.
(pop_temp_slots): Moved to function.h.
(pos_from_bit): Moved to stor-layout.h.
(preserve_temp_slots): Moved to function.h.
(print_node): Moved to print-tree.h.
(print_node_brief): Moved to print-tree.h.
(print_rtl): Moved to rtl.h.
(process_pending_assemble_externals): Moved to varasm.h.
(ptr_difference_const): Moved to fold-const.h.
(push_function_context): Moved to function.h.
(push_struct_function): Moved to function.h.
(push_temp_slots): Moved to function.h.
(record_tm_replacement): Moved to trans-mem.h.
(relayout_decl): Moved to stor-layout.h.
(resolve_asm_operand_names): Moved to stmt.h.
(resolve_unique_section): Moved to varasm.h.
(rli_size_so_far): Moved to stor-layout.h.
(rli_size_unit_so_far): Moved to stor-layout.h.
(round_down): Moved to fold-const.h.
(round_down_loc): Moved to fold-const.h.
(round_up): Moved to fold-const.h.
(round_up_loc): Moved to fold-const.h.
(set_decl_incoming_rtl): Moved to emit-rtl.h.
(set_decl_rtl): Moved to tree.h.
(set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
(set_user_assembler_name): Moved to varasm.h.
(setjmp_call_p): Moved to calls.h.
(size_binop): Moved to fold-const.h.
(size_binop_loc): Moved to fold-const.h.
(size_diffop): Moved to fold-const.h.
(size_diffop_loc): Moved to fold-const.h.
(size_int_kind): Moved to fold-const.h.
(stack_protect_epilogue): Moved to function.h.
(start_record_layout): Moved to stor-layout.h.
(supports_one_only): Moved to varasm.h.
(swap_tree_comparison): Moved to fold-const.h.
(tm_malloc_replacement): Moved to trans-mem.h.
(tree build_fold_addr_expr_loc): Moved to fold-const.h.
(tree build_invariant_address): Moved to fold-const.h.
(tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
(tree_binary_nonzero_warnv_p): Moved to fold-const.h.
(tree_call_nonnegative_warnv_p): Moved to fold-const.h.
(tree_expr_nonnegative_p): Moved to fold-const.h.
(tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
(tree_output_constant_def): Moved to varasm.h.
(tree_overlaps_hard_reg_set): Moved to stmt.h.
(tree_single_nonnegative_warnv_p): Moved to fold-const.h.
(tree_single_nonzero_warnv_p): Moved to fold-const.h.
(tree_swap_operands_p): Moved to fold-const.h.
(tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
(tree_unary_nonzero_warnv_p): Moved to fold-const.h.
(update_alignment_for_field): Moved to stor-layout.h.
(use_register_for_decl): Moved to function.h.
(variable_size): Moved to rtl.h.
(vector_type_mode): Moved to stor-layout.h.
* cgraph.h: Corresponding changes.
* emit-rtl.h: Corresponding changes.
* expr.h: Corresponding changes.
* function.h: Corresponding changes.
* optabs.h: Corresponding changes.
* trans-mem.h: Corresponding changes.
Protect against multiple inclusion.
* tree-inline.h: Corresponding changes.
* tree-iterator.h: Corresponding changes.
* tree-dfa.h: Include expr.h.
* tree-ssanames.h: Include stringpool.h.
* attribs.h: New file.
* calls.h: New file.
* fold-const.h: New file.
* gcc-symtab.h: New file.
* print-rtl.h: New file.
* print-tree.h: New file.
* stmt.h: New file.
* stor-layout.h: New file.
* strinpool.h: New file.
* tree-nested.h: New file
* tree-object-size.h: New file.
* varasm.h: New file.
* Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
* alias.c: Include varasm.h.
Include expr.h.
* asan.c: Include calls.h.
Include stor-layout.h.
Include varasm.h.
* attribs.c: Include stringpool.h.
Include attribs.h.
Include stor-layout.h.
* builtins.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
Include tree-object-size.h.
* calls.c: Include stor-layout.h.
Include varasm.h.
Include stringpool.h.
Include attribs.h.
* cfgexpand.c: Include stringpool.h.
Include varasm.h.
Include stor-layout.h.
Include stmt.h.
Include print-tree.h.
* cgraph.c: Include varasm.h.
Include calls.h.
Include print-tree.h.
* cgraphclones.c: Include stringpool.h.
Include function.h.
Include emit-rtl.h.
Move inclusion of rtl.h earlier in the file.
* cgraphunit.c: Include varasm.h.
Include stor-layout.h.
Include stringpool.h.
* cilk-common.c: Include stringpool.h.
Include stor-layout.h.
* combine.c: Include stor-layout.h.
* config/aarch64/aarch64-builtins.c: Include stor-layout.h.
Include stringpool.h.
Include calls.h.
* config/aarch64/aarch64.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/alpha/alpha.c: Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/arc/arc.c: Include varasm.h.
Include stor-layout.h.
Include stringpool.h.
Include calls.h.
* config/arm/arm.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/avr/avr-c.c: Include stor-layout.h.
* config/avr/avr-log.c: Include print-tree.h.
* config/avr/avr.c: Include print-tree.h.
Include calls.h.
Include stor-layout.h.
Include stringpool.h.
* config/bfin/bfin.c: Include varasm.h.
Include calls.h.
* config/c6x/c6x.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
Include stringpool.h.
* config/cr16/cr16.c: Include stor-layout.h.
Include calls.h.
* config/cris/cris.c: Include varasm.h.
Include stor-layout.h.
Include calls.h.
Include stmt.h.
* config/darwin.c: Include stringpool.h.
Include varasm.h.
Include stor-layout.h.
* config/epiphany/epiphany.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
Include stringpool.h.
* config/fr30/fr30.c: Include stor-layout.h.
Include varasm.h.
* config/frv/frv.c: Include varasm.h.
Include stor-layout.h.
Include stringpool.h.
* config/h8300/h8300.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
Include stringpool.h.
* config/i386/i386.c: Include stringpool.h.
Include attribs.h.
Include calls.h.
Include stor-layout.h.
Include varasm.h.
* config/i386/winnt-cxx.c: Include stringpool.h.
Include attribs.h.
* config/i386/winnt.c: Include stringpool.h.
Include varasm.h.
* config/ia64/ia64-c.c: Include stringpool.h.
* config/ia64/ia64.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/iq2000/iq2000.c: Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/lm32/lm32.c: Include calls.h.
* config/m32c/m32c.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/m32r/m32r.c: Include stor-layout.h.
Include varasm.h.
Include stringpool.h.
Include calls.h.
* config/m68k/m68k.c: Include calls.h.
Include stor-layout.h.
Include varasm.h.
* config/mcore/mcore.c: Include stor-layout.h.
Include varasm.h.
Include stringpool.h.
Include calls.h.
* config/mep/mep.c: Include varasm.h.
Include calls.h.
Include stringpool.h.
Include stor-layout.h.
* config/microblaze/microblaze.c: Include varasm.h.
Include stor-layout.h.
Include calls.h.
* config/mips/mips.c: Include varasm.h.
Include stringpool.h.
Include stor-layout.h.
Include calls.h.
* config/mmix/mmix.c: Include varasm.h.
Include stor-layout.h.
Include calls.h.
* config/mn10300/mn10300.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/moxie/moxie.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/msp430/msp430.c: Include stor-layout.h.
Include calls.h.
* config/nds32/nds32.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/pa/pa.c: Include stor-layout.h.
Include stringpool.h.
Include varasm.h.
Include calls.h.
* config/pdp11/pdp11.c: Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/picochip/picochip.c: Include calls.h.
Include stor-layout.h.
Include stringpool.h.
Include varasm.h.
* config/rl78/rl78.c: Include varasm.h.
Include stor-layout.h.
Include calls.h.
* config/rs6000/rs6000-c.c: Include stor-layout.h.
Include stringpool.h.
* config/rs6000/rs6000.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include print-tree.h.
Include varasm.h.
* config/rx/rx.c: Include varasm.h.
Include stor-layout.h.
Include calls.h.
* config/s390/s390.c: Include print-tree.h.
Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/score/score.c: Include stringpool.h.
Include calls.h.
Include varasm.h.
Include stor-layout.h.
* config/sh/sh-c.c: Include stringpool.h.
Include attribs.h.h.
* config/sh/sh.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/sol2-c.c: Include stringpool.h.
Include attribs.h.
* config/sol2-cxx.c: Include stringpool.h.
* config/sol2.c: Include stringpool.h.
Include varasm.h.
* config/sparc/sparc.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/spu/spu-c.c: Include stringpool.h.
* config/spu/spu.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* config/stormy16/stormy16.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/tilegx/tilegx.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/tilepro/tilepro.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/v850/v850-c.c: Include stringpool.h.
Include attribs.h.
* config/v850/v850.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include calls.h.
* config/vax/vax.c: Include calls.h.
Include varasm.h.
* config/vms/vms.c: Include stringpool.h.
* config/vxworks.c: Include stringpool.h.
* config/xtensa/xtensa.c: Include stringpool.h.
Include stor-layout.h.
Include calls.h.
Include varasm.h.
* convert.c: Include stor-layout.h.
* coverage.c: Include stringpool.h.
Include stor-layout.h.
* dbxout.c: Include varasm.h.
Include stor-layout.h.
* dojump.c: Include stor-layout.h.
* dse.c: Include stor-layout.h.
* dwarf2asm.c: Include stringpool.h.
Include varasm.h.
* dwarf2cfi.c: Include stor-layout.h.
* dwarf2out.c: Include rtl.h.
Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include function.h.
Include emit-rtl.h.
Move inclusion of rtl.h earlier in the file.
* emit-rtl.c: Include varasm.h.
* except.c: Include stringpool.h.
Include stor-layout.h.
* explow.c: Include stor-layout.h.
* expmed.c: Include stor-layout.h.
* expr.c: Include stringpool.h.
Include stor-layout.h.
Include attribs.h.
Include varasm.h.
* final.c: Include varasm.h.
* fold-const.c: Include stor-layout.h.
Include calls.h.
Include tree-iterator.h.
* function.c: Include stor-layout.h.
Include varasm.h.
Include stringpool.h.
* genattrtab.c (write_header): Emit includes for varasm.h,
stor-layout.h and calls.h.
* genautomata.c (main): Likewise.
* genemit.c: Likewise.
* genopinit.c: Likewise.
* genoutput.c (output_prologue): Likewise.
* genpeep.c: Likewise.
* genpreds.c (write_insn_preds_c): Likewise.
* gengtype.c (open_base_files): Add stringpool.h.
* gimple-expr.c: Include stringpool.h.
Include stor-layout.h.
* gimple-fold.c: Include stringpool.h.
Include expr.h.
Include stmt.h.
Include stor-layout.h.
* gimple-low.c: Include tree-nested.h.
Include calls.h.
* gimple-pretty-print.c: Include stringpool.h.
* gimple-ssa-strength-reduction.c: Include stor-layout.h.
Include expr.h.
* gimple-walk.c: Include stmt.h.
* gimple.c: Include calls.h.
Include stmt.h.
Include stor-layout.h.
* gimplify.c: Include stringpool.h.
Include calls.h.
Include varasm.h.
Include stor-layout.h.
Include stmt.h.
Include print-tree.h.
Include expr.h.
* gimplify-me.c: Include stmt.h
Include stor-layout.h
* internal-fn.c: Include stor-layout.h.
* ipa-devirt.c: Include print-tree.h.
Include calls.h.
* ipa-inline-analysis.c: Include stor-layout.h.
Include stringpool.h.
Include print-tree.h.
* ipa-inline.c: Include trans-mem.h.
Include calls.h.
* ipa-prop.c: Include expr.h.
Include stor-layout.h.
Include print-tree.h.
* ipa-pure-const.c: Include print-tree.h.
Include calls.h.
* ipa-reference.c: Include calls.h.
* ipa-split.c: Include stringpool.h.
Include expr.h.
Include calls.h.
* ipa.c: Include calls.h.
Include stringpool.h.
* langhooks.c: Include stringpool.h.
Include attribs.h.
* lto-cgraph.c: Include stringpool.h.
* lto-streamer-in.c: Include stringpool.h.
* lto-streamer-out.c: Include stor-layout.h.
Include stringpool.h.
* omp-low.c: Include stringpool.h.
Include stor-layout.h.
Include expr.h.
* optabs.c: Include stor-layout.h.
Include stringpool.h.
Include varasm.h.
* passes.c: Include varasm.h.
* predict.c: Include calls.h.
* print-rtl.c: Include print-tree.h.
* print-tree.c: Include varasm.h.
Include print-rtl.h.
Include stor-layout.h.
* realmpfr.c: Include stor-layout.h.
* reg-stack.c: Include varasm.h.
* sdbout.c: Include varasm.h.
Include stor-layout.h.
* simplify-rtx.c: Include varasm.h.
* stmt.c: Include varasm.h.
Include stor-layout.h.
* stor-layout.c: Include stor-layout.h.
Include stringpool.h.
Include varasm.h.
Include print-tree.h.
* symtab.c: Include rtl.h.
Include print-tree.h.
Include varasm.h.
Include function.h.
Include emit-rtl.h.
* targhooks.c: Include stor-layout.h.
Include varasm.h.
* toplev.c: Include varasm.h.
Include tree-inline.h.
* trans-mem.c: Include calls.h.
Include function.h.
Include rtl.h.
Include emit-rtl.h.
* tree-affine.c: Include expr.h.
* tree-browser.c: Include print-tree.h.
* tree-call-cdce.c: Include stor-layout.h.
* tree-cfg.c: Include trans-mem.h.
Include stor-layout.h.
Include print-tree.h.
* tree-complex.c: Include stor-layout.h.
* tree-data-ref.c: Include expr.h.
* tree-dfa.c: Include stor-layout.h.
* tree-eh.c: Include expr.h.
Include calls.h.
* tree-emutls.c: Include stor-layout.h.
Include varasm.h.
* tree-if-conv.c: Include stor-layout.h.
* tree-inline.c: Include stor-layout.h.
Include calls.h.
* tree-loop-distribution.c: Include stor-layout.h.
* tree-nested.c: Include stringpool.h.
Include stor-layout.h.
* tree-object-size.c: Include tree-object-size.h.
* tree-outof-ssa.c: Include stor-layout.h.
* tree-parloops.c: Include stor-layout.h.
Include tree-nested.h.
* tree-pretty-print.c: Include stor-layout.h.
Include expr.h.
* tree-profile.c: Include varasm.h.
Include tree-nested.h.
* tree-scalar-evolution.c: Include expr.h.
* tree-sra.c: Include stor-layout.h.
* tree-ssa-address.c: Include stor-layout.h.
* tree-ssa-ccp.c: Include stor-layout.h.
* tree-ssa-dce.c: Include calls.h.
* tree-ssa-dom.c: Include stor-layout.h.
* tree-ssa-forwprop.c: Include stor-layout.h.
* tree-ssa-ifcombine.c: Include stor-layout.h.
* tree-ssa-loop-ivopts.c: Include stor-layout.h.
* tree-ssa-loop-niter.c: Include calls.h.
Include expr.h.
* tree-ssa-loop-prefetch.c: Include stor-layout.h.
* tree-ssa-math-opts.c: Include stor-layout.h.
* tree-ssa-operands.c: Include stmt.h.
Include print-tree.h.
* tree-ssa-phiopt.c: Include stor-layout.h.
* tree-ssa-reassoc.c: Include stor-layout.h.
* tree-ssa-sccvn.c: Include stor-layout.h.
* tree-ssa-sink.c: Include stor-layout.h.
* tree-ssa-strlen.c: Include stor-layout.h.
* tree-ssa-structalias.c: Include stor-layout.h.
Include stmt.h.
* tree-ssa-tail-merge.c: Include stor-layout.h.
Include trans-mem.h.
* tree-ssa-uncprop.c: Include stor-layout.h.
* tree-ssa.c: Include stor-layout.h.
* tree-ssanames.c: Include stor-layout.h.
* tree-streamer-in.c: Include stringpool.h.
* tree-streamer-out.c: Include stor-layout.h.
* tree-switch-conversion.c: Include varasm.h.
Include stor-layout.h.
* tree-tailcall.c: Include stor-layout.h.
* tree-vect-data-refs.c: Include stor-layout.h.
* tree-vect-generic.c: Include stor-layout.h.
* tree-vect-loop.c: Include stor-layout.h.
* tree-vect-patterns.c: Include stor-layout.h.
* tree-vect-slp.c: Include stor-layout.h.
* tree-vect-stmts.c: Include stor-layout.h.
* tree-vectorizer.c: Include stor-layout.h.
* tree-vrp.c: Include stor-layout.h.
Include calls.h.
* tree.c: Include stor-layout.h.
Include calls.h.
Include attribs.h.
Include varasm.h.
* tsan.c: Include expr.h.
* ubsan.c: Include stor-layout.h.
Include stringpool.h.
* value-prof.c: Include tree-nested.h.
Include calls.h.
* var-tracking.c: Include varasm.h.
Include stor-layout.h.
* varasm.c: Include stor-layout.h.
Include stringpool.h.
Include gcc-symtab.h.
Include varasm.h.
* varpool.c: Include varasm.h.
* vmsdbgout.c: Include varasm.h.
* xcoffout.c: Include varasm.h.
ada/ChangeLog
* gcc-interface/decl.c: Include stringpool.h
Include stor-layout.h
* gcc-interface/misc.c: Include stor-layout.h
Include print-tree.h
* gcc-interface/trans.c: Include stringpool.h
Include stor-layout.h
Include stmt.h
Include varasm.h
* gcc-interface/utils.c: Include stringpool.h
Include stor-layout.h
Include attribs.h
Include varasm.h
* gcc-interface/utils2.c: Include stringpool.h
Include stor-layout.h
Include attribs.h
Include varasm.h
c-family/ChangeLog
* c-common.c: Include fold-const.h.
Include stor-layout.h.
Include calls.h.
Include stringpool.h.
Include attribs.h.
Include varasm.h.
Include trans-mem.h.
* c-cppbuiltin.c: Include stor-layout.h.
Include stringpool.h.
* c-format.c: Include stringpool.h.
* c-lex.c: Include stringpool.h.
Include stor-layout.h.
* c-pragma.c: Include stringpool.h.
Include attribs.h.
Include varasm.h.
Include gcc-symtab.h.
* c-pretty-print.c: Include stor-layout.h.
Include attribs.h.
* cilk.c: Include stringpool.h.
Include calls.h.
c/ChangeLog
* c-decl.c: Include print-tree.h.
Include stor-layout.h.
Include varasm.h.
Include attribs.h.
Include stringpool.h.
* c-lang.c: Include fold-const.h.
* c-parser.c: Include stringpool.h.
Include attribs.h.
Include stor-layout.h.
Include varasm.h.
Include trans-mem.h.
* c-typeck.c: Include stor-layout.h.
Include trans-mem.h.
Include varasm.h.
Include stmt.h.
cp/ChangeLog
* call.c: Include stor-layout.h.
Include trans-mem.h.
Include stringpool.h.
* class.c: Include stringpool.h.
Include stor-layout.h.
Include attribs.h.
* cp-gimplify.c: Include stor-layout.h.
* cvt.c: Include stor-layout.h.
* decl.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include attribs.h.
Include calls.h.
* decl2.c: Include stringpool.h.
Include varasm.h.
Include attribs.h.
Include stor-layout.h.
Include calls.h.
* error.c: Include stringpool.h.
* except.c: Include stringpool.h.
Include trans-mem.h.
Include attribs.h.
* init.c: Include stringpool.h.
Include varasm.h.
* lambda.c: Include stringpool.h.
* lex.c: Include stringpool.h.
* mangle.c: Include stor-layout.h.
Include stringpool.h.
* method.c: Include stringpool.h.
Include varasm.h.
* name-lookup.c: Include stringpool.h.
Include print-tree.h.
Include attribs.h.
* optimize.c: Include stringpool.h.
* parser.c: Include print-tree.h.
Include stringpool.h.
Include attribs.h.
Include trans-mem.h.
* pt.c: Include stringpool.h.
Include varasm.h.
Include attribs.h.
Include stor-layout.h.
* ptree.c: Include print-tree.h.
* repo.c: Include stringpool.h.
* rtti.c: Include stringpool.h.
Include stor-layout.h.
* semantics.c: Include stmt.h.
Include varasm.h.
Include stor-layout.h.
Include stringpool.h.
* tree.c: Include stor-layout.h.
Include print-tree.h.
Include tree-iterator.h.
* typeck.c: Include stor-layout.h.
Include varasm.h.
* typeck2.c: Include stor-layout.h.
Include varasm.h.
* vtable-class-hierarchy.c: Include stringpool.h.
Include stor-layout.h.
fortran/ChangeLog
* decl.c: Include stringpool.h.
* iresolve.c: Include stringpool.h.
* match.c: Include stringpool.h.
* module.c: Include stringpool.h.
* target-memory.c: Include stor-layout.h.
* trans-common.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
* trans-const.c: Include stor-layout.h.
* trans-decl.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include attribs.h.
* trans-expr.c: Include stringpool.h.
* trans-intrinsic.c: Include stringpool.h.
Include tree-nested.h.
Include stor-layout.h.
* trans-io.c: Include stringpool.h.
Include stor-layout.h.
* trans-openmp.c: Include stringpool.h.
* trans-stmt.c: Include stringpool.h.
* trans-types.c: Include stor-layout.h.
Include stringpool.h.
* trans.c: Include stringpool.h.
go/ChangeLog
* go-backend.c: Include stor-layout.h.
* go-gcc.cc: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
* go-lang.c: Include stor-layout.h.
java/ChangeLog
* builtins.c: Include stor-layout.h.
Include stringpool.h.
* class.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
* constants.c: Include stringpool.h.
Include stor-layout.h.
* decl.c: Include stor-layout.h.
Include stringpool.h.
Include varasm.h.
* except.c: Include stringpool.h.
Include stor-layout.h.
* expr.c: Include stringpool.h.
Include stor-layout.h.
* jcf-parse.c: Include stringpool.h.
* mangle.c: Include stringpool.h.
* resource.c: Include stringpool.h.
Include stor-layout.h.
* typeck.c: Include stor-layout.h.
Include stringpool.h.
* verify-glue.c: Include stringpool.h.
lto/ChangeLog
* lto-lang.c: Include stringpool.h.
Include stor-layout.h.
* lto-partition.c: Include gcc-symtab.h.
* lto.c: Include stor-layout.h.
objc/ChangeLog
* objc-act.c: Include stringpool.h.
Include stor-layout.h.
Include attribs.h.
* objc-encoding.c: Include stringpool.h.
Include stor-layout.h.
* objc-gnu-runtime-abi-01.c: Include stringpool.h.
* objc-next-runtime-abi-01.c:
Include stringpool.h.
* objc-next-runtime-abi-02.c: Include stringpool.h.
* objc-runtime-shared-support.c: Include stringpool.h.
testsuite/ChangeLog
* gcc.dg/plugin/selfassign.c: Include stringpool.h.
* gcc.dg/plugin/start_unit_plugin.c: Likewise.
From-SVN: r205023
|
|
gcc/
* basic-block.h (n_basic_blocks_for_function): Rename macro to...
(n_basic_blocks_for_fn): ...this.
(n_basic_blocks): Eliminate macro as work towards making uses of
cfun be explicit.
* cfgloop.c (init_loops_structure): Update for renaming of
"n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
* graph.c (draw_cfg_nodes_no_loops): Likewise.
* ipa-utils.c (ipa_merge_profiles): Likewise.
* lto-streamer-in.c (make_new_block): Likewise.
* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
(dump_function_to_file): Likewise.
* alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
macro with "n_basic_blocks_for_fn (cfun)".
* bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
(duplicate_computed_gotos): Likewise.
(reorder_basic_blocks): Likewise.
* bt-load.c (augment_live_range): Likewise.
* cfg.c (expunge_block): Likewise.
(compact_blocks): Likewise.
* cfganal.c (single_pred_before_succ_order): Likewise.
(compute_idf): Likewise.
(flow_dfs_compute_reverse_init): Likewise.
(pre_and_rev_post_order_compute): Likewise.
(pre_and_rev_post_order_compute_fn): Likewise.
(inverted_post_order_compute): Likewise.
(post_order_compute): Likewise.
(print_edge_list): Likewise.
(find_unreachable_blocks): Likewise.
(mark_dfs_back_edges): Likewise.
* cfgcleanup.c (try_optimize_cfg): Likewise.
(try_forward_edges): Likewise.
* cfghooks.c (dump_flow_info): Likewise.
* cfgloop.c (verify_loop_structure): Likewise.
(get_loop_body): Likewise.
(flow_loops_find): Likewise.
* cfgloopmanip.c (add_loop): Likewise.
(remove_path): Likewise.
(find_path): Likewise.
* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
(rtl_verify_bb_layout): Likewise.
(entry_of_function): Likewise.
(rtl_create_basic_block): Likewise.
* coverage.c (coverage_compute_cfg_checksum): Likewise.
* cprop.c (one_cprop_pass): Likewise.
(is_too_expensive): Likewise.
* df-core.c (df_compute_cfg_image): Likewise.
(df_compact_blocks): Likewise.
(df_worklist_dataflow_doublequeue): Likewise.
* dominance.c (calculate_dominance_info): Likewise.
(calc_dfs_tree): Likewise.
(calc_dfs_tree_nonrec): Likewise.
(init_dom_info): Likewise.
* domwalk.c (cmp_bb_postorder): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
(generate_setjmp_warnings): Likewise.
* fwprop.c (build_single_def_use_links): Likewise.
* gcse.c (is_too_expensive): Likewise.
(one_code_hoisting_pass): Likewise.
(one_pre_gcse_pass): Likewise.
* graphite.c (graphite_initialize): Likewise.
* haifa-sched.c (haifa_sched_init): Likewise.
* ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
* ira.c (split_live_ranges_for_shrink_wrap): Likewise.
* ira-build.c (ira_build): Likewise.
* lcm.c (compute_nearerout): Likewise.
(compute_available): Likewise.
(compute_laterin): Likewise.
(compute_antinout_edge): Likewise.
* lra-lives.c (lra_create_live_ranges): Likewise.
* lra.c (has_nonexceptional_receiver): Likewise.
* mcf.c (create_fixup_graph): Likewise.
* profile.c (branch_prob): Likewise.
* reg-stack.c (convert_regs_2): Likewise.
* regrename.c (regrename_analyze): Likewise.
* reload1.c (has_nonexceptional_receiver): Likewise.
* reorg.c (dbr_schedule): Likewise.
* sched-deps.c (sched_deps_init): Likewise.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (extend_regions): Likewise.
(schedule_insns): Likewise.
(sched_rgn_init): Likewise.
(extend_rgns): Likewise.
(haifa_find_rgns): Likewise.
* sel-sched-ir.c (recompute_rev_top_order): Likewise.
(sel_recompute_toporder): Likewise.
* sel-sched.c (run_selective_scheduling): Likewise.
* store-motion.c (one_store_motion_pass): Likewise.
(remove_reachable_equiv_notes): Likewise.
* tracer.c (tracer): Likewise.
(tail_duplicate): Likewise.
* tree-cfg.c (gimple_flow_call_edges_add): Likewise.
(dump_cfg_stats): Likewise.
(gimple_dump_cfg): Likewise.
(create_bb): Likewise.
(build_gimple_cfg): Likewise.
* tree-cfgcleanup.c (merge_phi_nodes): Likewise.
* tree-inline.c (optimize_inline_calls): Likewise.
(fold_marked_statements): Likewise.
* tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
* tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
* tree-ssa-pre.c (do_pre): Likewise.
(init_pre): Likewise.
(compute_avail): Likewise.
* tree-ssa-reassoc.c (init_reassoc): Likewise.
* tree-ssa-sccvn.c (init_scc_vn): Likewise.
* tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
(init_worklist): Likewise.
* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
* var-tracking.c (variable_tracking_main_1): Likewise.
(vt_find_locations): Likewise.
(vt_stack_adjustments): Likewise.
* config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
From-SVN: r204995
|
|
* gimple.h: Reorder prototypes to match .c declaration order, and remove
protyotypes for functions not in gimple.c.
(LABEL): Move to tree-into-ssa.c.
* gimple.c: Remove unused prototypes.
(get_base_address): Move to tree.c.
* tree.c (get_base_address): Relocate from gimple.c.
* builtins.h (validate_gimple_arglist): Add prototype.
* trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
* cfgexpand.h: New File.
(gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
* tree.h (build_addr): Move to tree-nested.h.
* tree-nested.h: New File.
(build_addr, lower_nested_functions, insert_field_into_struct): Add
prototypes.
* tree-inline.h (estimated_stack_frame_size): Remove prototype.
* ipa-inline-analysis.c: Include cfgexpand.h.
* cgraphunit.c: Include tree-nested.h.
* omp-low.c: Likewise.
* tree-parloops.c: Likewise.
* gimple-low.h: Likewise.
* tree-profile.h: Likewise.
* expr.c: Include cfgexpand.h.
* tree-affine.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssa-loop-im.c: Include trans-mem.h.
* tree-ssa-tail-merge.c: Likewise.
* value-prof.c: Include builtins.h and tree-nested.h.
* tree-into-ssa.c (LABEL): Define here.
* fortran/trans-intrinsic.c: Include tree-nested.h.
From-SVN: r204919
|
|
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
equality for GIMPLE_ASSIGN.
* gcc.dg/tail-merge-store.c: New test.
From-SVN: r204767
|
|
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
function out of ...
(gimple_equal_p): ... here.
From-SVN: r204766
|
|
2013-11-14 Tom de Vries <tom@codesourcery.com>
* trans-mem.c (is_tm_ending): New function.
* gimple.h (is_tm_ending): Declare.
* tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
BUILT_IN_TM_COMMIT.
(find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
From-SVN: r204765
|
|
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
From-SVN: r204764
|
|
* gimple-walk.h: New File. Relocate prototypes from gimple.h.
(struct walk_stmt_info): Relocate here from gimple.h.
* gimple-iterator.h: New File. Relocate prototypes from gimple.h.
(struct gimple_stmt_iterator_d): Relocate here from gimple.h.
(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
* gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
(struct walk_stmt_info): Move to gimple-walk.h.
(gimple_seq_set_location): Move to gimple.c
* gimple-walk.c: New File.
(walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
walk_stmt_load_store_ops): Relocate here from gimple.c.
* gimple-iterator.c: Include gimple-iterator.h.
* gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
gimple-walk.c.
(gimple_seq_set_location): Relocate from gimple.h.
* tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
* tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
* gengtype.c (open_base_files): Add gimple-iterator.h to include list.
* Makefile.in (OBJS): Add gimple-walk.o
* asan.c: Update Include list as required for gimple-iterator.h and
gimple-walk.h.
* cfgexpand.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphunit.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-ssa-isolate-paths.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimplify.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-split.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* omp-low.c: Likewise.
* predict.c: Likewise.
* profile.c: Likewise.
* sese.c: Likewise.
* tracer.c: Likewise.
* trans-mem.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nested.c: Likewise.
* tree-nrv.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-predcom.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sink.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tsan.c: Likewise.
* value-prof.c: Likewise.
* vtable-verify.c: Likewise.
* config/aarch64/aarch64-builtins.c: Include gimple-iterator.h.
* config/rs6000/rs6000.c: Include gimple-iterator.h and gimple-walk.h.
* testsuite/g++.dg/plugin/selfassign.c: Include gimple-iterator.h.
* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
From-SVN: r204763
|
|
at ipa-inline.c:1008)
2013-10-29 Teresa Johnson <tejohnson@google.com>
PR ipa/58862
* tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
insanities when updating probabilities.
From-SVN: r204178
|
|
2013-10-22 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/58805
* tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
* gcc.dg/pr58805.c: New test.
From-SVN: r203973
|
|
* tree-ssa.h: Remove all #include's
* gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
* alias.c: Move required includes from tree-ssa.h.
* asan.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* dse.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* ggc-page.c: Likewise.
* gimple-builder.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-iterator.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimplify.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* loop-init.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-in.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.c: Likewise.
* omp-low.c: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* sese.c: Likewise.
* targhooks.c: Likewise.
* tracer.c: Likewise.
* trans-mem.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-nested.c: Likewise.
* tree-nrv.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-loop-unswitch.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sink.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tsan.c: Likewise.
* value-prof.c: Likewise.
* var-tracking.c: Likewise.
* varpool.c: Likewise.
* vtable-verify.c: Likewise.
From-SVN: r203967
|
|
2013-10-18 Teresa Johnson <tejohnson@google.com>
* tree-ssa-tail-merge.c (replace_block_by): Update edge
weights during merging.
From-SVN: r203823
|
|
* tree-ssa.h: New. Move content from tree-flow.h and
tree-flow-inline.h.
* tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
Move prototypes belonging to tree-ssa.c.
* tree-flow-inline.h (redirect_edge_var_map_def,
redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
tree-ssa.h.
* gimple.h: Adjust prototypes.
* tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to...
* gimple.c (useless_type_conversion_p, types_compatible_p): Here.
* tree.h: Move prototype to tree-ssa.h.
* gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
* Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
* alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c,
graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c,
graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c,
ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c,
ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c,
loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
value-prof.c, var-tracking.c,
varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
From-SVN: r202523
|
|
From-SVN: r201108
|
|
2013-04-29 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
(replace_block_by): Don't set LOOPS_NEED_FIXUP.
(tail_merge_optimize): Handle current_loops == NULL.
* gcc.dg/pr50763.c: Update test.
From-SVN: r198414
|
|
2013-04-29 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c: Update header comment.
From-SVN: r198407
|
|
2013-03-26 Richard Biener <rguenther@suse.de>
* tree-cfg.c (execute_build_cfg): Build the loop tree.
(pass_build_cfg): Provide PROP_loops.
(move_sese_region_to_fn): Remove loops that are outlined into fn
for now.
* tree-inline.c: Include cfgloop.h.
(initialize_cfun): Do not drop PROP_loops.
(copy_loops): New function.
(copy_cfg_body): Copy loop structure.
(tree_function_versioning): Initialize destination loop tree.
* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
(pass_parallelize_loops): Do IL verification.
* loop-init.c (loop_optimizer_init): Fixup loops if required.
* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
the CFG make sure we fixup loops as well.
* tree-ssa-tail-merge.c: Include cfgloop.h.
(replace_block_by): When merging loop latches mark loops for fixup.
* lto-streamer-out.c (output_struct_function_base): Drop
PROP_loops for now.
* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
* ipa-split.c: Include cfgloop.h.
(split_function): Add the new return block to the loop tree root.
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
whether we have removed the forwarder block.
(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
* cfgloop.h (place_new_loop): Declare.
* cfgloopmanip.c (place_new_loop): Export.
* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
(tree-switch-conversion.o): Likewise.
(tree-complex.o): Likewise.
(tree-inline.o): Likewise.
(tree-ssa-tailmerge.o): Likewise.
(ipa-split.o): Likewise.
(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
(tree-ssa-copy.o): Likewise.
* tree-switch-conversion.c: Include cfgloop.h
(process_switch): If we emit a bit-test cascade, schedule loops
for fixup.
* tree-complex.c: Include cfgloop.h.
(expand_complex_div_wide): Properly add new basic-blocks to loops.
* asan.c: Include cfgloop.h.
(create_cond_insert_point): Properly add new basic-blocks to
loops, schedule loop fixup.
* cfgloop.c (verify_loop_structure): Check that looks are not
marked for fixup.
* omp-low.c (expand_parallel_call): Properly add new basic-blocks
to loops.
(expand_omp_for_generic): Likewise.
(expand_omp_sections): Likewise.
(expand_omp_atomic_pipeline): Schedule loops for fixup.
* tree-ssa-copy.c: Include tree-scalar-evolution.h.
(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
is initialized, not when loops are present.
* tree-parloops.c (parallelize_loops): Remove checking here.
* passes.c (init_optimization_passes): Schedule a copy-propagation
pass before complete unrolling of inner loops.
* gcc.dg/tree-prof/update-loopch.c: Revert last change.
* gcc.dg/graphite/pr33766.c: Fix undefined behavior.
* gcc.dg/pr53265.c: Remove XFAILs.
* gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning.
* gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads.
From-SVN: r198333
|
|
2013-01-31 Richard Biener <rguenther@suse.de>
PR tree-optimization/56150
* tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
mixed store non-store stmts.
* gcc.dg/torture/pr56150.c: New testcase.
From-SVN: r195608
|
|
From-SVN: r195098
|
|
on the template class 'vec'.
This patch rewrites the old VEC macro-based interface into a new one
based on the template class 'vec'. The user-visible changes are
described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
I have tested the patch pretty extensively:
- Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
- Bootstraps with --enable-checking=release
- Bootstraps with --enable-checking=gc,gcac
- Basic builds on all targets (using contrib/config-list.mk).
We no longer access the vectors via VEC_* macros. The pattern is
"VEC_operation (T, A, V, args)" becomes "V.operation (args)".
The only thing I could not do is create proper ctors and dtors for the
vec class. Since these vectors are stored in unions, we
have to keep them as PODs (C++03 does not allow non-PODs in unions).
This means that creation and destruction must be explicit. There is a
new method vec<type, allocation, layout>::create() and another vec<type,
allocation, layout>::destroy() to allocate the internal vector.
For vectors that must be pointers, there is a family of free functions
that implement the operations that need to tolerate NULL vectors.
These functions all start with the prefix 'vec_safe_'. See the wiki
page for details.
The gengtype change removes the special handling for VEC() that used
to exist in gengtype. Additionally, it allows gengtype to recognize
templates of more than one argument and introduces the concept of an
undefined type (useful for template arguments that may or may not be
types).
When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
happens inside a type marked with GTY((user)). Otherwise, it will
emit an error.
Finally, gengtype rejects root types marked GTY((user)) that are not
first class pointers.
2012-11-16 Diego Novillo <dnovillo@google.com>
VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* vec.c (register_overhead): Convert it into
member function of vec_prefix.
(release_overhead): Likewise.
(calculate_allocation): Likewise.
(vec_heap_free): Remove.
(vec_gc_o_reserve_1): Remove.
(vec_heap_o_reserve_1): Remove.
(vec_stack_o_reserve_1): Remove.
(vec_stack_o_reserve_exact): Remove.
(register_stack_vec): New.
(stack_vec_register_index): New.
(unregister_stack_vec): New.
(vec_assert_fail): Remove.
* vec.h: Conditionally include ggc.h. Document conditional
hackery.
Update top-level documentation.
(ALONE_VEC_CHECK_INFO): Remove.
(VEC_CHECK_INFO): Remove.
(ALONE_VEC_CHECK_DECL): Remove.
(VEC_CHECK_DECL): Remove.
(ALONE_VEC_CHECK_PASS): Remove.
(VEC_CHECK_PASS): Remove.
(VEC_ASSERT): Remove.
(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
va_stack.
Mark fields alloc_ and num_ as protected.
(struct vec_t): Remove. Remove all function members.
(struct vl_embed): Declare.
(struct vl_ptr): Declare.
(free): Remove.
(reserve_exact): Remove.
(reserve): Remove.
(safe_splice): Remove.
(safe_push): Remove.
(safe_grow): Remove.
(safe_grow_cleared): Remove.
(safe_insert): Remove.
(DEF_VEC_I): Remove.
(DEF_VEC_ALLOC_I): Remove.
(DEF_VEC_P): Remove.
(DEF_VEC_ALLOC_P): Remove.
(DEF_VEC_O): Remove.
(DEF_VEC_ALLOC_O): Remove.
(DEF_VEC_ALLOC_P_STACK): Remove.
(DEF_VEC_ALLOC_O_STACK): Remove.
(DEF_VEC_ALLOC_I_STACK): Remove.
(DEF_VEC_A): Remove.
(DEF_VEC_ALLOC_A): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(VEC_length): Remove.
(VEC_empty): Remove.
(VEC_address): Remove.
(vec_address): Remove.
(VEC_last): Remove.
(VEC_index): Remove.
(VEC_iterate): Remove.
(VEC_embedded_size): Remove.
(VEC_embedded_init): Remove.
(VEC_free): Remove.
(VEC_copy): Remove.
(VEC_space): Remove.
(VEC_reserve): Remove.
(VEC_reserve_exact): Remove.
(VEC_splice): Remove.
(VEC_safe_splice): Remove.
(VEC_quick_push): Remove.
(VEC_safe_push): Remove.
(VEC_pop): Remove.
(VEC_truncate): Remove.
(VEC_safe_grow): Remove.
(VEC_replace): Remove.
(VEC_quick_insert): Remove.
(VEC_safe_insert): Remove.
(VEC_ordered_remove): Remove.
(VEC_unordered_remove): Remove.
(VEC_block_remove): Remove.
(VEC_lower_bound): Remove.
(VEC_alloc): Remove.
(VEC_qsort): Remove.
(va_heap): Declare.
(va_heap::default_layout): New typedef to vl_ptr.
(va_heap::reserve): New.
(va_heap::release): New.
(va_gc): Declare.
(va_gc::default_layout): New typedef to vl_embed.
(va_gc::reserve): New.
(va_gc::release): New.
(va_gc_atomic): Declare. Inherit from va_gc.
(va_stack): Declare.
(va_stack::default_layout): New typedef to vl_ptr.
(va_stack::alloc): New.
(va_stack::reserve): New.
(va_stack::release): New.
(register_stack_vec): Declare.
(stack_vec_register_index): Declare.
(unregister_stack_vec): Declare.
(vec<T, A = va_heap, L = typename A::default_layout>): Declare
empty vec template.
(vec<T, A, vl_embed>): Partial specialization for embedded
layout.
(vec<T, A, vl_embed>::allocated): New.
(vec<T, A, vl_embed>::length): New.
(vec<T, A, vl_embed>::is_empty): New.
(vec<T, A, vl_embed>::address): New.
(vec<T, A, vl_embed>::operator[]): New.
(vec<T, A, vl_embed>::last New.
(vec<T, A, vl_embed>::space): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::copy): New.
(vec<T, A, vl_embed>::splice): New.
(vec<T, A, vl_embed>::quick_push New.
(vec<T, A, vl_embed>::pop New.
(vec<T, A, vl_embed>::truncate): New.
(vec<T, A, vl_embed>::quick_insert): New.
(vec<T, A, vl_embed>::ordered_remove): New.
(vec<T, A, vl_embed>::unordered_remove): New.
(vec<T, A, vl_embed>::block_remove): New.
(vec<T, A, vl_embed>::qsort): New.
(vec<T, A, vl_embed>::lower_bound): New.
(vec<T, A, vl_embed>::embedded_size): New.
(vec<T, A, vl_embed>::embedded_init): New.
(vec<T, A, vl_embed>::quick_grow): New.
(vec<T, A, vl_embed>::quick_grow_cleared): New.
(vec_safe_space): New.
(vec_safe_length): New.
(vec_safe_address): New.
(vec_safe_is_empty): New.
(vec_safe_reserve): New.
(vec_safe_reserve_exact): New.
(vec_alloc): New.
(vec_free): New.
(vec_safe_grow): New.
(vec_safe_grow_cleared): New.
(vec_safe_iterate): New.
(vec_safe_push): New.
(vec_safe_insert): New.
(vec_safe_truncate): New.
(vec_safe_copy): New.
(vec_safe_splice): New.
(vec<T, A, vl_ptr>): New partial specialization for the space
efficient layout.
(vec<T, A, vl_ptr>::exists): New.
(vec<T, A, vl_ptr>::is_empty): New.
(vec<T, A, vl_ptr>::length): New.
(vec<T, A, vl_ptr>::address): New.
(vec<T, A, vl_ptr>::operator[]): New.
(vec<T, A, vl_ptr>::operator!=): New.
(vec<T, A, vl_ptr>::operator==): New.
(vec<T, A, vl_ptr>::last): New.
(vec<T, A, vl_ptr>::space): New.
(vec<T, A, vl_ptr>::iterate): New.
(vec<T, A, vl_ptr>::copy): New.
(vec<T, A, vl_ptr>::reserve): New.
(vec<T, A, vl_ptr>::reserve_exact): New.
(vec<T, A, vl_ptr>::splice): New.
(vec<T, A, vl_ptr>::safe_splice): New.
(vec<T, A, vl_ptr>::quick_push): New.
(vec<T, A, vl_ptr>::safe_push): New.
(vec<T, A, vl_ptr>::pop): New.
(vec<T, A, vl_ptr>::truncate): New.
(vec<T, A, vl_ptr>::safe_grow): New.
(vec<T, A, vl_ptr>::safe_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_grow): New.
(vec<T, A, vl_ptr>::quick_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_insert): New.
(vec<T, A, vl_ptr>::safe_insert): New.
(vec<T, A, vl_ptr>::ordered_remove): New.
(vec<T, A, vl_ptr>::unordered_remove): New.
(vec<T, A, vl_ptr>::block_remove): New.
(vec<T, A, vl_ptr>::qsort): New.
(vec<T, A, vl_ptr>::lower_bound): New.
(vec_stack_alloc): Define.
(FOR_EACH_VEC_SAFE_ELT): Define.
* vecir.h: Remove. Update all users.
* vecprim.h: Remove. Update all users.
Move uchar to coretypes.h.
* Makefile.in (VEC_H): Add $(GGC_H).
Remove vecir.h and vecprim.h dependencies everywhere.
2012-11-16 Diego Novillo <dnovillo@google.com>
* gengtype-lex.l (VEC): Remove.
Add characters in the set [\!\>\.-].
* gengtype-parse.c (token_names): Remove "VEC".
(require_template_declaration): Remove handling of VEC_TOKEN.
(type): Likewise.
Call create_user_defined_type when parsing GTY((user)).
* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
(write_state_undefined_type): New.
(write_state_type): Call write_state_undefined_type for
TYPE_UNDEFINED.
(read_state_type): Call read_state_undefined_type for
TYPE_UNDEFINED.
* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
(create_user_defined_type): Make extern.
(type_for_name): Factor out of resolve_typedef.
(create_undefined_type): New
(resolve_typedef): Call it when we cannot find a previous
typedef and the type is not a template.
(find_structure): Accept TYPE_UNDEFINED.
(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
default to false.
Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
ALLOWED_UNDEFINED_TYPES is set.
Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
(filter_type_name): Accept templates with more than one
argument.
(output_mangled_typename): Handle TYPE_UNDEFINED
(walk_type): Likewise.
(write_types_process_field): Likewise.
(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
should not be a user-defined type.
(write_types_local_user_process_field): Handle TYPE_ARRAY,
TYPE_NONE and TYPE_UNDEFINED.
(write_types_local_process_field): Likewise.
(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
(write_root): Reject user-defined types that are not pointers.
Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
and TYPE_PARAM_STRUCT.
(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
TYPE_ARRAY.
(dump_typekind): Handle TYPE_UNDEFINED.
* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
(create_user_defined_type): Declare.
(enum gty_token): Remove VEC_TOKEN.
2012-11-16 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* coretypes.h (uchar): Define.
* alias.c: Use new vec API in vec.h.
* asan.c: Likewise.
* attribs.c: Likewise.
* basic-block.h: Likewise.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfg.c: Likewise.
* cfganal.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloop.h: Likewise.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* compare-elim.c: Likewise.
* coverage.c: Likewise.
* cprop.c: Likewise.
* data-streamer.h: Likewise.
* dbxout.c: Likewise.
* dce.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* domwalk.h: Likewise.
* dse.c: Likewise.
* dwarf2cfi.c: Likewise.
* dwarf2out.c: Likewise.
* dwarf2out.h: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* except.h: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* fwprop.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* genattrtab.c: Likewise.
* genautomata.c: Likewise.
* genextract.c: Likewise.
* genopinit.c: Likewise
* ggc-common.c: Likewise.
* ggc.h: Likewise.
* gimple-low.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple.c: Likewise.
* gimple.h: Likewise.
* gimplify.c: Likewise.
* graph.c: Likewise.
* graphds.c: Likewise.
* graphds.h: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-poly.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-scop-detection.h: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* godump.c: Likewise.
* haifa-sched.c: Likewise.
* hw-doloop.c: Likewise.
* hw-doloop.h: Likewise.
* ifcvt.c: Likewise.
* insn-addr.h: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-inline.h: Likewise.
* ipa-prop.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-ref.c: Likewise.
* ipa-ref.h: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-utils.h: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* ira-int.h: Likewise.
* ira.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lra-lives.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.h: Likewise.
* lto-symtab.c: Likewise.
* mcf.c: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* opts-common.c: Likewise.
* opts-global.c: Likewise.
* opts.c: Likewise.
* opts.h: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* profile.h: Likewise.
* read-rtl.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regrename.c: Likewise.
* regrename.h: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* rtl.h: Likewise.
* sched-deps.c: Likewise.
* sched-int.h: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched-ir.h: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* sese.h: Likewise.
* statistics.h: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-browser.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-chrec.h: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-data-ref.h: Likewise.
* tree-dfa.c: Likewise.
* tree-diagnostic.c: Likewise.
* tree-dump.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-flow.h: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-iterator.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-optimize.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-streamer.c: Likewise.
* tree-streamer.h: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vectorizer.h: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* vmsdbgout.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/darwin.c: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000-c.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/spu/spu-c.c: Likewise.
* config/vms/vms.c: Likewise.
* config/vxworks.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.
From-SVN: r193595
|
|
2012-11-08 Christian Bruel <christian.bruel@st.com>
* tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.
Do not reset dead bb1->frequency.
From-SVN: r193350
|
|
* tree-ssa-tail-merge.c (find_duplicate): Do not consider
is_tm_ending_fndecl calls as mergable.
From-SVN: r193268
|
|
stored in the hash table.
Change hash_table to support a comparator type different from the
value type stored in the hash table. The 'find' functions now may
take a different type from the value type. This requires introducing
a second typedef into the Descriptor conceptual type. Change the
Descriptor concept to use typedefs value_type and compare_type instead
of T. Change all users to match.
Add usage documentation to hash-table.h.
Tested on x86-64.
Index: gcc/ChangeLog
2012-10-25 Lawrence Crowl <crowl@google.com>
* hash-table.h: Add usage documentation.
(template struct typed_free_remove): Clarify documentation.
Rename template parameter.
(struct typed_noop_remove): Likewise.
(descriptor concept): Change typedef T to value_type.
Add typedef compare_type. Use more precise template parameter name,
Descriptor instead of Descr. Update users to match.
(struct hash_table): Change 'find' parameters to use compare_type
instead of the value type.
From-SVN: r192823
|
|
2012-10-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/54902
* tree-ssa-pre.c (fini_eliminate): Return TODO.
(do_pre): Adjust.
(execute_fre): Likewise.
* tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable
blocks before computing dominators.
* g++.dg/torture/pr54902.C: New testcase.
From-SVN: r192804
|
|
of decomposed element type and...
2012-08-17 Richard Guenther <rguenther@suse.de>
* hash-table.h (class hash_table): Use a descriptor template
argument instead of decomposed element type and support
functions.
(struct pointer_hash): New generic typed pointer-hash.
(struct typed_free_remove, struct typed_noop_remove): Generic
hash_table support pieces.
* coverage.c (struct counts_entry): Add hash_table support
members.
* tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
* tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
SSA name by SSA_NAME_VAR hash.
(coalesce_ssa_name): Use it.
* tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
(expression_to_id): Adjust.
(struct expr_pred_trans_d): Add hash_table support.
(phi_translate_table): Adjust.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
(do_regular_insertion): Likewise.
* tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table
support.
(same_succ_htab): Adjust.
(find_same_succ_bb): Likewise.
(find_same_succ): Likewise.
(update_worklist): Likewise.
* tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
support.
(redirection_data): Adjust.
From-SVN: r190471
|
|
Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
changes the default bootstrap process so that stage 1 always builds with a C++
compiler.
Other than the bootstrap change, the patch makes no functional changes to the
compiler. Everything should build as it does now in trunk. The main
changes in this patch are:
1- Configuration changes.
2- Re-write of VEC.
3- Re-write of gengtype to support C++ templates and
user-provided marking functions.
4- New hash table class.
5- Re-write double_int.
6- Implement tree macros as inline functions so they can be
called from gdb.
As discussed before, several of these changes do not fully change
the call sites to use the new APIs.
The bootstrap changes have already been tested on a wide range of
targets (http://gcc.gnu.org/wiki/CppBuildStatus). Additionally,
I have tested the merged trunk on: x86_64-unknown-linux-gnu,
mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch.
* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
POSTSTAGE1_CONFIGURE_FLAGS.
* Makefile.in: Regenerate.
* configure.ac (ENABLE_BUILD_WITH_CXX): Remove. Update all users.
Force C++ when bootstrapping.
* configure: Regenerate.
libcpp/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure.ac: Likewise.
* configure: Regenerate.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge from cxx-conversion branch. New C++ hash table.
* include/symtab.h (typedef struct ht hash_table): Change the typedef
name to cpp_hash_table. Update all users of the typedef.
gcc/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* configure.ac (CXX_FOR_BUILD): Define and substitute.
(BUILD_CXXFLAGS): Define.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
Force all build to be with C++.
* Makefile.in (BUILD_CXXFLAGS): Use it.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure: Regenerate.
* config.in: Regenerate.
* doc/install.texi: Remove documentation for --enable-build-with-cxx
and --enable-build-poststage1-with-cxx.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Re-implement VEC in C++.
* vec.c (vec_heap_free): Convert into a template function.
(vec_gc_o_reserve_1): Make extern.
(vec_gc_p_reserve): Remove.
(vec_gc_p_reserve_exact): Remove.
(vec_gc_o_reserve): Remove.
(vec_gc_o_reserve_exact): Remove.
(vec_heap_o_reserve_1): Make extern.
(vec_heap_p_reserve): Remove.
(vec_heap_p_reserve_exact): Remove.
(vec_heap_o_reserve): Remove.
(vec_heap_o_reserve_exact): Remove.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
in the file.
(VEC): Define to vec_t<T>.
(vec_allocation_t): Define.
(struct vec_prefix): Move earlier in the file.
(vec_t<T>): New template.
(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
(DEF_VEC_A): Provide template instantiations for
GC/PCH markers that do not traverse the vector.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(vec_stack_free): Re-write as a template function.
(vec_reserve): New template function.
(vec_reserve_exact): New template function.
(vec_heap_free): New template function if GATHER_STATISTICS is
defined. Otherwise, macro that expands to free().
(VEC_length_1): New template function.
(VEC_length): Call it.
(VEC_empty_1): New template function.
(VEC_empty): Call it.
(VEC_address_1): New template function.
(VEC_address): Call it.
(VEC_last_1): New template function.
(VEC_last): Call it. Change return type to T&.
Change all users that used VEC_Os.
(VEC_index_1): New template function.
(VEC_index): Call it. Return a T& instead of a T*.
Update all callers that were using VEC_O before.
(VEC_iterate_1): New template function.
(VEC_iterate): Call it.
(VEC_embedded_size_1): New template function.
(VEC_embedded_size): Call it.
(VEC_embedded_init_1): New template function.
(VEC_embedded_init): Call it.
(VEC_alloc_1): New template function.
(VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to
do the allocation.
(VEC_free_1): New template function.
(VEC_free): Call it.
(VEC_copy_1): New template function.
(VEC_copy): Call it.
(VEC_space_1): New template function
(VEC_space): Call it.
(VEC_reserve_1): New template function.
(VEC_reserve): Call it.
(VEC_reserve_exact_1): New template function.
(VEC_reserve_exact): Call it.
(VEC_splice_1): New template function.
(VEC_splice): Call it.
(VEC_safe_splice_1): New template function.
(VEC_safe_splice): Call it.
(VEC_quick_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *. Update all callers
where T and T * are ambiguous.
(VEC_quick_push): Call it.
(VEC_safe_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *. Update all callers
where T and T * are ambiguous.
(VEC_safe_push): Call it.
(VEC_pop_1): New template function.
(VEC_pop): Call it.
(VEC_truncate_1): New template function.
(VEC_truncate): Call it.
(VEC_safe_grow_1): New template function.
(VEC_safe_grow): Call it.
(VEC_safe_grow_cleared_1): New template function.
(VEC_safe_grow_cleared): Call it.
(VEC_replace_1): New template function.
(VEC_replace): Call it. Always accept T instead of T*.
Update all callers that used VEC_Os.
(VEC_quick_insert_1): New template function.
(VEC_quick_insert): Call it.
(VEC_safe_insert_1): New template function.
(VEC_safe_insert): Call it.
(VEC_ordered_remove_1): New template function.
(VEC_ordered_remove): Call it.
(VEC_unordered_remove_1): New template function.
(VEC_unordered_remove): Call it.
(VEC_block_remove_1): New template function.
(VEC_block_remove): Call it.
(VEC_lower_bound_1): New template function.
(VEC_lower_bound): Call it.
(VEC_OP): Remove.
(DEF_VEC_FUNC_P): Remove.
(DEF_VEC_ALLOC_FUNC_P): Remove.
(DEF_VEC_NONALLOC_FUNCS_P): Remove.
(DEF_VEC_FUNC_O): Remove.
(DEF_VEC_ALLOC_FUNC_O): Remove.
(DEF_VEC_NONALLOC_FUNCS_O): Remove.
(DEF_VEC_ALLOC_FUNC_I): Remove.
(DEF_VEC_NONALLOC_FUNCS_I): Remove.
(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
(vec_reserve_exact): New template function.
* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
(def_vec_alloc): Remove. Update all callers.
* gengtype.c (filter_type_name): New.
(output_mangled_typename): Call it.
(write_func_for_structure): Likewise.
(write_types): Likewise.
(write_root): Likewise.
(write_typed_alloc_def): Likewise.
(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
(note_def_vec_alloc): Remove.
* gengtype.h (note_def_vec_alloc): Remove.
(DEFVEC_ALLOC): Remove token code.
* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
inside the insn traversal loop.
* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
* reg-stack.c (stack): Rename to STACK_PTR. Update all users.
* tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users.
* config/bfin/bfin.c (hwloop_optimize): Update some calls to
VEC_* for vectors of non-pointers.
* config/c6x/c6x.c (try_rename_operands): Likewise.
(reshuffle_units): Likewise.
* config/mips/mips.c (mips_multi_start): Likewise.
(mips_multi_add): Likewise.
(mips_multi_copy_insn): Likewise.
(mips_multi_set_operand): Likewise.
* hw-doloop.c (discover_loop): Likewise.
(discover_loops): Likewise.
(reorg_loops): Likewise.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. C++ support in gengtype.
* coretypes.h (gt_pointer_operator): Move from ...
* ggc.h: ... here.
* doc/gty.texi: Document support for C++ templates and
user-provided markers.
* gcc/gengtype-lex.l: Update copyright year.
Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
DEFVEC_I.
* gengtype-parse.c: Update copyright year.
(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
(require_template_declaration): New.
(typedef_name): Call it.
(type): Replace IS_UNION with KIND. Replace all users.
(def_vec): Remove. Update all users.
* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
(write_state_user_struct_type): New.
(write_state_type): Call it.
(read_state_user_struct_type): New.
(read_state_type): Call it.
* gengtype.c: Update copyright year.
(dump_pair): Move declaration to the top.
(dump_type): Likewise.
(dump_type_list): Likewise.
(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
(create_user_defined_type): New.
(resolve_typedef): Call it.
(new_structure): Replace argument ISUNION with KIND.
Change users to refer to KIND directly.
Update all callers.
(find_structure): Likewise.
(set_gc_used_type): Handle TYPE_USER_STRUCT.
(create_file): Update HDR to include new copyright year.
(struct walk_type_data): Add field IN_PTR_FIELD.
(output_mangled_typename): Handle TYPE_USER_STRUCT.
(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
Clear it afterwards.
Handle TYPE_USER_STRUCT.
(write_types_process_field): Handle TYPE_USER_STRUCT.
(get_type_specifier): Move earlier in the file.
(write_type_decl): New.
(write_marker_function_name): New.
(write_user_func_for_structure_ptr): New.
(write_user_func_for_structure_body): New.
(write_user_marking_functions): New.
(write_func_for_structure): Call write_marker_function_name
and write_type_decl.
Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
function directly.
Call write_user_marking_functions on TYPE_USER_STRUCTs.
(write_types_local_user_process_field): New.
(write_pch_user_walking_for_structure_body): New.
(write_pch_user_walking_functions): New.
(write_types_local_process_field): Handle TYPE_USER_STRUCT.
(write_local_func_for_structure): Do not call walk_type for
TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
(write_root): Handle TYPE_USER_STRUCT.
(vec_prefix_type): Remove. Update all users.
(note_def_vec): Remove. Update all users.
(dump_typekind): Handle TYPE_USER_STRUCT.
(dump_type): Initialize SEEN_TYPES, if needed.
Handle TYPE_USER_STRUCT.
(dump_everything): Do not initialize SEEN_TYPES.
* gengtype.h: Update copyright year.
(enum typekind): Add TYPE_USER_STRUCT.
(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
Convert into function.
Add an overload taking const_type_p.
Update all callers.
(new_structure): Change second field to type enum typekind.
Update all users.
(find_structure): Likewise.
(note_def_vec): Remove.
(DEFVEC_OP): Remove.
(DEFVEC_I): Remove.
* ggc-page.c (gt_ggc_mx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
* ggc-zone.c (gt_ggc_mx): Add entry points for marking
'const char *&' and 'unsigned char *&'.
* stringpool.c (gt_pch_nx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
Add an entry point for the overload taking arguments 'unsigned char
*', 'gt_pointer_operator' and 'void *'.
* vec.h (struct vec_prefix): Remove GTY marker.
(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
(gt_ggc_mx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
function.
(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
function.
* basic-block.h (struct edge_def): Mark GTY((user)).
Remove all GTY markers from fields.
(gt_ggc_mx): Declare.
(gt_pch_nx): Declare.
* tree-cfg.c (gt_ggc_mx): New.
(gt_pch_nx): New.
* gengtype-lex.l (USER_GTY): Add pattern for "user".
* gengtype-parse.c (option): Handle USER_GTY.
(opts_have): New.
(type): Call it.
If the keyword 'user' is used, do not walk the fields
of the structure.
* gengtype.h (USER_GTY): Add.
* doc/gty.texi: Update.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge cxx-conversion branch. Implement C++ hash table.
* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
* hash-table.c: Likewise.
* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
(static htab_t same_succ_htab): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(same_succ_print_traverse): Make extern ssa_.... Change callers.
Remove void* casting.
(same_succ_hash): Likewise.
(same_succ_equal): Likewise.
(same_succ_delete): Likewise.
* tree-ssa-threadupdate.c: Include hash-table.h.
(struct local_info): Rename to ssa_local_info_t to avoid overloading
the type name local_info with the variable name local_info.
(static htab_t redirection_data): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(redirection_data_hash): Make extern ssa_.... Change callers.
Remove void* casting.
(redirection_data_eq): Likewise.
(fix_duplicate_block_edges): Likewise.
(create_duplicates): Likewise.
(fixup_template_block): Likewise.
(redirect_edges): Likewise.
(lookup_redirection_data): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
* tree-ssa-ccp.c: Include hash-table.h.
(typedef gimple_htab): New. Uses hash_table. Replace specific uses
of htab_t with gimple_htab. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
(hash_ssa_name_by_var): Make extern. Remove void* casting.
(eq_ssa_name_by_var): Likewise.
(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
to hash_table. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* coverage.c: Include hash-table.h instead of hashtab.h.
(static htab_t counts_hash): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
of htab_... Remove void* casting.
(htab_counts_entry_eq): Likewise.
(htab_counts_entry_del): Likewise.
* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
(static htab_t expression_to_id): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(static htab_t phi_translate_table): Likewise.
(pre_expr_eq): Make extern ssa_.... Change callers.
Remove void* casting.
(pre_expr_hash): Likewise.
(expr_pred_trans_hash): Likewise.
(expr_pred_trans_eq): Likewise.
(alloc_expression_id): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
(lookup_expression_id): Likewise.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
* stringpool.c: Rename uses of libcpp typedef hash_table to
cpp_hash_table.
* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge from cxx-conversion branch. Re-write double_int in C++.
* hash-table.h
(typedef double_int): Change to struct (POD).
(double_int::make): New overloads for int to double-int conversion.
(double_int::mask): New.
(double_int::max_value): New.
(double_int::min_value): New.
(double_int::operator ++): New.
(double_int::operator --): New.
(double_int::operator *=): New.
(double_int::operator +=): New.
(double_int::operator -=): New.
(double_int::to_signed): New.
(double_int::to_unsigned): New.
(double_int::fits_unsigned): New.
(double_int::fits_signed): New.
(double_int::fits): New.
(double_int::trailing_zeros): New.
(double_int::popcount): New.
(double_int::multiple_of): New.
(double_int::set_bit): New.
(double_int::mul_with_sign): New.
(double_int::operator * (binary)): New.
(double_int::operator + (binary)): New.
(double_int::operator - (binary)): New.
(double_int::operator - (unary)): New.
(double_int::operator ~ (unary)): New.
(double_int::operator & (binary)): New.
(double_int::operator | (binary)): New.
(double_int::operator ^ (binary)): New.
(double_int::and_not): New.
(double_int::lshift): New.
(double_int::rshift): New.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::lrotate): New.
(double_int::rrotate): New.
(double_int::div): New.
(double_int::sdiv): New.
(double_int::udiv): New.
(double_int::mod): New.
(double_int::smod): New.
(double_int::umod): New.
(double_int::divmod): New.
(double_int::sdivmod): New.
(double_int::udivmod): New.
(double_int::ext): New.
(double_int::zext): New.
(double_int::sext): New.
(double_int::is_zero): New.
(double_int::is_one): New.
(double_int::is_minus_one): New.
(double_int::is_negative): New.
(double_int::cmp): New.
(double_int::ucmp): New.
(double_int::scmp): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int::max): New.
(double_int::smax): New.
(double_int::umax): New.
(double_int::min): New.
(double_int::smin): New.
(double_int::umin): New.
(double_int::operator ==): New.
(double_int::operator !=): New.
(shwi_to_double_int): Change implementation to use member function.
(double_int_minus_one): Likewise.
(double_int_zero): Likewise.
(double_int_one): Likewise.
(double_int_two): Likewise.
(double_int_ten): Likewise.
(uhwi_to_double_int): Likewise.
(double_int_to_shwi): Likewise.
(double_int_to_uhwi): Likewise.
(double_int_fits_in_uhwi_p): Likewise.
(double_int_fits_in_shwi_p): Likewise.
(double_int_fits_in_hwi_p): Likewise.
(double_int_mul): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_setbit): Likewise.
(double_int_ctz): Likewise.
(double_int_not): Likewise.
(double_int_ior): Likewise.
(double_int_and): Likewise.
(double_int_and_not): Likewise.
(double_int_xor): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_scmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_ext): Likewise.
(double_int_sext): Likewise.
(double_int_zext): Likewise.
(double_int_mask): Likewise.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_zero_p): Likewise.
(double_int_one_p): Likewise.
(double_int_minus_one_p): Likewise.
(double_int_equal_p): Likewise.
(double_int_popcount): Likewise.
* hash-table.c
(double_int_mask): Reuse implementation for double_int::mask.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_ext): Likewise.
(double_int_zext): Likewise.
(double_int_sext): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_scmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int_setbit): Reuse implementation for double_int::set_bit,
which avoids a name conflict with a macro.
(double_int_double_int_ctz): Reuse implementation for
double_int::trailing_zeros.
(double_int_fits_in_shwi_p): Reuse implementation for
double_int::fits_signed.
(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
(double_int_mul): Reuse implementation for binary
double_int::operator *.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Reuse implementation for unary
double_int::operator -.
(double_int_max_value): Likewise.
* fixed-value.c: Change to use member functions introduced above.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge cxx-conversion branch. Support tree macro calling
from gdb.
* tree.h (tree_check): New.
(TREE_CHECK): Use inline function above instead of __extension__.
(tree_not_check): New.
(TREE_NOT_CHECK): Use inline function above instead of __extension__.
(tree_check2): New.
(TREE_CHECK2): Use inline function above instead of __extension__.
(tree_not_check2): New.
(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
(tree_check3): New.
(TREE_CHECK3): Use inline function above instead of __extension__.
(tree_not_check3): New.
(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
(tree_check4): New.
(TREE_CHECK4): Use inline function above instead of __extension__.
(tree_not_check4): New.
(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
(tree_check5): New.
(TREE_CHECK5): Use inline function above instead of __extension__.
(tree_not_check5): New.
(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
(contains_struct_check): New.
(CONTAINS_STRUCT_CHECK): Use inline function above instead of
__extension__.
(tree_class_check): New.
(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
(tree_range_check): New.
(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
(omp_clause_subcode_check): New.
(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
__extension__.
(omp_clause_range_check): New.
(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
__extension__.
(expr_check): New.
(EXPR_CHECK): Use inline function above instead of __extension__.
(non_type_check): New.
(NON_TYPE_CHECK): Use inline function above instead of __extension__.
(tree_vec_elt_check): New.
(TREE_VEC_ELT_CHECK): Use inline function above instead of
__extension__.
(omp_clause_elt_check): New.
(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check): New.
(TREE_OPERAND_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check_code): New.
(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
__extension__.
(TREE_CHAIN): Simplify implementation.
(TREE_TYPE): Simplify implementation.
(tree_operand_length): Move for compilation dependences.
* gdbinit.in: (macro define __FILE__): New.
(macro define __LINE__): New.
(skip "tree.h"): New.
gcc/cp/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Re-write VEC in C++.
* call.c (add_function_candidate): Remove const qualifier
from call to VEC_index.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* go-gcc.cc: Likewise.
* go-system.h: Likewise.
From-SVN: r190402
|
|
2012-08-14 Richard Guenther <rguenther@suse.de>
* cfgexpand.c (expand_used_vars): Use virtual_operand_p.
* gimple-pretty-print.c (dump_phi_nodes): Likewise.
* gimple-streamer-out.c (output_bb): Likewise.
* graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
(rewrite_reductions_out_of_ssa): Likewise.
(rewrite_commutative_reductions_out_of_ss): Likewise.
* ipa-split.c (verify_non_ssa_vars): Likewise.
(consider_split): Likewise.
(visit_bb): Likewise.
(split_function): Likewise.
* lto-streamer-out.c (output_ssa_names): Likewise.
* sese.c (rename_uses): Likewise.
* tree-cfg.c (replace_uses_by): Likewise.
(gimple_merge_blocks): Likewise.
(gimple_cfg2dot): Likewise.
(verify_gimple_phi): Likewise.
(replace_ssa_name): Likewise.
(move_block_to_fn): Likewise.
* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
* tree-if-conv.c (if_convertible_phi_p): Likewise.
(predicate_scalar_phi): Likewise.
* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
(copy_phis_for_bb): Likewise.
* tree-loop-distribution.c (generate_loops_for_partition): Likewise.
(destroy_loop): Likewise.
* tree-outof-ssa.c (eliminate_useless_phis): Likewise.
(insert_backedge_copies): Likewise.
* tree-parloops.c (transform_to_exit_first_loop): Likewise.
(gather_scalar_reductions): Likewise.
(try_create_reduction_list): Likewise.
* tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
Likewise.
(scev_const_prop): Likewise.
* tree-ssa-ccp.c (debug_lattice_value): Likewise.
(get_default_value): Likewise.
(ccp_initialize): Likewise.
* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
* tree-ssa-copy.c (may_propagate_copy): Likewise.
(init_copy_prop): Likewise.
* tree-ssa-dce.c (propagate_necessity): Likewise.
(remove_dead_phis): Likewise.
(forward_edge_to_pdom): Likewise.
(eliminate_unnecessary_stmts): Likewise.
* tree-ssa-live.c (partition_view_init): Likewise.
(remove_unused_locals): Likewise.
(register_ssa_partition_check): Likewise.
* tree-ssa-loop-im.c (movement_possibility): Likewise.
(move_computations_stmt): Likewise.
* tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
(record_invariant): Likewise.
(find_interesting_uses_outside): Likewise.
(determine_set_costs): Likewise.
* tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
(find_uses_to_rename_use): Likewise.
(check_loop_closed_ssa_use): Likewise.
(rewrite_phi_with_iv): Likewise.
(canonicalize_loop_ivs): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-pre.c (make_values_for_phi): Likewise.
(compute_avail): Likewise.
(eliminate): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
* tree-ssa-reassoc.c (phi_rank): Likewise.
* tree-ssa-strlen.c (strlen_enter_block): Likewise.
* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
(ipa_pta_execute): Likewise.
* tree-ssa-tail-merge.c (same_succ_hash): Likewise.
(release_last_vdef): Likewise.
(same_phi_alternatives_1): Likewise.
(bb_has_non_vop_phi): Likewise.
(vop_phi): Likewise.
* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
Likewise.
* tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
(execute_late_warn_uninitialized): Likewise.
* tree-ssa.c (verify_ssa_name): Likewise.
(verify_phi_args): Likewise.
(verify_ssa): Likewise.
* tree-stdarg.c (execute_optimize_stdarg): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_can_advance_ivs_p): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
* tree-vrp.c (remove_range_assertions): Likewise.
* value-prof.c (gimple_divmod_values_to_profile): Likewise.
From-SVN: r190385
|
|
2012-08-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50672
Revert
2012-08-01 Richard Guenther <rguenther@suse.de>
* tree-ssa-tail-merge.c (release_last_vdef): Remove.
(replace_block_by): Adjust.
* g++.dg/torture/pr50672.C: New testcase.
From-SVN: r190070
|
|
2012-08-01 Richard Guenther <rguenther@suse.de>
* graphite-clast-to-gimple.c (translate_clast_user): Rename
virtual operands.
* sese.c (graphite_copy_stmts_from_block): Do not rename virtual
operands here.
* tree-call-cdce.c (tree_call_cdce): Use
mark_virtual_operands_for_renaming.
* tree-eh.c (sink_clobbers): Simplify.
* tree-flow.h (mark_sym_for_renaming): Remove.
(mark_virtual_operands_for_renaming): New function.
* tree-if-conv.c (tree_if_conversion): Use
mark_virtual_operands_for_renaming.
* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
* tree-into-ssa.c (mark_sym_for_renaming): Remove.
(mark_virtual_operands_for_renaming): New function.
* tree-loop-distribution.c (tree_loop_distribution): Use
mark_virtual_operands_for_renaming.
* tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
update stmts, use mark_virtual_operands_for_renaming.
* tree-ssa-tail-merge.c (release_last_vdef): Remove.
(replace_block_by): Adjust.
(tail_merge_optimize): Use mark_virtual_operands_for_renaming.
* tree-tailcall.c (tree_optimize_tail_calls_1): Use
mark_virtual_operands_for_renaming.
* tree-vect-slp.c (vect_slp_transform_bb): Likewise.
* tree-vectorizer.c (vectorize_loops): Likewise.
From-SVN: r190034
|
|
gcc/
* system.h (dump_file): Do not define.
* tree-pass.h: Include dumpfile.h, which is a new file containing...
(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
dump_flag_name, dump_file, dump_flags, dump_file_name,
get_dump_file_info, struct dump_file_info): all of this, moved to...
* dumpfile.h: Here, new file.
* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
(dump_stmt): Remove prototype for C++ specific function.
(dump_enumerated_decls): Move prototype from here...
* tree-flow.h (dump_enumerated_decls): ... to here.
(get_ref_base_and_extent) Move prototype from here ...
* tree.h (get_ref_base_and_extent) ... to here.
* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
gimple-pretty-print.h is enough. Do not include tree-dump.h,
include timevar.h and dumpfile.h instead.
(struct numbered_tree_d, compare_decls_by_uid,
dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
dump_enumerated_decls_push, dump_enumerated_decls):... to here.
Do not include timevar.h.
* tree.c: Do not include timevar.h.
* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
timevar.h.
(dump_cfg_stats): Use current_function_name.
(gimple_cfg2vcg): Likewise.
(dump_function_to_file): Likewise.
* df-scan.c: Do not include tree-pass.h and timevar.h.
Include dumpfile.h.
(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
use print_current_pass.
* df-problems.c: Include dumpfile.h.
Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
leads to errors in the code not selected.
(df_note_compute): Do not print_rtl_with_bb here. Fix compilation
bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
* lcm.c: Include dumpfile.h.
Remove obsolete include of insn-attr.h.
* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
missing probability notes.
* stmt.c: Include dumpfile.h.
(emit_case_decision_tree): Re-enable printing expand details only
if TDF_DETAILS.
* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
function.c, fwprop.c, gcse.c, gimple-fold.c,
gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
graphite-dependences.c, graphite-interchange.c,
graphite-optimize-isl.c, graphite-poly.c,
graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
loop-unroll.c, loop-unswitch.c, lower-subreg.c,
lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
tree-mudflap.c, tree-nrv.c, tree-object-size.c,
tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-switch-conversion.c, tree-tailcall.c,
tree-vect-data-refs.c, tree-vect-loop.c,
tree-vect-loop-manip.c, tree-vectorizer.c,
tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
only if needed. If tree-pass.h is included, do not include timevar.h
and dumpfile.h. If tree-pass.h is not included but dump_file, or
dump_flags, or the TDF_* flags are used, include dumpfile.h.
If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
Remove assorted unnecessary includes.
* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
Include dumpfile.h.
* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
spu/t-spu-elf: Fix dependencies.
c-family/
* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
* c-ada-spec.c: Likewise.
* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
c/
* c-decl.c: Include dumpfile.h instead of tree-dump.h.
* Make-lang.in: Fix dependencies.
cp/
* dump.c (dump_stmt): Moved here from c-dump.c.
* optimize.c: Include dumpfile.h instead of tree-dump.h.
* class.c: Likewise.
* decl2.c: Likewise.
* Make-lang.in: Fix dependencies.
fortran/
* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
* Make-lang.in: Fix dependencies.
java/
* java-gimplify.c Include dumpfile.h instead of tree-dump.h
* Make-lang.in: Fix dependencies.
lto/
* lto.c: Do not include timevar.h.
* Make-lang.in: Fix dependencies.
ada/
* gcc-interface/utils.c: Include timevar.h.
* Make-lang.in: Fix dependencies.
From-SVN: r189519
|
|
2012-07-16 Dehao Chen <dehao@google.com>
Revert
2012-07-10 Dehao Chen <dehao@google.com>
* tree.h (phi_arg_d): New field.
* tree-flow-inline.h (gimple_phi_arg_block): New function.
(gimple_phi_arg_block_from_edge): New function.
(gimple_phi_arg_set_block): New function.
(gimple_phi_arg_has_block): New function.
(redirect_edge_var_map_block): New function.
* tree-flow.h (_edge_var_map): New field.
* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
redirect_edge_var_map_add.
* tree-outof-ssa.c (_elim_graph): New field.
(insert_partition_copy_on_edge): New parameter.
(insert_value_copy_on_edge): New parameter.
(insert_rtx_to_part_on_edge): New parameter.
(insert_part_to_rtx_on_edge): New parameter.
(elim_graph_add_edge): New parameter.
(elim_graph_remove_succ_edge): New parameter.
(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
(new_elim_graph): Add block debug info.
(clear_elim_graph): Likewise.
(delete_elim_graph): Likewise.
(elim_graph_add_node): Likewise.
(elim_graph_add_edge): Likewise.
(elim_graph_remove_succ_edge): Likewise.
(eliminate_build): Likewise.
(elim_forward): Likewise.
(elim_unvisited_predecessor): Likewise.
(elim_backward): Likewise.
(elim_create): Likewise.
(eliminate_phi): Likewise.
(insert_backedge_copies): Likewise.
* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
add_phi_arg.
(rewrite_add_phi_arguments): Likewise.
* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
* tree-ssa-tail-merge.c (replace_block_by): Likewise.
* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
* tree-ssa-loop-manip.c (create_iv): Likewise.
(add_exit_phis_edge): Likewise.
(split_loop_exit_edge): Likewise.
(copy_phi_node_args): Likewise.
(tree_transform_and_unroll_loop): Likewise.
* value-prof.c (gimple_ic): Likewise.
(gimple_stringop_fixed_value): Likewise.
* tree-tailcall.c (add_successor_phi_arg): Likewise.
(eliminate_tail_call): Likewise.
(create_tailcall_accumulator): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* tree-phinodes.c (add_phi_arg): Likewise.
(make_phi_node): Likewise.
(resize_phi_node): Likewise.
(remove_phi_arg_num): Likewise.
* omp-low.c (expand_parallel_call): Likewise.
(expand_omp_for_static_chunk): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
Likewise.
(slpeel_update_phi_nodes_for_guard1): Likewise.
(slpeel_update_phi_nodes_for_guard2): Likewise.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(set_prologue_iterations): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_loop_versioning): Likewise.
* tree-parloops.c (create_phi_for_local_result): Likewise.
(transform_to_exit_first_loop): Likewise.
(create_parallel_loop): Likewise.
* ipa-split.c (split_function): Likewise.
* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
(vect_create_epilog_for_reduction): Likewise.
* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
(cond_if_else_store_replacement_1): Likewise.
* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
(remove_forwarder_block_with_phi): Likewise.
* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
* tree-predcom.c (initialize_root_vars): Likewise.
(initialize_root_vars_lm): Likewise.
* sese.c (sese_add_exit_phis_edge): Likewise.
* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
* tree-ssa.c (flush_pending_stmts): Likewise.
(redirect_edge_var_map_add): Likewise.
(ssa_redirect_edge): Likewise.
* gimple-streamer-in.c (input_phi): Likewise.
* tree-vect-stmts.c (vectorizable_load): Likewise.
* tree-inline.c (copy_phis_for_bb): Likewise.
* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
* tree-switch-conversion.c (fix_phi_nodes): Likewise.
* tree-cfg.c (reinstall_phi_args): Likewise.
(gimple_make_forwarder_block): Likewise.
(add_phi_args_after_copy_edge): Likewise.
(gimple_duplicate_sese_tail): Likewise.
From-SVN: r189518
|
|
2012-07-10 Dehao Chen <dehao@google.com>
* tree.h (phi_arg_d): New field.
* tree-flow-inline.h (gimple_phi_arg_block): New function.
(gimple_phi_arg_block_from_edge): New function.
(gimple_phi_arg_set_block): New function.
(gimple_phi_arg_has_block): New function.
(redirect_edge_var_map_block): New function.
* tree-flow.h (_edge_var_map): New field.
* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block
as used.
* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
redirect_edge_var_map_add.
* tree-outof-ssa.c (_elim_graph): New field.
(insert_partition_copy_on_edge): New parameter.
(insert_value_copy_on_edge): New parameter.
(insert_rtx_to_part_on_edge): New parameter.
(insert_part_to_rtx_on_edge): New parameter.
(elim_graph_add_edge): New parameter.
(elim_graph_remove_succ_edge): New parameter.
(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
(new_elim_graph): Add block debug info.
(clear_elim_graph): Likewise.
(delete_elim_graph): Likewise.
(elim_graph_add_node): Likewise.
(elim_graph_add_edge): Likewise.
(elim_graph_remove_succ_edge): Likewise.
(eliminate_build): Likewise.
(elim_forward): Likewise.
(elim_unvisited_predecessor): Likewise.
(elim_backward): Likewise.
(elim_create): Likewise.
(eliminate_phi): Likewise.
(insert_backedge_copies): Likewise.
* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
add_phi_arg.
(rewrite_add_phi_arguments): Likewise.
* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
* tree-ssa-tail-merge.c (replace_block_by): Likewise.
* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
* tree-ssa-loop-manip.c (create_iv): Likewise.
(add_exit_phis_edge): Likewise.
(split_loop_exit_edge): Likewise.
(copy_phi_node_args): Likewise.
(tree_transform_and_unroll_loop): Likewise.
* value-prof.c (gimple_ic): Likewise.
(gimple_stringop_fixed_value): Likewise.
* tree-tailcall.c (add_successor_phi_arg): Likewise.
(eliminate_tail_call): Likewise.
(create_tailcall_accumulator): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* tree-phinodes.c (add_phi_arg): Likewise.
(make_phi_node): Likewise.
(resize_phi_node): Likewise.
(remove_phi_arg_num): Likewise.
* omp-low.c (expand_parallel_call): Likewise.
(expand_omp_for_static_chunk): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
Likewise.
(slpeel_update_phi_nodes_for_guard1): Likewise.
(slpeel_update_phi_nodes_for_guard2): Likewise.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(set_prologue_iterations): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_loop_versioning): Likewise.
* tree-parloops.c (create_phi_for_local_result): Likewise.
(transform_to_exit_first_loop): Likewise.
(create_parallel_loop): Likewise.
* ipa-split.c (split_function): Likewise.
* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
(vect_create_epilog_for_reduction): Likewise.
* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
(cond_if_else_store_replacement_1): Likewise.
* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
(remove_forwarder_block_with_phi): Likewise.
* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
* tree-predcom.c (initialize_root_vars): Likewise.
(initialize_root_vars_lm): Likewise.
* sese.c (sese_add_exit_phis_edge): Likewise.
* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
* tree-ssa.c (flush_pending_stmts): Likewise.
(redirect_edge_var_map_add): Likewise.
(ssa_redirect_edge): Likewise.
* gimple-streamer-in.c (input_phi): Likewise.
* tree-vect-stmts.c (vectorizable_load): Likewise.
* tree-inline.c (copy_phis_for_bb): Likewise.
* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
* tree-switch-conversion.c (fix_phi_nodes): Likewise.
* tree-cfg.c (reinstall_phi_args): Likewise.
(gimple_make_forwarder_block): Likewise.
(add_phi_args_after_copy_edge): Likewise.
(gimple_duplicate_sese_tail): Likewise.
From-SVN: r189402
|
|
2012-07-06 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/52009
* tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
value numbers of gimple_vdef.
* tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
prototype.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
(vn_reference_insert): Add and handle vdef parameter.
(visit_reference_op_load): Add argument to vn_reference_insert call.
(visit_reference_op_store): Find value number of vdef of store. Insert
value number of vdef of store.
From-SVN: r189321
|
|
* output.h (__gcc_host_wide_int__): Move to hwint.h.
(decl_default_tls_model): Move to tree.h
(dump_file): Move to system.h.
(default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
dbxout_stab_value_zero, dbxout_stab_value_label_diff,
dbxout_stab_value_internal_label,
dbxout_stab_value_internal_label_diff): Move from here ...
* dbxout.h: ... to here.
* system.h (dump_file): Moved here from output.h.
* hwint.h (__gcc_host_wide_int__): Moved here from output.h.
* tree.h (decl_default_tls_model): Moved here from output.h.
* varasm.c (default_stabs_asm_out_destructor,
default_stabs_asm_out_constructor): Move from here ...
* dbxout.c: ... to here.
* gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
* collect2.h (dump_file): Rename to dump_ld_file.
* collect2.c: Likewise.
* tlink.c: Likewise.
* alias.c: Do not include output.h.
* auto-inc-dec.c: Likewise.
* bt-load.c: Likewise.
* caller-save.c: Likewise.
* cfg.c: Likewise.
* cfgbuild.c: Likewise.
* cfgcleanup.c: Likewise.
* cfglayout.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.c: Likewise.
* cgraphclones.c: Likewise.
* combine-stack-adj.c: Likewise.
* combine.c: Likewise.
* cprop.c: Likewise.
* cse.c: Likewise.
* cselib.c: Likewise.
* dbgcnt.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dojump.c: Likewise.
* fwprop.c: Likewise.
* gcse.c: Likewise.
* graph.c: Likewise.
* haifa-sched.c: Likewise.
* hw-doloop.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-reference.c: Likewise.
* ipa-utils.c: Likewise.
* ira-build.c: Likewise.
* ira-emit.c: Likewise.
* lcm.c: Likewise.
* loop-doloop.c: Likewise.
* loop-invariant.c: Likewise.
* loop-iv.c: Likewise.
* loop-unroll.c: Likewise.
* loop-unswitch.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-in.c: Likewise.
* lto-streamer-in.c: Likewise.
* mcf.c: Likewise.
* mode-switching.c: Likewise.
* postreload-gcse.c: Likewise.
* postreload.c: Likewise.
* predict.c: Likewise.
* profile.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regcprop.c: Likewise.
* regmove.c: Likewise.
* regstat.c: Likewise.
* reload1.c: Likewise.
* sched-ebb.c: Likewise.
* sel-sched-dump.c: Likewise.
* simplify-rtx.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* tracer.c: Likewise.
* tree-affine.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-dfa.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-nomudflap.c: Likewise.
* tree-optimize.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-loop-unswitch.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* value-prof.c: Likewise.
* var-tracking.c: Likewise.
* web.c: Likewise.
* config/m32r/m32r.c: Include dbxout.h.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* Makefile.in: Fix dependencies.
* config/rs6000/t-rs5000: Likewise.
c-family/
* c-ada-spec.c: Do not include output.h.
* c-semantics.c: Likewise.
cp/
* call.c: Do not include output.h.
* class.c: Likewise.
* except.c: Likewise.
* friend.c: Likewise.
* init.c: Likewise.
* lex.c: Likewise.
* method.c: Likewise.
* parser.c: Likewise.
* pt.c: Likewise.
* rtti.c: Likewise.
* search.c: Likewise.
objc/
* objc-act.c: Do not include output.h.
fortran/
* trans-common.c: Do not include output.h.
* trans-decl.c: Likewise.
java/
* resource.c: Do not include output.h.
From-SVN: r188082
|
|
same_succ_hash, with local_def inlined.
2012-04-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
of find_edge.
(gsi_advance_fw_nondebug_nonlocal): New function.
(local_def): Removed function.
(same_succ_hash): Use stmt_local_def.
(same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
(gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
From-SVN: r186447
|