1. 04 Sep, 2012 19 commits
    • re PR bootstrap/54453 (r190783 breaks bootstrap on powerpc64-unknown-linux-gnu) · 1a044f41
      	PR bootstrap/54453
      	* include/Makefile.am: Fix regex.
      	* include/Makefile.in: Regenerate.
      
      From-SVN: r190939
      Steven Bosscher committed
    • tree-ssa-pre.c (value_expressions): Make it a vector of bitmaps containing expression IDs. · 4d4b1b30
      2012-09-04  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (value_expressions): Make it a vector of
      	bitmaps containing expression IDs.
      	(add_to_value): Adjust.
      	(sorted_array_from_bitmap_set): Likewise.
      	(bitmap_set_replace_value): Likewise.
      	(print_value_expressions): Likewise.
      	(get_constant_for_value_id): Likewise.
      	(get_representative_for): Likewise.
      	(phi_translate_1): Likewise.
      	(bitmap_find_leader): Likewise.
      	(find_or_generate_expression): Likewise.
      	(do_regular_insertion): Likewise.
      	(init_pre): Likewise.
      	(fini_pre): Likewise.
      
      From-SVN: r190938
      Richard Guenther committed
    • re PR bootstrap/54479 (Bootstrap with release-checking broken) · dce6e8ad
      	PR bootstrap/54479
      	* vec.h (vec_t::copy): Add cast in call to reserve_exact.
      
      From-SVN: r190937
      Diego Novillo committed
    • tree-ssa-pre.c (add_to_exp_gen): Adjust. · 3c1d57d0
      2012-09-04  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (add_to_exp_gen): Adjust.
      	(make_values_for_phi): Do not add to PHI_GEN for FRE.
      	(compute_avail): Stop processing after adding all defs to
      	AVAIL_OUT for FRE.
      	(init_pre): Do not allocate not needed bitmap sets for FRE.
      
      From-SVN: r190930
      Richard Guenther committed
    • MAINTAINERS (Write After Approval): Add myself. · 7c2f37eb
      2012-09-04  Christophe Lyon  <christophe.lyon@st.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r190928
      Christophe Lyon committed
    • Make all VEC_* functions, member functions of vec_t. · bd0c3bfd
      This patch is the first step towards making the API for VEC use
      member functions.
      
      There are no user code modifications in this patch.  Everything
      is still using the VEC_* macros, but this time they expand into
      member function calls.
      
      Because of the way VECs are used, this required some trickery.
      The API allows VECs to be NULL.  This means that services like
      VEC_length(V) will return 0 when V is a NULL pointer.  This is,
      of course, not possible to do if we call V->length().
      
      For functions that either need to allocate/re-allocate the
      vector, or they need to handle NULL vectors, I implemented them
      as static member functions or free functions.
      
      Another wart that I did not address in this patch is the fact
      that vectors of pointers and vectors of objects have slightly
      different semantics when handling elements in the vector.  In
      vector of pointers, we pass them around by value, but in vectors
      of objects, they are passed around via pointers.  That's why we
      need TYPE * and TYPE ** overloads for some functions (e.g.,
      vec_t::iterate).
      
      I will fix these two warts in a subsequent patch.  The idea is to
      make vec_t a single-word structure, which acts as a handler for
      the structure containing the actual vector.  Something like this:
      
      template<typename T>
      struct vec_t
      {
        struct vec_internal<T> *vec_;
      };
      
      This has the advantage that we can now declare the actual vector
      instances as regular variables, instead of pointers.  They will
      use the same amount of memory when embedded in other structures,
      and we will be able to allocate and reallocate the actual data
      without having to mutate the vector instance.
      
      All the functions that are now static members in vec_t, will
      become instance members in the new vec_t.  This will mean that
      all the callers will need to be changed, of course.
      
      Tested on x86_64 and ppc64 with all languages plus ada, go and obj-c++.
      
      	Rewrite VEC_* functions as member functions of vec_t.
      
      	* vec.h: Update documentation.
      	(ALONE_VEC_CHECK_INFO): Define.
      	(ALONE_VEC_CHECK_DECL): Define.
      	(ALONE_VEC_CHECK_PASS): Define.
      	(struct vec_prefix): Rename field NUM to NUM_.
      	Rename field ALLOC to ALLOC_.
      	Update all users.
      	(struct vec_t): Rename field PREFIX to PREFIX_.
      	Rename field VEC to VEC_.
      	Update all users.
      	(vec_t::length): Rename from VEC_length_1.  Update all users.
      	(vec_t::empty): Rename from VEC_empty_1.  Update all users.
      	(vec_t::address): Rename from VEC_address_1.  Update all users.
      	(vec_address): New.
      	(vec_t::last): Rename from VEC_last_1.  Update all users.
      	(vec_t::operator[]): Rename from VEC_index_1.  Update all users.
      	(vec_t::iterate): Rename from VEC_iterate_1.  Update all users.
      	(vec_t::embedded_size): Rename from VEC_embedded_size_1.
      	Update all users.
      	(vec_t::embedded_init): Rename from VEC_embedded_init_1.
      	Update all users.
      	(vec_t::alloc): Rename from VEC_alloc_1.  Update all users.
      	(vec_t::free): Rename from VEC_free_1.  Update all users.
      	(vec_t::copy): Rename from VEC_copy_1.  Update all users.
      	(vec_t::space): Rename from VEC_space_1.  Update all users.
      	(vec_t::reserve): Rename from VEC_reserve_1.  Update all users.
      	(vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
      	Update all users.
      	(vec_t::splice): Rename from VEC_splice_1.  Update all users.
      	(vec_t::safe_splice): Rename from VEC_safe_splice_1.  Update all users.
      	(vec_t::quick_push): Rename from VEC_quick_push_1.  Update all users.
      	(vec_t::safe_push): Rename from VEC_safe_push_1.  Update all users.
      	(vec_t::pop): Rename from VEC_pop_1.  Update all users.
      	(vec_t::truncate): Rename from VEC_truncate_1.  Update all users.
      	(vec_t::safe_grow): Rename from VEC_safe_grow_1.  Update all users.
      	(vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
      	Update all users.
      	(vec_t::replace): Rename from VEC_replace_1.  Update all users.
      	(vec_t::quick_insert): Rename from VEC_quick_insert_1.
      	Update all users.
      	(vec_t::safe_insert): Rename from VEC_safe_insert_1.  Update all users.
      	(vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
      	Update all users.
      	(vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
      	Update all users.
      	(vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
      	(vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.
      
      From-SVN: r190927
      Diego Novillo committed
    • gimple.h (gimple_build_switch): Remove. · fd8d363e
      	* gimple.h (gimple_build_switch): Remove.
      	(gimple_build_switch_vec): Promote to the new gimple_build_switch.
      	(gimple_switch_default_label): Assert the default case label is
      	really a default case label.
      	(gimple_switch_set_default_label): Likewise.
      	* gimple.c (gimple_build_switch_nlabels): Make sure a default label
      	is passed in, and simplify accordingly.
      	(gimple_build_switch): Removed.
      	(gimple_build_switch_vec): Rename to gimple_build_switch.
      	* gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
      	* gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
      	case label.
      	* stmt.c (expand_case): Simplify using the fact that every GIMPLE
      	switch must have a default case.
      	* tree-cfg.c (group_case_labels_stmt): Likewise.
      	(verify_gimple_switch): Use gimple_switch_label in verifier to get
      	the label at index 0, and verify that it is a valid default case.
      	* except.c (sjlj_emit_dispatch_table): Rewrite construction of the
      	switch for dispatching.
      	* tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
      	(lower_eh_dispatch): Likewise.
      	* tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
      	label at index 0 before turning it into a default case label.
      	* omp-low.c (expand_omp_sections): Update gimple_build_switch use.
      	* tree-switch-conversion.c (emit_case_bit_tests): Get the default case
      	label using gimple_switch_default_label.
      	(collect_switch_conv_info): Likewise.
      	(process_switch): Likewise.
      	* doc/gimple.texi: Update documentation of gimple_build_switch.
      
      From-SVN: r190925
      Steven Bosscher committed
    • re PR target/54476 ([avr] __builtin_avr_delay_cycles (-1ul) causes memory usage… · b8db7f86
      re PR target/54476 ([avr] __builtin_avr_delay_cycles (-1ul) causes memory usage to explode on x86_64 host)
      
      	PR target/54476
      	* config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
      	SImode.
      
      From-SVN: r190920
      Georg-Johann Lay committed
    • re PR target/45070 (Miscompiled c++ class with packed attribute on ARM with -Os… · 12b48dc8
      re PR target/45070 (Miscompiled c++ class with packed attribute on ARM with -Os optimizations (Qt 4.6.2))
      
      
      	PR target/45070
      	* config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value of size
      	less than 4 bytes by using macro ARM_NUM_INTS.
      	(thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
      
      From-SVN: r190919
      Bin Cheng committed
    • re PR tree-optimization/54458 (ICE get_loop_body, at cfgloop.c:830) · a8886f7d
      2012-09-04  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/54458
      	* tree-ssa-threadupdate.c (thread_through_loop_header): If we
      	turn the loop into one with multiple latches mark it so.
      
      	* gcc.dg/torture/pr54458.c: New testcase.
      
      From-SVN: r190918
      Richard Guenther committed
    • re PR target/54220 ([avr] Potential stack corruption in naked functions at -O0) · cee8f252
      	PR target/54220
      	* config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
      	define to...
      	(avr_allocate_stack_slots_for_args): ...this new static function.
      
      From-SVN: r190914
      Senthil Kumar Selvaraj committed
    • arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT by GEN_INT. · 3474210e
      2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
      	by GEN_INT.
      	(arm_emit_coreregs_64bit_shift): Likewise.
      
      From-SVN: r190912
      Christophe Lyon committed
    • arm.c (arm_evpc_neon_vext): New function. · 434641a5
      2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/
      	* config/arm/arm.c (arm_evpc_neon_vext): New
      	function.
      	(arm_expand_vec_perm_const_1): Add call to
      	arm_evpc_neon_vext.
      
      	gcc/testsuite/
      	* gcc.target/arm/neon-vext.c: New test.
      	* gcc.target/arm/neon-vext-execute.c: Ditto.
      
      From-SVN: r190911
      Christophe Lyon committed
    • re PR fortran/54435 (ICE with SELECT TYPE on a non-CLASS object) · ee3bea0b
      2012-09-04  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/54435
      	PR fortran/54443
      	* match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
      	for BT_CLASS.
      
      2012-09-04  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/54243
      	PR fortran/54244
      	* gfortran.dg/select_type_29.f03: New.
      
      From-SVN: r190910
      Janus Weil committed
    • re PR target/51244 ([SH] Inefficient conditional branch and code around T bit) · ff596ca1
      	PR target/51244
      	* config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
      	canonicalization code into...
      	* (sh_canonicalize_comparison): This new function.
      	* config/sh/sh-protos.h: Declare it.
      	* config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
      	* config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
      	always invoke expand_cbranchsi4.
      
      From-SVN: r190909
      Oleg Endo committed
    • Daily bump. · 8945d422
      From-SVN: r190908
      GCC Administrator committed
  2. 03 Sep, 2012 16 commits
  3. 02 Sep, 2012 5 commits