platform/upstream/gcc.git
11 years agoFactorize condition insertion code out of build_check_stmt
Dodji Seketeli [Mon, 12 Nov 2012 15:53:12 +0000 (15:53 +0000)]
Factorize condition insertion code out of build_check_stmt

This patch splits a new create_cond_insert_point_before_iter function
out of build_check_stmt, to be used by a later patch.

Tested by running cc1 -fasan on the test program below with and
without the patch and by inspecting the gimple output to see that
there is no change.

void
foo ()
{
  char foo[1] = {0};

  foo[0] = 1;
}

gcc/

* asan.c (create_cond_insert_point_before_iter): Factorize out of ...
(build_check_stmt): ... here.

From-SVN: r193439

11 years agoMake build_check_stmt accept an SSA_NAME for its base
Dodji Seketeli [Mon, 12 Nov 2012 15:52:56 +0000 (15:52 +0000)]
Make build_check_stmt accept an SSA_NAME for its base

This patch makes build_check_stmt accept its memory access parameter
to be an SSA name.  This is useful for a subsequent patch that will
re-use.

Tested by running cc1 -fasan on the program below with and without the
patch and inspecting the gimple output to see that there is no change.

void
foo ()
{
  char foo[1] = {0};

  foo[0] = 1;
}

gcc/
* asan.c (build_check_stmt): Accept the memory access to be
represented by an SSA_NAME.

From-SVN: r193438

11 years agoImplement protection of global variables
Jakub Jelinek [Mon, 12 Nov 2012 15:52:42 +0000 (16:52 +0100)]
Implement protection of global variables

This patch implements the protection of global variables.  See the
comments appended to the beginning of the asan.c file.

* varasm.c: Include asan.h.
(assemble_noswitch_variable): Grow size by asan_red_zone_size
if decl is asan protected.
(place_block_symbol): Likewise.
(assemble_variable): If decl is asan protected, increase
DECL_ALIGN if needed, and for decls emitted using
assemble_variable_contents append padding zeros after it.
* Makefile.in (varasm.o): Depend on asan.h.
* asan.c: Include output.h.
(asan_pp, asan_pp_initialized, asan_ctor_statements): New variables.
(asan_pp_initialize, asan_pp_string): New functions.
(asan_emit_stack_protection): Use asan_pp{,_initialized}
instead of local pp{,_initialized} vars, use asan_pp_initialize
and asan_pp_string helpers.
(asan_needs_local_alias, asan_protect_global,
asan_global_struct, asan_add_global): New functions.
(asan_finish_file): Protect global vars that can be protected. Use
asan_ctor_statements instead of ctor_statements
* asan.h (asan_protect_global): New prototype.
(asan_red_zone_size): New inline function.

Co-Authored-By: Wei Mi <wmi@google.com>
From-SVN: r193437

11 years agoImplement protection of stack variables
Jakub Jelinek [Mon, 12 Nov 2012 15:52:26 +0000 (16:52 +0100)]
Implement protection of stack variables

This patch implements the protection of stack variables.

It lays out stack variables as well as the different red zones,
emits some prologue code to populate the shadow memory as to poison
(mark as non-accessible) the regions of the red zones and mark the
regions of stack variables as accessible, and emit some epilogue code
to un-poison (mark as accessible) the regions of red zones right
before the function exits.

* Makefile.in (asan.o): Depend on $(EXPR_H) $(OPTABS_H).
(cfgexpand.o): Depend on asan.h.
* asan.c: Include expr.h and optabs.h.
(asan_shadow_set): New variable.
(asan_shadow_cst, asan_emit_stack_protection): New functions.
(asan_init_shadow_ptr_types): Initialize also asan_shadow_set.
* cfgexpand.c: Include asan.h.  Define HOST_WIDE_INT heap vector.
(partition_stack_vars): If i is large alignment and j small
alignment or vice versa, break out of the loop instead of continue,
and put the test earlier.  If flag_asan, break out of the loop
if for small alignment size is different.
(struct stack_vars_data): New type.
(expand_stack_vars): Add DATA argument.  Change PRED type to
function taking size_t argument instead of tree.  Adjust pred
calls.  Fill DATA in and add needed padding in between variables
if -faddress-sanitizer.
(defer_stack_allocation): Defer everything for flag_asan.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): Take
size_t index into stack_vars array instead of the decl directly.
(asan_decl_phase_3): New function.
(expand_used_vars): Return var destruction sequence.  Adjust
expand_stack_vars calls, add another one for flag_asan.  Call
asan_emit_stack_protection if expand_stack_vars added anything
to the vectors.
(expand_gimple_basic_block): Add disable_tail_calls argument.
(gimple_expand_cfg): Pass true to it if expand_used_vars returned
non-NULL.  Emit the sequence returned by expand_used_vars after
return_label.
* asan.h (asan_emit_stack_protection): New prototype.
(asan_shadow_set): New decl.
(ASAN_RED_ZONE_SIZE, ASAN_STACK_MAGIC_LEFT, ASAN_STACK_MAGIC_MIDDLE,
ASAN_STACK_MAGIC_RIGHT, ASAN_STACK_FRAME_MAGIC): Define.
(asan_protect_stack_decl): New inline.
* toplev.c (process_options): Also disable -faddress-sanitizer on
!FRAME_GROWS_DOWNWARDS targets.

From-SVN: r193436

11 years agoAllow asan at -O0
Jakub Jelinek [Mon, 12 Nov 2012 15:52:09 +0000 (16:52 +0100)]
Allow asan at -O0

This patch defines a new asan pass gate that is activated at -O0, in
addition to the pass that was initially activated at -O3 level The
patch also does some comment cleanups here and there.

* asan.c (build_check_stmt): Rename join_bb variable to else_bb.
(gate_asan_O0): New function.
(pass_asan_O0): New variable.
* passes.c (init_optimization_passes): Add pass_asan_O0.
* tree-pass.h (pass_asan_O0): New declaration.

From-SVN: r193435

11 years agoEmit GIMPLE directly instead of gimplifying GENERIC.
Jakub Jelinek [Mon, 12 Nov 2012 15:51:53 +0000 (16:51 +0100)]
Emit GIMPLE directly instead of gimplifying GENERIC.

This patch cleanups the instrumentation code generation by emitting
GIMPLE directly, as opposed to emitting GENERIC tree and then
gimplifying them.  It also does some cleanups here and there

* Makefile.in (GTFILES): Add $(srcdir)/asan.c.
(asan.o): Update the dependencies of asan.o.
* asan.c (tm.h, tree.h, tm_p.h, basic-block.h, flags.h
function.h, tree-inline.h, tree-dump.h, diagnostic.h, demangle.h,
langhooks.h, ggc.h, cgraph.h, gimple.h): Remove these unused but
included headers.
(shadow_ptr_types): New variable.
(report_error_func): Change is_store argument to bool, don't append
newline to function name.
(PROB_VERY_UNLIKELY, PROB_ALWAYS): Define.
(build_check_stmt): Change is_store argument to bool.  Emit GIMPLE
directly instead of creating trees and gimplifying them.  Mark
the error reporting function as very unlikely.
(instrument_derefs): Change is_store argument to bool.  Use
int_size_in_bytes to compute size_in_bytes, simplify size check.
Use build_fold_addr_expr instead of build_addr.
(transform_statements): Adjust instrument_derefs caller.
Use gimple_assign_single_p as stmt test.  Don't look at MEM refs
in rhs2.
(asan_init_shadow_ptr_types): New function.
(asan_instrument): Don't push/pop gimplify context.
Call asan_init_shadow_ptr_types if not yet initialized.
* asan.h (ASAN_SHADOW_SHIFT): Adjust comment.

Co-Authored-By: Dodji Seketeli <dodji@redhat.com>
Co-Authored-By: Xinliang David Li <davidxl@google.com>
From-SVN: r193434

11 years agoInitial asan cleanups
Jakub Jelinek [Mon, 12 Nov 2012 15:51:34 +0000 (16:51 +0100)]
Initial asan cleanups

