1. 30 Nov, 2010 1 commit
    • diagnostic-core.h: Include bversion.h. · 7c475d11
      	* diagnostic-core.h: Include bversion.h.
      	* toplev.h: Don't include input.h or bversion.h.
      	(parse_optimize_options): Don't declare here.
      	* alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
      	caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
      	combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
      	config/host-darwin.c, config/i386/host-cygwin.c,
      	config/i386/host-mingw32.c, config/i386/msformat-c.c,
      	config/i386/netware.c, config/i386/nwld.c,
      	config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
      	config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
      	config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
      	config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
      	config/score/score3.c, config/score/score7.c,
      	config/sh/symbian-base.c, config/sh/symbian-c.c,
      	config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
      	config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
      	cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
      	fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
      	graphite-blocking.c, graphite-clast-to-gimple.c,
      	graphite-dependences.c, graphite-flattening.c,
      	graphite-interchange.c, graphite-poly.c,
      	graphite-scop-detection.c, graphite.c, haifa-sched.c,
      	implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
      	ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
      	lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
      	lto-opts.c, lto-section-in.c, lto-section-out.c,
      	lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
      	params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
      	regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
      	sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
      	sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
      	tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
      	tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
      	tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
      	tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
      	tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
      	tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
      	include toplev.h.
      	* Makefile.in (TOPLEV_H): Remove.  All uses changed to use
      	toplev.h.  Dependencies for above files and c-family files changed
      	to remove $(TOPLEV_H) or toplev.h.
      	(C_TREE_H): Don't include $(TOPLEV_H).
      	(DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
      	bversion.h.
      	* config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
      	config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
      	config/t-darwin, config/t-sol2,
      	config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
      	Dependencies for above files changed to remove $(TOPLEV_H) or
      	toplev.h.
      
      c-family:
      	* c-common.h (parse_optimize_options): Declare.
      	* c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
      	c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.
      
      cp:
      	* cp-gimplify.c, cp-lang.c, cvt.c, cxx-pretty-print.c, error.c,
      	except.c, expr.c, friend.c, init.c, mangle.c, name-lookup.c,
      	optimize.c, parser.c, rtti.c, tree.c, typeck2.c: Don't include
      	toplev.h.
      	* Make-lang.in: Dependencies for above files changed to remove
      	toplev.h.
      
      java:
      	* expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
      	verify-glue.c: Don't include toplev.h.
      	* Make-lang.in: Dependencies for above files changed to remove
      	toplev.h.
      
      lto:
      	* Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
      	$(TOPLEV_H).
      
      From-SVN: r167293
      Joseph Myers committed
  2. 22 Nov, 2010 1 commit
  3. 15 Nov, 2010 1 commit
  4. 21 Oct, 2010 1 commit
  5. 29 Sep, 2010 1 commit
    • optc-gen.awk: Generate global_options initializer instead of individual variables. · e3339d0f
      gcc:
      	* optc-gen.awk: Generate global_options initializer instead of
      	individual variables.  Add x_ prefix to names of structure
      	members.
      	* opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
      	names of structure members.
      	* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
      	* doc/tm.texi: Regenerate.
      	* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* c-parser.c (disable_extension_diagnostics,
      	restore_extension_diagnostics): Update names of cpp_options
      	members.
      	* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* common.opt (fcompare-debug-second): Don't use Var.
      	* config/alpha/alpha.h (target_flags): Remove.
      	* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/bfin/bfin.h (target_flags): Remove.
      	* config/cris/cris.h (target_flags): Remove.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
      	cl_target_option members.
      	* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
      	(ix86_function_specific_print, ix86_valid_target_attribute_tree,
      	ix86_can_inline_p): Update names of cl_target_option members.
      	* config/i386/i386.h (ix86_isa_flags): Remove.
      	* config/lm32/lm32.h (target_flags): Remove.
      	* config/mcore/mcore.h (mcore_stack_increment): Remove.
      	* config/mcore/mcore.md (addsi3): Remove extern declaration of
      	flag_omit_frame_pointer.
      	* config/mep/mep.h (target_flags): Remove.
      	* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/mmix/mmix.h (target_flags): Remove.
      	* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
      	flag_expensive_optimizations): Remove.
      	* config/s390/s390.h (flag_pic): Remove.
      	* config/score/score-conv.h (target_flags): Remove.
      	* config/sh/sh.h (sh_fixed_range_str): Remove.
      	* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
      	* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* diagnostic.c (diagnostic_initialize): Update names of
      	diagnostic_context members.
      	* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
      	warn_system_headers.
      	(diagnostic_report_warnings_p): Update for new names.
      	* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
      	HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* flags.h (flag_compare_debug): Declare.
      	* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* opts.c (flag_compare_debug): Define.
      	(common_handle_option): Update names of diagnostic_context
      	members.  Handle -fcompare-debug-second.
      	(fast_math_flags_struct_set_p): Update names of cl_optimization
      	members.
      	* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
      	* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      
      gcc/c-family:
      	* c-common.c (c_cpp_error): Update names of diagnostic_context
      	members.
      	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
      	cl_optimization members.
      	* c-opts.c (warning_as_error_callback, c_common_handle_option,
      	sanitize_cpp_opts, finish_options): Update names of cpp_options
      	members.
      
      gcc/fortran:
      	* cpp.c (cpp_define_builtins): Update names of gfc_option_t
      	members.
      	(gfc_cpp_post_options): Update names of cpp_options members.
      	(cb_cpp_error): Update names of diagnostic_context members.
      	* f95-lang.c (gfc_init_builtin_functions): Update names of
      	gfc_option_t members.
      	* gfortran.h (gfc_option_t): Rename warn_conversion and
      	flag_openmp.
      	* intrinsic.c (gfc_convert_type_warn): Update names of
      	gfc_option_t members.
      	* options.c (gfc_init_options, gfc_post_options, set_Wall,
      	gfc_handle_option): Update names of gfc_option_t members.
      	* parse.c (next_free, next_fixed): Update names of gfc_option_t
      	members.
      	* scanner.c (pedantic): Remove extern declaration.
      	(skip_free_comments, skip_fixed_comments, include_line): Update
      	names of gfc_option_t members.
      	* trans-decl.c (gfc_generate_function_code): Update names of
      	gfc_option_t members.
      
      gcc/java:
      	* java-tree.h (flag_filelist_file, flag_assert, flag_jni,
      	flag_force_classes_archive_check, flag_redundant, flag_newer,
      	flag_use_divide_subroutine, flag_use_atomic_builtins,
      	flag_use_boehm_gc, flag_hash_synchronization,
      	flag_check_references, flag_optimize_sci, flag_indirect_classes,
      	flag_indirect_dispatch, flag_store_check,
      	flag_reduced_reflection): Remove.
      	* jcf-dump.c (flag_newer): Remove.
      	* jcf.h (quiet_flag): Remove.
      	* parse.h (quiet_flag): Remove.
      
      libcpp:
      	* include/cpplib.h (cpp_options): Rename warn_deprecated,
      	warn_traditional, warn_long_long and pedantic.
      	* directives.c (directive_diagnostics, _cpp_handle_directive):
      	Update names of cpp_options members.
      	* expr.c (cpp_classify_number, eval_token): Update names of
      	cpp_options members.
      	* init.c (cpp_create_reader, post_options): Update names of
      	cpp_options members.
      	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
      	cpp_options members.
      	* macro.c (parse_params): Update names of cpp_options members.
      
      From-SVN: r164723
      Joseph Myers committed
  6. 03 Sep, 2010 1 commit
    • tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE. · 4d948885
      2010-09-03  Richard Guenther  <rguenther@suse.de>
      
      	* tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
      	Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
      	* tree.h (TMR_SYMBOL): Remove.
      	(TMR_BASE, TMR_OFFSET): Adjust.
      	(TMR_INDEX2): New.
      	* alias.c (ao_ref_from_mem): Use TMR_BASE.
      	* builtins.c (get_object_alignment): Merge TMR_BASE and
      	TMR_SYMBOL handling.
      	* cfgexpand.c (expand_debug_expr): Use TMR_BASE.
      	* gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
      	handling.  Also allow TARGET_MEM_REF as base address.
      	(walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
      	* gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
      	base.  Gimplify TMR_INDEX2.
      	* tree-cfg.c (verify_types_in_gimple_reference): Adjust.
      	* tree-dfa.c (get_ref_base_and_extent): Likewise.
      	(get_addr_base_and_unit_offset): Likewise.
      	* tree-eh.c (tree_could_trap_p): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle
      	TMR_INDEX2.
      	(create_mem_ref_raw): Merge symbol and base.  Move 2ndary
      	base to index2.
      	(get_address_description): Reconstruct addres description
      	from merged TMR_BASE and TMR_INDEX2.
      	(maybe_fold_tmr): Fold propagated addresses.
      	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
      	MEM_REF and TARGET_MEM_REF paths.
      	(indirect_refs_may_alias_p): Likewise.
      	* tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
      	instead of TMR_SYMBOL.
      	* tree-ssa-operands.c (get_tmr_operands): Simplify.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
      	according to changes ...
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
      	Split TARGET_MEM_REF into two fields plus the base.
      	* tree.c (mem_ref_offset): Simplify.
      	* tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
      	Strip NOPs when folding MEM_REF addresses.
      	* tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
      	* gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
      	(fold_gimple_assign): ... not here.
      
      From-SVN: r163802
      Richard Guenther committed
  7. 01 Sep, 2010 1 commit
    • alias.c (ao_ref_from_mem): Adjust. · 23a534a1
      2010-09-01  Richard Guenther  <rguenther@suse.de>
      
      	* alias.c (ao_ref_from_mem): Adjust.
      	* builtins.c (get_object_alignment): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* gimple.c (get_base_address): Likewise.
      	* tree-dfa.c (get_ref_base_and_extent): Likewise.
      	(get_addr_base_and_unit_offset): Likewise.  Fix for
      	both TMR_SYMBOL and TMR_BASE being set.
      	* tree-eh.c (tree_could_trap_p): Likewise.
      	* gimplify.c (gimplify_expr): Do not attempt to gimplify
      	TMR_SYMBOL.  Always gimplify TMR_BASE.
      	* tree-cfg.c (verify_types_in_gimple_reference): Verify
      	TMR_BASE if there is a TMR_SYMBOL.
      	* tree-pretty-print.c (dump_generic_node): Adjust.
      	* tree-ssa-address.c (addr_for_mem_ref): Likewise.
      	(tree_mem_ref_addr): Likewise.
      	(create_mem_ref_raw): Likewise.
      	(move_fixed_address_to_symbol): Likewise.
      	(create_mem_ref): Likewise.
      	(dump_mem_address): Likewise.
      	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
      	Fix for both TMR_SYMBOL and TMR_BASE being set.
      	(indirect_refs_may_alias_p): Likewise.
      	* tree-ssa-operands.c (get_tmr_operands): Adjust.
      	* tree.def (TARGET_MEM_REF): Adjust documentation.
      
      From-SVN: r163733
      Richard Guenther committed
  8. 25 Aug, 2010 1 commit
  9. 24 Aug, 2010 1 commit
    • re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278) · d15adbeb
      2010-08-24  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/45379
      	* tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
      	if addr->index is NULL or zero.
      	* tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
      	TARGET_MEM_REF more properly.
      	(indirect_ref_may_alias_decl_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
      	* alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more
      	properly.
      
      From-SVN: r163519
      Richard Guenther committed
  10. 16 Aug, 2010 1 commit
    • tree-cfg.c (verify_types_in_gimple_reference): Verify TARGET_MEM_REF a bit. · 4b228e61
      2010-08-16  Richard Guenther  <rguenther@suse.de>
      
      	* tree-cfg.c (verify_types_in_gimple_reference): Verify
      	TARGET_MEM_REF a bit.
      	* tree-ssa-address.c (addr_for_mem_ref): Adjust.
      	(create_mem_ref_raw): Always create TMR_OFFSET, store the
      	alias pointer type via it.
      	(copy_mem_ref_info): Adjust.
      	(maybe_fold_tmr): Likewise.
      	* tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
      	(reference_alias_ptr_type): Likewise.
      	* tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
      	adjust documentation of TMR_OFFSET operand.
      	* alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
      	use the alias pointer type.
      	* expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
      	initialize mem attrs but the TMR itself.
      	* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
      	similar to MEM_REF.
      	* tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
      	* tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
      	(unshare_and_remove_ssa_names): Likewise.
      	(copy_ref_info): Adjust.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
      	TARGET_MEM_REF case.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
      	at TMR_ORIGINAL.
      	* tree.h (TMR_ORIGINAL): Remove.
      	* gimple.c (get_base_address): For TARGET_MEM_REF with a
      	symbol return that.
      	* tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
      	with a symbol.
      	(get_addr_base_and_unit_offset): Likewise.
      	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
      	TARGET_MEM_REFs.
      	(indirect_ref_may_alias_decl_p): Likewise.
      	(refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
      
      From-SVN: r163278
      Richard Guenther committed
  11. 09 Aug, 2010 2 commits
    • Remove unused ret. · 0c9510ab
      2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c (may_alias_p): Remove unused ret.
      
      From-SVN: r163038
      H.J. Lu committed
    • ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of alias_sets_conflict_p. · c6ea834c
      2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
      
      	* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
      	alias_sets_conflict_p.
      	(walk_mems_1): Moved from alias.c.
      	(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
      	in alias.c. 
              (add_inter_loop_mem_dep): Use insns_may_alias_p now.
              * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
              * alias.c (walk_mems_2): Moved to ddg.c.
      	(walk_mems_1): Ditto.
      	(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
      	to ddg.c.
      	(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
      	disambiguation.
      	*(may_alias_p): New function to check whether two memory expression
      	may alias or not. Currently used in buidling inter-iteration memory
      	dependence.
      	*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
      	(insn_alias_sets_conflict_p): Removed
      	*rtl.h (may_alias_p): New function prototype.
      
      From-SVN: r163037
      Bingfeng Mei committed
  12. 04 Aug, 2010 1 commit
  13. 24 Jul, 2010 1 commit
  14. 22 Jul, 2010 2 commits
  15. 15 Jul, 2010 1 commit
    • tree.h (DECL_CHAIN): Define. · 910ad8de
      gcc/
      	* tree.h (DECL_CHAIN): Define.
      	* alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* c-decl.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt-cxx.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/pa/som.h: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/symbian-cxx.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* expr.c: Likewise.
      	* function.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimplify.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* langhooks.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* omp-low.c: Likewise.
      	* stor-layout.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      
      gcc/ada/
      	* gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      	* gcc-interface/utils2.c: Likewise.
      
      gcc/c-family/
      	* c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* c-format.c: Likewise.
      
      gcc/cp/
      	* cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* call.c: Likewise.
      	* class.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* init.c: Likewise.
      	* mangle.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      
      gcc/fortran/
      	* f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* trans-common.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      gcc/java/
      	* java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* boehm.c: Likewise.
      	* class.c: Likewise.
      	* decl.c: Likewise.
      	* expr.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      
      gcc/objc/
      	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      
      gcc/testsuite/
      	* g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN
      	with DECL_CHAIN.
      
      From-SVN: r162223
      Nathan Froyd committed
  16. 12 Jul, 2010 1 commit
  17. 08 Jul, 2010 1 commit
    • toplev.h: Do not include diagnostic-core.h. · 718f9c0f
      2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* toplev.h: Do not include diagnostic-core.h.
      	Include diagnostic-core.h in every file that includes toplev.h.
      	* c-tree.h: Do not include toplev.h.
      	* pretty-print.h: Update comment.
      	* Makefile.in: Update dependencies.
      	* alias.c: Include diagnostic-core.h in every file that includes
      	toplev.h.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloop.c: Likewise.
      	* combine.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/pe.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/crx/crx.c: Likewise.
      	* config/darwin-c.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/host-darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/netware.c: Likewise.
      	* config/i386/nwld.c: Likewise.
      	* config/i386/winnt-cxx.c: Likewise.
      	* config/i386/winnt-stubs.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64-c.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c-pragma.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68hc11/m68hc11.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/mep/mep-pragma.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/picochip/picochip.c: Likewise.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/score/score3.c: Likewise.
      	* config/score/score7.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/symbian-base.c: Likewise.
      	* config/sh/symbian-c.c: Likewise.
      	* config/sh/symbian-cxx.c: Likewise.
      	* config/sol2-c.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/v850/v850-c.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* convert.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbxout.c: Likewise.
      	* ddg.c: Likewise.
      	* dominance.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimplify.c: Likewise.
      	* graph.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* ifcvt.c: Likewise.
      	* implicit-zee.c: Likewise.
      	* integrate.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-iv.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* main.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* optabs.c: Likewise.
      	* params.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* real.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* targhooks.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* varasm.c: Likewise.
      	* vec.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      c-family/
      	* c-common.h: Include diagnostic-core.h. Error if already
      	included.
      	* c-semantics.c: Do not define GCC_DIAG_STYLE here.
      cp/
      	* cp-tree.h: Do not include toplev.h.
      	
      java/
      	* boehm.c: Include diagnostic-core.h in every file that includes
      	toplev.h.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      ada/
      	* gcc-interface/utils.c: Include diagnostic-core.h in every file
      	that includes toplev.h.
      lto/
      	* lto-coff.c: Include diagnostic-core.h in every file that
      	includes toplev.h.
      	* lto-elf.c: Likewise.
      	* lto-lang.c: Likewise.
      	* lto-macho.c: Likewise.
      
      From-SVN: r161943
      Manuel López-Ibáñez committed
  18. 01 Jul, 2010 1 commit
    • re PR middle-end/42834 (memcpy folding overeager) · 70f34814
      2010-07-01  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/42834
      	PR middle-end/44468
      	* doc/gimple.texi (is_gimple_mem_ref_addr): Document.
      	* doc/generic.texi (References to storage): Document MEM_REF.
      	* tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
      	(print_call_name): Likewise.
      	* tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
      	(build_simple_mem_ref_loc): New function.
      	(mem_ref_offset): Likewise.
      	* tree.h (build_simple_mem_ref_loc): Declare.
      	(build_simple_mem_ref): Define.
      	(mem_ref_offset): Declare.
      	* fold-const.c: Include tree-flow.h.
      	(operand_equal_p): Handle MEM_REF.
      	(build_fold_addr_expr_with_type_loc): Likewise.
      	(fold_comparison): Likewise.
      	(fold_unary_loc): Fold
      	VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
      	(fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
      	fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
      	(ptr_deref_may_alias_ref_p_1): Likewise.
      	(ao_ref_base_alias_set): Properly differentiate base object for
      	offset and TBAA.
      	(ao_ref_init_from_ptr_and_size): Use MEM_REF.
      	(indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
      	(indirect_refs_may_alias_p): Likewise.
      	(refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
      	chasing code.
      	(ref_maybe_used_by_call_p_1): Handle MEM_REF.
      	(call_may_clobber_ref_p_1): Likewise.
      	* dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
      	* expr.c (expand_assignment): Handle MEM_REF.
      	(store_expr): Handle MEM_REFs from STRING_CSTs.
      	(store_field): If expanding a MEM_REF of a non-addressable
      	decl use bitfield operations.
      	(get_inner_reference): Handle MEM_REF.
      	(expand_expr_addr_expr_1): Likewise.
      	(expand_expr_real_1): Likewise.
      	* tree-eh.c (tree_could_trap_p): Handle MEM_REF.
      	* alias.c (ao_ref_from_mem): Handle MEM_REF.
      	(get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
      	* tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
      	(dr_analyze_indices): Likewise.
      	(dr_analyze_alias): Likewise.
      	(object_address_invariant_in_loop_p): Likewise.
      	* gimplify.c (mark_addressable): Handle MEM_REF.
      	(gimplify_cond_expr): Build MEM_REFs.
      	(gimplify_modify_expr_to_memcpy): Likewise.
      	(gimplify_init_ctor_preeval_1): Handle MEM_REF.
      	(gimple_fold_indirect_ref): Adjust.
      	(gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
      	* tree.def (MEM_REF): New tree code.
      	* tree-dfa.c: Include toplev.h.
      	(get_ref_base_and_extent): Handle MEM_REF.
      	(get_addr_base_and_unit_offset): New function.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
      	* gimple-fold.c (may_propagate_address_into_dereference): Handle
      	MEM_REF.
      	(maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
      	accesses if the array has just one dimension.  Remove always true
      	parameter.  Do not require type compatibility here.
      	(maybe_fold_offset_to_component_ref): Remove.
      	(maybe_fold_stmt_indirect): Remove.
      	(maybe_fold_reference): Remove INDIRECT_REF handling.
      	Fold back to non-MEM_REF.
      	(maybe_fold_offset_to_address): Simplify.  Deal with type
      	mismatches here.
      	(maybe_fold_reference): Likewise.
      	(maybe_fold_stmt_addition): Likewise.  Also handle
      	&ARRAY + I in addition to &ARRAY[0] + I.
      	(fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
      	(gimple_get_relevant_ref_binfo): Handle MEM_REF.
      	* cfgexpand.c (expand_debug_expr): Handle MEM_REF.
      	* tree-ssa.c (useless_type_conversion_p): Make most pointer
      	conversions useless.
      	(warn_uninitialized_var): Handle MEM_REF.
      	(maybe_rewrite_mem_ref_base): New function.
      	(execute_update_addresses_taken): Implement re-writing of MEM_REFs
      	to SSA form.
      	* tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
      	INDIRECT_REF handling.
      	(copy_tree_body_r): Handle MEM_REF.
      	* gimple.c (is_gimple_addressable): Adjust.
      	(is_gimple_address): Likewise.
      	(is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
      	invariant base are invariant.
      	(is_gimple_min_lval): Adjust.
      	(is_gimple_mem_ref_addr): New function.
      	(get_base_address): Handle MEM_REF.
      	(count_ptr_derefs): Likewise.
      	(get_base_loadstore): Likewise.
      	* gimple.h (is_gimple_mem_ref_addr): Declare.
      	(gimple_call_fndecl): Handle invariant MEM_REF addresses.
      	* tree-cfg.c (verify_address): New function, split out from ...
      	(verify_expr): ... here.  Use for verifying ADDR_EXPRs and
      	the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
      	INDIRECT_REFs.
      	(verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
      	INDIRECT_REF.  Allow conversions.
      	(verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
      	a register does not change its size.
      	(verify_types_in_gimple_reference): Verify MEM_REF.
      	(verify_gimple_assign_single): Disallow INDIRECT_REF.
      	Handle MEM_REF.
      	* tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
      	New.
      	(mark_address_taken): Handle MEM_REF.
      	(get_indirect_ref_operands): Pass through opf_not_non_addressable.
      	(get_asm_expr_operands): Pass opf_not_non_addressable.
      	(get_expr_operands): Handle opf_[not_]non_addressable.
      	Handle MEM_REF.  Remove INDIRECT_REF handling.
      	* tree-vrp.c: (check_array_ref): Handle MEM_REF.
      	(search_for_addr_array): Likewise.
      	(check_array_bounds): Likewise.
      	(vrp_stmt_computes_nonzero): Adjust for MEM_REF.
      	* tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
      	(ref_always_accessed_p): Likewise.
      	(gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
      	* tree-complex.c (extract_component): Do not handle INDIRECT_REF.
      	Handle MEM_REF.
      	* cgraphbuild.c (mark_load): Properly check for NULL result
      	from get_base_address.
      	(mark_store): Likewise.
      	* tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
      	* tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
      	handling for MEM_REF.
      	* tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
      	&MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
      	* builtins.c (stabilize_va_list_loc): Use the function ABI
      	valist type if we couldn't canonicalize the argument type.
      	Always dereference with the canonical va-list type.
      	(maybe_emit_free_warning): Handle MEM_REF.
      	(fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
      	memmove to memcpy.
      	* builtins.c (fold_builtin_memory_op): Use ref-all types
      	for all memcpy foldings.
      	* omp-low.c (build_receiver_ref): Adjust for MEM_REF.
      	(build_outer_var_ref): Likewise.
      	(scan_omp_1_op): Likewise.
      	(lower_rec_input_clauses): Likewise.
      	(lower_lastprivate_clauses): Likewise.
      	(lower_reduction_clauses): Likewise.
      	(lower_copyprivate_clauses): Likewise.
      	(expand_omp_atomic_pipeline): Likewise.
      	(expand_omp_atomic_mutex): Likewise.
      	(create_task_copyfn): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
      	Remove old union trick.  Initialize constant offsets.
      	(ao_ref_init_from_vn_reference): Likewise.  Do not handle
      	INDIRECT_REF.  Init base_alias_set properly.
      	(vn_reference_lookup_3): Replace INDIRECT_REF handling with
      	MEM_REF.
      	(vn_reference_fold_indirect): Adjust for MEM_REFs.
      	(valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
      	for ARRAY_REFs.
      	(may_insert): Remove.
      	(visit_reference_op_load): Do not test may_insert.
      	(run_scc_vn): Remove parameter, do not fiddle with may_insert.
      	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
      	a field to store the constant offset this op applies.
      	(run_scc_vn): Adjust prototype.
      	* cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
      	* tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
      	MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
      	bother about volatile qualifiers on pointers.
      	(fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
      	* tree-ssa-loop-ivopts.c
      	* tree-ssa-loop-ivopts.c (determine_base_object): Adjust
      	for MEM_REF.
      	(strip_offset_1): Likewise.
      	(find_interesting_uses_address): Replace INDIRECT_REF handling with
      	MEM_REF handling.
      	(get_computation_cost_at): Likewise.
      	* ipa-pure-const.c (check_op): Handle MEM_REF.
      	* tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
      	* tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
      	and constants.
      	* ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
      	* tree-parloops.c (take_address_of): Adjust for MEM_REF.
      	(eliminate_local_variables_1): Likewise.
      	(create_call_for_reduction_1): Likewise.
      	(create_loads_for_reductions): Likewise.
      	(create_loads_and_stores_for_name): Likewise.
      	* matrix-reorg.c (may_flatten_matrices_1): Sanitize.
      	(ssa_accessed_in_tree): Handle MEM_REF.
      	(ssa_accessed_in_assign_rhs): Likewise.
      	(update_type_size): Likewise.
      	(analyze_accesses_for_call_stmt): Likewise.
      	(analyze_accesses_for_assign_stmt): Likewise.
      	(transform_access_sites): Likewise.
      	(transform_allocation_sites): Likewise.
      	* tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
      	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
      	not handle INDIRECT_REF.
      	* tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
      	(cond_store_replacement): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
      	MEM_REF, no not handle INDIRECT_REFs.
      	(insert_into_preds_of_block): Properly initialize avail.
      	(phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
      	for ARRAY_REFs.  Properly handle reference lookups that
      	require a bit re-interpretation.
      	(can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
      	* tree-sra.c
      	* tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
      	(build_ref_for_offset_1): Remove.
      	(build_ref_for_offset): Build MEM_REFs.
      	(gate_intra_sra): Disable for now.
      	(sra_ipa_modify_expr): Handle MEM_REF.
      	(ipa_early_sra_gate): Disable for now.
      	* tree-sra.c (create_access): Swap INDIRECT_REF handling for
      	MEM_REF handling.
      	(disqualify_base_of_expr): Likewise.
      	(ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
      	MEM_REF handling.
      	(sra_ipa_modify_expr): Remove INDIRECT_REF handling.
      	Use mem_ref_offset.  Remove bogus folding.
      	(build_access_from_expr_1): Properly handle MEM_REF for
      	non IPA-SRA.
      	(make_fancy_name_1): Add support for MEM_REF.
      	* tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
      	* tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
      	* ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
      	(compute_complex_ancestor_jump_func): Likewise.
      	(ipa_analyze_virtual_call_uses): Likewise.
      	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
      	INDIRECT_REF folding with more generalized MEM_REF folding.
      	(tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
      	(forward_propagate_addr_into_variable_array_index): Also handle
      	&ARRAY + I in addition to &ARRAY[0] + I.
      	* tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
      	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
      	creates assignments with overlap.
      	* tree-nested.c (get_static_chain): Adjust for MEM_REF.
      	(get_frame_field): Likewise.
      	(get_nonlocal_debug_decl): Likewise.
      	(convert_nonlocal_reference_op): Likewise.
      	(struct nesting_info): Add mem_refs pointer-set.
      	(create_nesting_tree): Allocate it.
      	(convert_local_reference_op): Insert to be folded mem-refs.
      	(fold_mem_refs): New function.
      	(finalize_nesting_tree_1): Perform defered folding of mem-refs 
      	(free_nesting_tree): Free the pointer-set.
      	* tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
      	(vectorizable_load): Likewise.
      	* tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
      	(propagate_with_phi): Likewise.
      	* tree-object-size.c (addr_object_size): Handle MEM_REFs
      	instead of INDIRECT_REFs.
      	(compute_object_offset): Handle MEM_REF.
      	(plus_stmt_object_size): Handle MEM_REF.
      	(collect_object_sizes_for): Dispatch to plus_stmt_object_size
      	for &MEM_REF.
      	* tree-flow.h (get_addr_base_and_unit_offset): Declare.
      	(symbol_marked_for_renaming): Likewise.
      	* Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
      	(fold-const.o): Add $(TREE_FLOW_H).
      	* tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
      	(find_func_clobbers): Likewise.
      	* ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
      	(decompose_access): Likewise.
      	(replace_field_acc): Likewise.
      	(replace_field_access_stmt): Likewise.
      	(insert_new_var_in_stmt): Likewise.
      	(get_stmt_accesses): Likewise.
      	(reorg_structs_drive): Disable.
      	* config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
      	(ix86_canonical_va_list_type): Likewise.
      
      	cp/
      	* cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
      	predicate we are looking for, allow non-gimplified
      	INDIRECT_REFs.
      
      	testsuite/
      	* gcc.c-torture/execute/20100316-1.c: New testcase.
      	* gcc.c-torture/execute/pr44468.c: Likewise.
      	* gcc.c-torture/compile/20100609-1.c: Likewise.
      	* gcc.dg/volatile2.c: Adjust.
      	* gcc.dg/plugin/selfassign.c: Likewise.
      	* gcc.dg/pr36902.c: Likewise.
      	* gcc.dg/tree-ssa/foldaddr-2.c: Remove.
      	* gcc.dg/tree-ssa/foldaddr-3.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
      	* gcc.dg/tree-ssa/pr17141-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-21.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-1.c: Likewise.
      	* gcc.dg/tree-ssa/20030807-7.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-10.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-1.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-2.c: Likewise.
      	* gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-25.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-26.c: Likewise.
      	* gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-7.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-5.c: Likewise.
      	* gcc.dg/struct/w_prof_two_strs.c: XFAIL.
      	* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Likewise.
      	* gcc.dg/struct/wo_prof_global_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_malloc_size_var.c: Likewise.
      	* gcc.dg/struct/w_prof_local_array.c: Likewise.
      	* gcc.dg/struct/w_prof_single_str_global.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_str_init.c: Likewise.
      	* gcc.dg/struct/wo_prof_array_through_pointer.c: Likewise.
      	* gcc.dg/struct/w_prof_global_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_array_field.c: Likewise.
      	* gcc.dg/struct/wo_prof_single_str_local.c: Likewise.
      	* gcc.dg/struct/w_prof_local_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_two_strs.c: Likewise.
      	* gcc.dg/struct/wo_prof_empty_str.c: Likewise.
      	* gcc.dg/struct/wo_prof_local_array.c: Likewise.
      	* gcc.dg/struct/w_prof_global_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_single_str_global.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_value.c: Likewise.
      	* gcc.dg/struct/wo_prof_global_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_return.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_double_malloc.c: Likewise.
      	* gcc.dg/struct/w_ratio_cold_str.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_pointer.c: Likewise.
      	* gcc.dg/struct/wo_prof_local_var.c: Likewise.
      	* gcc.dg/tree-prof/stringop-1.c: Adjust.
      	* g++.dg/tree-ssa/pr31146.C: Likewise.
      	* g++.dg/tree-ssa/copyprop-1.C: Likewise.
      	* g++.dg/tree-ssa/pr33604.C: Likewise.
      	* g++.dg/plugin/selfassign.c: Likewise.
      	* gfortran.dg/array_memcpy_3.f90: Likewise.
      	* gfortran.dg/array_memcpy_4.f90: Likewise.
      	* c-c++-common/torture/pr42834.c: New testcase.
      
      From-SVN: r161655
      Richard Guenther committed
  19. 13 Jun, 2010 1 commit
    • bitmap.c (bitmap_and, [...]): Turn internal datastructure checks into checking asserts. · 7a40b8b1
      	* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
      	bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
      	bitmap_ior_into, bitmap_xor, bitmap_xor_into,
      	bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal datastructure
      	checks into checking asserts.
      	* rtlanal.c (find_reg_note): Use gcc_checking_assert.
      	* tree-ssa-sccvn.c (VN_INFO): Likewise.
      	* df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
      	df_ref_create_structure): Likewise.
      	* alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
      	pool_free): Use gcc_checking_assert.
      	* alias.c (get_alias_set): Likewise.
      	* var-tracking.c (variable_htab_free, shared_hash_copy,
      	canonicalize_values_mark, variable_merge_over_cur): Likewise.
      	* lto-streamer.c (bp_unpack_value): Likewise.
      
      From-SVN: r160681
      Jan Hubicka committed
  20. 08 Jun, 2010 1 commit
    • utils.c (init_gnat_to_gnu): Use typed GC allocation. · a9429e29
      gcc/ada:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
      	allocation.
      	(init_dummy_type): Likewise.
      	(gnat_pushlevel): Likewise.
      
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	(extract_encoding): Likewise.
      	(decode_name): Likewise.
      
      	* gcc-interface/misc.c (gnat_printable_name): Likewise.
      
      	* gcc-interface/decl.c (annotate_value): Likewise.
      
      	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
      	GTY option.
      	(struct lang_decl): Likewise.
      	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
      	(SET_DECL_LANG_SPECIFIC): Likewise.
      
      gcc/c-family:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* c-pragma.c (push_alignment): Use typed GC allocation.
      	(handle_pragma_push_options): Likewise.
      
      	* c-common.c (parse_optimize_options): Likewise.
      
      	* c-common.h (struct sorted_fields_type): Add variable_size GTY
      	option.
      
      gcc/cp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* typeck2.c (abstract_virtuals_error): Likewise.
      
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class): Likewise.
      	(push_tinst_level): Likewise.
      
      	* parser.c (cp_lexer_new_main): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      
      	* decl.c (make_label_decl): Likewise.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      
      	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
      
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      
      	* class.c (finish_struct_1): Likewise.
      
      	* cp-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* parser.c (cp_parser_new): Update comment to not reference
      	ggc_alloc.
      
      gcc/fortran:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
      	allocation.
      	(gfc_get_array_type_bounds): Likewise.
      
      	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
      	(gfc_find_module): Likewise.
      
      	* f95-lang.c (pushlevel): Likewise.
      
      	* trans.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      gcc/java:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
      
      	* jcf-parse.c (java_parse_file): Likewise.
      	(process_zip_dir): Likewise.
      
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
      
      	* expr.c (add_type_assertion): Likewise.
      
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      
      	* class.c (add_method_1): Likewise.
      	(java_treetreehash_new): Likewise.
      
      	* java-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* jch.h (struct cpool_entry): Likewise.
      
      	* java-tree.h (java_treetreehash_create): Remove parameter ggc.
      
      	* except.c (prepare_eh_table_type): Update
      	java_treetreehash_create call.
      
      	* class.c (add_method_1): Update java_treetreehash_create call.
      	(java_treetreehash_create): Remove parameter gc.  Use
      	htab_create_ggc.
      
      gcc/lto:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
      	(lto_file_read): Likewise.
      	(new_partition): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      gcc/objc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      	* objc-act.c (objc_volatilize_decl): Likewise.
      	(objc_build_string_object): Likewise.
      	(hash_init): Likewise.
      	(hash_enter): Likewise.
      	(hash_add_attr): Likewise.
      	(add_class): Likewise.
      	(start_class): Likewise.
      
      gcc/objcp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      gcc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
      
      	* doc/gty.texi (GTY Options): Document typed GC allocation and
      	variable_size GTY option.
      
      	* ggc-internal.h: New.
      
      	* ggc.h: Update copyright year.
      	(digit_string): Move to stringpool.c.
      	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
      	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
      	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
      	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
      	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
      	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
      	(ggc_force_collect, ggc_get_size, ggc_statistics)
      	(ggc_print_common_statistics): Move to ggc-internal.h.
      	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
      	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
      	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
      	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
      	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
      	(ggc_alloc_zone_pass_stat): Remove.
      	(ggc_internal_alloc_stat, ggc_internal_alloc)
      	(ggc_internal_cleared_alloc_stat): New.
      	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
      	(ggc_internal_vec_alloc_stat)
      	(ggc_internal_cleared_vec_alloc_stat)
      	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
      	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
      	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(htab_create_ggc, splay_tree_new_ggc): Redefine.
      	(ggc_splay_alloc): Change the type of the first argument to
      	enum gt_types_enum.
      	(ggc_alloc_string): Make macro.
      	(ggc_alloc_string_stat): New.
      	(ggc_strdup): Redefine.
      	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
      	(ggc_alloc_rtvec_sized): New.
      	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
      	(ggc_internal_cleared_alloc_zone_stat)
      	(ggc_internal_zone_alloc_stat)
      	(ggc_internal_zone_cleared_alloc_stat)
      	(ggc_internal_zone_vec_alloc_stat)
      	(ggc_alloc_zone_rtx_def_stat)
      	(ggc_alloc_zone_tree_node_stat)
      	(ggc_alloc_zone_cleared_tree_node_stat)
      	(ggc_alloc_cleared_gimple_statement_d_stat): New.
      
      	* ggc-common.c: Include ggc-internal.h.
      	(ggc_internal_cleared_alloc_stat): Rename from
      	ggc_alloc_cleared_stat.
      	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
      	(ggc_calloc): Remove.
      	(ggc_cleared_alloc_htab_ignore_args): New.
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(ggc_splay_alloc): Add obj_type parameter.
      	(init_ggc_heuristics): Formatting fixes.
      
      	* ggc-none.c: Update copyright year.
      	(ggc_alloc_stat): Rename to ggc_alloc_stat.
      	(ggc_alloc_cleared_stat): Rename to
      	ggc_internal_cleared_alloc_stat.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
      	Remove references to ggc_alloc in comments.
      	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
      	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-zone.c: Include ggc-internal.h.  Remove references to
      	ggc_alloc in comments.
      	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat): New.
      	(ggc_internal_cleared_alloc_zone_stat): New.
      	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
      	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      
      	* stringpool.c: Update copyright year.  Include ggc-internal.h
      	(digit_vector): Make static.
      	(digit_string): Moved from ggc.h.
      	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
      	(ggc_alloc_string): Rename to ggc_alloc_string_stat.
      
      	* Makefile.in (GGC_INTERNAL_H): New.
      	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
      	$(GGC_INTERNAL_H) to dependencies.
      
      	* gentype.c: Update copyright year.
      	(walk_type): Accept variable_size GTY option.
      	(USED_BY_TYPED_GC_P): New macro.
      	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
      	whitespace at the end of strings.
      	(get_type_specifier, variable_size_p): New functions.
      	(alloc_quantity, alloc_zone): New enums.
      	(write_typed_alloc_def): New function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(output_typename, write_splay_tree_allocator_def): Likewise.
      	(write_splay_tree_allocators): Likewise.
      	(main): Call write_typed_alloc_defns and
      	write_splay_tree_allocators.
      
      	* lto-streamer.h (lto_file_decl_data_ptr): New.
      
      	* passes.c (order): Define using cgraph_node_ptr.
      
      	* strinpool.c (struct string_pool_data): Declare nested_ptr using
      	ht_identifier_ptr.
      
      	* gimple.h (union gimple_statement_d): Likewise.
      
      	* rtl.h (struct rtx_def): Likewise.
      	(struct rtvec_def): Likewise.
      
      	* tree.h (union tree_node): Likewise.
      
      	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
      
      	* cfgloop.c (record_loop_exits): Use htab_create_ggc.
      
      	* tree-scalar-evolution.c (scev_initialize): Likewise.
      
      	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.
      
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      	* omp-low.c (lower_omp_critical): Likewise.
      
      	* bitmap.h (struct bitmap_head_def): Update comment to not
      	reference ggc_alloc.
      
      	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
      
      	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
      
      	* ipa-prop.c (duplicate_ggc_array): Rename to
      	duplicate_ipa_jump_func_array.  Use typed GC allocation.
      	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
      
      	* gimple.c (gimple_alloc_stat): Use
      	ggc_alloc_cleared_gimple_statement_d_stat.
      
      	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
      
      	* tree.c (make_node_stat): Use
      	ggc_alloc_zone_cleared_tree_node_stat.
      	(make_tree_vec_stat): Likewise.
      	(build_vl_exp_stat): Likewise.
      	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
      	(make_tree_binfo_stat): Likewise.
      	(tree_cons_stat): Likewise.
      
      	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
      	(shallow_copy_rtx_stat): Likewise.
      	(make_node_stat): Likewise.
      
      	* lto-symtab.c: Fix comment.
      
      	* tree-cfg.c (create_bb): Update comment to not reference
      	ggc_alloc_cleared.
      	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
      	value.
      
      	* varpool.c (varpool_node): Use typed GC allocation.
      	(varpool_extra_name_alias): Likewise.
      
      	* varasm.c (emutls_decl): Likewise.
      	(get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      
      	* tree.c (build_vl_exp_stat): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      
      	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
      
      	* tree-ssa.c (init_tree_ssa): Likewise.
      
      	* tree-ssa-structalias.c (heapvar_insert): Likewise.
      
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      
      	* tree-ssa-alias.c (get_ptr_info): Likewise.
      
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      
      	* tree-dfa.c (create_var_ann): Likewise.
      
      	* tree-cfg.c (create_bb): Likewise.
      
      	* toplev.c (alloc_for_identifier_to_locale): Likewise.
      	(general_init): Likewise.
      
      	* stringpool.c (stringpool_ggc_alloc): Likewise.
      	(gt_pch_save_stringpool): Likewise.
      
      	* sese.c (if_region_set_false_region): Likewise.
      
      	* passes.c (do_per_function_toporder): Likewise.
      
      	* optabs.c (set_optab_libfunc): Likewise.
      	(set_conv_libfunc): Likewise.
      
      	* lto-symtab.c (lto_symtab_register_decl): Likewise.
      
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(make_new_block): Likewise.
      	(unpack_ts_real_cst_value_fields): Likewise.
      
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      
      	* loop-init.c (loop_optimizer_init): Likewise.
      
      	* lambda.h (lambda_vector_new): Likewise.
      
      	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
      
      	* ira.c (update_equiv_regs): Likewise.
      
      	* ipa.c (cgraph_node_set_new): Likewise.
      	(cgraph_node_set_add): Likewise.
      	(varpool_node_set_new): Likewise.
      	(varpool_node_set_add): Likewise.
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
      	(duplicate_ipa_jump_func_array): Likewise.
      	(ipa_read_node_info): Likewise.
      
      	* ipa-cp.c (ipcp_create_replace_map): Likewise.
      
      	* integrate.c (get_hard_reg_initial_val): Likewise.
      
      	* gimple.c (gimple_alloc_stat): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_seq_alloc): Likewise.
      	(gimple_copy): Likewise.
      
      	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
      	(gsi_insert_after_without_update): Likewise.
      
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(allocate_struct_function): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      
      	* dwarf2out.c (new_cfi): Likewise.
      	(queue_reg_save): Likewise.
      	(dwarf2out_frame_init): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(loc_descriptor): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(add_comp_dir_attribute): Likewise.
      	(add_name_and_src_coords_attributes): Likewise.
      	(lookup_filename): Likewise.
      	(store_vcall_insn): Likewise.
      	(dwarf2out_init): Likewise.
      
      	* dbxout.c (dbxout_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      
      	* config/score/score7.c (score7_output_external): Likewise.
      
      	* config/score/score3.c (score3_output_external): Likewise.
      
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(get_deferred_plabel): Likewise.
      
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      
      	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      
      	* config/darwin.c (machopic_indirection_name): Likewise.
      
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_need_linkage): Likewise.
      	(alpha_use_linkage): Likewise.
      
      	* cgraph.c (cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_create_indirect_edge): Likewise.
      	(cgraph_add_asm_node): Likewise.
      
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      
      	* cfgloop.c (alloc_loop): Likewise.
      	(rescan_loop_exit): Likewise.
      
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      
      	* c-parser.c (c_parse_init): Likewise.
      	(c_parse_file): Likewise.
      
      	* c-decl.c (bind): Likewise.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(c_push_function_context): Likewise.
      
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      
      	* alias.c (record_alias_subset): Likewise.
      	(init_alias_analysis): Likewise.
      
      include:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.h: Update copyright years.
      	(splay_tree_s): Document fields.
      	(splay_tree_new_typed_alloc): New.
      
      	* hashtab.h: Update copyright years.
      	(htab_create_typed_alloc): New.
      
      libcpp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/symtab.h (ht_identifier_ptr): New.
      
      libiberty:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.c: Update copyright years.
      	(splay_tree_new_typed_alloc): New.
      	(splay_tree_new_with_allocator): Use it.
      
      	* hashtab.c: Update copyright years.
      	(htab_create_typed_alloc): New.
      	(htab_create_alloc): Use it.
      
      	* functions.texi: Regenerate.
      
      From-SVN: r160425
      Laurynas Biveinis committed
  21. 16 May, 2010 1 commit
  22. 04 May, 2010 1 commit
    • Handle the same VALUE for true dependence. · 2147c71c
      gcc/
      
      2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/43671
      	* alias.c (true_dependence): Handle the same VALUE in x and mem.
      	(canon_true_dependence): Likewise.
      	(write_dependence_p): Likewise.
      
      gcc/testsuite/
      
      2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/43671
      	* gcc.target/i386/pr43671.c: New.
      
      From-SVN: r159033
      H.J. Lu committed
  23. 30 Apr, 2010 1 commit
    • toplev.c: Include varray.h for statistics dumping. · 9aae8d16
      gcc/ChangeLog:
      	* toplev.c: Include varray.h for statistics dumping.
      	* tree.h: Do not declare varray_head_tag.
      	* tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
      	regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
      	c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
      	gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
      	lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
      	tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
      	c-common.c, c-common.h, reg-stack.c, basic-block.h,
      	tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
      	include varray.h.
      	* Makefile.in: Update for abovementioned changes.
      
      objc/ChangeLog:
      	* objc-act.c: Do not include varray.h.
      
      objcp/ChangeLog:
      	* objcp-decl.c: Do not include varray.h.
      
      cp/ChangeLog:
      	* optimize.c, parser.c,mangle.c, cp-tree.h: DO not include varray.h.
      	* Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
      
      From-SVN: r158933
      Steven Bosscher committed
  24. 16 Apr, 2010 2 commits
  25. 15 Apr, 2010 1 commit
  26. 07 Apr, 2010 2 commits
    • invoke.texi (-fargument-alias, [...]): Remove. · 0d3c82d6
      2010-04-07  Richard Guenther  <rguenther@suse.de>
      
      	* doc/invoke.texi (-fargument-alias, -fargument-noalias,
      	-fargument-noalias-global, -fargument-noalias-anything): Remove.
      	* common.opt: Likewise.
      	* tree-ssa-structalias.c (intra_create_variable_infos): Adjust
      	comment.
      	* alias.c (base_alias_check): Remove flag_argument_noalias
      	handling.
      	(nonoverlapping_memrefs_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
      	* opts.c (common_handle_option): Handle OPT_fargument_alias,
      	OPT_fargument_noalias, OPT_fargument_noalias_anything and
      	OPT_fargument_noalias_global for backward compatibility.
      
      	fortran/
      	* options.c (gfc_init_options): Do not set.
      
      From-SVN: r158060
      Richard Guenther committed
    • re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not… · 366f945f
      re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
      
      2010-04-07  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/42617
      	* alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
      	preserve points-to related information.
      
      From-SVN: r158046
      Richard Guenther committed
  27. 03 Apr, 2010 1 commit
  28. 02 Apr, 2010 1 commit
    • Make-lang.in, [...]: Update copyright years. · c75c517d
      	* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, 
      	basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
      	collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
      	config/alpha/predicates.md, config/arm/arm.md,
      	config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
      	config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
      	config/darwin9.h, config/darwin.c, config/darwin.h,
      	config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
      	config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
      	config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
      	config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
      	config/mips/mips.md, config/mn10300/mn10300.c,
      	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
      	config/rs6000/aix.h, config/rs6000/dfp.md,
      	config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
      	config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
      	config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
      	config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
      	config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
      	config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
      	c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
      	diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
      	doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
      	doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
      	fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
      	gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
      	graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
      	graphite-dependences.c, graphite-poly.c, graphite-poly.h,
      	graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
      	graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
      	intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
      	ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
      	ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
      	loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
      	objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
      	opt-functions.awk, opth-gen.awk, params.def, passes.c,
      	postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
      	rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
      	store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
      	tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
      	tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
      	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
      	tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
      	tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
      	tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
      	tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
      	unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
      
      From-SVN: r157950
      Steven Bosscher committed
  29. 16 Feb, 2010 1 commit
  30. 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
  31. 01 Nov, 2009 1 commit
  32. 28 Oct, 2009 1 commit
    • re PR middle-end/41855 (ICE in refs_may_alias_p_1, at tree-ssa-alias.c:855) · 1307c758
      2009-10-28  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/41855
      	* tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
      	(ref_maybe_used_by_call_p_1): Fix bcopy handling.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-structalias.c (find_func_aliases): Likewise.
      	* alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
      
      	* gfortran.dg/lto/20091028-1_0.f90: New testcase.
      	* gfortran.dg/lto/20091028-1_1.c: Likewise.
      	* gfortran.dg/lto/20091028-2_0.f90: Likewise.
      	* gfortran.dg/lto/20091028-2_1.c: Likewise.
      
      From-SVN: r153655
      Richard Guenther committed
  33. 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
  34. 23 Oct, 2009 1 commit
    • re PR c/41673 (variable-length array dereference inside sizeof gives "warning:… · cb9c2485
      re PR c/41673 (variable-length array dereference inside sizeof gives "warning: dereferencing type-punned pointer will break strict-aliasing rules")
      
      	PR c/41673
      	* alias.c (get_alias_set): Call langhook before returning 0 for
      	types with structural equality.
      	* c-common.c (c_common_get_alias_set): Use alias set of element
      	type for arrays with structural comparison.
      
      testsuite:
      	* gcc.dg/Wstrict-aliasing-bogus-vla-1.c: New test.
      
      From-SVN: r153496
      Joseph Myers committed
  35. 29 Sep, 2009 1 commit