1. 11 Sep, 2012 1 commit
    • Remove unnecessary VEC function overloads. · f32682ca
      Several VEC member functions that accept an element 'T' used to have
      two overloads: one taking 'T', the second taking 'T *'.
      
      This used to be needed because of the interface dichotomy between
      vectors of objects and vectors of pointers.  In the past, vectors of
      pointers would use pass-by-value semantics, but vectors of objects
      would use pass-by-reference semantics.  This is no longer necessary,
      but the distinction had remained.
      
      The main side-effect of this change is some code reduction in code
      that manipulates vectors of objects.  For instance,
      
      -  struct iterator_use *iuse;
      -
      -  iuse = VEC_safe_push (iterator_use, heap, iterator_uses, NULL);
      -  iuse->iterator = iterator;
      -  iuse->ptr = ptr;
      +  struct iterator_use iuse = {iterator, ptr};
      +  VEC_safe_push (iterator_use, heap, iterator_uses, iuse);
      
      Compile time performance was not affected.
      
      Tested on x86_64 and ppc64.
      
      Also built all-gcc on all targets using VEC routines: arm, bfin, c6x,
      epiphany, ia64, mips, sh, spu, and vms.
      
      2012-09-10  Diego Novillo  <dnovillo@google.com>
      
      	* vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
      	Update all users.
      	(vec_t::safe_push): Likewise.
      	(vec_t::quick_insert): Likewise.
      	(vec_t::lower_bound): Likewise.
      	(vec_t::safe_insert): Likewise.
      	(vec_t::replace): Change second argument to 'T &'.
      
      From-SVN: r191165
      Diego Novillo committed
  2. 07 Sep, 2012 1 commit
    • Modify gcc/*.[hc] double_int call sites to use the new interface. · 27bcd47c
      This change entailed adding a few new methods to double_int.
      
      The change results in a 0.163% time improvement with a 70% confidence.
      
      Tested on x86_64.
      
      
      Index: gcc/ChangeLog
      
      2012-09-06  Lawrence Crowl  <crowl@google.com>
      
      	* double-int.h (double_int::operator &=): New.
      	(double_int::operator ^=): New.
      	(double_int::operator |=): New.
      	(double_int::mul_with_sign): Modify overflow parameter to bool*.
      	(double_int::add_with_sign): New.
      	(double_int::ule): New.
      	(double_int::sle): New.
      	(binary double_int::operator *): Remove parameter name.
      	(binary double_int::operator +): Likewise.
      	(binary double_int::operator -): Likewise.
      	(binary double_int::operator &): Likewise.
      	(double_int::operator |): Likewise.
      	(double_int::operator ^): Likewise.
      	(double_int::and_not): Likewise.
      	(double_int::from_shwi): Tidy formatting.
      	(double_int::from_uhwi): Likewise.
      	(double_int::from_uhwi): Likewise.
      	* double-int.c (double_int::mul_with_sign): Modify overflow parameter
      	to bool*.
      	(double_int::add_with_sign): New.
      	(double_int::ule): New.
      	(double_int::sle): New.
      	* builtins.c: Modify to use the new double_int interface.
      	* cgraph.c: Likewise.
      	* combine.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimplify-rtx.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* loop-iv.c: Likewise.
      	* optabs.c: Likewise.
      	* stor-layout.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-sccvn: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.h: Likewise.
      	* tree.c: Likewise.
      	* varasm.c: Likewise.
      
      From-SVN: r191047
      Lawrence Crowl committed
  3. 06 Sep, 2012 1 commit
  4. 22 Aug, 2012 1 commit
    • Make TREE_NOTHROW use the base.nothrow_flag again · 4579ccbc
      While working on something else, I noticed that debug_tree (vec), when
      vec is a TREE_VEC was crashing because TREE_NOTHROW was asserting that
      its argument is not a TREE_VEC, so print_node would crash.
      
      It turned out that TREE_NOTHROW was accidentally modified by this
      change set:
      
      commit 87d8f7b67c6a36c37e48e298f26e693520099b1e
      Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
      Date:   Tue Aug 21 10:03:38 2012 +0000
      
          2012-08-21  Richard Guenther  <rguenther@suse.de>
      
          	cp/
          	* cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor.
          	(ATTR_IS_DEPENDENT): Likewise.
          	(ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of
          	TREE_LANG_FLAG_0 on TREE_VECs.
      
          	* tree.h (struct tree_base): Add union to make it possible to
          	re-use the upper 4 bytes for tree codes that do not need as
          	many flags as others.  Move visited and default_def_flag to
          	common bits section in exchange for saturating_flag and
          	unsigned_flag.  Add SSA name version and tree vec length
          	fields here.
          	(struct tree_vec): Remove length field here.
          	(struct tree_ssa_name): Remove version field here.
      
          git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190558 138bc75d-0d04-0410-961f-82ee72b054a4
      
      Richard Guenther pre-approved the reverting of the TREE_NOTHROW change
      line.
      
      Tested on x86_64-unknown-linux-gnu against master and applied to
      trunk.
      
      gcc/
      	* tree.h (TREE_NOTHROW): Use the base.nothrow_flag.
      
      From-SVN: r190595
      Dodji Seketeli committed
  5. 21 Aug, 2012 2 commits
    • alloc-pool.c (pool_alloc): Fix valgrind annotation. · 825c743c
      2012-08-21  Richard Guenther  <rguenther@suse.de>
      
      	* alloc-pool.c (pool_alloc): Fix valgrind annotation.
      	* tree.h: Fix typo and complete flags documentation.
      
      From-SVN: r190559
      Richard Guenther committed
    • cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor. · c1aaec5b
      2012-08-21  Richard Guenther  <rguenther@suse.de>
      
      	cp/
      	* cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor.
      	(ATTR_IS_DEPENDENT): Likewise.
      	(ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of
      	TREE_LANG_FLAG_0 on TREE_VECs.
      
      	* tree.h (struct tree_base): Add union to make it possible to
      	re-use the upper 4 bytes for tree codes that do not need as
      	many flags as others.  Move visited and default_def_flag to
      	common bits section in exchange for saturating_flag and
      	unsigned_flag.  Add SSA name version and tree vec length
      	fields here.
      	(struct tree_vec): Remove length field here.
      	(struct tree_ssa_name): Remove version field here.
      
      From-SVN: r190558
      Richard Biener committed
  6. 15 Aug, 2012 1 commit
    • backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html... · 0823efed
      Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
      
      As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
      changes the default bootstrap process so that stage 1 always builds with a C++
      compiler.
      
      Other than the bootstrap change, the patch makes no functional changes to the
      compiler.  Everything should build as it does now in trunk.  The main
      changes in this patch are:
      
      1- Configuration changes.
      2- Re-write of VEC.
      3- Re-write of gengtype to support C++ templates and
         user-provided marking functions.
      4- New hash table class.
      5- Re-write double_int.
      6- Implement tree macros as inline functions so they can be
         called from gdb.
      
      As discussed before, several of these changes do not fully change
      the call sites to use the new APIs.
      
      The bootstrap changes have already been tested on a wide range of
      targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
      I have tested the merged trunk on: x86_64-unknown-linux-gnu,
      mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
      i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
      
      ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.
      
      	* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
      	POSTSTAGE1_CONFIGURE_FLAGS.
      	* Makefile.in: Regenerate.
      	* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
      	Force C++ when bootstrapping.
      	* configure: Regenerate.
      
      
      libcpp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  New C++ hash table.
      
      	* include/symtab.h (typedef struct ht hash_table): Change the typedef
      	name to cpp_hash_table.  Update all users of the typedef.
      
      gcc/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* configure.ac (CXX_FOR_BUILD): Define and substitute.
      	(BUILD_CXXFLAGS): Define.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	Force all build to be with C++.
      	* Makefile.in (BUILD_CXXFLAGS): Use it.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* doc/install.texi: Remove documentation for --enable-build-with-cxx
      	and --enable-build-poststage1-with-cxx.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-implement VEC in C++.
      
      	* vec.c (vec_heap_free): Convert into a template function.
      	(vec_gc_o_reserve_1): Make extern.
      	(vec_gc_p_reserve): Remove.
      	(vec_gc_p_reserve_exact): Remove.
      	(vec_gc_o_reserve): Remove.
      	(vec_gc_o_reserve_exact): Remove.
      	(vec_heap_o_reserve_1): Make extern.
      	(vec_heap_p_reserve): Remove.
      	(vec_heap_p_reserve_exact): Remove.
      	(vec_heap_o_reserve): Remove.
      	(vec_heap_o_reserve_exact): Remove.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
      	VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
      	in the file.
      	(VEC): Define to vec_t<T>.
      	(vec_allocation_t): Define.
      	(struct vec_prefix): Move earlier in the file.
      	(vec_t<T>): New template.
      	(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
      	DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
      	DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
      	DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
      	(DEF_VEC_A): Provide template instantiations for
      	GC/PCH markers that do not traverse the vector.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(vec_stack_free): Re-write as a template function.
      	(vec_reserve): New template function.
      	(vec_reserve_exact): New template function.
      	(vec_heap_free): New template function if GATHER_STATISTICS is
      	defined.  Otherwise, macro that expands to free().
      	(VEC_length_1): New template function.
      	(VEC_length): Call it.
      	(VEC_empty_1): New template function.
      	(VEC_empty): Call it.
      	(VEC_address_1): New template function.
      	(VEC_address): Call it.
      	(VEC_last_1): New template function.
      	(VEC_last): Call it.  Change return type to T&.
      	Change all users that used VEC_Os.
      	(VEC_index_1): New template function.
      	(VEC_index): Call it.  Return a T& instead of a T*.
      	Update all callers that were using VEC_O before.
      	(VEC_iterate_1): New template function.
      	(VEC_iterate): Call it.
      	(VEC_embedded_size_1): New template function.
      	(VEC_embedded_size): Call it.
      	(VEC_embedded_init_1): New template function.
      	(VEC_embedded_init): Call it.
      	(VEC_alloc_1): New template function.
      	(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
      	do the allocation.
      	(VEC_free_1): New template function.
      	(VEC_free): Call it.
      	(VEC_copy_1): New template function.
      	(VEC_copy): Call it.
      	(VEC_space_1): New template function
      	(VEC_space): Call it.
      	(VEC_reserve_1): New template function.
      	(VEC_reserve): Call it.
      	(VEC_reserve_exact_1): New template function.
      	(VEC_reserve_exact): Call it.
      	(VEC_splice_1): New template function.
      	(VEC_splice): Call it.
      	(VEC_safe_splice_1): New template function.
      	(VEC_safe_splice): Call it.
      	(VEC_quick_push_1): New template function.  Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_quick_push): Call it.
      	(VEC_safe_push_1): New template function. Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_safe_push): Call it.
      	(VEC_pop_1): New template function.
      	(VEC_pop): Call it.
      	(VEC_truncate_1): New template function.
      	(VEC_truncate): Call it.
      	(VEC_safe_grow_1): New template function.
      	(VEC_safe_grow): Call it.
      	(VEC_safe_grow_cleared_1): New template function.
      	(VEC_safe_grow_cleared): Call it.
      	(VEC_replace_1): New template function.
      	(VEC_replace): Call it.  Always accept T instead of T*.
      	Update all callers that used VEC_Os.
      	(VEC_quick_insert_1): New template function.
      	(VEC_quick_insert): Call it.
      	(VEC_safe_insert_1): New template function.
      	(VEC_safe_insert): Call it.
      	(VEC_ordered_remove_1): New template function.
      	(VEC_ordered_remove): Call it.
      	(VEC_unordered_remove_1): New template function.
      	(VEC_unordered_remove): Call it.
      	(VEC_block_remove_1): New template function.
      	(VEC_block_remove): Call it.
      	(VEC_lower_bound_1): New template function.
      	(VEC_lower_bound): Call it.
      	(VEC_OP): Remove.
      	(DEF_VEC_FUNC_P): Remove.
      	(DEF_VEC_ALLOC_FUNC_P): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_P): Remove.
      	(DEF_VEC_FUNC_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_O): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_I): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_I): Remove.
      	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
      	(vec_reserve_exact): New template function.
      
      	* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
      	* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
      	(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
      	(def_vec_alloc): Remove.  Update all callers.
      	* gengtype.c (filter_type_name): New.
      	(output_mangled_typename): Call it.
      	(write_func_for_structure): Likewise.
      	(write_types): Likewise.
      	(write_root): Likewise.
      	(write_typed_alloc_def): Likewise.
      	(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
      	(note_def_vec_alloc): Remove.
      	* gengtype.h (note_def_vec_alloc): Remove.
      	(DEFVEC_ALLOC): Remove token code.
      
      	* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
      	inside the insn traversal loop.
      	* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
      	* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
      	* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
      	* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.
      
      	* config/bfin/bfin.c (hwloop_optimize): Update some calls to
      	VEC_* for vectors of non-pointers.
      	* config/c6x/c6x.c (try_rename_operands): Likewise.
      	(reshuffle_units): Likewise.
      	* config/mips/mips.c (mips_multi_start): Likewise.
      	(mips_multi_add): Likewise.
      	(mips_multi_copy_insn): Likewise.
      	(mips_multi_set_operand): Likewise.
      	* hw-doloop.c (discover_loop): Likewise.
      	(discover_loops): Likewise.
      	(reorg_loops): Likewise.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  C++ support in gengtype.
      
      	* coretypes.h (gt_pointer_operator): Move from ...
      	* ggc.h: ... here.
      	* doc/gty.texi: Document support for C++ templates and
      	user-provided markers.
      	* gcc/gengtype-lex.l: Update copyright year.
      	Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
      	DEFVEC_I.
      	* gengtype-parse.c: Update copyright year.
      	(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
      	(require_template_declaration): New.
      	(typedef_name): Call it.
      	(type): Replace IS_UNION with KIND. Replace all users.
      	(def_vec): Remove.  Update all users.
      	* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
      	(write_state_user_struct_type): New.
      	(write_state_type): Call it.
      	(read_state_user_struct_type): New.
      	(read_state_type): Call it.
      	* gengtype.c: Update copyright year.
      	(dump_pair): Move declaration to the top.
      	(dump_type): Likewise.
      	(dump_type_list): Likewise.
      	(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
      	(create_user_defined_type): New.
      	(resolve_typedef): Call it.
      	(new_structure): Replace argument ISUNION with KIND.
      	Change users to refer to KIND directly.
      	Update all callers.
      	(find_structure): Likewise.
      	(set_gc_used_type): Handle TYPE_USER_STRUCT.
      	(create_file): Update HDR to include new copyright year.
      	(struct walk_type_data): Add field IN_PTR_FIELD.
      	(output_mangled_typename): Handle TYPE_USER_STRUCT.
      	(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
      	Clear it afterwards.
      	Handle TYPE_USER_STRUCT.
      	(write_types_process_field): Handle TYPE_USER_STRUCT.
      	(get_type_specifier): Move earlier in the file.
      	(write_type_decl): New.
      	(write_marker_function_name): New.
      	(write_user_func_for_structure_ptr): New.
      	(write_user_func_for_structure_body): New.
      	(write_user_marking_functions): New.
      	(write_func_for_structure): Call write_marker_function_name
      	and write_type_decl.
      	Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
      	function directly.
      	Call write_user_marking_functions on TYPE_USER_STRUCTs.
      	(write_types_local_user_process_field): New.
      	(write_pch_user_walking_for_structure_body): New.
      	(write_pch_user_walking_functions): New.
      	(write_types_local_process_field): Handle TYPE_USER_STRUCT.
      	(write_local_func_for_structure): Do not call walk_type for
      	TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
      	Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
      	(write_root): Handle TYPE_USER_STRUCT.
      	(vec_prefix_type): Remove.  Update all users.
      	(note_def_vec): Remove.  Update all users.
      	(dump_typekind): Handle TYPE_USER_STRUCT.
      	(dump_type): Initialize SEEN_TYPES, if needed.
      	Handle TYPE_USER_STRUCT.
      	(dump_everything): Do not initialize SEEN_TYPES.
      	* gengtype.h: Update copyright year.
      	(enum typekind): Add TYPE_USER_STRUCT.
      	(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
      	Convert into function.
      	Add an overload taking const_type_p.
      	Update all callers.
      	(new_structure): Change second field to type enum typekind.
      	Update all users.
      	(find_structure): Likewise.
      	(note_def_vec): Remove.
      	(DEFVEC_OP): Remove.
      	(DEFVEC_I): Remove.
      	* ggc-page.c (gt_ggc_mx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	* ggc-zone.c (gt_ggc_mx): Add entry points for marking
      	'const char *&' and 'unsigned char *&'.
      	* stringpool.c (gt_pch_nx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	Add an entry point for the overload taking arguments 'unsigned char
      	*', 'gt_pointer_operator' and 'void *'.
      	* vec.h (struct vec_prefix): Remove GTY marker.
      	(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
      	(gt_ggc_mx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
      	function.
      	(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
      	function.
      
      	* basic-block.h (struct edge_def): Mark GTY((user)).
      	Remove all GTY markers from fields.
      	(gt_ggc_mx): Declare.
      	(gt_pch_nx): Declare.
      	* tree-cfg.c (gt_ggc_mx): New.
      	(gt_pch_nx): New.
      
      	* gengtype-lex.l (USER_GTY): Add pattern for "user".
      	* gengtype-parse.c (option): Handle USER_GTY.
      	(opts_have): New.
      	(type): Call it.
      	If the keyword 'user' is used, do not walk the fields
      	of the structure.
      	* gengtype.h (USER_GTY): Add.
      	* doc/gty.texi: Update.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Implement C++ hash table.
      
      	* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
      	* hash-table.c: Likewise.
      	* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t same_succ_htab): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(same_succ_print_traverse): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(same_succ_hash): Likewise.
      	(same_succ_equal): Likewise.
      	(same_succ_delete): Likewise.
      	* tree-ssa-threadupdate.c: Include hash-table.h.
      	(struct local_info): Rename to ssa_local_info_t to avoid overloading
      	the type name local_info with the variable name local_info.
      	(static htab_t redirection_data): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(redirection_data_hash): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(redirection_data_eq): Likewise.
      	(fix_duplicate_block_edges): Likewise.
      	(create_duplicates): Likewise.
      	(fixup_template_block): Likewise.
      	(redirect_edges): Likewise.
      	(lookup_redirection_data): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	* tree-ssa-ccp.c: Include hash-table.h.
      	(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
      	of htab_t with gimple_htab.  Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
      	(hash_ssa_name_by_var): Make extern. Remove void* casting.
      	(eq_ssa_name_by_var): Likewise.
      	(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
      	to hash_table. Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* coverage.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t counts_hash): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
      	of htab_... Remove void* casting.
      	(htab_counts_entry_eq): Likewise.
      	(htab_counts_entry_del): Likewise.
      	* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t expression_to_id): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(static htab_t phi_translate_table): Likewise.
      	(pre_expr_eq): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(pre_expr_hash): Likewise.
      	(expr_pred_trans_hash): Likewise.
      	(expr_pred_trans_eq): Likewise.
      	(alloc_expression_id): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	(lookup_expression_id): Likewise.
      	(phi_trans_lookup): Likewise.
      	(phi_trans_add): Likewise.
      	* stringpool.c: Rename uses of libcpp typedef hash_table to
      	cpp_hash_table.
      	* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
      	Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  Re-write double_int in C++.
      
      	* hash-table.h
      	(typedef double_int): Change to struct (POD).
      	(double_int::make): New overloads for int to double-int conversion.
      	(double_int::mask): New.
      	(double_int::max_value): New.
      	(double_int::min_value): New.
      	(double_int::operator ++): New.
      	(double_int::operator --): New.
      	(double_int::operator *=): New.
      	(double_int::operator +=): New.
      	(double_int::operator -=): New.
      	(double_int::to_signed): New.
      	(double_int::to_unsigned): New.
      	(double_int::fits_unsigned): New.
      	(double_int::fits_signed): New.
      	(double_int::fits): New.
      	(double_int::trailing_zeros): New.
      	(double_int::popcount): New.
      	(double_int::multiple_of): New.
      	(double_int::set_bit): New.
      	(double_int::mul_with_sign): New.
      	(double_int::operator * (binary)): New.
      	(double_int::operator + (binary)): New.
      	(double_int::operator - (binary)): New.
      	(double_int::operator - (unary)): New.
      	(double_int::operator ~ (unary)): New.
      	(double_int::operator & (binary)): New.
      	(double_int::operator | (binary)): New.
      	(double_int::operator ^ (binary)): New.
      	(double_int::and_not): New.
      	(double_int::lshift): New.
      	(double_int::rshift): New.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::lrotate): New.
      	(double_int::rrotate): New.
      	(double_int::div): New.
      	(double_int::sdiv): New.
      	(double_int::udiv): New.
      	(double_int::mod): New.
      	(double_int::smod): New.
      	(double_int::umod): New.
      	(double_int::divmod): New.
      	(double_int::sdivmod): New.
      	(double_int::udivmod): New.
      	(double_int::ext): New.
      	(double_int::zext): New.
      	(double_int::sext): New.
      	(double_int::is_zero): New.
      	(double_int::is_one): New.
      	(double_int::is_minus_one): New.
      	(double_int::is_negative): New.
      	(double_int::cmp): New.
      	(double_int::ucmp): New.
      	(double_int::scmp): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int::max): New.
      	(double_int::smax): New.
      	(double_int::umax): New.
      	(double_int::min): New.
      	(double_int::smin): New.
      	(double_int::umin): New.
      	(double_int::operator ==): New.
      	(double_int::operator !=): New.
      	(shwi_to_double_int): Change implementation to use member function.
      	(double_int_minus_one): Likewise.
      	(double_int_zero): Likewise.
      	(double_int_one): Likewise.
      	(double_int_two): Likewise.
      	(double_int_ten): Likewise.
      	(uhwi_to_double_int): Likewise.
      	(double_int_to_shwi): Likewise.
      	(double_int_to_uhwi): Likewise.
      	(double_int_fits_in_uhwi_p): Likewise.
      	(double_int_fits_in_shwi_p): Likewise.
      	(double_int_fits_in_hwi_p): Likewise.
      	(double_int_mul): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_setbit): Likewise.
      	(double_int_ctz): Likewise.
      	(double_int_not): Likewise.
      	(double_int_ior): Likewise.
      	(double_int_and): Likewise.
      	(double_int_and_not): Likewise.
      	(double_int_xor): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_mask): Likewise.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_zero_p): Likewise.
      	(double_int_one_p): Likewise.
      	(double_int_minus_one_p): Likewise.
      	(double_int_equal_p): Likewise.
      	(double_int_popcount): Likewise.
      	* hash-table.c
      	(double_int_mask): Reuse implementation for double_int::mask.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int_setbit): Reuse implementation for double_int::set_bit,
      	which avoids a name conflict with a macro.
      	(double_int_double_int_ctz): Reuse implementation for
      	double_int::trailing_zeros.
      	(double_int_fits_in_shwi_p): Reuse implementation for
      	double_int::fits_signed.
      	(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
      	(double_int_mul): Reuse implementation for binary
      	double_int::operator *.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Reuse implementation for unary
      	double_int::operator -.
      	(double_int_max_value): Likewise.
      	* fixed-value.c: Change to use member functions introduced above.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Support tree macro calling
      	from gdb.
      
      	* tree.h (tree_check): New.
      	(TREE_CHECK): Use inline function above instead of __extension__.
      	(tree_not_check): New.
      	(TREE_NOT_CHECK): Use inline function above instead of __extension__.
      	(tree_check2): New.
      	(TREE_CHECK2): Use inline function above instead of __extension__.
      	(tree_not_check2): New.
      	(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
      	(tree_check3): New.
      	(TREE_CHECK3): Use inline function above instead of __extension__.
      	(tree_not_check3): New.
      	(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
      	(tree_check4): New.
      	(TREE_CHECK4): Use inline function above instead of __extension__.
      	(tree_not_check4): New.
      	(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
      	(tree_check5): New.
      	(TREE_CHECK5): Use inline function above instead of __extension__.
      	(tree_not_check5): New.
      	(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
      	(contains_struct_check): New.
      	(CONTAINS_STRUCT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_class_check): New.
      	(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
      	(tree_range_check): New.
      	(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
      	(omp_clause_subcode_check): New.
      	(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_range_check): New.
      	(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
      	__extension__.
      	(expr_check): New.
      	(EXPR_CHECK): Use inline function above instead of __extension__.
      	(non_type_check): New.
      	(NON_TYPE_CHECK): Use inline function above instead of __extension__.
      	(tree_vec_elt_check): New.
      	(TREE_VEC_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_elt_check): New.
      	(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check): New.
      	(TREE_OPERAND_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check_code): New.
      	(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
      	__extension__.
      	(TREE_CHAIN): Simplify implementation.
      	(TREE_TYPE): Simplify implementation.
      	(tree_operand_length): Move for compilation dependences.
      	* gdbinit.in: (macro define __FILE__): New.
      	(macro define __LINE__): New.
      	(skip "tree.h"): New.
      
      gcc/cp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-write VEC in C++.
      
      	* call.c (add_function_candidate): Remove const qualifier
      	from call to VEC_index.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* go-gcc.cc: Likewise.
      	* go-system.h: Likewise.
      
      From-SVN: r190402
      Diego Novillo committed
  7. 10 Aug, 2012 1 commit
    • tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE is recorded as var. · 70b5e7dc
      2012-08-10  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
      	is recorded as var.
      	(SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
      	or its SSA_NAME_VAR.
      	(SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
      	* tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
      	SSA names by passing a type instead of a variable decl.
      	(release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
      	(copy_ssa_name_fn): Handle anonymous SSA names.
      	(replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
      	* tree-flow-inline.h (make_temp_ssa_name): New inline function.
      	* tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
      	dump SSA names without a name as <anon>.
      	* cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
      	going to expand a decl.
      	(gimple_expand_cfg): Assign all SSA names of a partition the
      	decl we created for its leader.
      	* tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
      	(verify_ssa_name): Handle anonymous SSA names.
      	(verify_def): Likewise.
      	* tree-predcom.c (eliminate_temp_copies): Likewise.
      	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
      	* tree-ssa-live.c (var_map_base_init): Compute conflicts for
      	anonymous SSA names with the same type.
      	(mark_all_vars_used_1): Handle anonymous SSA names.
      	(verify_live_on_entry): Likewise.
      	* tree-ssa-coalesce.c (abnormal_corrupt): Remove.
      	(create_outofssa_var_map): Adjust with respect to conflicts we
      	compute for anonymous SSA names.  Do not restrict abnormal
      	coalescing.
      	(coalesce_partitions): Do not restrict abnormal coalescing.
      	Assert we only ever coalesce variables we computed conflicts for.
      	* tree-ssa-ter.c (process_replaceable): Do not restrict TER
      	of anonymous names.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA names
      	expanded from IVOPTs by creating a raw REG here.
      	* tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
      	(dump_function_to_file): Dump anonymous SSA names alongside
      	with their types in the variable list.
      	(verify_gimple_return): Guard use of SSA_NAME_VAR.
      	* tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
      	(rewrite_into_ssa): Make SSA names anonymous.
      	* tree-ssa-structalias.c (alias_get_name): Rewrite.
      	* tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
      	SSA names.
      	(warn_uninitialized_phi): Likewise.
      	* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
      	anonymous SSA names to the expander.
      	(determine_iv_cost): Anonymous SSA names are artificial.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
      	Handle anonymous SSA names.
      	* lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
      	or if NULL, the type of the SSA name.
      	* tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
      	remap names as anonymous where appropriate.
      	(insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
      	* tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
      	according to what we create conflicts for in out-of-SSA
      	coalescing.
      	* tree-parloops.c (separate_decls_in_region_name): Handle
      	anonymous SSA names.
      	(add_field_for_name): Likewise.
      	* tree.c (get_name): Handle SSA names.
      	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
      	SSA_NAMEs.
      	* tree-vect-loop-manip.c (adjust_debug_stmts): Use
      	virtual_operand_p.
      	* tree-sra.c (create_access_replacement): Give up generating
      	a DECL_DEBUG_EXPR for SSA names in the memory reference.
      	(replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
      	* tree-complex.c (get_component_ssa_name): Handle anonymous
      	SSA names.
      	(set_component_ssa_name): Likewise.
      	* tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
      	* tree-object-size.c (collect_object_sizes_for): Handle
      	uninitialized SSA names properly.
      	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
      	SSA_NAME_VAR.
      	* ipa-split.c (test_nonssa_use): Likewise.
      	(consider_split): Likewise.
      	(mark_nonssa_use): Likewise.
      
      	c-family/
      	* c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.
      
      	cp/
      	* error.c (dump_expr): Likewise.
      
      	* g++.dg/plugin/selfassign.c: Adjust.
      	* gcc.dg/plugin/selfassign.c: Likewise.
      	* gcc.dg/strlenopt-11.c: Likewise.
      	* gcc.dg/strlenopt-13.c: Likewise.
      	* gcc.dg/no-strict-overflow-4.c: Likewise.
      	* gcc.dg/strict-overflow-4.c: Likewise.
      	* gcc.dg/tree-ssa/alias-11.c: Likewise.
      	* gcc.dg/tree-ssa/alias-6.c: Likewise.
      	* gcc.dg/tree-ssa/asm-3.c: Likewise.
      	* gcc.dg/tree-ssa/pr18908.c: Likewise.
      	* gcc.dg/tree-ssa/pr19431.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-21.c: Likewise.
      	* gcc.dg/tree-ssa/phi-opt-10.c: Likewise.
      	* gcc.dg/tree-ssa/phi-opt-7.c: Likewise.
      	* gcc.dg/tree-ssa/slsr-27.c: Likewise.
      	* gcc.dg/tree-ssa/slsr-28.c: Likewise.
      	* gcc.dg/tree-ssa/slsr-29.c: Likewise.
      	* gcc.dg/pr46309.c: Likewise.
      	* gcc.dg/tree-ssa/loop-5.c: Likewise.
      
      From-SVN: r190284
      Richard Guenther committed
  8. 09 Aug, 2012 1 commit
    • tree.h (SSA_VAR_P): Simplify. · 67386041
      2012-08-09  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (SSA_VAR_P): Simplify.
      	* tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
      	* fold-const.c (fold_comparison): Check for default def first
      	before checking for PARM_DECL.
      	* tree-complex.c (get_component_ssa_name): Likewise.
      	* tree-inline.c (remap_ssa_name): Likewise.
      	* tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
      	* tree-ssa-structalias.c (get_fi_for_callee): Likewise.
      	(find_what_p_points_to): Likewise.
      	* tree-ssa-operands.c (add_stmt_operand): Simplify.
      
      From-SVN: r190250
      Richard Guenther committed
  9. 01 Aug, 2012 1 commit
    • tree-complex.c (init_parameter_lattice_values): Don't call var_ann. · 5f564b8f
      	* tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
      	* tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
      	(dump_dfa_stats): Don't dump stats about var anns.
      	(collect_dfa_stats): Don't collect them.
      	(add_referenced_var_1): Don't set var annotation pointers.
      	(remove_referenced_var): Ditto, and only remove it it's in the
      	hash table.
      
      	* tree-flow-inline.h (var_ann): Remove.
      	* tree-flow.h (struct var_ann_d, var_ann_t): Remove.
      
      	* tree-inline.c (remapped_type): Remove.
      	(can_be_nonlocal): Most variable will be considered live here,
      	return false earlier.
      	(remap_decls): Don't call var_ann, all variables will be considered
      	referenced here.
      	(copy_debug_stmt): Ditto, and use is_global_var.
      
      	* tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
      	determine if a variable was referred to, not var_ann.
      	* tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
      	(remove_unused_locals): Ditto.
      	* tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
      	* tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
      	* tree.c (copy_node_stat): Don't clear var ann pointer.
      	* tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
      	ann member.
      	(DECL_VAR_ANN_PTR): Remove.
      
      	* tree-flow.h (struct var_ann_d): Rename used member.
      	(set_is_used): Don't declare.
      	* tree-flow-inline.h (clear_is_used): Remove.
      	(set_is_used, is_used_p): Move to ...
      	* tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
      	on the side bitmap.
      	(usedvars): New bitmap.
      	(dump_scope_block): Don't dump unusedness.
      	(remove_unused_locals): Allocate and free usedvars.
      	* tree-nrv.c (tree_nrv): Don't clear used flags here.
      
      	* tree-flow.h (struct var_ann_d): Remove base_var_processed and
      	base_index members.
      	* tree-ssa-live.h (struct _var_map): Remove basevars member.
      	(VAR_ANN_BASE_INDEX): Remove.
      	* tree-ssa-live.c (var_map_base_init): Use a hash table instead
      	of var annotation to compress index space.  Don't deal with above
      	removed members.
      	(var_map_base_fini): Don't free basevars.
      	(init_var_map): Don't clear basevars.
      
      From-SVN: r190039
      Michael Matz committed
  10. 25 Jul, 2012 1 commit
    • expr.c (expand_expr_real_1): Do not expand operand #1 and #2 of BIT_FIELD_REF for ignored results. · ea814c66
      	* expr.c (expand_expr_real_1): Do not expand operand #1 and #2
      	of BIT_FIELD_REF for ignored results.
      	* fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
      	CONSTRUCTOR has vector type before using vector accessors on it.
      	* gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
      	#2 of BIT_FIELD_REF.
      	(gimplify_expr) <BIT_FIELD_REF>: Likewise.
      	* tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
      	not process operand #1 and #2.
      	(convert_local_reference_op): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
      	breaks throughout.
      	<BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
      	* tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
      	operand #1 and #2.
      	(UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
      	(build6_stat): Delete.
      	* tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
      ada/
      	* gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
      	not stabilize operand #1 and #2.
      
      From-SVN: r189864
      Eric Botcazou committed
  11. 18 Jul, 2012 2 commits
    • re PR tree-optimization/53970 (-ftree-vectorization does not handle well unaligned data) · 4c9bcf89
      2012-07-18  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/53970
      	* tree.h (contains_packed_reference): Remove.
      	* expr.c (contains_packed_reference): Likewise.
      	* tree-vect-data-refs.c (not_size_aligned): New function.
      	(vector_alignment_reachable_p): Use it.
      	(vect_supportable_dr_alignment): Likewise.
      
      	* g++.dg/torture/pr53970.C: New testcase.
      
      From-SVN: r189609
      Richard Guenther committed
    • tree.h (get_object_or_type_alignment): Remove. · b0f4a35f
      2012-07-18  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (get_object_or_type_alignment): Remove.
      	* builtins.c (get_object_alignment_2): New function copied from
      	get_object_alignment_1.  Take extra argument to indicate whether
      	we take the address of EXP.  Rework to use type alignment information
      	if not, and return whether the result is an approximation or not.
      	(get_object_alignment_1): Wrap around get_object_alignment_2.
      	(get_pointer_alignment_1): Call get_object_alignment_2 indicating
      	we take the address.
      	(get_object_or_type_alignment): Remove.
      	* expr.c (expand_assignment): Call get_object_alignment.
      	(expand_expr_real_1): Likewise.
      
      From-SVN: r189607
      Richard Guenther committed
  12. 16 Jul, 2012 4 commits
    • function.c (stack_protect_epilogue): Use expand_call to expand targetm.stack_protect_fail. · b3c144a3
      	* function.c (stack_protect_epilogue): Use expand_call to expand
      	targetm.stack_protect_fail.
      	* stmt.c (expand_expr_stmt): Remove now-unused function.
      	* tree.h (expand_expr_stmt): Remove prototype.
      	* doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
      	hook must return a CALL_EXPR.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r189522
      Steven Bosscher committed
    • flags.h (TYPE_OVERFLOW_WRAPS, [...]): Move to tree.h. · 89ca6d79
      	* flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
      	TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
      	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
      	TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
      
      From-SVN: r189520
      Steven Bosscher committed
    • system.h (dump_file): Do not define. · 7ee2468b
      gcc/
      	* system.h (dump_file): Do not define.
      	* tree-pass.h: Include dumpfile.h, which is a new file containing...
      	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
      	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
      	dump_flag_name, dump_file, dump_flags, dump_file_name,
      	get_dump_file_info, struct dump_file_info): all of this, moved to...
      	* dumpfile.h: Here, new file.
      	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
      	(dump_stmt): Remove prototype for C++ specific function.
      	(dump_enumerated_decls): Move prototype from here...
      	* tree-flow.h (dump_enumerated_decls): ... to here.
      	(get_ref_base_and_extent) Move prototype from here ...
      	* tree.h (get_ref_base_and_extent) ... to here.
      	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
      	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
      	include timevar.h and dumpfile.h instead.
      	(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
      	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
      	Do not include timevar.h.
      	* tree.c: Do not include timevar.h.
      	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
      	timevar.h.
      	(dump_cfg_stats): Use current_function_name.
      	(gimple_cfg2vcg): Likewise.
      	(dump_function_to_file): Likewise.
      	* df-scan.c: Do not include tree-pass.h and timevar.h.
      	Include dumpfile.h.
      	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
      	use print_current_pass.
      	* df-problems.c: Include dumpfile.h.
      	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
      	leads to errors in the code not selected.
      	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
      	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
      	* lcm.c: Include dumpfile.h.
      	Remove obsolete include of insn-attr.h.
      	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
      	missing probability notes.
      	* stmt.c: Include dumpfile.h.
      	(emit_case_decision_tree): Re-enable printing expand details only
      	if TDF_DETAILS.
      	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
      	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
      	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
      	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
      	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
      	function.c, fwprop.c, gcse.c, gimple-fold.c, 
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
      	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
      	graphite-dependences.c, graphite-interchange.c, 
      	graphite-optimize-isl.c, graphite-poly.c, 
      	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
      	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
      	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
      	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
      	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
      	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
      	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
      	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
      	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
      	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
      	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
      	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
      	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
      	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
      	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
      	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
      	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
      	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
      	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
      	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
      	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
      	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
      	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
      	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
      	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
      	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
      	tree-switch-conversion.c, tree-tailcall.c, 
      	tree-vect-data-refs.c, tree-vect-loop.c, 
      	tree-vect-loop-manip.c, tree-vectorizer.c, 
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
      	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
      	only if needed.  If tree-pass.h is included, do not include timevar.h
      	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
      	dump_flags, or the TDF_* flags are used, include dumpfile.h.
      	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
      	Remove assorted unnecessary includes.
      
      	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
      	Include dumpfile.h.
      	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
      	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
      	spu/t-spu-elf: Fix dependencies.
      
      c-family/
      	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
      	* c-ada-spec.c: Likewise.
      	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
      
      c/
      	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      cp/
      	* dump.c (dump_stmt): Moved here from c-dump.c.
      	* optimize.c: Include dumpfile.h instead of tree-dump.h.
      	* class.c: Likewise.
      	* decl2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      fortran/
      	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      java/
      	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
      	* Make-lang.in: Fix dependencies.
      
      lto/
      	* lto.c: Do not include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils.c: Include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      From-SVN: r189519
      Steven Bosscher committed
    • revert: tree.h (phi_arg_d): New field. · 9e227d60
      2012-07-16  Dehao Chen  <dehao@google.com>
      
      	Revert
      	2012-07-10  Dehao Chen  <dehao@google.com>
      
      	* tree.h (phi_arg_d): New field.
      	* tree-flow-inline.h (gimple_phi_arg_block): New function.
      	(gimple_phi_arg_block_from_edge): New function.
      	(gimple_phi_arg_set_block): New function.
      	(gimple_phi_arg_has_block): New function.
      	(redirect_edge_var_map_block): New function.
      	* tree-flow.h (_edge_var_map): New field.
      	* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
      	* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
      	redirect_edge_var_map_add.
      	* tree-outof-ssa.c (_elim_graph): New field.
      	(insert_partition_copy_on_edge): New parameter.
      	(insert_value_copy_on_edge): New parameter.
      	(insert_rtx_to_part_on_edge): New parameter.
      	(insert_part_to_rtx_on_edge): New parameter.
      	(elim_graph_add_edge): New parameter.
      	(elim_graph_remove_succ_edge): New parameter.
      	(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
      	(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
      	(new_elim_graph): Add block debug info.
      	(clear_elim_graph): Likewise.
      	(delete_elim_graph): Likewise.
      	(elim_graph_add_node): Likewise.
      	(elim_graph_add_edge): Likewise.
      	(elim_graph_remove_succ_edge): Likewise.
      	(eliminate_build): Likewise.
      	(elim_forward): Likewise.
      	(elim_unvisited_predecessor): Likewise.
      	(elim_backward): Likewise.
      	(elim_create): Likewise.
      	(eliminate_phi): Likewise.
      	(insert_backedge_copies): Likewise.
      	* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
      	add_phi_arg.
      	(rewrite_add_phi_arguments): Likewise.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
      	* tree-ssa-tail-merge.c (replace_block_by): Likewise.
      	* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
      	* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
      	* tree-ssa-loop-manip.c (create_iv): Likewise.
      	(add_exit_phis_edge): Likewise.
      	(split_loop_exit_edge): Likewise.
      	(copy_phi_node_args): Likewise.
      	(tree_transform_and_unroll_loop): Likewise.
      	* value-prof.c (gimple_ic): Likewise.
      	(gimple_stringop_fixed_value): Likewise.
      	* tree-tailcall.c (add_successor_phi_arg): Likewise.
      	(eliminate_tail_call): Likewise.
      	(create_tailcall_accumulator): Likewise.
      	(tree_optimize_tail_calls_1): Likewise.
      	* tree-phinodes.c (add_phi_arg): Likewise.
      	(make_phi_node): Likewise.
      	(resize_phi_node): Likewise.
      	(remove_phi_arg_num): Likewise.
      	* omp-low.c (expand_parallel_call): Likewise.
      	(expand_omp_for_static_chunk): Likewise.
      	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
      	Likewise.
      	(slpeel_update_phi_nodes_for_guard1): Likewise.
      	(slpeel_update_phi_nodes_for_guard2): Likewise.
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
      	(set_prologue_iterations): Likewise.
      	(slpeel_tree_peel_loop_to_edge): Likewise.
      	(vect_loop_versioning): Likewise.
      	* tree-parloops.c (create_phi_for_local_result): Likewise.
      	(transform_to_exit_first_loop): Likewise.
      	(create_parallel_loop): Likewise.
      	* ipa-split.c (split_function): Likewise.
      	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
      	(vect_create_epilog_for_reduction): Likewise.
      	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
      	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
      	* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
      	(cond_if_else_store_replacement_1): Likewise.
      	* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
      	(remove_forwarder_block_with_phi): Likewise.
      	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
      	* tree-predcom.c (initialize_root_vars): Likewise.
      	(initialize_root_vars_lm): Likewise.
      	* sese.c (sese_add_exit_phis_edge): Likewise.
      	* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
      	* tree-ssa.c (flush_pending_stmts): Likewise.
      	(redirect_edge_var_map_add): Likewise.
      	(ssa_redirect_edge): Likewise.
      	* gimple-streamer-in.c (input_phi): Likewise.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* tree-inline.c (copy_phis_for_bb): Likewise.
      	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
      	* tree-switch-conversion.c (fix_phi_nodes): Likewise.
      	* tree-cfg.c (reinstall_phi_args): Likewise.
      	(gimple_make_forwarder_block): Likewise.
      	(add_phi_args_after_copy_edge): Likewise.
      	(gimple_duplicate_sese_tail): Likewise.
      
      From-SVN: r189518
      Dehao Chen committed
  13. 11 Jul, 2012 1 commit
    • expr.h (can_move_by_pieces): Move prototype from here ... · 6bdf3519
      gcc/
      	* expr.h (can_move_by_pieces): Move prototype from here ...
      	* tree.h (can_move_by_pieces): ... to here.
      	* optabs.h (set_widening_optab_handler): Use XCNEW.
      	* gimplify.c: Do not include expr.h.
      
      	* toplev.c: Do not include dwarf2out.h.
      	* config/ia64/ia64.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/sparc/t-sparc (sparc.o): Fix dependencies.
      
      	* Makefile.in (toplev.o): Fix dependencies
      	(c-family/c-gimplify.o): Likewise.
      	(c-family/c-common.o): Likewise.
      
      c-family/
      	* c-gimplify.c: Do not include basic-block.h.
      	* c-common.c: Do not include linfuncs.h.
      
      cp/
      	* method.c: Do not include tree-pass.h.
      
      fortran/
      	* trans.c: Do not include defaults.h.
      	* trans-intrinsic.c: Likewise.
      
      java/
      	* decl.c: Do not include libfuncs.h.
      	* class.c: Do not include defaults.h.
      	* jvgenmain.c: Likewise.
      	* magnle.c: Likewise.
      	* Make-lang.in (decl.o): Fix dependencies.
      
      From-SVN: r189425
      Steven Bosscher committed
  14. 10 Jul, 2012 1 commit
    • tree.h (phi_arg_d): New field. · e53a3e77
      2012-07-10  Dehao Chen  <dehao@google.com>
      
      	* tree.h (phi_arg_d): New field.
      	* tree-flow-inline.h (gimple_phi_arg_block): New function.
      	(gimple_phi_arg_block_from_edge): New function.
      	(gimple_phi_arg_set_block): New function.
      	(gimple_phi_arg_has_block): New function.
      	(redirect_edge_var_map_block): New function.
      	* tree-flow.h (_edge_var_map): New field.
      	* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block
      	as used.
      	* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
      	redirect_edge_var_map_add.
      	* tree-outof-ssa.c (_elim_graph): New field.
      	(insert_partition_copy_on_edge): New parameter.
      	(insert_value_copy_on_edge): New parameter.
      	(insert_rtx_to_part_on_edge): New parameter.
      	(insert_part_to_rtx_on_edge): New parameter.
      	(elim_graph_add_edge): New parameter.
      	(elim_graph_remove_succ_edge): New parameter.
      	(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
      	(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
      	(new_elim_graph): Add block debug info.
      	(clear_elim_graph): Likewise.
      	(delete_elim_graph): Likewise.
      	(elim_graph_add_node): Likewise.
      	(elim_graph_add_edge): Likewise.
      	(elim_graph_remove_succ_edge): Likewise.
      	(eliminate_build): Likewise.
      	(elim_forward): Likewise.
      	(elim_unvisited_predecessor): Likewise.
      	(elim_backward): Likewise.
      	(elim_create): Likewise.
      	(eliminate_phi): Likewise.
      	(insert_backedge_copies): Likewise.
      	* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
      	add_phi_arg.
      	(rewrite_add_phi_arguments): Likewise.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
      	* tree-ssa-tail-merge.c (replace_block_by): Likewise.
      	* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
      	* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
      	* tree-ssa-loop-manip.c (create_iv): Likewise.
      	(add_exit_phis_edge): Likewise.
      	(split_loop_exit_edge): Likewise.
      	(copy_phi_node_args): Likewise.
      	(tree_transform_and_unroll_loop): Likewise.
      	* value-prof.c (gimple_ic): Likewise.
      	(gimple_stringop_fixed_value): Likewise.
      	* tree-tailcall.c (add_successor_phi_arg): Likewise.
      	(eliminate_tail_call): Likewise.
      	(create_tailcall_accumulator): Likewise.
      	(tree_optimize_tail_calls_1): Likewise.
      	* tree-phinodes.c (add_phi_arg): Likewise.
      	(make_phi_node): Likewise.
      	(resize_phi_node): Likewise.
      	(remove_phi_arg_num): Likewise.
      	* omp-low.c (expand_parallel_call): Likewise.
      	(expand_omp_for_static_chunk): Likewise.
      	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
      	Likewise.
      	(slpeel_update_phi_nodes_for_guard1): Likewise.
      	(slpeel_update_phi_nodes_for_guard2): Likewise.
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
      	(set_prologue_iterations): Likewise.
      	(slpeel_tree_peel_loop_to_edge): Likewise.
      	(vect_loop_versioning): Likewise.
      	* tree-parloops.c (create_phi_for_local_result): Likewise.
      	(transform_to_exit_first_loop): Likewise.
      	(create_parallel_loop): Likewise.
      	* ipa-split.c (split_function): Likewise.
      	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
      	(vect_create_epilog_for_reduction): Likewise.
      	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
      	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
      	* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
      	(cond_if_else_store_replacement_1): Likewise.
      	* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
      	(remove_forwarder_block_with_phi): Likewise.
      	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
      	* tree-predcom.c (initialize_root_vars): Likewise.
      	(initialize_root_vars_lm): Likewise.
      	* sese.c (sese_add_exit_phis_edge): Likewise.
      	* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
      	* tree-ssa.c (flush_pending_stmts): Likewise.
      	(redirect_edge_var_map_add): Likewise.
      	(ssa_redirect_edge): Likewise.
      	* gimple-streamer-in.c (input_phi): Likewise.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* tree-inline.c (copy_phis_for_bb): Likewise.
      	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
      	* tree-switch-conversion.c (fix_phi_nodes): Likewise.
      	* tree-cfg.c (reinstall_phi_args): Likewise.
      	(gimple_make_forwarder_block): Likewise.
      	(add_phi_args_after_copy_edge): Likewise.
      	(gimple_duplicate_sese_tail): Likewise.
      
      From-SVN: r189402
      Dehao Chen committed
  15. 02 Jul, 2012 1 commit
    • stmt.c (emit_case_bit_tests): Remove. · 531b10fc
      gcc/
      	* stmt.c (emit_case_bit_tests): Remove.
      	(expand_case): Remove expand_switch_using_bit_tests_p code.
      	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
      	(MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
      	(lshift_cheap_p): Likewise.
      	(expand_switch_using_bit_tests_p): Likewise.
      	(struct case_bit_test): Likewise.
      	(case_bit_test_cmp): Likewise.
      	(emit_case_bit_tests): New implementation for GIMPLE.
      	(gen_inbound_check): Do not release post-dominator info here.
      	(process_switch): Reorder code.  Expand as bit tests if it
      	looks like a win.
      	(do_switchconv): Release post-dominator info here if something
      	changed.
      	(struct gimple_opt_pass): Verify more.
      	* tree.h (expand_switch_using_bit_tests_p): Remove prototype.
      
      testsuite/
      	* gcc.dg/tree-ssa/pr36881.c: Fix test case to not expand as bit tests.
      
      From-SVN: r189173
      Steven Bosscher committed
  16. 30 Jun, 2012 1 commit
    • coverage.c (bbg_file_stamp): New. · cb686b99
      	* coverage.c (bbg_file_stamp): New.
      	(read_counts_file): Merge incoming stamp with bbg_file_stamp.
      	(build_info): Write bbg_file_stamp.
      	(coverage_init): Initialize bbg_file_stamp.  Read counts file
      	before writing graph header.
      	(coverage_finish): Don't unlink the data file if we can generate a
      	unique file stamp.
      	* tree.h (crc32_unsigned): Declare.
      	* tree.c (crc32_unsigned_bits): New, broken out of ...
      	(crc32_byte): ... here.  Use it.
      	(crc32_unsigned): New.
      
      From-SVN: r189095
      Nathan Sidwell committed
  17. 27 Jun, 2012 1 commit
  18. 20 Jun, 2012 1 commit
    • Add DECL_SOURCE_COLUMN. · 19c1aa2d
      I'm currently writing a plugin for GCC and I need to extract the
      column of a declaration. There exists DECL_SOURCE_FILE/LINE already
      and for consistency reasons and ease of use I've added a
      DECL_SOURCE_COLUMN macro.
      
      2012-06-20  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
      
      	* tree.h (DECL_SOURCE_COLUMN): New accessor
      
      From-SVN: r188841
      Rüdiger Sonderfeld committed
  19. 17 Jun, 2012 2 commits
    • output.h (split_double): Move prototype to rtl.h. · ca3f2950
      	* output.h (split_double): Move prototype to rtl.h.
      	(constructor_static_from_elts_p): Move prototype to tree.c.
      	* rtl.h (split_double): Moved here from output.h.
      	* tree.h (constructor_static_from_elts_p): Moved here from output.h.
      	* final.c (split_double): Move from here ...
      	* rtlanal.c (split_double): ... to here.
      	* expr.c: Do not include output.h.
      
      From-SVN: r188714
      Steven Bosscher committed
    • cfglayout.h: Remove. · 78bde837
      2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
      
      	* cfglayout.h: Remove.
      	* cfglayout.c: Remove.
      	* function.h (struct function): Remove x_last_location field.
      	* function.c: Do not include cfglayout.h.
      	(expand_function_start): Do not call no-op force_next_line_note.
      	(expand_function_end): Likewise.
      	* cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
      	(unlink_insn_chain): Moved here from cfglayout.c.
      	(skip_insns_after_block, label_for_bb, record_effective_endpoints,
      	into_cfg_layout_mode, outof_cfg_layout_mode,
      	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
      	relink_block_chain, fixup_reorder_chain, verify_insn_chain,
      	fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
      	cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
      	cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
      	cfg_layout_finalize): Likewise.
      	(rtl_can_remove_branch_p): Likewise.
      	* rtl.h (insn_scope): Move prototype from cfglayout.h here.
      	(duplicate_insn_chain): Likewise.
      	(force_next_line_note): Remove prototype.
      	* emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
      	(last_location): Remove #define to emit.x_last_location.
      	(force_next_line_note): Remove no-op function.
      	(init_emit): Don't set x_last_location.
      	(block_locators_locs, block_locators_blocks, locations_locators_locs,
      	locations_locators_vals, prologue_locator, epilogue_locator,
      	curr_location, last_location, curr_block, last_block, curr_rtl_loc):
      	Move POD to here from cfglayout.c.
      	(insn_locators_alloc, insn_locators_finalize, insn_locators_free,
      	set_curr_insn_source_location, get_curr_insn_source_location,
      	set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
      	locator_scope, insn_scope, locator_location, locator_line, insn_line,
      	locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
      	* cfghooks.h: Remove double-include protection.
      	(can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
      	* cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
      	* final.c: Do not include cfglayout.h.
      	(choose_inner_scope, change_scope): Move to here from cfglayout.c.
      	(reemit_insn_block_notes): Likewise.  Make static.
      	* tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
      	operation_could_trap_p, tree_could_throw_p): Move from here...
      	* tree.h: ... to here.
      	* gengtype.c (open_base_files): Remove cfglayout.h from the list.
      	* profile.c: Do not include cfghooks.h.
      	* cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
      	* modulo-sched.c: Likewise.
      	* loop-unswitch.c: Do not include cfglayout.h.
      	* sched-ebb.c: Likewise.
      	* tracer.c: Likewise.
      	* ddg.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* loop-init.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* Makefile.in (CFGAYOUT_H): Remove, and fixup users.
      	* config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
      	* config/spu/t-spu-elf (spu.o: $): Likewise.
      	* config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
      
      From-SVN: r188712
      Steven Bosscher committed
  20. 04 Jun, 2012 1 commit
    • output.h (merge_weak, [...]): Move protos from here... · a4b7d13c
      	* output.h (merge_weak, assemble_alias,
      	initializer_constant_valid_p,
      	initializer_constant_valid_for_bitfield_p): Move protos from here...
      	* tree.h: ... to here.
      
      	* cgraphclones.c: Do not include output.h.
      	* gimplify.c: Likewise.
      	* reload.c: Likewise.
      	* recog.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      
      	* Makefile.in: Fix dependencies.
      
      c-family/
      	* c-common.c: Do not include output.h.
      	* c-pragma.c: Likewise.
      
      cp/
      	* semantics.c: Do not include output.h.
      	* decl2.c: Likewise.
      	* friend.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils2.c: Do not include output.h.
      	* gcc-interface/Make-lang.in: Fix dependencies.
      
      From-SVN: r188178
      Steven Bosscher committed
  21. 31 May, 2012 1 commit
    • output.h (__gcc_host_wide_int__): Move to hwint.h. · be7a421e
      	* output.h (__gcc_host_wide_int__): Move to hwint.h.
      	(decl_default_tls_model): Move to tree.h
      	(dump_file): Move to system.h.
      	(default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
      	dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
      	dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
      	dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
      	dbxout_stab_value_zero, dbxout_stab_value_label_diff,
      	dbxout_stab_value_internal_label,
      	dbxout_stab_value_internal_label_diff): Move from here ...
      	* dbxout.h: ... to here.
      	* system.h (dump_file): Moved here from output.h.
      	* hwint.h (__gcc_host_wide_int__): Moved here from output.h.
      	* tree.h (decl_default_tls_model): Moved here from output.h.
      	* varasm.c (default_stabs_asm_out_destructor,
      	default_stabs_asm_out_constructor): Move from here ...
      	* dbxout.c: ... to here.
      
      	* gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
      
      	* collect2.h (dump_file): Rename to dump_ld_file.
      	* collect2.c: Likewise.
      	* tlink.c: Likewise.
      
      	* alias.c: Do not include output.h.
      	* auto-inc-dec.c: Likewise.
      	* bt-load.c: Likewise.
      	* caller-save.c: Likewise.
      	* cfg.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dojump.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* graph.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-emit.c: Likewise.
      	* lcm.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* regmove.c: Likewise.
      	* regstat.c: Likewise.
      	* reload1.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* web.c: Likewise.
      
      	* config/m32r/m32r.c: Include dbxout.h.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      
      	* Makefile.in: Fix dependencies.
      	* config/rs6000/t-rs5000: Likewise.
      
      c-family/
      	* c-ada-spec.c: Do not include output.h.
      	* c-semantics.c: Likewise.
      
      cp/
      	* call.c: Do not include output.h.
      	* class.c: Likewise.
      	* except.c: Likewise.
      	* friend.c: Likewise.
      	* init.c: Likewise.
      	* lex.c: Likewise.
      	* method.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      
      objc/
      	* objc-act.c: Do not include output.h.
      
      fortran/
      	* trans-common.c: Do not include output.h.
      	* trans-decl.c: Likewise.
      
      java/
      	* resource.c: Do not include output.h.
      
      From-SVN: r188082
      Steven Bosscher committed
  22. 29 May, 2012 3 commits
    • integrate.c: Remove. · 6399c0ab
      	* integrate.c: Remove.
      	* integrate.h: Remove.
      	* Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
      	* config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
      	* config/rs6000/t-rs6000: Likewise
      	* config/spu/t-spu-elf: Likewise.
      	* function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
      	get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
      	from integrate.h to here.
      	(initial_value_entry): New prototype.
      	* reload.h (allocate_initial_values): Remove prototype.
      	* tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
      	* cse.c (fixed_base_plus_p): Don't handle virtual registers for
      	integrate.c.
      	* dwarf2out.c (set_decl_origin_self, set_block_origin_self,
      	set_decl_abstract_flags, set_block_abstract_flags): Move from
      	integrate.c to here, the only user.
      	* expmed.c (extract_fixed_bit_field): Remove outdated comment
      	about integrate.c.
      	* function.c: Don't include integrate.h.
      	(struct initial_value_pair, struct initial_value_struct,
      	get_hard_reg_initial_val, has_hard_reg_initial_val,
      	get_hard_reg_initial_reg, emit_initial_value_sets): Move from
      	integrate.c to here.
      	(initial_value_entry): New function.
      	* genemit.c (main): Don't print integrate.h include line.
      	* ira.c: Don't include integrate.h.
      	(allocate_initial_values): Move from integrate.c to here.
      	(ira): Update allocate_initial_values call.
      	* tree-inline.c: Don't include integrate.h.
      	(function_attribute_inlinable_p): Moved from integrate.c to here.
      	* cfgexpand.c: Don't include integrate.h.
      	* except.c: Likewise.
      	* langhooks.c: Likewise.
      	* passes.c: Likewise.
      	* toplev.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/picochip/picochip.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/c6x/c6x.c: Include function.h instead of integrate.h.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      
      From-SVN: r187969
      Steven Bosscher committed
    • rtl.h (assign_stack_temp, [...]): Remove 'keep' argument. · 9474e8ab
      	* rtl.h (assign_stack_temp, assign_stack_temp_for_type,
      	assign_temp): Remove 'keep' argument.
      	(mark_temp_addr_taken): Remove prototype.
      	* tree.h (expand_decl): Remove prototype.
      	* function.c (struct temp_slot): Remove addr_taken and keep
      	member.
      	(assign_stack_temp_for_type) Don't initialize above, remove
      	keep argument.
      	(assign_stack_temp, assign_temp): Remove keep argument.
      	(mark_temp_addr_taken): Remove.
      	(preserve_temp_slots): Remove handling of addr_taken and keep
      	members.
      	(free_temp_slots): Ditto.
      	* expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
      	dead code.
      	* stmt.c (expand_asm_operands): Remove dead code.
      	(expand_decl): Remove.
      	* c-decl.c (finish_struct): Don't call expand_decl.
      	* builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
      	and assign_stack_temp.
      	* calls.c (save_fixed_argument_area, initialize_argument_information,
      	expand_call, emit_library_call_value_1, store_one_arg): Ditto.
      	* expmed.c (extract_bit_field_1): Ditto.
      	* expr.c (emit_group_load_1, emit_group_store,
      	copy_blkmode_from_reg, emit_push_insn, expand_assignment,
      	store_field, expand_constructor, expand_cond_expr_using_cmove,
      	expand_expr_real_2, expand_expr_real_1): Ditto.
      	* stmt.c (expand_asm_operands, expand_return): Ditto.
      
      	* function.c (pop_temp_slots): Call free_temp_slots.
      	* calls.c (store_one_arg): Don't call preserve_temp_slots or
      	free_temp_slots.
      	* expr.c (expand_assignment): Don't call free_temp_slots.
      
      	* config/arm/arm.c (neon_expand_vector_init): Ditto.
      	* config/i386/i386.c (ix86_expand_vector_set): Ditto.
      	(ix86_expand_vector_extract): Ditto.
      	* config/ia64/ia64.c (spill_xfmode_rfmode_operand,
      	ia64_expand_movxf_movrf): Ditto.
      	* config/mips/mips.c (mips_expand_vi_general): Ditto.
      	* config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
      	extendsfdf2): Ditto.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_init,
      	rs6000_expand_vector_set, rs6000_expand_vector_extract,
      	rs6000_allocate_stack_temp): Ditto.
      	* config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
      	* config/sparc/sparc.c (emit_soft_tfmode_libcall,
      	sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
      	sparc_expand_vector_init): Ditto.
      
      From-SVN: r187965
      Michael Matz committed
    • LANGUAGES: Fix typos. · 073a8998
      	* LANGUAGES: Fix typos.
      	* Makefile.in: Fix typos.
      	* alias.c: Fix typos.
      	* auto-inc-dec.c: Fix typos.
      	* bb-reorder.c: Fix typos.
      	* cfgcleanup.c: Fix typos.
      	* cgraph.c: Fix typos.
      	* cgraph.h: Fix typos.
      	* cgraphunit.c: Fix typos.
      	* collect2-aix.h: Fix typos.
      	* collect2.c: Fix typos.
      	* compare-elim.c: Fix typos.
      	* config/alpha/vms.h: Fix typos.
      	* config/arm/README-interworking: Fix typos.
      	* config/arm/arm.c: Fix typos.
      	* config/arm/iterators.md: Fix typos.
      	* config/arm/vxworks.h: Fix typos.
      	* config/avr/avr.c: Fix typos.
      	* config/avr/avr.h: Fix typos.
      	* config/avr/avr.md: Fix typos.
      	* config/avr/builtins.def: Fix typos.
      	* config/c6x/c6x.c: Fix typos.
      	* config/cr16/cr16.c: Fix typos.
      	* config/cr16/cr16.md: Fix typos.
      	* config/cris/cris.md: Fix typos.
      	* config/darwin.c: Fix typos.
      	* config/darwin.opt: Fix typos.
      	* config/i386/i386-c.c: Fix typos.
      	* config/i386/i386.c: Fix typos.
      	* config/ia64/ia64.c: Fix typos.
      	* config/m68k/cf.md: Fix typos.
      	* config/mep/mep.c: Fix typos.
      	* config/microblaze/microblaze.c: Fix typos.
      	* config/microblaze/microblaze.h: Fix typos.
      	* config/mn10300/mn10300.c: Fix typos.
      	* config/mn10300/mn10300.md: Fix typos.
      	* config/pa/pa.c: Fix typos.
      	* config/picochip/picochip.h: Fix typos.
      	* config/rs6000/a2.md: Fix typos.
      	* config/rs6000/rs6000.c: Fix typos.
      	* config/rs6000/vector.md: Fix typos.
      	* config/rx/rx.md: Fix typos.
      	* config/rx/rx.opt: Fix typos.
      	* config/s390/2097.md: Fix typos.
      	* config/s390/s390.c: Fix typos.
      	* config/s390/s390.h: Fix typos.
      	* config/sh/sh.c: Fix typos.
      	* config/sh/sh.md: Fix typos.
      	* config/sparc/sync.md: Fix typos.
      	* config/spu/spu.c: Fix typos.
      	* config/spu/spu.md: Fix typos.
      	* config/vms/vms.c: Fix typos.
      	* config/vxworks-dummy.h: Fix typos.
      	* config/vxworks.h: Fix typos.
      	* cselib.c: Fix typos.
      	* df-scan.c: Fix typos.
      	* df.h: Fix typos.
      	* doc/extend.texi: Fix typos.
      	* doc/install.texi: Fix typos.
      	* doc/invoke.texi: Fix typos.
      	* doc/md.texi: Fix typos.
      	* doc/plugins.texi: Fix typos.
      	* doc/rtl.texi: Fix typos.
      	* dse.c: Fix typos.
      	* dwarf2asm.c: Fix typos.
      	* dwarf2out.c: Fix typos.
      	* except.h: Fix typos.
      	* expr.c: Fix typos.
      	* fold-const.c: Fix typos.
      	* gcc.c: Fix typos.
      	* gcse.c: Fix typos.
      	* genautomata.c: Fix typos.
      	* gengtype-state.c: Fix typos.
      	* gengtype.c: Fix typos.
      	* genhooks.c: Fix typos.
      	* gimple-fold.c: Fix typos.
      	* gimple-pretty-print.c: Fix typos.
      	* gimple.c: Fix typos.
      	* gimple.h: Fix typos.
      	* gimplify.c: Fix typos.
      	* graphite-interchange.c: Fix typos.
      	* graphite-sese-to-poly.c: Fix typos.
      	* ifcvt.c: Fix typos.
      	* input.c: Fix typos.
      	* ipa-cp.c: Fix typos.
      	* ipa-inline-analysis.c: Fix typos.
      	* ipa-inline-transform.c: Fix typos.
      	* ipa-inline.c: Fix typos.
      	* ipa-pure-const.c: Fix typos.
      	* ipa-ref.h: Fix typos.
      	* ipa-reference.c: Fix typos.
      	* ipa-utils.c: Fix typos.
      	* ipa.c: Fix typos.
      	* ira-emit.c: Fix typos.
      	* ira-lives.c: Fix typos.
      	* lto-streamer.c: Fix typos.
      	* lto-streamer.h: Fix typos.
      	* lto-wrapper.c: Fix typos.
      	* mcf.c: Fix typos.
      	* mode-switching.c: Fix typos.
      	* modulo-sched.c: Fix typos.
      	* plugin.c: Fix typos.
      	* postreload.c: Fix typos.
      	* sched-deps.c: Fix typos.
      	* sel-sched-ir.c: Fix typos.
      	* sel-sched-ir.h: Fix typos.
      	* sel-sched.c: Fix typos.
      	* sese.c: Fix typos.
      	* stor-layout.c: Fix typos.
      	* target-hooks-macros.h: Fix typos.
      	* target.def: Fix typos.
      	* trans-mem.c: Fix typos.
      	* tree-eh.c: Fix typos.
      	* tree-predcom.c: Fix typos.
      	* tree-sra.c: Fix typos.
      	* tree-ssa-address.c: Fix typos.
      	* tree-ssa-loop-ivopts.c: Fix typos.
      	* tree-ssa-loop-niter.c: Fix typos.
      	* tree-ssa-math-opts.c: Fix typos.
      	* tree-ssa-pre.c: Fix typos.
      	* tree-ssa-propagate.c: Fix typos.
      	* tree-ssa-reassoc.c: Fix typos.
      	* tree-ssa-sccvn.c: Fix typos.
      	* tree-ssa-ter.c: Fix typos.
      	* tree-ssa-uninit.c: Fix typos.
      	* tree-ssanames.c: Fix typos.
      	* tree-vect-generic.c: Fix typos.
      	* tree-vect-slp.c: Fix typos.
      	* tree.c: Fix typos.
      	* tree.h: Fix typos.
      	* varasm.c: Fix typos.
      	* varpool.c: Fix typos.
      
      From-SVN: r187959
      Joseph Myers committed
  23. 24 May, 2012 1 commit
    • tree.h (alias_diag_flags): Remove. · 07250f0e
      	* tree.h (alias_diag_flags): Remove.
      	(alias_pair): Remove emitted_diags.
      	(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
      	symbol_alias_set_t, symbol_alias_set_destroy,
      	symbol_alias_set_contains, propagate_aliases_backward): Remove.
      	* toplev.c (compile_file): Do not call finish_aliases_2
      	* cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1.
      	(handle_alias_pairs): Output diagnostics about aliases to externals.
      	(assemble_thunks_and_aliases): Use do_assemble_alias.
      	(output_weakrefs): Likewise.
      	(finalize_compilation_unit): Do not call finish_aliases_1.
      	* ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs.
      	* varasm.c (do_assemble_alias): Export.
      	(symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains,
      	symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward,
      	propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias,
      	remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2, 
      	assemble_alias): Remove.
      	* output.h (do_assemble_alias): Declare.
      	* varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1.
      
      From-SVN: r187823
      Jan Hubicka committed
  24. 22 May, 2012 1 commit
    • tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New. · 3828719a
      2012-05-22  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
      	(init_function_for_compilation): Remove.
      	* tree-dfa.c (find_vars_r): Take struct function argument.
      	(find_referenced_vars_in): Adjust.
      	* tree-ssa-operands.c (clobber_stats): Remove.
      	(create_vop_var): Take struct function argument.  Mark
      	virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
      	(init_ssa_operands): Take struct function argument.
      	(fini_ssa_operands): Do not dump dead stats.
      	* tree-ssa-operands.h (init_ssa_operands): Take struct function
      	argument.
      	* cgraphunit.c (init_lowered_empty_function): Adjust.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	* tree-into-ssa.c (rewrite_into_ssa): Likewise.
      	* omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching
      	cfun.
      	* gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
      	virtual operands are not registers.
      
      From-SVN: r187772
      Richard Guenther committed
  25. 15 May, 2012 1 commit
  26. 10 May, 2012 1 commit
    • cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use. · 3ac8781c
      2012-05-10  Richard Guenther  <rguenther@suse.de>
      
      	ada/
      	* gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
      
      	c-family/
      	* c-common.c (c_sizeof_or_alignof_type): Remove assert and
      	adjust commentary about TYPE_IS_SIZETYPE types.
      
      	* tree.h (TYPE_IS_SIZETYPE): Remove.
      	* fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
      	(extract_muldiv_1): Likewise.
      	* gimple.c (gtc_visit): Likewise.
      	(gimple_types_compatible_p): Likewise.
      	(iterative_hash_canonical_type): Likewise.
      	(gimple_canonical_types_compatible_p): Likewise.
      	* gimplify.c (gimplify_one_sizepos): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
      
      From-SVN: r187363
      Richard Guenther committed
  27. 03 May, 2012 1 commit
    • builtins.c (get_object_alignment_1): Return whether we can determine the… · 644ffefd
      builtins.c (get_object_alignment_1): Return whether we can determine the alignment or conservatively assume byte...
      
      2012-05-03  Martin Jambor  <mjambor@suse.cz>
      
      	* builtins.c (get_object_alignment_1): Return whether we can determine
      	the alignment or conservatively assume byte alignment.  Return the
      	alignment by reference.  Use get_pointer_alignment_1 for dereference
      	alignment.
      	(get_pointer_alignment_1): Return whether we can determine the
      	alignment or conservatively assume byte alignment.  Return the
      	alignment by reference.  Use get_ptr_info_alignment to get SSA name
      	alignment.
      	(get_object_alignment): Update call to get_object_alignment_1.
      	(get_object_or_type_alignment): Likewise, fall back to type alignment
      	only when it returned false.
      	(get_pointer_alignment): Update call to get_pointer_alignment_1.
      	* fold-const.c (get_pointer_modulus_and_residue): Update call to
      	get_object_alignment_1.
      	* ipa-prop.c (ipa_modify_call_arguments): Update call to
      	get_pointer_alignment_1.
      	* tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
      	of MEM_REF or TARGET_MEM_REF only when it returns false.
      	* tree-ssa-ccp.c (get_value_from_alignment): Update call to
      	get_object_alignment_1.
      	(ccp_finalize): Use set_ptr_info_alignment.
      	* tree.h (get_object_alignment_1): Update declaration.
      	(get_pointer_alignment_1): Likewise.
      	* gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
      	(dump_gimple_stmt): Likewise.
      	* tree-flow.h (ptr_info_def): Updated comments of fields align and
      	misalign.
      	(get_ptr_info_alignment): Declared.
      	(mark_ptr_info_alignment_unknown): Likewise.
      	(set_ptr_info_alignment): Likewise.
      	(adjust_ptr_info_misalignment): Likewise.
      	* tree-ssa-address.c (copy_ref_info): Use new access functions to get
      	and set alignment of SSA names.
      	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
      	mark_ptr_info_alignment_unknown.
      	* tree-ssanames.c (get_ptr_info_alignment): New function.
      	(mark_ptr_info_alignment_unknown): Likewise.
      	(set_ptr_info_alignment): Likewise.
      	(adjust_ptr_info_misalignment): Likewise.
      	(get_ptr_info): Call mark_ptr_info_alignment_unknown.
      	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
      	Likewise.
      	(bump_vector_ptr): Likewise.
      	* tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
      	(vectorizable_store): Likewise.
      	(vectorizable_load): Likewise.
      
      From-SVN: r187101
      Martin Jambor committed
  28. 02 May, 2012 1 commit
    • tree.c (valid_constant_size_p): New function. · 56099f00
      2012-05-02  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (valid_constant_size_p): New function.
      	* tree.h (valid_constant_size_p): Declare.
      	* cfgexpand.c (expand_one_var): Adjust check for too large
      	variables by using valid_constant_size_p.
      	* varasm.c (assemble_variable): Likewise.
      
      	c/
      	* c-decl.c (grokdeclarator): Properly check for sizes that
      	cover more than half of the address-space.
      
      	cp/
      	* decl.c (grokdeclarator): Properly check for sizes that
      	cover more than half of the address-space.
      
      2012-05-02  Richard Guenther  <rguenther@suse.de>
      
      	* fold-const.c (div_if_zero_remainder): sizetypes no longer
      	sign-extend.
      	(int_const_binop_1): New worker for int_const_binop with
      	overflowable parameter.  Pass it through
      	to force_fit_type_double.
      	(int_const_binop): Wrap around int_const_binop_1 with overflowable
      	equal to one.
      	(size_binop_loc): Call int_const_binop_1 with overflowable equal
      	to minus one, forcing overflow detection for even unsigned types.
      	(extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
      	(fold_binary_loc): Call try_move_mult_to_index with signed offset.
      	* stor-layout.c (initialize_sizetypes): sizetypes no longer
      	sign-extend.
      	(layout_type): For zero-sized arrays ignore overflow on the
      	size calculations.
      	* tree-ssa-ccp.c (bit_value_unop_1): Likewise.
      	(bit_value_binop_1): Likewise.
      	* tree.c (double_int_to_tree): Likewise.
      	(double_int_fits_to_tree_p): Likewise.
      	(force_fit_type_double): Likewise.
      	(host_integerp): Likewise.
      	(int_fits_type_p): Likewise.
      	* varasm.c (output_constructor_regular_field): Sign-extend the
      	field-offset to cater for negative offsets produced by the Ada frontend.
      	* omp-low.c (extract_omp_for_data): Convert the loop step to
      	signed for pointer adjustments.
      
      	* g++.dg/tree-ssa/pr19807.C: Adjust.
      
      From-SVN: r187042
      Richard Guenther committed
  29. 19 Apr, 2012 1 commit
    • re PR c/52977 (internal compiler error: Segmentation fault with `-x c-header' or… · 314b662a
      re PR c/52977 (internal compiler error: Segmentation fault with `-x c-header' or `-x cxx-header' option)
      
      	PR middle-end/52977
      	* tree.h (VECTOR_CST_NELTS): Use part number of types again.
      	(struct tree_vector): Adjust GTY length.
      	* tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
      
      	* gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
      	members.
      	(walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
      	caller emitted the length calulation already.
      	(walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
      
      From-SVN: r186593
      Michael Matz committed
  30. 17 Apr, 2012 1 commit
  31. 16 Apr, 2012 1 commit
    • re PR c/52977 (internal compiler error: Segmentation fault with `-x c-header' or… · ac9a074c
      re PR c/52977 (internal compiler error: Segmentation fault with `-x c-header' or `-x cxx-header' option)
      
      2012-04-16  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/52977
      	* tree.h (VECTOR_CST_NELTS): Adjust.
      	(struct tree_vector): Add explicit length field.
      	(make_vector_stat): Declare.
      	(make_vector): Define.
      	* tree.c (make_vector_stat): New function.
      	(build_vector_stat): Use it.
      	* tree-streamer-in.c (streamer_alloc_tree): Likewise.
      
      From-SVN: r186494
      Richard Guenther committed
  32. 11 Apr, 2012 1 commit
    • re PR target/52624 (missing __builtin_bswap16) · ac868f29
      	PR target/52624
      	* doc/extend.texi (Other Builtins): Document __builtin_bswap16.
      	(PowerPC AltiVec/VSX Built-in Functions): Remove it.
      	* doc/md.texi (Standard Names): Add bswap.
      	* builtin-types.def (BT_UINT16): New primitive type.
      	(BT_FN_UINT16_UINT16): New function type.
      	* builtins.def (BUILT_IN_BSWAP16): New.
      	* builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
      	(expand_builtin) <BUILT_IN_BSWAP16>: New case.  Pass TARGET_MODE to
      	expand_builtin_bswap.
      	(fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
      	(fold_builtin_1): Likewise.
      	(is_inexpensive_builtin): Likewise.
      	* optabs.c (expand_unop): Deal with bswap in HImode specially.  Add
      	missing bits for bswap to libcall code.
      	* tree.c (build_common_tree_nodes): Build uint16_type_node.
      	* tree.h (enum tree_index): Add TI_UINT16_TYPE.
      	(uint16_type_node): New define.
      	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
      	* config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
      	above builtin.
      	(rs6000_init_builtins): Likewise.
      	* config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
      c-family/
      	* c-common.h (uint16_type_node): Rename into...
      	(c_uint16_type_node): ...this.
      	* c-common.c (c_common_nodes_and_builtins): Adjust for above renaming.
      	* c-cppbuiltin.c (builtin_define_stdint_macros): Likewise.
      
      From-SVN: r186308
      Eric Botcazou committed