This patch defines a new asan_shadow_offset target macro, instead of
having a mere macro in the asan.c file.  It becomes thus cleaner to
define the target macro for targets that supports asan, namely x86 for
now.  The ASAN_SHADOW_SHIFT (which, along with the asan_shadow_offset
constant, is used to compute the address of the shadow memory byte for
a given memory address) is defined in asan.h.

gcc/ChangeLog

* toplev.c (process_options): Warn and turn off
-faddress-sanitizer if not supported by target.
* asan.c: Include target.h.
(asan_scale, asan_offset_log_32, asan_offset_log_64,
asan_offset_log): Removed.
(build_check_stmt): Use ASAN_SHADOW_SHIFT and
targetm.asan_shadow_offset ().
(asan_instrument): Don't initialize asan_offset_log.
* asan.h (ASAN_SHADOW_SHIFT): Define.
* target.def (TARGET_ASAN_SHADOW_OFFSET): New hook.
* doc/tm.texi.in (TARGET_ASAN_SHADOW_OFFSET): Add it.
* doc/tm.texi: Regenerated.
* Makefile.in (asan.o): Depend on $(TARGET_H).
* config/i386/i386.c (ix86_asan_shadow_offset): New function.
(TARGET_ASAN_SHADOW_OFFSET): Define.

From-SVN: r193433

11 years agoInitial import of asan from the Google branch
Wei Mi [Mon, 12 Nov 2012 15:51:13 +0000 (15:51 +0000)]
Initial import of asan from the Google branch

This patch imports the initial state of asan as it was in the
Google branch.

It provides basic infrastructure for asan to instrument memory
accesses on the heap, at -O3.  Note that it supports neither stack nor
global variable protection.

The rest of the patches of the set is intended to further improve this
base.

gcc/ChangeLog

* Makefile.in: Add asan.c and its dependencies.
* common.opt: Add -faddress-sanitizer option.
* invoke.texi: Document the new flag.
* passes.c: Add the asan pass.
* toplev.c (compile_file): Call asan_finish_file.
* asan.c: New file.
* asan.h: New file.
* tree-pass.h: Declare pass_asan.

Co-Authored-By: Diego Novillo <dnovillo@google.com>
Co-Authored-By: Dodji Seketeli <dodji@redhat.com>
From-SVN: r193432

11 years agore PR fortran/55272 (ICE on passing coarray argument between files)
Tobias Burnus [Mon, 12 Nov 2012 11:03:42 +0000 (12:03 +0100)]
re PR fortran/55272 (ICE on passing coarray argument between files)

2012-11-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55272
        * module.c (mio_array_spec): Correctly handle coarray
        scalars.

2012-11-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55272
        * gfortran.dg/coarray_29_1.f90: New.
        * gfortran.dg/coarray_29_2.f90: New.

From-SVN: r193429

11 years agodiagnostic.c (diagnostic_append_note): Also call va_end when inhibit_notes_p is true.
Tobias Burnus [Mon, 12 Nov 2012 11:00:58 +0000 (12:00 +0100)]
diagnostic.c (diagnostic_append_note): Also call va_end when inhibit_notes_p is true.

2012-11-12  Tobias Burnus  <burnus@net-b.de>

        * diagnostic.c (diagnostic_append_note): Also call va_end when
        inhibit_notes_p is true.

From-SVN: r193428

11 years agoIndex declspecs.locations by ds_typedef rather than ds_thread.
Ed Smith-Rowland [Mon, 12 Nov 2012 05:35:05 +0000 (05:35 +0000)]
Index declspecs.locations by ds_typedef rather than ds_thread.

From-SVN: r193426

11 years agogcse.c (struct bb_data): Add new fields, old_pressure, live_in and backup.
Bin Cheng [Mon, 12 Nov 2012 02:17:38 +0000 (02:17 +0000)]
gcse.c (struct bb_data): Add new fields, old_pressure, live_in and backup.

* gcse.c (struct bb_data): Add new fields, old_pressure, live_in
and backup.
(get_regno_pressure_class): Add prototype.
(update_bb_reg_pressure): New.
(should_hoist_expr_to_dom): Add new parameter from.
Monitor the change of reg pressure and use it to drive hoisting.
(hoist_code): Update LIVE and reg pressure information.
(calculate_bb_reg_pressure): Initialize live_in and backup.

* gcc.dg/hoist-register-pressure-3.c: New test.

From-SVN: r193425

11 years agomd.texi (Standard Pattern Names For Generation): Fix swapped sine and cosine operands...
Oleg Endo [Mon, 12 Nov 2012 00:50:11 +0000 (00:50 +0000)]
md.texi (Standard Pattern Names For Generation): Fix swapped sine and cosine operands in the sincos description.

* doc/md.texi (Standard Pattern Names For Generation): Fix swapped
sine and cosine operands in the sincos description.

From-SVN: r193424

11 years agore PR target/53512 (SH Target: Allow fsca and fsrra for non-SH4A)
Oleg Endo [Mon, 12 Nov 2012 00:27:56 +0000 (00:27 +0000)]
re PR target/53512 (SH Target: Allow fsca and fsrra for non-SH4A)

PR target/53512
* config/sh/sh.md (sincossf3): Fix swapped sin and cos operands.

From-SVN: r193423

11 years agoDaily bump.
GCC Administrator [Mon, 12 Nov 2012 00:17:22 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r193422

11 years agosh4a-fprun.c: Add test_sinf and test_cosf noinline wrappers around sinf and cosf.
Oleg Endo [Sun, 11 Nov 2012 23:58:06 +0000 (23:58 +0000)]
sh4a-fprun.c: Add test_sinf and test_cosf noinline wrappers around sinf and cosf.

* gcc.target/sh/sh4a-fprun.c: Add test_sinf and test_cosf noinline
wrappers around sinf and cosf.

From-SVN: r193419

11 years agoRemove "!" from riF->o alternative
H.J. Lu [Sun, 11 Nov 2012 23:50:45 +0000 (23:50 +0000)]
Remove "!" from riF->o alternative

* config/i386/i386.md (*movti_internal_rex64): Remove "!" from
riF->o alternative.

From-SVN: r193418

11 years agosparc.h (AS_NIAGARA3_FLAG): Tweak.
Eric Botcazou [Sun, 11 Nov 2012 21:56:27 +0000 (21:56 +0000)]
sparc.h (AS_NIAGARA3_FLAG): Tweak.

* config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak.
* config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto.

From-SVN: r193416

11 years agore PR rtl-optimization/55247 (internal compiler error: Max. number of generated reloa...
Eric Botcazou [Sun, 11 Nov 2012 21:52:49 +0000 (21:52 +0000)]
re PR rtl-optimization/55247 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))

PR rtl-optimization/55247
PR middle-end/55259
* emit-rtl.c (adjust_address_1): If POINTERS_EXTEND_UNSIGNED > 0,
handle ZERO_EXTEND.
* recog.c (offsettable_address_addr_space_p): Likewise.

From-SVN: r193415

11 years agochapter.txml: Remove whitespace inside <keyword>.
Andreas Schwab [Sun, 11 Nov 2012 21:17:43 +0000 (21:17 +0000)]
chapter.txml: Remove whitespace inside <keyword>.

