Jakub Jelinek [Fri, 1 Mar 2013 22:56:18 +0000 (23:56 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
vector even when returning true. Fix up function comment formatting.
Jakub Jelinek [Fri, 1 Mar 2013 22:55:26 +0000 (23:55 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* ira-build.c (ira_loop_nodes_count): New variable.
(create_loop_tree_nodes): Initialize it.
(finish_loop_tree_nodes): Use it instead of looking at current_loops.
Jakub Jelinek [Fri, 1 Mar 2013 22:54:39 +0000 (23:54 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
method on dr_chain and result_chain.
* tree-vect-stmts.c (vectorizable_store): Only call
result_chain.create if j == 0.
Jakub Jelinek [Fri, 1 Mar 2013 21:06:04 +0000 (22:06 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* files.c (_cpp_save_file_entries): Free result at the end.
* pch.c (cpp_string_free): New function.
(cpp_save_state): Use it in htab_create call.
(cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
Jakub Jelinek [Fri, 1 Mar 2013 20:58:59 +0000 (21:58 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
before overwriting it.
Tobias Burnus [Fri, 1 Mar 2013 19:01:57 +0000 (20:01 +0100)]
extended.texi (C Extensions): Change order in @menu to match @node.
gcc/
2013-03-01 Tobias Burnus <burnus@net-b.de>
* doc/extended.texi (C Extensions): Change order in @menu
to match @node.
(Other MIPS Built-in Functions): Move last MIPS entry before
"picoChip Built-in Functions".
(SH Built-in Functions): Move after RX Built-in Functions.
* doc/gcc.texi (Introduction): Change order in @menu
to match @node.
* doc/md.texi (Constraints): Ditto.
* gty.texi (Type Information): Ditto.
(User-provided marking routines for template types): Make
subsection.
* doc/invoke.texi (AArch64 Options): Move before
"Adapteva Epiphany Options".
libiberty/
2013-03-01 Andreas Schwab <schwab@linux-m68k.org>
* obstacks.texi (Obstacks): Trim @node to only contain the
node name.
* libiberty.texi (Obstacks): Lower section.
re PR sanitizer/56454 (need to rename attribute no_address_safety_analysis to no_sanitize_address)
PR sanitizer/56454
* asan.c (gate_asan): Lookup no_sanitize_address instead of
no_address_safety_analysis attribute.
* doc/extend.texi (no_address_safety_attribute): Rename to
no_sanitize_address attribute, mention no_address_safety_analysis
attribute as deprecated alias.
* c-common.c (handle_no_sanitize_address_attribute): New function.
(c_common_attribute_table): Add no_sanitize_address attribute.
(handle_no_address_safety_analysis_attribute): Add
no_sanitize_address attribute, not no_address_safety_analysis
attribute.
* g++.dg/asan/default-options-1.C (__asan_default_options): Use
no_sanitize_address attribute rather than no_address_safety_analysis.
* g++.dg/asan/sanitizer_test_utils.h
(ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS): Likewise.
* c-c++-common/asan/attrib-1.c: Test no_sanitize_address attribute
in addition to no_address_safety_analysis.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r196361
Jakub Jelinek [Thu, 28 Feb 2013 21:20:26 +0000 (22:20 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
type to vec<vec<tree> > *.
* tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
to be vec<tree> instead of vec<tree> *, set vec_defs
to vNULL and call vec_defs.create (number_of_vects), adjust other
uses of vec_defs.
* tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
vectorizable_condition): Adjust vect_get_slp_defs callers.
Jakub Jelinek [Thu, 28 Feb 2013 19:57:56 +0000 (20:57 +0100)]
files.c (_cpp_find_file): If returning early...
* files.c (_cpp_find_file): If returning early, before storing
something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
on it. Access *hash_slot using void * type rather than
struct file_hash_entry * to avoid aliasing issues.
Jakub Jelinek [Thu, 28 Feb 2013 09:58:47 +0000 (10:58 +0100)]
configure.ac: Don't define ENABLE_CHECKING whenever --enable-checking is seen...
* configure.ac: Don't define ENABLE_CHECKING whenever
--enable-checking is seen, instead use similar --enable-checking=yes
vs. --enable-checking=release default as gcc/ subdir has and
define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
Define ENABLE_VALGRIND_CHECKING if requested.
* lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
struct first in the allocated buffer and result->base after it.
(_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
instead of buff->base.
* config.in: Regenerated.
* configure: Regenerated.
Georg-Johann Lay [Thu, 28 Feb 2013 09:00:25 +0000 (09:00 +0000)]
avr.h (device_to_arch): Rename to device_to_ld.
* config/avr/avr.h (device_to_arch): Rename to device_to_ld.
(avr_device_to_arch): Rename to avr_device_to_ld.
(avr_device_to_as): New prototype.
(EXTRA_SPEC_FUNCTIONS): Add device_to_as.
(ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
* config/avr/driver-avr.c (avr_device_to_as): New.
(avr_device_to_arch): Rename to avr_device_to_ld.
Jakub Jelinek [Wed, 27 Feb 2013 21:35:06 +0000 (22:35 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
pool_free.
(df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
overwriting it.
Jason Merrill [Wed, 27 Feb 2013 18:13:24 +0000 (13:13 -0500)]
re PR c++/56358 ([C++11] Erroneous interaction of typedef and inherited constructor declarations)
PR c++/56358
PR c++/56323
* name-lookup.c (do_class_using_decl): Use ctor_identifier instead
of the base name for inheriting ctors.
(push_class_level_binding_1): Remove inheriting ctor handling.
* pt.c (tsubst_decl) [USING_DECL]: Likewise.
* class.c (add_implicitly_declared_members): Adjust.
Jakub Jelinek [Wed, 27 Feb 2013 14:01:08 +0000 (15:01 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
vector.
* tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
vec_safe_push, always update *slot.
(redirect_edge_var_map_clear): Use vec_free.
(redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
(free_var_map_entry): Use vec_free.
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
Jakub Jelinek [Wed, 27 Feb 2013 07:28:09 +0000 (08:28 +0100)]
opts.h: Include obstack.h.
* opts.h: Include obstack.h.
(opts_concat): New prototype.
(opts_obstack): New declaration.
* opts.c (opts_concat): New function.
(opts_obstack): New variable.
(init_options_struct): Call gcc_init_obstack on opts_obstack.
(finish_options): Use opts_concat instead of concat
and XOBNEWVEC instead of XNEWVEC.
* opts-common.c (generate_canonical_option, decode_cmdline_option,
generate_option): Likewise.
* Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
* lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
Joern Rennecke [Tue, 26 Feb 2013 14:51:36 +0000 (14:51 +0000)]
re PR target/54640 (arm_adjust_block_mem: signed/unsigned comparison [-Werror=sign-compare])
PR target/54640
* config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
for HOST_WIDE_INT of 32 bit / same size as int.
(arm_block_move_unaligned_straight): Likewise.
(arm_adjust_block_mem): Likewise.
Jakub Jelinek [Tue, 26 Feb 2013 10:00:31 +0000 (11:00 +0100)]
re PR tree-optimization/56448 (cc1 hangs on volatile array with -O or above)
PR tree-optimization/56448
* fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
later operands of the references, or even first operand for
INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
Jakub Jelinek [Tue, 26 Feb 2013 09:59:12 +0000 (10:59 +0100)]
re PR middle-end/56443 (internal compiler error: verify_gimple failed at -O[1-2] -ftree-vectorize)
PR tree-optimization/56443
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
to type_for_mode langhook.
Jason Merrill [Tue, 26 Feb 2013 04:39:04 +0000 (23:39 -0500)]
configure.ac: Check for __cxa_thread_atexit_impl.
* configure.ac: Check for __cxa_thread_atexit_impl.
* libsupc++/atexit_thread.cc (__cxa_thread_atexit): Just forward
to it if available.
* config.h.in, configure: Regenerate.
Richard Biener [Mon, 25 Feb 2013 15:31:31 +0000 (15:31 +0000)]
re PR tree-optimization/56175 (Issue with combine phase on x86.)
2013-02-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/56175
* tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
split out from ...
(simplify_bitwise_binary): ... here. Also guard the conversion
of (type) X op CST to (type) (X op ((type-x) CST)) with it.
Catherine Moore [Sun, 24 Feb 2013 23:46:44 +0000 (18:46 -0500)]
mips16.S: Don't build for microMIPS.
libgcc/
2013-02-24 Catherine Moore <clm@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* config/mips/mips16.S: Don't build for microMIPS.
* config/mips/linux-unwind.h: Handle microMIPS frame.
* config/mips/crtn.S (fini, init): New labels.
gcc/
2013-02-24 Catherine Moore <clm@codesourcery.com>
Maciej W. Rozycki <macro@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
Iain Sandoe <iain@codesourcery.com>
Nathan Froyd <froydnj@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* doc/extend.texi: (micromips, nomicromips, nocompression):
Document new function attributes.
* doc/invoke.texi (minterlink-compressed, mmicromips,
m14k, m14ke, m14kec): Document new options.
(minterlink-mips16): Update documentation.
* doc/md.texi (ZC, ZD): Document new constraints.
* configure.ac (gcc_cv_as_micromips): Check if linker
supports the .set micromips directive.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/micromips.md: New file.
* constraints.md (ZC, AD): New constraints.
* config/mips/predicates.md (movep_src_register): New predicate.
(movep_src_operand): New predicate.
(non_volatile_mem_operand): New predicate.
* config/mips/mips.md (multimem): New type.
(length): Differentiate between 17-bit and 18-bit branch offsets.
(MOVEP1, MOVEP2): New mode iterator.
(mov_<load>l): Use ZC constraint.
(mov_<load>r): Likewise.
(mov_<store>l): Likewise.
(mov_<store>r): Likewise.
(*branch_equality<mode>_inverted): Add microMIPS support.
(*branch_equality<mode>): Likewise.
(*jump_absolute): Likewise.
(indirect_jump_<mode>): Likewise.
(tablejump_<mode>): Likewise.
(<optab>_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(prefetch): Use constraint ZD.
* config/mips/mips.opt (minterlink-compressed): New option.
(minterlink-mips16): Now an alias for minterlink-compressed.
(mmicromips): New option.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
(compare_and_swap_12): Likewise.
(sync_add<mode>): Likewise.
(sync_<optab>_12): Likewise.
(sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12): Likewise.
(sync_nand_12): Likewise.
(sync_old_nand_12): Likewise.
(sync_new_nand_12): Likewise.
(sync_sub<mode>): Likewise.
(sync_old_add<mode>): Likewise.
(sync_old_sub<mode>): Likewise.
(sync_new_add<mode>): Likewise.
(sync_new_sub<mode>): Likewise.
(sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>): Likewise.
(sync_new_<optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12): Likewise.
(atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc): Likewise.
(atomic_fetch_add<mode>_llsc): Likewise.
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
(umips_save_restore_pattern_p): Likewise.
(umips_load_store_pair_p): Likewise.
(umips_output_load_store_pair): Likewise.
(umips_movep_target_p): Likewise.
(umips_12bit_offset_address_p): Likewise.
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this. Update all uses.
(mips_attribute_table): Add micromips, nomicromips and nocompression.
(mips_mips16_decl_p): Delete.
(mips_nomips16_decl_p): Delete.
(mips_get_compress_on_flags): New function.
(mips_get_compress_off_flags): New function.
(mips_get_compress_mode): New function.
(mips_get_compress_on_name): New function.
(mips_get_compress_off_name): New function.
(mips_insert_attributes): Support multiple compression types.
(mips_merge_decl_attributes): Likewise.
(umips_12bit_offset_address_p): New function.
(mips_start_function_definition): Emit .set micromips directive.
(mips_call_may_need_jalx_p): New function.
(mips_function_ok_for_sibcall): Add microMIPS support.
(mips_print_operand_punctuation): Support short delay slots and
compact jumps.
(umips_swm_mask, umips_swm_encoding): New.
(umips_build_save_restore): New function.
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
(was_mips16_p): Remove.
(old_compression_mode): New.
(mips_set_compression_mode): New function.
(mips_set_current_function): Add microMIPS support.
(mips_option_override): Likewise.
(umips_save_restore_pattern_p): New function.
(umips_output_save_restore): New function.
(umips_load_store_pair_p_1): New function.
(umips_load_store_pair_p): New function.
(umips_output_load_store_pair_1): New function.
(umips_output_load_store_pair): New function.
(umips_movep_target_p) New function.
(mips_prepare_pch_save): Add microMIPS support.
* config/mips/mips.h (TARGET_COMPRESSION): New.
(TARGET_CPU_CPP_BUILTINS): Update macro
to use new compression flags and to support microMIPS.
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
(MIPS_ARCH_FLOAT_SPEC): Likewise.
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
(ASM_SPEC): Support mmicromips and mno-micromips.
(M16STORE_REG_P): New macro.
(MIPS_CALL): Support TARGET_MICROMIPS.
(MICROMIPS_J): New macro.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this.
(UMIPS_12BIT_OFFSET_P): New macro.
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
(MULTILIB_DIRNAMES): Likewise.
gcc/testsuite/
2013-02-24 Catherine Moore <clm@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* gcc.target/mips/mips.exp: Add microMIPS support.
* gcc.target/mips/umips-movep-2.c: New test.
* gcc.target/mips/umips-lwp-2.c: New test.
* gcc.target/mips/umips-swp-5.c: New test.
* gcc.target/mips/umips-constraints-1.c: New test.
* gcc.target/mips/umips-lwp-3.c: New test.
* gcc.target/mips/umips-swp-6.c: New test.
* gcc.target/mips/umips-constraints-2.c: New test.
* gcc.target/mips/umips-save-restore-1.c: New test.
* gcc.target/mips/umips-lwp-4.c: New test.
* gcc.target/mips/umips-swp-7.c: New test.
* gcc.target/mips/umips-save-restore-2.c: New test.
* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
* gcc.target/mips/umips-lwp-5.c: New test.
* gcc.target/mips/umips-save-restore-3.c: New test.
* gcc.target/mips/umips-lwp-6.c: New test.
* gcc.target/mips/umips-swp-1.c: New test.
* gcc.target/mips/umips-lwp-7.c: New test.
* gcc.target/mips/umips-swp-2.c: New test.
* gcc.target/mips/umips-lwp-8.c: New test.
* gcc.target/mips/umips-swp-3.c: New test.
* gcc.target/mips/umips-movep-1.c: New test.
* gcc.target/mips/umips-lwp-1.c: New test.
* gcc.target/mips/umips-swp-4.c: New test.
Co-Authored-By: Chao-ying Fu <fu@mips.com> Co-Authored-By: Iain Sandoe <iain@codesourcery.com> Co-Authored-By: Joseph Myers <joseph@codesourcery.com> Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com> Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com> Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com> Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r196246