Jakub Jelinek [Tue, 5 Mar 2013 15:51:48 +0000 (16:51 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
if VALGRIND_GET_VBITS is defined, temporarily make object
memory all defined, and restore previous valgrind addressability
and definability afterwards. Free this_object at the end.
* c-pch.c (pch_init): Free target_validity at the end.
Jakub Jelinek [Tue, 5 Mar 2013 15:50:38 +0000 (16:50 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* lra.c (lra): Call lra_clear_live_ranges if live_p,
right before calling lra_create_live_ranges, also call it
when clearing live_p. Only call lra_clear_live_ranges
at the end if live_p.
Steven Bosscher [Tue, 5 Mar 2013 14:45:23 +0000 (14:45 +0000)]
re PR c++/55135 (Segfault of gcc on a big file)
gcc/
PR c++/55135
* except.h (remove_unreachable_eh_regions): New prototype.
* except.c (remove_eh_handler_splicer): New function, split out
of remove_eh_handler.
(remove_eh_handler): Use remove_eh_handler_splicer. Add comment
warning about running it on many EH regions one at a time.
(remove_unreachable_eh_regions_worker): New function, walk the
EH tree in depth-first order and remove non-marked regions.
(remove_unreachable_eh_regions): New function.
* tree-eh.c (mark_reachable_handlers): New function, split out
from remove_unreachable_handlers.
(remove_unreachable_handlers): Use mark_reachable_handlers and
remove_unreachable_eh_regions.
(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
and remove_unreachable_eh_regions.
Jakub Jelinek [Tue, 5 Mar 2013 09:46:34 +0000 (10:46 +0100)]
Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and tic6x.exp.
* Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
tic6x.exp.
(check_gcc_parallelize): Run guality.exp as a separate job from
vect.exp with unsorted.exp and $(dg_target_exps) separately from
struct-layout-1.exp with stackalign.exp.
Jakub Jelinek [Tue, 5 Mar 2013 09:38:48 +0000 (10:38 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-ssa-loop-niter.c (bb_queue): Remove typedef.
(discover_iteration_bound_by_body_walk): Change queues to
vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
spelling in comment. Call safe_push on queues[bound_index] directly.
Release queues[queue_index] in every iteration unconditionally.
Release bounds vector.
Jakub Jelinek [Tue, 5 Mar 2013 09:37:56 +0000 (10:37 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vect-stmts.c (free_stmt_vec_info_vec): Call
free_stmt_vec_info on any left-over stmt_vec_info in the vector.
* tree-vect-loop.c (vect_create_epilog_for_reduction): Release
inner_phis vector.
Richard Biener [Tue, 5 Mar 2013 09:20:30 +0000 (09:20 +0000)]
re PR lto/56515 (location references block not in block tree, verify_gimple failed (LTO + profile))
2013-03-05 Richard Biener <rguenther@suse.de>
PR lto/56515
* tree-inline.c (remap_blocks_to_null): New function.
(expand_call_inline): When expanding a call stmt without
an associated block inline remap all callee blocks to NULL.
Jakub Jelinek [Tue, 5 Mar 2013 06:04:14 +0000 (07:04 +0100)]
re PR rtl-optimization/56494 (ICE in simplify_truncation, at simplify-rtx.c:619)
PR rtl-optimization/56494
* simplify-rtx.c (simplify_truncation): If C is narrower than A,
optimize (truncate:A (subreg:B (truncate:C X) 0)) into
(subreg:A (truncate:C X) 0) instead of (truncate:A X).
Jakub Jelinek [Mon, 4 Mar 2013 10:06:22 +0000 (11:06 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vect-stmts.c (vectorizable_shift): Don't call create methods
on vec_oprnds0 or vec_oprnds1 before loop, only call it on
vec_oprnds1 right before pushing anything to it for
scalar_shift_arg.
Jakub Jelinek [Mon, 4 Mar 2013 10:02:26 +0000 (11:02 +0100)]
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
set nbbs to 0 instead of having separate code path.
(vect_analyze_loop_form): Call destroy_loop_vec_info with true
instead of false as last argument if returning NULL.
gcc/
* target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
the attribute is now called "target" instead of "option".
(TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
* doc/tm.texi.in (Target Attributes): Likewise document the correct
attribute/pragma name for TARGET_OPTION_VALID_P and
TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
* doc/tm.texi: Regenerated.
Mikael Morin [Sun, 3 Mar 2013 17:52:02 +0000 (17:52 +0000)]
re PR fortran/54730 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1066)
fortran/
PR fortran/54730
* array.c (gfc_match_array_constructor): Set a checkpoint before
matching a typespec. Drop it on success, restore it otherwise.
testsuite/
PR fortran/54730
* gfortran.dg/array_constructor_42.f90: New test.
David Holsgrove [Sun, 3 Mar 2013 17:34:50 +0000 (17:34 +0000)]
Support -mxl-reorder and swap instructions.
* config/microblaze/microblaze.c:
Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
* config/microblaze/microblaze.h: Add -mxl-reorder to DRIVER_SELF_SPECS
* config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
instructions emitted if TARGET_REORDER
* config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
or 0 for -m/-mno case, but initialises as 2 to detect default use case
separately
Mikael Morin [Sun, 3 Mar 2013 17:34:42 +0000 (17:34 +0000)]
re PR fortran/54730 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1066)
fortran/
PR fortran/54730
* gfortran.h (struct gfc_undo_change_set): New field 'previous'.
(gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
gfc_restore_last_undo_checkpoint): New prototypes.
* symbol.c (default_undo_chgset_var): Update initialization.
(single_undo_checkpoint_p, gfc_new_undo_checkpoint,
free_undo_change_set_data, pop_undo_change_set,
gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
New functions.
(save_symbol_data): Handle multiple change sets. Make sure old_symbol
field's previous value is not overwritten. Clear gfc_new field.
(restore_old_symbol): Restore previous old_symbol field.
(gfc_restore_last_undo_checkpoint): New function, using body renamed
from gfc_undo_symbols. Restore the previous change set as current one.
(gfc_undo_symbols): New body.
(gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
Call enforce_single_undo_checkpoint.
(gfc_symbol_done_2): Ditto. Free change set data.
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.