1. 21 Jun, 2010 1 commit
    • Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H). · 2b21299c
      	* Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
      	* genattrtab.c (check_tune_attr, find_tune_attr): New functions.
      	(make_automaton_attrs): If find_tune_attr returns non-NULL,
      	write separate internal_dfa_insn_code_* and insn_default_latency_*
      	functions for each attribute's value and emit init_sched_attrs
      	function and function pointers.
      	* genattr.c (const_attrs, reservations): New variables.
      	(gen_attr): Add const attributes to const_attrs vector.
      	(check_tune_attr, find_tune_attr): New functions.
      	(main): Add reservations to reservations vector.  If find_tune_attr
      	returns true, add prototype for init_sched_attrs and make
      	internal_dfa_insn_code and insn_default_latency function pointers,
      	otherwise define init_sched_attrs as dummy macro.
      	* cfgexpand.c: Include insn-attr.h.
      	(gimple_expand_cfg): Call init_sched_attrs.
      
      From-SVN: r161093
      Jakub Jelinek committed
  2. 25 May, 2010 1 commit
    • function.h (struct function): Add can_throw_non_call_exceptions bit. · 8f4f502f
      	* function.h (struct function): Add can_throw_non_call_exceptions bit.
      	* lto-streamer-in.c (input_function): Stream it in.
      	* lto-streamer-out.c (output_function): Stream it out.
      	* function.c (allocate_struct_function): Set it.
      	(expand_function_end): Substitute cfun->can_throw_non_call_exceptions
      	for flag_non_call_exceptions.
      	* cfgbuild.c (control_flow_insn_p): Likewise.
      	(make_edges): Likewise.
      	* cfgexpand.c (expand_stack_alignment): Likewise.
      	* combine.c (distribute_notes): Likewise.
      	* cse.c (cse_extended_basic_block): Likewise.
      	* except.c (insn_could_throw_p): Likewise.
      	* gcse.c (simple_mem): Likewise.
      	* ipa-pure-const.c (check_call): Likewise.
      	(check_stmt ): Likewise.
      	* lower-subreg.c (lower-subreg.c): Likewise.
      	* optabs.c (emit_libcall_block): Likewise.
      	(prepare_cmp_insn): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
      	* postreload.c (rest_of_handle_postreload): Likewise.
      	* reload1.c (reload_as_needed): Likewise.
      	(emit_input_reload_insns): Likewise.
      	(emit_output_reload_insns): Likewise.
      	(fixup_abnormal_edges): Likewise.
      	* sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
      	* store-motion.c (find_moveable_store): Likewise.
      	* tree-eh.c (stmt_could_throw_p): Likewise.
      	(tree_could_throw_p): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	* config/arm/arm.c (arm_expand_prologue): Likewise.
      	(thumb1_expand_prologue): Likewise.
      	* config/rx/rx.md (cbranchsf4): Likewise.
      	(cmpsf): Likewise.
      	* config/s390/s390.c (s390_emit_prologue): Likewise.
      	* tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
      	(inline_forbidden_into_p): New predicate.
      	(expand_call_inline): Use it to forbid inlining.
      	(tree_can_inline_p): Likewise.
      
      From-SVN: r159847
      Eric Botcazou committed
  3. 22 May, 2010 1 commit
    • coretypes.h (struct simple_bitmap_def, [...]): New core types. · 7a8cba34
      gcc/ChangeLog:
      	* coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
      	New core types.
      	* sbitmap.h (struct sbitmap_def): Do not typedef here.
      	* sbitmap.c: Include sbitmap.h.
      	* basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
      	hard-reg-set.h.  Split everything related to regsets out from here...
      	* regset.h: ...to here.  New file.
      	* df.h: Include regset.h and sbitmap.h.
      	* tree-flow.h: Likewise.
      	* cfgloop.h: Likewise.
      	* except.h: Do not include sbitmap.h.  Include hashtab.h.
      	* cgraph.h: Include vec.h and function.h.
      	* reload.h (struct insn_chain): Change types of live_throughout
      	and dead_or_set from regset_head to bitmap_head.
      	(compute_use_by_pseudos): Be defined also if regset.h is not included.
      	* ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
      	spilled_regs from regset_head to bitmap_head to avoid dependency
      	in regset.h.
      	* sel-sched-ir.h: Include regset.h.
      	* reload.c: Include df.h before reload.h.
      	* caller-save.c: Likewise.
      	* reload1.c: Likewise.
      	* ira.c: Likewise.
      	(mark_elimination): Update type of r to bitmap, consistent with
      	DF_LR_IN.
      	* dominance.c: Include bitmap.h.
      	* modulo-sched.c: Include df.h.
      	* cfganal.c: Include bitmap.h and sbitmap.h.
      	* cfgbuild.c: Include sbitmap.h.
      	* lcm.c: Include sbitmap.h.
      	* gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
      	* domwalk.c: Include sbitmap.h, exclude ggc.h.
      	* cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
      	* cselib.c: Include bitmap.h.
      	* tree-optimize.c: Include regset.h.
      	* stmt.c: Include bitmap.h.
      	* Makefile.in: Update dependencies.
      
      cp/ChangeLog
      	* semantics.c: Include bitmap.h.
      	* Make-lang.in: Update dependencies.
      
      From-SVN: r159746
      Steven Bosscher committed
  4. 21 May, 2010 1 commit
    • diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or langhooks-def.h. · cf835838
      	* diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
      	langhooks-def.h.
      	(diagnostic_initialize): Initialize x_data not last_function.
      	(diagnostic_report_current_function): Move to tree-diagnostic.c.
      	(default_diagnostic_starter): Call
      	diagnostic_report_current_module not
      	diagnostic_report_current_function.
      	(diagnostic_report_diagnostic): Initialize x_data not
      	abstract_origin.
      	(verbatim): Likewise.
      	* diagnostic.h (struct diagnostic_info): Change abstract_origin to
      	x_data.
      	(struct diagnostic_context): Change last_function to x_data.
      	(diagnostic_auxiliary_data): Replace with
      	diagnostic_context_auxiliary_data and
      	diagnostic_info_auxiliary_data.
      	(diagnostic_last_function_changed, diagnostic_set_last_function,
      	diagnostic_report_current_function): Move to tree-diagnostic.h.
      	(print_declaration, dump_generic_node, print_generic_stmt,
      	print_generic_stmt_indented, print_generic_expr,
      	print_generic_decl, debug_c_tree, dump_omp_clauses,
      	print_call_name, debug_generic_expr, debug_generic_stmt,
      	debug_tree_chain, default_tree_printer): Move to
      	tree-pretty-print.h.
      	(debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
      	print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
      	gimple-pretty-print.h.
      	* pretty-print.c: Don't include tree.h
      	(pp_base_format): Don't handle %K here.
      	(pp_base_tree_identifier): Move to tree-pretty-print.c.
      	* pretty-print.h (text_info): Change abstract_origin to x_data.
      	(pp_tree_identifier, pp_unsupported_tree,
      	pp_base_tree_identifier): Move to tree-pretty-print.h.
      	* gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
      	tree-pretty-print.h: New files.
      	* tree-pretty-print.c: Include tree-pretty-print.h.
      	(percent_K_format): New.  Moved from pretty-print.c.
      	(pp_base_tree_identifier): Move from pretty-print.c.
      	* c-objc-common.c: Include tree-pretty-print.h.
      	(c_tree_printer): Handle %K here.
      	* langhooks.c: Include tree-diagnostic.h.
      	(lhd_print_error_function): Use diagnostic_abstract_origin macro.
      	* toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
      	(default_tree_printer): Handle %K using percent_K_format.
      	(general_init): Use default_tree_diagnostic_starter.
      	* tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
      	(free_lang_data): Use default_tree_diagnostic_starter.
      	* c-pretty-print.c: Include tree-pretty-print.h.
      	* cfgexpand.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* cgraphunit.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* dwarf2out.c: Include tree-pretty-print.h.
      	* except.c: Include tree-pretty-print.h.
      	* gimple-pretty-print.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* gimplify.c: Include tree-pretty-print.h.
      	* graphite-poly.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* ipa-cp.c: Include tree-pretty-print.h.
      	* ipa-inline.c: Include gimple-pretty-print.h.
      	* ipa-prop.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* ipa-pure-const.c: Include gimple-pretty-print.h.
      	* ipa-struct-reorg.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* ipa-type-escape.c: Include tree-pretty-print.h.
      	* print-rtl.c: Include tree-pretty-print.h.
      	* print-tree.c: Include gimple-pretty-print.h.
      	* sese.c: Include tree-pretty-print.h.
      	* tree-affine.c: Include tree-pretty-print.h.
      	* tree-browser.c: Include tree-pretty-print.h.
      	* tree-call-cdce.c: Include gimple-pretty-print.h.
      	* tree-cfg.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-chrec.c: Include tree-pretty-print.h.
      	* tree-data-ref.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-dfa.c: Include tree-pretty-print.h.
      	* tree-if-conv.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-inline.c: Include tree-pretty-print.h.
      	* tree-into-ssa.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-nrv.c: Include tree-pretty-print.h.
      	* tree-object-size.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-outof-ssa.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-parloops.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-predcom.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-scalar-evolution.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-sra.c: Include tree-pretty-print.h.
      	* tree-ssa-address.c: Include tree-pretty-print.h.
      	* tree-ssa-alias.c: Include tree-pretty-print.h.
      	* tree-ssa-ccp.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-coalesce.c: Include tree-pretty-print.h.
      	* tree-ssa-copy.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-copyrename.c: Include tree-pretty-print.h.
      	* tree-ssa-dce.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-dom.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-dse.c: Include gimple-pretty-print.h.
      	* tree-ssa-forwprop.c: Include tree-pretty-print.h.
      	* tree-ssa-ifcombine.c: Include tree-pretty-print.h.
      	* tree-ssa-live.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-loop-im.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-loop-niter.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
      	* tree-ssa-math-opts.c: Include gimple-pretty-print.h.
      	* tree-ssa-operands.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-phiprop.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-pre.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-propagate.c: Include gimple-pretty-print.h.
      	* tree-ssa-reassoc.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-sccvn.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-sink.c: Include gimple-pretty-print.h.
      	* tree-ssa-ter.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-ssa-uninit.c: Include gimple-pretty-print.h.
      	* tree-ssa.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-stdarg.c: Include gimple-pretty-print.h.
      	* tree-switch-conversion.c: Include gimple-pretty-print.h.
      	* tree-tailcall.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vect-data-refs.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vect-loop-manip.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vect-loop.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vect-patterns.c: Include gimple-pretty-print.h.
      	* tree-vect-slp.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vect-stmts.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* tree-vectorizer.c: Include tree-pretty-print.h.
      	* tree-vrp.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* value-prof.c: Include tree-pretty-print.h and
      	gimple-pretty-print.h.
      	* var-tracking.c: Include tree-pretty-print.h.
      	* Makefile.in (OBJS-common): Add tree-diagnostic.o.
      	(tree-diagnostic.o): New dependencies.
      	(c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
      	tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
      	tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
      	tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
      	tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
      	tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
      	tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
      	tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
      	tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
      	tree-ssa-address.o, tree-ssa-loop-niter.o,
      	tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
      	tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
      	tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
      	gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
      	tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
      	tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
      	tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
      	tree-parloops.o, tree-stdarg.o, tree-object-size.o,
      	gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
      	toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
      	ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
      	ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
      	tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
      	tree-switch-conversion.o, var-tracking.o, value-prof.o,
      	cfgexpand.o, pretty-print.o): Update dependencies.
      
      cp:
      	* error.c: Include tree-diagnostic.h and tree-pretty-print.h.
      	(cp_print_error_function): Use diagnostic_abstract_origin macro.
      	(cp_printer): Handle %K here using percent_K_format.
      	* cxx-pretty-print.c: Include tree-pretty-print.h.
      	* Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
      	dependencies.
      
      From-SVN: r159685
      Joseph Myers committed
  5. 14 May, 2010 1 commit
  6. 22 Apr, 2010 1 commit
    • re PR middle-end/29274 (not using mulsidi3) · 5b58b39b
      gcc/
      	PR middle-end/29274
      	* optabs.h (expand_widening_mult): Declare.
      	* tree-pass.h (pass_optimize_widening_mul): Declare.
      	* tree-ssa-math-opts.c (execute_optimize_widening_mul,
      	gate_optimize_widening_mul): New static functions.
      	(pass_optimize_widening_mul): New.
      	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New
      	case.
      	<case MULT_EXPR>: Remove support for widening multiplies.
      	* tree.def (WIDEN_MULT_EXPR): Tweak comment.
      	* cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
      	simplify_gen_unary rather than directly building extensions.
      	* tree-cfg.c (verify_gimple_assign_binary): Add tests for
      	WIDEN_MULT_EXPR.
      	* expmed.c (expand_widening_mult): New function.
      	* passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
      
      gcc/testsuite/
      	PR middle-end/29274
      	* gcc.target/i386/wmul-1.c: New test.
      	* gcc.target/i386/wmul-2.c: New test.
      	* gcc.target/bfin/wmul-1.c: New test.
      	* gcc.target/bfin/wmul-2.c: New test.
      
      From-SVN: r158633
      Bernd Schmidt committed
  7. 19 Apr, 2010 1 commit
  8. 15 Apr, 2010 1 commit
    • tree-ssa-structalias.c (struct variable_info): Add is_fn_info flag. · 25a6a873
      2010-04-15  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-structalias.c (struct variable_info): Add
      	is_fn_info flag.
      	(new_var_info): Initialize it.
      	(dump_constraints): Support printing last added constraints.
      	(debug_constraints): Adjust.
      	(dump_constraint_graph): Likewise.
      	(make_heapvar_for): Check for NULL cfun.
      	(get_function_part_constraint): New function.
      	(get_fi_for_callee): Likewise.
      	(find_func_aliases): Properly implement IPA PTA constraints.
      	(process_ipa_clobber): New function.
      	(find_func_clobbers): Likewise.
      	(insert_into_field_list_sorted): Remove.
      	(create_function_info_for): Properly allocate vars for IPA mode.
      	Do not use insert_into_field_list_sorted.
      	(create_variable_info_for): Properly generate constraints for
      	global vars in IPA mode.
      	(dump_solution_for_var): Always dump the solution.
      	(set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
      	(find_what_var_points_to): Adjust.
      	(pt_solution_set): Change.
      	(pt_solution_ior_into): New function.
      	(pt_solution_empty_p): Export.
      	(pt_solution_includes_global): Adjust.
      	(pt_solution_includes_1): Likewise.
      	(pt_solutions_intersect_1): Likewise.
      	(dump_sa_points_to_info): Check some invariants.
      	(solve_constraints): Move constraint dumping ...
      	(compute_points_to_sets): ... here.
      	(ipa_pta_execute): ... and here.
      	(compute_may_aliases): Do not re-compute points-to info
      	locally if IPA info is available.
      	(ipa_escaped_pt): New global var.
      	(ipa_pta_execute): Properly implement IPA PTA.
      	* tree-into-ssa.c (dump_decl_set): Support dumping
      	decls not in referenced-vars.
      	* tree-flow.h (struct gimple_df): Add ipa_pta flag.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
      	(dump_points_to_solution): Likewise.
      	* tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
      	* tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
      	(remap_gimple_stmt): Reset call clobber/use information if
      	necessary.
      	(copy_decl_to_var): Copy DECL_PT_UID.
      	(copy_result_decl_to_var): Likewise.
      	* tree.c (make_node_stat): Initialize DECL_PT_UID.
      	(copy_node_stat): Copy it.
      	* tree.h (DECL_PT_UID): New macro.
      	(SET_DECL_PT_UID): Likewise.
      	(DECL_PT_UID_SET_P): Likewise.
      	(struct tree_decl_minimal): Add pt_uid member.
      	* tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
      	(pt_solution_empty_p): Declare.
      	(pt_solution_set): Adjust.
      	(ipa_escaped_pt): Declare.
      	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
      	* gimple-pretty-print.c (pp_points_to_solution): New function.
      	(dump_gimple_call): Dump call clobber/use information.
      	* tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
      	* tree-pass.h (TDF_ALIAS): New dump option.
      	* tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
      	* doc/invoke.texi (-fipa-pta): Update documentation.
      
      	* gcc.dg/ipa/ipa-pta-1.c: New testcase.
      	* gcc.dg/ipa/ipa-pta-2.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-3.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-4.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-5.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-6.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-7.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-8.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-9.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-10.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-11.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-12.c: Likewise.
      	* gcc.dg/ipa/ipa-pta-13.c: Likewise.
      	* gcc.dg/torture/ipa-pta-2.c: Likewise.
      	* gcc.dg/torture/ipa-pta-1.c: Adjust.
      
      From-SVN: r158374
      Richard Guenther committed
  9. 13 Apr, 2010 1 commit
  10. 12 Apr, 2010 1 commit
    • gsstruct.def (GSS_CALL): New. · 913a7b5a
      2010-04-12  Richard Guenther  <rguenther@suse.de>
      
      	* gsstruct.def (GSS_CALL): New.
      	* gimple.def (GIMPLE_CALL): Change to GSS_CALL.
      	* gimple.h: Include tree-ssa-alias.h.
      	(struct gimple_statement_call): New.
      	(union gimple_statement_struct_d): Add gimple_call member.
      	(gimple_call_reset_alias_info): Declare.
      	(gimple_call_use_set): New function.
      	(gimple_call_clobber_set): Likewise.
      	* Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
      	* gimple.c (gimple_call_reset_alias_info): New function.
      	(gimple_build_call_1): Call it.
      	* lto-streamer-in.c (input_gimple_stmt): Likewise.
      	* tree-inline.c (remap_gimple_stmt): Likewise.
      	(expand_call_inline): Remove callused handling.
      	* cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
      	* tree-dfa.c (dump_variable): Likewise.
      	* tree-parloops.c (parallelize_loops): Likewise.
      	* tree-ssa.c (init_tree_ssa): Likewise.
      	(delete_tree_ssa): Likewise.
      	* tree-flow-inline.h (is_call_used): Remove.
      	* tree-flow.h (struct gimple_df): Remove callused member.
      	* tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
      	* tree-ssa-alias.c (dump_alias_info): Remove callused handling.
      	(ref_maybe_used_by_call_p_1): Simplify.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-structalias.c (compute_points_to_sets): Set
      	the call stmt used and clobbered sets.
      	* tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
      	(find_tail_calls): Verify the tail call.
      
      From-SVN: r158227
      Richard Biener committed
  11. 08 Apr, 2010 1 commit
  12. 31 Mar, 2010 1 commit
  13. 24 Mar, 2010 1 commit
    • re PR debug/19192 (Current development gcc generates inaccurate line info for example code) · d0ed412a
      	PR debug/19192
      	PR debug/43479
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
      	from gimple_block.
      	* expr.c (expand_expr_real): Restore previous
      	curr_insn_source_location and curr_insn_block after
      	expand_expr_real_1 call.
      	(expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
      	instead of expand_expr_real_1.
      
      	* gcc.dg/guality/pr43479.c: New test.
      	* gcc.dg/debug/dwarf2/inline2.c (third): Make a a global var
      	and add volatile keyword.
      
      From-SVN: r157693
      Jakub Jelinek committed
  14. 18 Mar, 2010 1 commit
  15. 03 Mar, 2010 1 commit
  16. 01 Mar, 2010 1 commit
  17. 25 Feb, 2010 2 commits
  18. 23 Feb, 2010 2 commits
  19. 19 Feb, 2010 1 commit
    • re PR middle-end/42233 (c++ builtin_expect code generation regression) · 40e90eac
      	PR middle-end/42233
      	* expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
      	do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
      	* dojump.c: Include output.h.
      	(inv): New inline function.
      	(jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
      	do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
      	do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
      	do_jump_by_parts_equality, do_compare_and_jump): Add PROB
      	argument, pass it down to other calls.
      	(do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
      	add REG_BR_PROB note to the conditional jump.
      	* cfgexpand.c (add_reg_br_prob_note): Removed.
      	(expand_gimple_cond): Don't call it, add the probability
      	as last argument to jumpif_1/jumpifnot_1.
      	* Makefile.in (dojump.o): Depend on output.h.
      	* builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
      	callers.
      	* expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
      	* stmt.c (do_jump_if_equal): Likewise.
      	* cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
      	* loop-unswitch.c (compare_and_jump_seq): Likewise.
      	* config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
      	Likewise.
      	* optabs.c (expand_doubleword_shift, expand_abs): Likewise.
      	* expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
      	jumpifnot_1 callers.
      	(expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
      	callers.
      	(store_expr): Adjust jumpifnot caller.
      	(store_constructor): Adjust jumpif caller.
      
      From-SVN: r156889
      Jakub Jelinek committed
  20. 11 Feb, 2010 1 commit
    • re PR lto/41664 (FAIL: gfortran.dg/lto/pr40725… · 91753e21
      re PR lto/41664 (FAIL: gfortran.dg/lto/pr40725 f_lto_pr40725_0.o-f_lto_pr40725_1.o execute -O2 -fwhopr and -flto)
      
      2010-02-11  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/41664
      	* tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
      	pointer-vs-decl case by swapping refs.  Handle some cases
      	of pointer-vs-decl disambiguations more conservatively.
      	* cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
      	to false after expanding.
      
      From-SVN: r156699
      Richard Guenther committed
  21. 18 Jan, 2010 1 commit
  22. 13 Jan, 2010 1 commit
    • re PR middle-end/42678 (ICE with lto1 in expand_mult, at expmed.c:3253) · 688a482d
      2010-01-13  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/42678
      	* tree-pass.h (PROP_gimple_lcx): New.
      	* cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
      	* passes.c (init_optimization_passes): Move pass_lower_complex_O0
      	before the final cleanup_eh.
      	(dump_properties): Dump PROP_gimple_lcx.
      	* tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
      	(tree_lower_complex_O0): Remove.
      	(gate_no_optimization): Run if PROP_gimple_lcx is not set.
      	(pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
      	tree_lower_complex, schedule TODO_update_ssa.
      	* lto-streamer-out.c (output_function): Stream the functions
      	properties.
      	* lto-streamer-in.c (input_function): Likewise.
      	(lto_read_body): Do not override them here.
      
      	* gfortran.dg/lto/20100110-1_0.f90: New testcase.
      
      From-SVN: r155853
      Richard Guenther committed
  23. 05 Jan, 2010 1 commit
  24. 20 Dec, 2009 1 commit
  25. 14 Dec, 2009 1 commit
  26. 03 Dec, 2009 1 commit
    • re PR middle-end/38474 (compile time explosion in dataflow_set_preserve_mem_locs at -O3) · 2bdbbe94
      	PR middle-end/38474
      	* cfgexpand.c (struct stack_var): Add conflicts member.
      	(stack_vars_conflict, stack_vars_conflict_alloc,
      	n_stack_vars_conflict): Remove.
      	(add_stack_var): Initialize conflicts member.
      	(triangular_index, resize_stack_vars_conflict): Remove.
      	(add_stack_var_conflict, stack_var_conflict_p): Rewrite in
      	terms of new member.
      	(union_stack_vars): Only run over the conflicts.
      	(partition_stack_vars): Remove special case.
      	(expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
      	don't create self-conflicts.
      	(account_used_vars_for_block): Don't create any conflicts.
      	(fini_vars_expansion): Free bitmaps, don't free or clear removed
      	globals.
      
      From-SVN: r154945
      Michael Matz committed
  27. 27 Nov, 2009 1 commit
  28. 26 Nov, 2009 1 commit
  29. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.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-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: 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-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.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-live.h: 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-operands.h: 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-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.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-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  30. 24 Nov, 2009 1 commit
    • tree.h (union tree_ann_d): Don't declare. · a5883ba0
      	* tree.h (union tree_ann_d): Don't declare.
      	(tree_base): Remove ann field.
      	(struct var_ann_d): Declare forward.
      	(tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
      	(DECL_VAR_ANN_PTR): New macro.
      	* tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
      	accept only VAR, PARM or RESULT decls.
      	(create_tree_common_ann): Remove.
      	(remove_referenced_var): Use DECL_VAR_ANN_PTR.
      	* tree-eh.c (lookup_expr_eh_lp): Remove.
      	* tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
      	DECL_VAR_ANN_PTR.
      	(ann_type, tree_common_ann, get_tree_common_ann): Remove.
      	* tree-flow.h (enum tree_ann_type): Remove.
      	(struct tree_ann_common_d): Remove.
      	(struct var_ann_d): Remove common field.
      	(union tree_ann_d): Remove.
      	(tree_ann_t, tree_ann_common_t): Remove typedefs.
      	(tree_common_ann, get_tree_common_ann, ann_type,
      	create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
      	* tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
      	* tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
      	* builtins.c (expand_builtin_memcpy): Use
      	currently_expanding_gimple_stmt instead of tree annotation.
      	(expand_builtin_memset_args): Ditto.
      	* cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
      	(expand_call_stmt): Don't set tree annotation.
      	(expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
      	* expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
      	* gimple.h (currently_expanding_gimple_stmt): Declare.
      
      From-SVN: r154502
      Michael Matz committed
  31. 12 Nov, 2009 1 commit
  32. 02 Nov, 2009 1 commit
  33. 30 Oct, 2009 1 commit
    • Optimize -mstackrealign. · 890b9b96
      gcc/
      
      2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR target/40836
      	* cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
      	first.  Move assert on stack_alignment_estimated just before
      	setting stack_realign_needed.
      	(gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
      	Don't call update_stack_boundary.
      
      	* config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
      	(verride_options): Don't check ix86_force_align_arg_pointer here.
      	(ix86_function_ok_for_sibcall): Use it.
      	(ix86_update_stack_boundary): Likewise.
      
      	* config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
      
      gcc/testsuite/
      
      2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR target/40838
      	* gcc.target/i386/incoming-6.c: New.
      	* gcc.target/i386/incoming-7.c: Likewise.
      	* gcc.target/i386/incoming-8.c: Likewise.
      	* gcc.target/i386/incoming-9.c: Likewise.
      	* gcc.target/i386/incoming-10.c: Likewise.
      	* gcc.target/i386/incoming-11.c: Likewise.
      	* gcc.target/i386/incoming-12.c: Likewise.
      	* gcc.target/i386/incoming-13.c: Likewise.
      	* gcc.target/i386/incoming-14.c: Likewise.
      	* gcc.target/i386/incoming-15.c: Likewise.
      	* gcc.target/i386/pr37843-4.c: Likewise.
      
      From-SVN: r153750
      H.J. Lu committed
  34. 26 Oct, 2009 2 commits
    • tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document. · d4ebfa65
      2009-10-26  Ben Elliston  <bje@au.ibm.com>
      	    Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Ulrich Weigand  <uweigand@de.ibm.com>
      
      	* doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
      	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
      	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
      
      	* target.h (struct target_def): Add pointer_mode, address_mode,
      	and valid_pointer_mode to addr_space substructure.
      	* target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
      	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
      	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
      	(TARGET_ADDR_SPACE_HOOKS): Add them.
      	* targhooks.c (target_default_pointer_address_modes_p): New function.
      	* target.h (target_default_pointer_address_modes_p): Add prototype.
      	* targhooks.c (default_addr_space_pointer_mode): New function.
      	(default_addr_space_address_mode): Likewise.
      	(default_addr_space_valid_pointer_mode): Likewise.
      	* targhooks.h (default_addr_space_pointer_mode): Add prototype.
      	(default_addr_space_address_mode): Likewise.
      	(default_addr_space_valid_pointer_mode): Likewise.
      	* output.h (default_valid_pointer_mode): Move to ...
      	* targhooks.h (default_valid_pointer_mode): ... here.
      	* varasm.c (default_valid_pointer_mode): Move to ...
      	* targhooks.c (default_valid_pointer_mode): ... here.
      
      	* varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
      	instead of targetm.valid_pointer_mode.
      
      	* fold-const.c (fit_double_type): Use int_or_pointer_precision.
      	* tree.c (integer_pow2p): Likewise.
      	(tree_log2): Likewise.
      	(tree_floor_log2): Likewise.
      	(signed_or_unsigned_type_for): Support pointer type of different size.
      	(int_or_pointer_precision): New function.
      	* tree.h (int_or_pointer_precision): Add prototype.
      	* stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
      	* varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
      	incoming pointer type instead of POINTER_SIZE.
      
      	* tree.c (build_pointer_type): Use appropriate pointer mode
      	instead of ptr_mode.
      	(build_reference_type): Likewise.
      	* expr.c (store_expr): Likewise.
      	(expand_expr_addr_expr): Likewise.
      	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	
      	* auto-inc-dec.c: Include "target.h".
      	(try_merge): Use appropriate address mode instead of Pmode.
      	(find_inc): Likewise.
      	* combine.c (find_split_point): Likewise.
      	* cselib.c (cselib_record_sets): Likewise.
      	* dse.c (replace_inc_dec): Likewise.
      	(canon_address): Likewise.
      	* var-tracking.c (replace_expr_with_values): Likewise.
      	(count_uses): Likewise.
      	(add_uses): Likewise.
      	(add_stores): Likewise.
      	* emit-rtl.c: Include "target.h".
      	(adjust_address_1): Use appropriate address mode instead of Pmode.
      	(offset_address): Likewise.
      	* explow.c (break_out_memory_refs): Likewise.
      	(memory_address_addr_space): Likewise.
      	(promote_mode): Likewise.
      	* expr.c (move_by_pieces): Likewise.
      	(emit_block_move_via_loop): Likewise.
      	(store_by_pieces): Likewise.
      	(store_by_pieces_1): Likewise.
      	(expand_assignment): Likewise.
      	(store_constructor): Likewise.
      	(expand_expr_addr_expr): Likewise.
      	(expand_expr_real_1): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* ifcvt.c (noce_try_cmove_arith): Likewise.
      	* regcprop.c (kill_autoinc_value): Likewise.
      	* regmove.c (try_auto_increment): Likewise.
      	* reload.c (find_reloads): Likewise.
      	(find_reloads_address): Likewise.
      	(find_reloads_address_1): Likewise.
      	* sched-deps.c: Include "target.h".
      	(sched_analyze_1): Use appropriate address mode instead of Pmode.
      	(sched_analyze_2): Likewise.
      	* sel-sched-dump.c: Include "target.h".
      	(debug_mem_addr_value): Use appropriate address mode instead of Pmode.
      	* stor-layout.c (layout_type): Likewise.
      	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
      	(multiplier_allowed_in_address_p): Likewise.
      	(get_address_cost): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	
      	* expr.c (expand_assignment): Always convert offsets to appropriate
      	address mode.
      	(store_expr): Likewise.
      	(store_constructor): Likewise.
      	(expand_expr_real_1): Likewise.
      
      	* reload.h (form_sum): Add MODE argument.
      	* reload.c (form_sum): Add MODE argument, use it instead of Pmode.
      	Update recursive calls.
      	(subst_indexed_address): Update calls to form_sum.
      	
      	* tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
      	* tree-ssa-address.c: Include "target.h".
      	(templates): Replace by ...
      	(mem_addr_template_list): ... this new vector.
      	(TEMPL_IDX): Handle address space numbers.
      	(gen_addr_rtx): Add address mode argument, use it instead of Pmode.
      	(addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
      	instead of global cache.  Update call to gen_addr_rtx.
      	(valid_mem_ref_p): Update call to addr_for_mem_ref.
      	* expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
      	
      	* rtl.h (convert_memory_address_addr_space): Add prototype.
      	(convert_memory_address): Define as macro.
      	* explow.c (convert_memory_address): Rename to ...
      	(convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
      	Use appropriate pointer and address modes instead of ptr_mode / Pmode.
      	Update recursive calls.
      	(memory_address_addr_space): Call convert_memory_address_addr_space.
      	* expmed.c (make_tree): Likewise.
      	* expr.c (expand_assignment): Likewise.
      	(expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
      	(expand_expr_addr_expr): Likewise.  Also, update call.
      
      	* alias.c (find_base_value): Guard pointer size optimizations.
      	(find_base_term): Likewise.
      	* rtlanal.c (nonzero_bits1): Likewise.
      	(num_sign_bit_copies1): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      
      	* Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
      	(emit-rtl.o): Likewise.
      	(auto-inc-dec.o): Likewise.
      	(sched-deps.o): Likewise.
      
      Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
      Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
      
      From-SVN: r153573
      Ben Elliston committed
    • extend.texi (Named Address Spaces): New section. · 09e881c9
      2009-10-26  Ben Elliston  <bje@au.ibm.com>
      	    Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Ulrich Weigand  <uweigand@de.ibm.com>
      
      	* doc/extend.texi (Named Address Spaces): New section.
      	* coretypes.h (addr_space_t): New type.
      	(ADDR_SPACE_GENERIC): New define.
      	(ADDR_SPACE_GENERIC_P): New macro.
      
      	* doc/tm.texi (Named Address Spaces): New section.
      	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
      	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
      	(TARGET_ADDR_SPACE_SUBSET_P): Document.
      	(TARGET_ADDR_SPACE_CONVERT): Document.
      	* target.h (struct gcc_target): Add addr_space substructure.
      	* target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
      	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
      	(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
      	(TARGET_ADDR_SPACE_CONVERT): Likewise.
      	(TARGET_ADDR_SPACE_HOOKS): Likewise.
      	(TARGET_INITIALIZER): Initialize addr_space hooks.
      	* targhooks.c (default_addr_space_legitimate_address_p): New function.
      	(default_addr_space_legitimize_address): Likewise.
      	(default_addr_space_subset_p): Likewise.
      	(default_addr_space_convert): Likewise.
      	* targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
      	(default_addr_space_legitimize_address): Likewise.
      	(default_addr_space_subset_p): Likewise.
      	(default_addr_space_convert): Likewise.
      
      	* doc/rtl.texi (MEM_ADDR_SPACE): Document.
      	* rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
      	(MEM_ADDR_SPACE): New macro.
      	* emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
      	address space memory attribute.
      	(mem_attrs_htab_hash): Handle address space memory attribute.
      	(mem_attrs_htab_eq): Likewise.
      	(set_mem_attributes_minus_bitpos): Likewise.
      	(set_mem_alias_set): Likewise.
      	(set_mem_align): Likewise.
      	(set_mem_expr): Likewise.
      	(set_mem_offset): Likewise.
      	(set_mem_size): Likewise.
      	(adjust_address_1): Likewise.
      	(offset_address): Likewise.
      	(widen_memoy_address): Likewise.
      	(get_spill_slot_decl): Likewise.
      	(set_mem_attrs_for_spill): Likewise.
      	(set_mem_addr_space): New function.
      	* emit-rtl.h (set_mem_addr_space): Add prototype.
      	* print-rtl.c (print_rtx): Print address space memory attribute.
      	* expr.c (expand_assignment): Set address space memory attribute
      	of generated MEM RTXes as appropriate.
      	(expand_expr_real_1): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
      
      	* tree.h (struct tree_base): Add address_space bitfield.  Reduce
      	size of "spare" bitfield.
      	(TYPE_ADDR_SPACE): New macro.
      	(ENCODE_QUAL_ADDR_SPACE): Likewise.
      	(DECODE_QUAL_ADDR_SPACE): Likewise.
      	(CLEAR_QUAL_ADDR_SPACE): Likewise.
      	(KEEP_QUAL_ADDR_SPACE): Likewise.
      	(TYPE_QUALS): Encode type address space.
      	(TYPE_QUALS_NO_ADDR_SPACE): New macro.
      	* tree.c (set_type_quals): Set type address space.
      	(build_array_type): Inherit array address space from element type.
      	* print-tree.c (print_node_brief): Print type address space.
      	(print_node): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      
      	* explow.c (memory_address): Rename to ...
      	(memory_address_addr_space): ... this.  Add ADDRSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* recog.c (memory_address_p): Rename to ...
      	(memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	(offsettable_address_p): Rename to ...
      	(offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* reload.c (strict_memory_address_p): Rename to ...
      	(strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	(maybe_memory_address_p): Rename to ...
      	(maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* expr.h (memory_address_addr_space): Add prototype.
      	(memory_address): Define as macro.
      	* recog.h (memory_address_addr_space_p): Add prototype.
      	(memory_address_p): Define as macro.
      	(offsettable_address_addr_space_p): Add prototype.
      	(offsettable_address_p): Define as macro.
      	(strict_memory_address_addr_space_p): Add prototype.
      	(strict_memory_address_p): Define as macro.
      
      	* combine.c (find_split_point): Use address-space aware variants
      	of memory address routines.
      	* emit-rtl.c (operand_subword): Likewise.
      	(change_address_1): Likewise.
      	(adjust_address_1): Likewise.
      	(offset_address): Likewise.
      	* expr.c (emit_move_insn): Likewise.
      	(expand_assignment): Likewise.
      	(expand_expr_real_1): Likewise.
      	* recog.c (verify_changes): Likewise.
      	(general_operand): Likewise.
      	(offsettable_memref_p): Likewise.
      	(offsettable_nonstrict_memref_p): Likewise.
      	(constrain_operands): Likewise.
      	* reload.c (get_secondary_mem): Likewise.
      	(find_reloads_toplev): Likewise.
      	(find_reloads_address): Likewise.
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (reload): Likewise.
      	* rtlhooks.c (gen_lowpart_if_possible): Likewise.
      	* rtl.h (address_cost): Add ADDRSPACE argument.
      	* rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
      	aware variant of memory address routines.
      	* loop-invariant.c (create_new_invariant): Update address_cost call.
      	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
      	* fwprop.c (should_replace_address): Add ADDRSPACE argument.
      	Use address-space aware variant of memory address routines.
      	(propagate_rtx_1): Update call to should_replace_address.
      	* tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
      	argument.
      	* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
      	ADDRSPACE argument.  Use per-address-space instead of global cache.
      	Use address-space aware variant of memory address routines.
      	(get_address_cost): Likewise.
      	(get_computation_cost_at): Update calls.
      	* tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
      	Use address-space aware variant of memory address routines.
      	(create_mem_ref_raw): Update call to valid_mem_ref_p.
      	(most_expensive_mult_to_index): Update call to
      	multiplier_allowed_in_address_p.
      
      	* dwarf2out.c (modified_type_die): Output DW_AT_address_class
      	attribute to indicate named address spaces.
      
      	* varasm.c (get_variable_section): DECLs in named address spaces
      	cannot be "common".
      
      	* reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
      	for addresses in a non-generic address space.
      
      	* expr.c (emit_block_move_hints): Do not use libcalls for
      	memory in non-generic address spaces.
      	(clear_storage_hints): Likewise.
      	(expand_assignment): Likewise.
      
      	* fold-const.c (operand_equal_p): Expressions refering to different
      	address spaces are not equivalent.
      
      	* rtl.c (rtx_equal_p_cb): MEMs refering to different address
      	spaces are not equivalent.
      	(rtx_equal_p): Likewise.
      	* cse.c (exp_equiv_p): Likewise.
      	* jump.c (rtx_renumbered_equal_p): Likewise.
      	* reload.c (operands_match_p): Likewise.
      
      	* alias.c (nonoverlapping_memrefs_p): MEMs refering to different
      	address spaces may alias.
      	(true_dependence): Likewise.
      	(canon_true_dependence): Likewise.
      	(write_dependence_p): Likewise.
      
      	* dse.c (canon_address): Handle named address spaces.
      	* ifcvt.c (noce_try_cmove_arith): Likewise.
      
      	* tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
      	* expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
      	* convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
      	to handle conversions between different address spaces.
      	* fold-const.c (fold_convert_loc): Likewise.
      	(fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* gimple-pretty-print.c (dump_unary_rhs): Likewise.
      	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-ssa.c (useless_type_conversion_p): Conversions between pointers
      	to different address spaces are not useless.
      
      Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
      Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
      
      From-SVN: r153572
      Ben Elliston committed
  35. 23 Oct, 2009 1 commit
  36. 20 Oct, 2009 1 commit
    • rtl.h (simplify_replace_fn_rtx): Declare. · 3af4ba41
      gcc/
      	* rtl.h (simplify_replace_fn_rtx): Declare.
      	(wrap_constant, unwrap_constant): Delete.
      	* cfgexpand.c (unwrap_constant, wrap_constant): Delete.
      	(expand_debug_expr): Don't call wrap_constant.
      	* combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
      	(auto_adjust_pair): Fold into...
      	(propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
      	Just return a new value.
      	(propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
      	otherwise use simplify_replace_rtx.
      	* cselib.c (wrap_constant): Reinstate old definition.
      	(cselib_expand_value_rtx_1): Don't wrap constants.
      	* gcse.c (try_replace_reg): Don't use copy_rtx in the call to
      	simplify_replace_rtx.
      	(bypass_block): Fix formatting in calls to simplify_replace_rtx.
      	* reload1.c (reload): Skip all uses for an insn before adjusting it.
      	Use simplify_replace_rtx.
      	* simplify-rtx.c (simplify_replace_fn_rtx): New function,
      	adapted from...
      	(simplify_replace_rtx): ...here.  Turn into a wrapper for
      	simplify_replace_fn_rtx.
      	(simplify_unary_operation): Don't unwrap CONSTs.
      	* var-tracking.c (check_wrap_constant): Delete.
      	(vt_expand_loc_callback): Don't call it.
      	(vt_expand_loc): Likewise.
      
      From-SVN: r153037
      Richard Sandiford committed
  37. 19 Oct, 2009 1 commit