* doc/xml/chapter.txml: Remove whitespace inside <keyword>.
* doc/xml/class.txml: Likewise.
* doc/xml/manual/abi.xml: Likewise.
* doc/xml/manual/algorithms.xml: Likewise.
* doc/xml/manual/allocator.xml: Likewise.
* doc/xml/manual/appendix_contributing.xml: Likewise.
* doc/xml/manual/appendix_free.xml: Likewise.
* doc/xml/manual/appendix_porting.xml: Likewise.
* doc/xml/manual/atomics.xml: Likewise.
* doc/xml/manual/auto_ptr.xml: Likewise.
* doc/xml/manual/backwards_compatibility.xml: Likewise.
* doc/xml/manual/bitmap_allocator.xml: Likewise.
* doc/xml/manual/build_hacking.xml: Likewise.
* doc/xml/manual/codecvt.xml: Likewise.
* doc/xml/manual/concurrency.xml: Likewise.
* doc/xml/manual/concurrency_extensions.xml: Likewise.
* doc/xml/manual/configure.xml: Likewise.
* doc/xml/manual/containers.xml: Likewise.
* doc/xml/manual/ctype.xml: Likewise.
* doc/xml/manual/debug.xml: Likewise.
* doc/xml/manual/debug_mode.xml: Likewise.
* doc/xml/manual/diagnostics.xml: Likewise.
* doc/xml/manual/extensions.xml: Likewise.
* doc/xml/manual/internals.xml: Likewise.
* doc/xml/manual/intro.xml: Likewise.
* doc/xml/manual/io.xml: Likewise.
* doc/xml/manual/iterators.xml: Likewise.
* doc/xml/manual/locale.xml: Likewise.
* doc/xml/manual/localization.xml: Likewise.
* doc/xml/manual/messages.xml: Likewise.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/xml/manual/numerics.xml: Likewise.
* doc/xml/manual/parallel_mode.xml: Likewise.
* doc/xml/manual/policy_data_structures.xml: Likewise.
* doc/xml/manual/prerequisites.xml: Likewise.
* doc/xml/manual/profile_mode.xml: Likewise.
* doc/xml/manual/shared_ptr.xml: Likewise.
* doc/xml/manual/status_cxx1998.xml: Likewise.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxxtr1.xml: Likewise.
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
* doc/xml/manual/strings.xml: Likewise.
* doc/xml/manual/support.xml: Likewise.
* doc/xml/manual/test.xml: Likewise.
* doc/xml/manual/using_exceptions.xml: Likewise.
* doc/xml/manual/utilities.xml: Likewise.
* doc/xml/spine.xml: Likewise.

From-SVN: r193414

11 years agoacinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Also check for /usr/share/xml/docbook/style...
Andreas Schwab [Sun, 11 Nov 2012 21:01:01 +0000 (21:01 +0000)]
acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Also check for /usr/share/xml/docbook/stylesheet/nwalsh5/current.

* acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Also check for
/usr/share/xml/docbook/stylesheet/nwalsh5/current.
* configure: Regenerate.

From-SVN: r193413

11 years agore PR middle-end/55263 (ICE: pre_and_rev_post_order_compute, at cfganal.c:875 with...
Steven Bosscher [Sun, 11 Nov 2012 20:29:11 +0000 (20:29 +0000)]
re PR middle-end/55263 (ICE: pre_and_rev_post_order_compute, at cfganal.c:875 with -O -fgcse-after-reload -fnon-call-exceptions)

gcc/
PR middle-end/55263
* postreload.c (rest_of_handle_postreload): With non-call exceptions,
if edges are purged call cleanup_cfg to remove unreachable blocks.

testsuite/
PR middle-end/55263
* g++.dg/pr55263.C: New test.

From-SVN: r193412

11 years agoextend.texi: Copy-edit to use "built-in function" instead of "builtin", per GCC codin...
Sandra Loosemore [Sun, 11 Nov 2012 19:47:00 +0000 (14:47 -0500)]
extend.texi: Copy-edit to use "built-in function" instead of "builtin", per GCC coding standards.

2012-11-11  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Copy-edit to use "built-in function" instead
of "builtin", per GCC coding standards.  Also use consistent
capitalization in titles of sections describing built-in functions.

From-SVN: r193411

11 years agore PR tree-optimization/55238 (ICE in find_aggregate_values_for_callers_subset, at...
Martin Jambor [Sun, 11 Nov 2012 19:35:27 +0000 (20:35 +0100)]
re PR tree-optimization/55238 (ICE in find_aggregate_values_for_callers_subset, at ipa-cp.c:2908 building zlib)

PR tree-optimization/55238
* ipa-cp.c (agg_pass_through_permissible_p): New function.
(propagate_aggs_accross_jump_function): Use it.
(find_aggregate_values_for_callers_subset): Likewise and relax an
assert.

* testsuite/gcc.dg/torture/pr55238.c: New test.

From-SVN: r193410

11 years agore PR target/47440 (Use LCM for vzeroupper insertion)
Uros Bizjak [Sun, 11 Nov 2012 19:17:17 +0000 (20:17 +0100)]
re PR target/47440 (Use LCM for vzeroupper insertion)

PR target/47440
* config/i386/i386.c (check_avx256_stores): Remove.
(ix86_check_avx256_register): New.
(ix86_avx_u128_mode_needed): Use ix86_check_avx256_register.
Check the whole RTX for 256bit registers using for_each_rtx.
(ix86_check_avx_stores): New.
(ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN
if there are no 256bit registers used in the function return register.
(ix86_avx_u128_mode_entry): Use ix86_check_avx256_register.
(ix86_avx_u128_mode_exit): Ditto.

From-SVN: r193409

11 years agopr54920.c: Add "-fno-common" option on hppa*-*-hpux*.
John David Anglin [Sun, 11 Nov 2012 19:16:00 +0000 (19:16 +0000)]
pr54920.c: Add "-fno-common" option on hppa*-*-hpux*.

* gcc.dg/torture/pr54920.c: Add "-fno-common" option on hppa*-*-hpux*.
* c-c++-common/torture/vector-subscript-1.c: Likewise.
* c-c++-common/torture/vector-subscript-2.c: Likewise.

From-SVN: r193408

11 years ago* gcc.dg/tree-ssa/cunroll-1.c: Fix bogus testcase.
Jan Hubicka [Sun, 11 Nov 2012 18:16:01 +0000 (19:16 +0100)]
* gcc.dg/tree-ssa/cunroll-1.c: Fix bogus testcase.

From-SVN: r193407

11 years agore PR fortran/48636 (Enable more inlining with -O2 and higher)
Jan Hubicka [Sun, 11 Nov 2012 18:14:35 +0000 (19:14 +0100)]
re PR fortran/48636 (Enable more inlining with -O2 and higher)

PR middle-end/48636
* ipa-inline.c (want_inline_small_function_p): Take aray index hint.
(edge_badness): Likewise.
* ipa-inline.h (inline_hints_vals): Add array_index and comments.
(inline_summary_: Add ARRAY_INDEX.
* ipa-inline-analysis.c (dump_inline_hints): Dump array_index hint.
(reset_inline_summary): Handle array_index hint.
(inline_node_duplication_hook): Likewise.
(dump_inline_summary): Likewise.
(array_index_predicate): New function.
(estimate_function_body_sizes): Use it.
(estimate_node_size_and_time): Use array_index hint.
(inline_merge_summary, inline_read_section): Likewise.

From-SVN: r193406

11 years agopolicy_data_structures.xml: Update reference for select.
Gerald Pfeifer [Sun, 11 Nov 2012 09:57:14 +0000 (09:57 +0000)]
policy_data_structures.xml: Update reference for select.

* doc/xml/manual/policy_data_structures.xml: Update reference
for select.

From-SVN: r193405

11 years agoextend.texi: Copy-edit to use "bit-field" consistently instead of "bitfield" or ...
Sandra Loosemore [Sun, 11 Nov 2012 02:51:47 +0000 (21:51 -0500)]
extend.texi: Copy-edit to use "bit-field" consistently instead of "bitfield" or "bit field".

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Copy-edit to use "bit-field" consistently
instead of "bitfield" or "bit field".

From-SVN: r193403

11 years agoextend.texi: Copy-edit to fix incorrect hyphenation phrases involving "bit"...
Sandra Loosemore [Sun, 11 Nov 2012 02:27:05 +0000 (21:27 -0500)]
extend.texi: Copy-edit to fix incorrect hyphenation phrases involving "bit"...

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Copy-edit to fix incorrect hyphenation phrases
involving "bit", "byte", "word", "precision", and "floating"
modifiers.

From-SVN: r193402

11 years agocp-demangle.c (d_unqualified_name): Handle abi tags here.
Jason Merrill [Sun, 11 Nov 2012 02:11:15 +0000 (21:11 -0500)]
cp-demangle.c (d_unqualified_name): Handle abi tags here.

* cp-demangle.c (d_unqualified_name): Handle abi tags here.
(d_name): Not here.

From-SVN: r193401

11 years agoextend.texi: Copy-edit to fix incorrect uses of "which" and "that" throughout the...
Sandra Loosemore [Sun, 11 Nov 2012 01:45:25 +0000 (20:45 -0500)]
extend.texi: Copy-edit to fix incorrect uses of "which" and "that" throughout the file.

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Copy-edit to fix incorrect uses of "which"
and "that" throughout the file.

From-SVN: r193400

11 years agoDaily bump.
GCC Administrator [Sun, 11 Nov 2012 00:17:48 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r193399

11 years agoreflect: Fix bug comparing struct field types.
Ian Lance Taylor [Sat, 10 Nov 2012 20:24:04 +0000 (20:24 +0000)]
reflect: Fix bug comparing struct field types.

From-SVN: r193395

11 years agoCompile pr55247.c with -mno-sse -mno-mmx
H.J. Lu [Sat, 10 Nov 2012 18:54:58 +0000 (18:54 +0000)]
Compile pr55247.c with -mno-sse -mno-mmx

* gcc.target/i386/pr55247.c: Require maybe_x32 target.  Add
-mno-sse -mno-mmx to dg-options.  Reformat.

From-SVN: r193394

11 years agore PR driver/55202 (Building a combined tree is broken for LTO)
Andrew Pinski [Sat, 10 Nov 2012 18:32:23 +0000 (18:32 +0000)]
re PR driver/55202 (Building a combined tree is broken for LTO)

2012-11-10  Andrew Pinski  <apinski@cavium.com>

        PR bootstrap/55202
        * configure.ac: Set PLUGIN_LD_SUFFIX to just "ld" if it was "ld-new"
        or "collect-ld".
        * configure: Regenerate.

From-SVN: r193393

11 years ago* many: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.
Jason Merrill [Sat, 10 Nov 2012 17:27:22 +0000 (12:27 -0500)]
* many: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.

From-SVN: r193392

11 years agoexpr.c (store_field): Remove TYPE parameter.
Eric Botcazou [Sat, 10 Nov 2012 15:32:32 +0000 (15:32 +0000)]
expr.c (store_field): Remove TYPE parameter.

* expr.c (store_field): Remove TYPE parameter.  Remove block of code
dealing with BLKmode in registers.  Reimplement this support using
pseudo-registers and bit-field techniques.
(store_constructor_field): Remove TYPE parameter and adjust calls to
store_field.
(expand_assignment): Adjust calls to store_field.  Add comment.
(store_expr): Add comment.
(store_constructor): Adjust calls to store_constructor_field.
(expand_expr_real_2): Adjust call to store_field.

From-SVN: r193391

11 years agounused1.C: Skip on AIX.
David Edelsohn [Sat, 10 Nov 2012 14:34:42 +0000 (14:34 +0000)]
unused1.C: Skip on AIX.

        * g++.dg/other/unused1.C: Skip on AIX.
        * g++.dg/other/anon5.C: Allow Undefined to be capitalized. Ignore
        extra message on AIX.

From-SVN: r193390

11 years agoscal-to-vec2.c: Ignore non-standard ABI message.
David Edelsohn [Sat, 10 Nov 2012 14:26:54 +0000 (14:26 +0000)]
scal-to-vec2.c: Ignore non-standard ABI message.

        * c-c++-common/scal-to-vec2.c: Ignore non-standard ABI message.
        * c-c++-common/vector-compare-1.c: Same.
        * c-c++-common/vector-compare-2.c: Same.

From-SVN: r193389

11 years agore PR rtl-optimization/55247 (internal compiler error: Max. number of generated reloa...
Uros Bizjak [Sat, 10 Nov 2012 11:28:12 +0000 (12:28 +0100)]
re PR rtl-optimization/55247 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))

PR target/55247
* config/i386/i386.md (*movti_internal_rex64): Add "!" to riF->o
alternative.

testsuite/ChangeLog:

PR target/55247
* gcc.target/i386/pr55247.c: New test.

From-SVN: r193388

11 years ago20121108-1.c: New test.
Andrew Pinski [Sat, 10 Nov 2012 03:23:22 +0000 (03:23 +0000)]
20121108-1.c: New test.

2012-11-09  Andrew Pinski  <apinski@cavium.com>

* gcc.c-torture/execute/20121108-1.c: New test.

From-SVN: r193386

11 years agoDaily bump.
GCC Administrator [Sat, 10 Nov 2012 00:18:05 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r193385

11 years agoImplement a flag -fext-numeric-literals that allows control of whether GNU...
Ed Smith-Rowland [Sat, 10 Nov 2012 00:08:49 +0000 (00:08 +0000)]
Implement a flag -fext-numeric-literals that allows control of whether GNU...

Implement a flag -fext-numeric-literals that allows control of whether GNU
numeric suffix extensions are parsed or passed to C++ as user-defined literals.

From-SVN: r193382

11 years ago* doc/install.texi (sparc64-x-solaris2): Mention MPC as well.
Eric Botcazou [Fri, 9 Nov 2012 21:52:29 +0000 (21:52 +0000)]
* doc/install.texi (sparc64-x-solaris2): Mention MPC as well.

From-SVN: r193377

11 years agore PR other/52438 (Some files still GPLv2)
Eric Botcazou [Fri, 9 Nov 2012 21:42:02 +0000 (21:42 +0000)]
re PR other/52438 (Some files still GPLv2)

PR other/52438
* s-taspri-lynxos.ads: Delete.
* s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+.
* s-tpopsp-rtems.adb: Likewise.
* s-osinte-rtems.adb: Likewise.

From-SVN: r193375

11 years agoWarray-bounds-3.c (bar): Keep array access within bounds for ABDAY, DAY, ABMON, MON...
Siddhesh Poyarekar [Fri, 9 Nov 2012 19:55:53 +0000 (19:55 +0000)]
Warray-bounds-3.c (bar): Keep array access within bounds for ABDAY, DAY, ABMON, MON, AM_PM.

        * gcc.dg/Warray-bounds-3.c (bar): Keep array access within
        bounds for ABDAY, DAY, ABMON, MON, AM_PM.
        * gcc.dg/vect/pr22506.c (foo): Reduce loop iterations to within
        array bounds.
        * gcc.dg/vect/pr34005.c (XdmcpUnwrap): Likewise.

From-SVN: r193373

11 years ago+ * g++.dg/tm/pr47530-2.C: Adjust for uninstrumented code path.
Aldy Hernandez [Fri, 9 Nov 2012 18:52:36 +0000 (18:52 +0000)]
+ * g++.dg/tm/pr47530-2.C: Adjust for uninstrumented code path.

+       * g++.dg/tm/pr47530-2.C: Adjust for uninstrumented code path.
+       * g++.dg/tm/pr47530.C: Same.

From-SVN: r193372

11 years agoUse hook_bool_void_true for TARGET_LRA_P
Richard Henderson [Fri, 9 Nov 2012 17:20:12 +0000 (09:20 -0800)]
Use hook_bool_void_true for TARGET_LRA_P

From-SVN: r193370

11 years agoAdd HTM fastpath and use Intel RTM for it on x86.
Torvald Riegel [Fri, 9 Nov 2012 17:04:40 +0000 (17:04 +0000)]
Add HTM fastpath and use Intel RTM for it on x86.

* beginend.cc (htm_fastpath): New.
(gtm_thread::begin_transaction, _ITM_commitTransaction,
_ITM_commitTransactionEH): Add HTM fastpath handling.
* config/linux/rwlock.h (gtm_rwlock.is_write_locked): New.
* config/posix/rwlock.h (gtm_rwlock.is_write_locked): New.
* config/x86/target.h (htm_available, htm_init, htm_begin_success,
htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New.
* configure.tgt: Add -mrtm to XCFLAGS.
* method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New.
(gtm_thread::serialirr_mode): Add HTM fastpath handling.
* libitm_i.h (htm_fastpath, dispatch_htm): Declare.
* retry.cc (parse_default_method): Add HTM method parsing.
(gtm_thread::number_of_threads_changed): Use HTM by default if
available.

From-SVN: r193369

11 years agore PR c++/54859 (constexpr in template alias rejected as non-constant)
Jason Merrill [Fri, 9 Nov 2012 16:14:48 +0000 (11:14 -0500)]
re PR c++/54859 (constexpr in template alias rejected as non-constant)

PR c++/54859
* pt.c (check_instantiated_arg): Don't complain about dependent args.

From-SVN: r193368

11 years agoAdd C++ attribute abi_tag and -Wabi-tag option.
Jason Merrill [Fri, 9 Nov 2012 16:14:37 +0000 (11:14 -0500)]
Add C++ attribute abi_tag and -Wabi-tag option.

gcc/
* attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST.
gcc/c-family/
* c.opt (Wabi-tag): New.
gcc/cp/
* tree.c (cxx_attribute_table): Add abi_tag attribute.
(check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
* class.c (find_abi_tags_r, check_abi_tags): New.
(check_bases, check_field_decl): Call check_abi_tags.
* decl.c (redeclaration_error_message): Call
check_abi_tag_redeclaration.
* mangle.c (tree_string_cmp, write_abi_tags): New.
(write_unqualified_name): Call write_abi_tags.
include/
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_TAGGED_NAME.
libiberty/
* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_TAGGED_NAME.
(d_make_comp, d_find_pack, d_print_comp): Likewise.
(d_abi_tags): New.
(d_name): Call it.

From-SVN: r193367

11 years agoremove redundant definition of IN_CHARGE_NAME
Jason Merrill [Fri, 9 Nov 2012 16:14:25 +0000 (11:14 -0500)]
remove redundant definition of IN_CHARGE_NAME

From-SVN: r193366

11 years agore PR rtl-optimization/55154 (ICE: in curr_insn_transform, at lra-constraints.c:2702...
Vladimir Makarov [Fri, 9 Nov 2012 15:33:19 +0000 (15:33 +0000)]
re PR rtl-optimization/55154 (ICE: in curr_insn_transform, at lra-constraints.c:2702 with custom flags)

2012-11-09  Vladimir Makarov  <vmakarov@redhat.com>

PR tree-optimization/55154
* lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros.
* lra.c (setup_operand_alternative): Use them.
* lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND):
Remove.
(process_alt_operands): Use LRA_LOSER_COST_FACTOR and
LRA_MAX_REJECT.  Accumulate reject instead of setting for
non-const.
(curr_insn_transform): Initialize best_losers and best_overall by
INT_MAX.

2012-11-09  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55154
* gcc.target/i386/pr55154.c: New test.

From-SVN: r193364

11 years agoHandle target specific memory models in C frontend
Andi Kleen [Fri, 9 Nov 2012 15:24:25 +0000 (15:24 +0000)]
Handle target specific memory models in C frontend

get_atomic_generic_size would error out for
__atomic_store(...,__ATOMIC_HLE_RELEASE)

Just mask it out. All the memory orders are checked completely
in builtins.c anyways.

I'm not sure what that check is for, it could be removed in theory.

Passed bootstrap and test suite on x86-64

gcc/c-family/:
2012-11-09  Andi Kleen  <ak@linux.intel.com>

PR 55139
* c-common.c (get_atomic_generic_size): Mask with
        MEMMODEL_MASK

From-SVN: r193363

11 years agosh.c (sh_can_use_simple_return_p): Enable with -freorder-blocks-and-partition.
Christian Bruel [Fri, 9 Nov 2012 14:32:55 +0000 (15:32 +0100)]
sh.c (sh_can_use_simple_return_p): Enable with -freorder-blocks-and-partition.

        * config/sh/sh.c (sh_can_use_simple_return_p): Enable with
        -freorder-blocks-and-partition.

From-SVN: r193362

11 years agore PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with...
Vladimir Makarov [Fri, 9 Nov 2012 14:28:40 +0000 (14:28 +0000)]
re PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with -fPIC)

2012-11-09  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55151
* gcc.dg/pr55151.c: Move ...
* gcc.target/i386/pr55151.c: ... here.

From-SVN: r193361

11 years agortl.h (CONST_SCALAR_INT_P): New macro.
Kenneth Zadeck [Fri, 9 Nov 2012 13:18:49 +0000 (13:18 +0000)]
rtl.h (CONST_SCALAR_INT_P): New macro.

2012-11-09  Kenneth Zadeck <zadeck@naturalbridge.com>

* rtl.h (CONST_SCALAR_INT_P): New macro.
    * cfgexpand.c (expand_debug_locations): Changed to use
CONST_SCALAR_INT_P macro.
* combine.c (try_combine, subst, make_extraction,
gen_lowpart_for_combine): Ditto.
* cselib.c (entry_and_rtx_equal_p, rtx_equal_for_cselib_1): Ditto.
* dwarf2out.c (loc_descriptor): Ditto.
* emit-rtl.c (gen_lowpart_common): Ditto.
* ira-costs.c (record_reg_classes, record_address_regs): Ditto.
* ira-lives.c (single_reg_class): Ditto.
* recog.c (simplify_while_replacing, asm_operand_ok,
constrain_operands): Ditto.
* reload.c (find_reloads): Ditto.
* simplify-rtx.c (simplify_unary_operation_1,
simplify_const_unary_operation, simplify_binary_operation_1,
simplify_const_binary_operation, simplify_relational_operation_1,
simplify_subreg): Ditto.

From-SVN: r193360

11 years agore PR middle-end/54385 (ICE in pre_and_rev_post_order_compute, at cfganal.c:873)
Steven Bosscher [Fri, 9 Nov 2012 12:31:32 +0000 (12:31 +0000)]
re PR middle-end/54385 (ICE in pre_and_rev_post_order_compute, at cfganal.c:873)

PR middle-end/54385
* postreload.c (reload_cse_simplify): Return a bool indicating
whether the CFG was changed.
(reload_cse_regs_1): Traverse the CFG instead of the insns chain.
Cleanup the CFG if edges may have been removed.
(reload_cse_regs): Update.

From-SVN: r193359

11 years agore PR rtl-optimization/54472 (ICE (spill_failure): unable to find a register to spill...
Andrey Belevantsev [Fri, 9 Nov 2012 12:28:21 +0000 (16:28 +0400)]
re PR rtl-optimization/54472 (ICE (spill_failure): unable to find a register to spill in class 'AREG' with -O -fschedule-insns -fselective-scheduling)

PR rtl-optimization/54472

* sel-sched-ir.c (has_dependence_note_reg_set): Handle implicit sets.
(has_dependence_note_reg_clobber,
has_dependence_note_reg_use): Likewise.

* gcc.dg/pr54472.c: New test.

From-SVN: r193358

11 years agotrans.c (gnat_to_gnu): Deal with a missing library unit instead of calling gnat_to_gn...
Eric Botcazou [Fri, 9 Nov 2012 11:07:30 +0000 (11:07 +0000)]
trans.c (gnat_to_gnu): Deal with a missing library unit instead of calling gnat_to_gnu on Emtpy.

* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal
with a missing library unit instead of calling gnat_to_gnu on Emtpy.
Remove last bits of support for SCIL nodes.  Add cases for nodes that
should only be present when annotating types.  Add default abort.

From-SVN: r193357

11 years agoi386.c (release_scratch_register_on_entry): Also adjust sp_offset manually.
Eric Botcazou [Fri, 9 Nov 2012 09:10:04 +0000 (09:10 +0000)]
i386.c (release_scratch_register_on_entry): Also adjust sp_offset manually.

* config/i386/i386.c (release_scratch_register_on_entry): Also adjust
sp_offset manually.

From-SVN: r193352

11 years agotree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.
Christian Bruel [Fri, 9 Nov 2012 06:32:28 +0000 (07:32 +0100)]
tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.

2012-11-08  Christian Bruel  <christian.bruel@st.com>

* tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.
Do not reset dead bb1->frequency.

From-SVN: r193350

11 years agoDaily bump.
GCC Administrator [Fri, 9 Nov 2012 00:18:20 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r193348

11 years agogo-test.exp (go-gc-tests): Handle runoutput test type with arguments.
Ian Lance Taylor [Fri, 9 Nov 2012 00:05:05 +0000 (00:05 +0000)]
go-test.exp (go-gc-tests): Handle runoutput test type with arguments.

* go.test/go-test.exp (go-gc-tests): Handle runoutput test type
with arguments.  Handle errorcheckoutput and rundir test types.

From-SVN: r193344

11 years agore PR tree-optimization/55191 (ICE in compute_antic at tree-ssa-pre.c:2511)
Steven Bosscher [Thu, 8 Nov 2012 21:47:50 +0000 (21:47 +0000)]
re PR tree-optimization/55191 (ICE in compute_antic at tree-ssa-pre.c:2511)

gcc/
PR tree-optimization/55191
* cfganal.c (connect_infinite_loops_to_exit): Call dfs_deadend here.
(flow_dfs_compute_reverse_execute): Don't call it here.

testsuite/
PR tree-optimization/55191
* gcc.dg/pr55191.c: New test.

From-SVN: r193341

11 years agore PR debug/53145 (gcc.dg/pch/save-temps-1.c)
Jakub Jelinek [Thu, 8 Nov 2012 20:20:10 +0000 (21:20 +0100)]
re PR debug/53145 (gcc.dg/pch/save-temps-1.c)

PR debug/53145
* dwarf2out.c (gen_compile_unit_die): Don't call gen_producer_string
here, instead add "" if producer_string is NULL.
(dwarf2out_finish): Call gen_producer_string here, unconditionally
decrease refcount of the old indirect string and set val_str to
find_AT_string result.

From-SVN: r193340

11 years agore PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)
François Dumont [Thu, 8 Nov 2012 20:16:04 +0000 (20:16 +0000)]
re PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)

2012-11-08  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/54075
* include/bits/hashtable.h (_Hashtable<>::rehash): Reset hash
policy state if no rehash.
* testsuite/23_containers/unordered_set/modifiers/reserve.cc
(test02): New.

From-SVN: r193339

11 years agore PR debug/54499 (GCC produces wrong debugging information, failure while assembling...
Jakub Jelinek [Thu, 8 Nov 2012 20:15:06 +0000 (21:15 +0100)]
re PR debug/54499 (GCC produces wrong debugging information, failure while assembling generated .s file)

PR debug/54499
* cgraphunit.c (assemble_thunk): Don't call source_line debug hook
here, instead call insn_locations_{init,finalize} and initialize
prologue_location.

* g++.dg/debug/pr54499.C: New test.

From-SVN: r193338

11 years agore PR driver/54789 (Error in GCC driver when defining GCC_COMPARE_DEBUG)
Dmitry Gorbachev [Thu, 8 Nov 2012 20:13:13 +0000 (20:13 +0000)]
re PR driver/54789 (Error in GCC driver when defining GCC_COMPARE_DEBUG)

PR driver/54789
* gcc.c (process_command): Use save_switch for synthesized
-fcompare-debug=* option; mark the switch as known.

From-SVN: r193337

11 years agore PR target/54308 (build regression in 190498 on ppc64/linux: legitimate_indirect_ad...
Jakub Jelinek [Thu, 8 Nov 2012 20:09:14 +0000 (21:09 +0100)]
re PR target/54308 (build regression in 190498 on ppc64/linux: legitimate_indirect_address_p undefined)

PR target/54308
* config/rs6000/rs6000.c (legitimate_indirect_address_p): Remove
inline keyword.

From-SVN: r193336

11 years agore PR rtl-optimization/54850 (FAIL: gcc.c-torture/execute/20041113-1.c execution...
Bernd Schmidt [Thu, 8 Nov 2012 17:10:26 +0000 (17:10 +0000)]
re PR rtl-optimization/54850 (FAIL: gcc.c-torture/execute/20041113-1.c execution,  -Os)

PR rtl-optimization/54850
* sched-deps.c (find_inc): Add all dependencies from the inc_insn
to the mem_insn.

From-SVN: r193332

11 years agore PR fortran/48636 (Enable more inlining with -O2 and higher)
Jan Hubicka [Thu, 8 Nov 2012 16:46:18 +0000 (17:46 +0100)]
re PR fortran/48636 (Enable more inlining with -O2 and higher)

PR middle-end/48636
* ipa-inline.c (big_speedup_p): New function.
(want_inline_small_function_p): Use it.
(edge_badness): Dump it.
* params.def (inline-min-speedup): New parameter.
* doc/invoke.texi (inline-min-speedup): Document.

From-SVN: r193331

11 years agoipa-prop.c (determine_known_aggregate_parts): Skip writes to different declarations...
Martin Jambor [Thu, 8 Nov 2012 16:41:06 +0000 (17:41 +0100)]
ipa-prop.c (determine_known_aggregate_parts): Skip writes to different declarations when tracking writes to a declaration.

2012-11-08  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (determine_known_aggregate_parts): Skip writes to
different declarations when tracking writes to a declaration.

* gfortran.dg/ipcp-array-1.f90: New test.

From-SVN: r193330

11 years agore PR fortran/51727 (Changing module files)
Tobias Schlüter [Thu, 8 Nov 2012 15:46:07 +0000 (16:46 +0100)]
re PR fortran/51727 (Changing module files)

PR fortran/51727
* module.c (sorted_pointer_info): New.
(gfc_get_sorted_pointer_info): New.
(free_sorted_pointer_info_tree): New.
(compare_sorted_pointer_info): New.
(find_symbols_to_write): New.
(write_symbol1_recursion): New.
(write_symbol1): Collect symbols that need writing, output in order.
(write_generic): Traverse tree in order.

From-SVN: r193329

11 years ago55028-debug.cc: Don't pass -D_GLIBCXX_DEBUG by hand (check-debug does).
Paolo Carlini [Thu, 8 Nov 2012 13:40:53 +0000 (13:40 +0000)]
55028-debug.cc: Don't pass -D_GLIBCXX_DEBUG by hand (check-debug does).

2012-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
Don't pass -D_GLIBCXX_DEBUG by hand (check-debug does).

From-SVN: r193327

11 years agocxa_vec.C: Fix typo in comment.
Florian Weimer [Thu, 8 Nov 2012 09:54:04 +0000 (10:54 +0100)]
cxa_vec.C: Fix typo in comment.

* g++.old-deja/g++.abi/cxa_vec.C: Fix typo in comment.

* testsuite/18_support/cxa_vec.cc: Fix typo in comment.

From-SVN: r193326

11 years agoiterator_tracker.h (operator++): Fix returning dangling reference.
Jonathan Wakely [Thu, 8 Nov 2012 09:15:43 +0000 (09:15 +0000)]
iterator_tracker.h (operator++): Fix returning dangling reference.

* include/profile/iterator_tracker.h (operator++): Fix returning
dangling reference.
(operator--): Likewise.

From-SVN: r193323

11 years agoAdd extensive commentary to sparc's "U" constraint.
David S. Miller [Thu, 8 Nov 2012 03:26:49 +0000 (03:26 +0000)]
Add extensive commentary to sparc's "U" constraint.

* config/sparc/constraints.md ("U"): Document, in detail,
which this constraint is necessary.

From-SVN: r193322

11 years agoDaily bump.
GCC Administrator [Thu, 8 Nov 2012 00:17:51 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r193321

11 years agoUse -Wl,-undefined,dynamic_lookup on darwin
Jack Howarth [Wed, 7 Nov 2012 23:12:27 +0000 (23:12 +0000)]
Use -Wl,-undefined,dynamic_lookup on darwin

* testsuite/libgomp.c++/pr24455.C: Use
-Wl,-undefined,dynamic_lookup on darwin.

From-SVN: r193318

11 years agore PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with...
Vladimir Makarov [Wed, 7 Nov 2012 22:43:30 +0000 (22:43 +0000)]
re PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with -fPIC)

2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55151
* gcc.dg/pr55151.c: Use ia32 instead of x86_64.

From-SVN: r193317

11 years agocunroll-1.c: Scan cunrolli dump.
Uros Bizjak [Wed, 7 Nov 2012 22:41:39 +0000 (23:41 +0100)]
cunroll-1.c: Scan cunrolli dump.

* gcc.dg/tree-ssa/cunroll-1.c: Scan cunrolli dump.

From-SVN: r193316

11 years agore PR middle-end/55235 (FAIL: gcc.target/i386/pr44948-2a.c)
Uros Bizjak [Wed, 7 Nov 2012 22:34:48 +0000 (23:34 +0100)]
re PR middle-end/55235 (FAIL: gcc.target/i386/pr44948-2a.c)

PR middle-end/55235
* expr.c (store_expr): Do not call emit_block_move for
non-BLKmode values.

From-SVN: r193314

11 years agore PR middle-end/55219 (memory explosion on nested conditional expressions)
Eric Botcazou [Wed, 7 Nov 2012 22:26:02 +0000 (22:26 +0000)]
re PR middle-end/55219 (memory explosion on nested conditional expressions)

PR middle-end/55219
* fold-const.c (fold_binary_op_with_conditional_arg): Do not fold if
the argument is itself a conditional expression.

From-SVN: r193312

11 years agore PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with...
Vladimir Makarov [Wed, 7 Nov 2012 22:20:15 +0000 (22:20 +0000)]
re PR rtl-optimization/55151 (ICE: in assign_by_spills, at lra-assigns.c:1217 with -fPIC)

2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55151
* gcc.dg/pr55151.c: Compile it only for x86_64.

From-SVN: r193311

11 years agore PR rtl-optimization/55122 (ICE: maximum number of LRA constraint passes is achieve...
Vladimir Makarov [Wed, 7 Nov 2012 22:11:08 +0000 (22:11 +0000)]
re PR rtl-optimization/55122 (ICE: maximum number of LRA constraint passes is achieved (15))

2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55122
* lra-constraints.c (match_reload): Sync values for dead input
pseudos.

2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55122
* gcc.dg/pr55122.c: New test.

From-SVN: r193310

11 years agopr46728-[1234578].c: Tighten regex to ignore word powerpc.
David Edelsohn [Wed, 7 Nov 2012 21:03:08 +0000 (21:03 +0000)]
pr46728-[1234578].c: Tighten regex to ignore word powerpc.

        * gcc.target/powerpc/pr46728-[1234578].c: Tighten regex to ignore
        word powerpc.
        * gcc.target/powerpc/vsx-mass-1.c: Escape [ and ] in regex.
        * gcc.target/powerpc/loop_align.c: Skip on AIX.
        * gcc.target/powerpc/ppc-pow.c: Allow dot symbols in branch.
        * gcc.target/powerpc/tfmode_off.c: Skip on AIX.

From-SVN: r193309

11 years ago* trans-mem.c (pass_ipa_tm): Don't use TODO_update_ssa.
Richard Henderson [Wed, 7 Nov 2012 20:20:32 +0000 (12:20 -0800)]
* trans-mem.c (pass_ipa_tm): Don't use TODO_update_ssa.

From-SVN: r193308

11 years agoinvoke.texi (-mcpu=power8): Document.
Peter Bergner [Wed, 7 Nov 2012 19:49:51 +0000 (13:49 -0600)]
invoke.texi (-mcpu=power8): Document.

* doc/invoke.texi (-mcpu=power8): Document.
* config.in (HAVE_AS_POWER8): New.
* config.gcc: Add cpu_type power8.
* configure.ac: (HAVE_AS_POWER8): Check for assembler support for
the POWER8 instructions.
* configure: Regenerate.
* config/rs6000/rs6000.h: (ASM_CPU_POWER8_SPEC): Define.
(ASM_CPU_SPEC): Pass %(asm_cpu_power8) for -mcpu=power8.
(EXTRA_SPECS): Add asm_cpu_power8 spec string.
* config/rs6000/rs6000-cpus.def (processor_target_table): Alias
POWER8 to POWER7.
* config/rs6000/rs6000-tables.opt: Regenerate.
* config/rs6000/driver-rs6000.c (ASM_CPU_SPEC): For -mcpu=power8,
pass %(asm_cpu_power8)/-mpwr8.
* config/rs6000/aix53.h: Likewise.
* config/rs6000/aix61.h: Likewise.

From-SVN: r193307

11 years agore PR target/55224 (FAIL: gcc.target/i386/tailcall-1.c scan-assembler jmp)
Uros Bizjak [Wed, 7 Nov 2012 19:35:25 +0000 (20:35 +0100)]
re PR target/55224 (FAIL: gcc.target/i386/tailcall-1.c scan-assembler jmp)

PR target/55224
* config/i386/i386.c (ix86_function_ok_for_sibcall): Put back exception
to make a sibcall if one of the functions has void return type.

From-SVN: r193306

11 years agore PR target/55224 (FAIL: gcc.target/i386/tailcall-1.c scan-assembler jmp)
Uros Bizjak [Wed, 7 Nov 2012 19:30:48 +0000 (20:30 +0100)]
re PR target/55224 (FAIL: gcc.target/i386/tailcall-1.c scan-assembler jmp)

PR target/55224
* config/i386/i386.c (ix86_function_ok_for_sibcall): Put back exception
to make a sibcall if one of the functions has void return type.

From-SVN: r193305

11 years agore PR c/53063 (encode group options in the .opt files)
Manuel López-Ibáñez [Wed, 7 Nov 2012 18:27:14 +0000 (18:27 +0000)]
re PR c/53063 (encode group options in the .opt files)

gcc/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* doc/invoke.texi (Wformat): Update.
c-family/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* c.opt (Wformat): Make it Alias Wformat=1.
(Wformat-contains-nul,Wformat-extra-args,Wformat-nonliteral,
Wformat-security,Wformat-y2k,Wformat-zero-length): Use
LangEnabledBy.
(Wformat=): RejectNegative. Use LangEnabledBy.
(Wnonnull): Use LangEnabledBy.
* c-opts.c (c_common_handle_option): Do not handle Wformat here.
* c-format.c (set_Wformat): Delete.
(decode_format_attr): Replace OPT_Wformat with OPT_Wformat_.
        (maybe_read_dollar_number):  Likewise.
        (avoid_dollar_number):  Likewise.
        (finish_dollar_format_checking):  Likewise.
        (check_format_info):  Likewise.
        (check_format_info_main):  Likewise.
        (check_format_types):  Likewise.
        (format_type_warning):  Likewise.
        * c-common.c (int):  Likewise.
        (check_function_sentinel):  Likewise.
        * c-common.h (warn_format,set_Wformat): Do not declare here.
testsuite/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* gcc.dg/warn-nsstring.c: Use -Wformat explicitly.

From-SVN: r193304

11 years agooptc-gen.awk: Factor code out to...
Manuel López-Ibáñez [Wed, 7 Nov 2012 18:11:01 +0000 (18:11 +0000)]
optc-gen.awk: Factor code out to...

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* optc-gen.awk: Factor code out to...
* opt-functions.awk (lang_enabled_by): ... this new function.

From-SVN: r193303

11 years agore PR c/53063 (encode group options in the .opt files)
Manuel López-Ibáñez [Wed, 7 Nov 2012 17:54:11 +0000 (17:54 +0000)]
re PR c/53063 (encode group options in the .opt files)

c-family/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
Use LangEnabledBy.
(Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
common.opt.
(Wvariadic-macros): Init(1).
* c-opts.c (c_common_handle_option): Do not handle them
explicitly.
(c_common_post_options): Likewise.
(sanitize_cpp_opts): warn_unused_macros is now
cpp_warn_unused_macros.
(push_command_line_include): Likewise.
* c-common.c (warn_unknown_pragmas): Do not define.
* c-common.h (warn_unknown_pragmas): Do not declare.
gcc/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt.
fortran/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/53063
* options.c (set_Wall): Do not set warn_switch here.

From-SVN: r193302

11 years agore PR c/51294 (spurious warning from -Wconversion in C and C++ in conditional express...
Manuel López-Ibáñez [Wed, 7 Nov 2012 16:58:03 +0000 (16:58 +0000)]
re PR c/51294 (spurious warning from -Wconversion in C and C++ in conditional expressions)

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/51294
c-family/
* c-common.c (conversion_warning): Handle conditional expressions.
testsuite/
* c-c++-common/pr51294.c: New.

From-SVN: r193301

11 years agoaarch64.c (aarch64_expand_prologue): add the missing argument 'Pmode' to the 'plus_co...
Yufeng Zhang [Wed, 7 Nov 2012 16:13:27 +0000 (16:13 +0000)]
aarch64.c (aarch64_expand_prologue): add the missing argument 'Pmode' to the 'plus_constant' call.

gcc/ChangeLog

2012-11-07  Yufeng Zhang  <yufeng.zhang@arm.com>

* config/aarch64/aarch64.c (aarch64_expand_prologue): add the missing
argument 'Pmode' to the 'plus_constant' call.

From-SVN: r193299

11 years agore PR tree-optimization/53787 (Possible IPA-SRA / IPA-CP improvement)
Martin Jambor [Wed, 7 Nov 2012 15:55:54 +0000 (16:55 +0100)]
re PR tree-optimization/53787 (Possible IPA-SRA / IPA-CP improvement)

2012-11-07  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/53787
* ipa-cp.c (ipcp_value_source): New field offset.
(ipcp_agg_lattice): New type.
(ipcp_param_lattices): Likewise, move virt_call from ipcp_lattice here.
(ipcp_agg_lattice_pool): New variable.
(ipa_get_parm_lattices): New function.
(ipa_get_lattice): Turned into ipa_get_scalar_lat, use the above.
Adjusted all callers.
(print_lattice): New function.
(print_all_lattices): Use the above, also print aggregate lattices.
(set_agg_lats_to_bottom): New function.
(set_agg_lats_contain_variable): Likewise.
(set_all_contains_variable): Likewise.
(initialize_node_lattices): Also handle aggregate lattices, set
virt_call in ipcp_param_lattices.
(add_value_source): Handle offsets.
(add_value_to_lattice): Likewise.
(add_scalar_value_to_lattice): New function.
(propagate_vals_accross_pass_through): Use add_scalar_value_to_lattice.
(propagate_vals_accross_ancestor): Likewise.
(propagate_accross_jump_function): Renamed to
propagate_scalar_accross_jump_function, use
add_scalar_value_to_lattice.
(set_check_aggs_by_ref): New function.
(merge_agg_lats_step): Likewise.
(set_chain_of_aglats_contains_variable): Likewise.
(merge_aggregate_lattices): Likewise.
(propagate_constants_accross_call): Also handle aggregate lattices.
(hint_time_bonus): New function.
(context_independent_aggregate_values): Likewise.
(gather_context_independent_values): Also handle agggregate values.
(agg_jmp_p_vec_for_t_vec): New function.
(estimate_local_effects): Also handle agggregate values.
(add_all_node_vals_to_toposort): Likewise.
(ipcp_propagate_stage): Use struct ipcp_param_lattices.
(get_clone_agg_value): New function.
(cgraph_edge_brings_value_p): Also handle agggregate values.
(create_specialized_node): Likewise.
(find_more_values_for_callers_subset): Rename to
find_more_scalar_values_for_callers_subset.  Modify dump.
(copy_plats_to_inter): New function.
(intersect_with_plats): Likewise.
(agg_replacements_to_vector): Likewise.
(intersect_with_agg_replacements): Likewise.
(find_aggregate_values_for_callers_subset): Likewise.
(known_aggs_to_agg_replacement_list): Likewise.
(cgraph_edge_brings_all_scalars_for_node): Likewise.
(cgraph_edge_brings_all_agg_vals_for_node): Likewise.
(perhaps_add_new_callers): Old functionality moved to
cgraph_edge_brings_all_scalars_for_node, call it and
cgraph_edge_brings_all_agg_vals_for_node.
(ipcp_val_in_agg_replacements_p): New function.
(decide_about_value): New function.
(decide_whether_version_node): A lot of functionality moved to
decide_about_value.  Also handle agggregate values.
(ipcp_driver): Also allocate ipcp_agg_lattice_pool.
(pass_ipa_cp): Fill in new entries.
* ipa-prop.c (ipa_node_agg_replacements): New variable.
(free_parms_ainfo): New function.
(ipa_analyze_node): Use free_parms_ainfo to free stuff.
(ipa_find_agg_cst_for_param): Do not rely on offset ordering.
(ipa_set_node_agg_value_chain): New function.
(ipa_node_removal_hook): Also handle ipa_node_agg_replacements.
(ipa_node_duplication_hook): Likewise.
(ipa_free_all_structures_after_ipa_cp): Also free ipcp_agg_lattice_pool.
(ipa_free_all_structures_after_iinln): Likewise.
(ipa_dump_agg_replacement_values): New function.
(write_agg_replacement_chain): Likewise.
(read_agg_replacement_chain): Likewise.
(ipa_prop_write_all_agg_replacement): Likewise.
(read_replacements_section): Likewise.
(ipa_prop_read_all_agg_replacement): Likewise.
(adjust_agg_replacement_values): Likewise.
(ipcp_transform_function): Likewise.
* ipa-prop.h: Also define heap vector of ipa_agg_jf_item_t and of
ipa_agg_jump_function_t.
(ipa_node_params): Make lattices an array of ipcp_param_lattices.
(ipa_agg_replacement_value): New type and its vector.
(ipa_set_node_agg_value_chain) Declare.
(ipa_node_agg_replacements): Likewise.
(ipa_get_agg_replacements_for_node): New function.
(ipcp_agg_lattice_pool): Declare.
(ipa_dump_agg_replacement_values): Likewise.
(ipa_prop_write_all_agg_replacement): Likewise.
(ipa_prop_read_all_agg_replacement): Likewise.
(ipcp_transform_function): Likewise.
* ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): Pass around
known aggregates and hints.
* ipa-inline.h: include ipa-prop.h.
(estimate_ipcp_clone_size_and_time): Adjust declaration.
* lto-streamer.h (lto_section_type): New item
LTO_section_ipcp_transform.
* lto-section-in.c (lto_section_name): New element ipcp_trans.
* params.def (PARAM_IPA_CP_LOOP_HINT_BONUS): New parameter.
* Makefile.in (IPA_INLINE_H): New.  Use everywhee instead of
ipa-inline.h.

* testsuite/gcc.dg/ipa/ipa-5.c: Adjust.
* testsuite/gcc.dg/ipa/ipcp-agg-1.c: New test.
* testsuite/gcc.dg/ipa/ipcp-agg-2.c: Likewise.
* testsuite/gcc.dg/ipa/ipcp-agg-3.c: Likewise.
* testsuite/gcc.dg/ipa/ipcp-agg-4.c: Likewise.
* testsuite/gcc.dg/ipa/ipcp-agg-5.c: Likewise.
* testsuite/gcc.dg/ipa/ipcp-agg-6.c: Likewise.
* testsuite/gfortran.dg/pr48636.f90: Add -fno-ipa-cp.
* testsuite/gfortran.dg/pr48636-2.f90: New test.
* testsuite/gfortran.dg/pr53787.f90: Likewise.

From-SVN: r193298

11 years ago* testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
David Edelsohn [Wed, 7 Nov 2012 14:16:04 +0000 (14:16 +0000)]
* testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.

From-SVN: r193296