platform/upstream/gcc.git
11 years agoThis patch implements generic type query and conversion functions,
Lawrence Crowl [Wed, 31 Oct 2012 23:15:10 +0000 (23:15 +0000)]
This patch implements generic type query and conversion functions,

and applies them to the use of cgraph_node, varpool_node, and symtab_node.

The functions are:

bool is_a <TYPE> (pointer)
  Tests whether the pointer actually points to a more derived TYPE.

TYPE *as_a <TYPE> (pointer)
  Converts pointer to a TYPE*.

TYPE *dyn_cast <TYPE> (pointer)
  Converts pointer to TYPE* if and only if "is_a <TYPE> pointer".
  Otherwise, returns NULL.
  This function is essentially a checked down cast.

These functions reduce compile time and increase type safety when treating a
generic item as a more specific item.  In essence, the code change is from

  if (symtab_function_p (node))
    {
      struct cgraph_node *cnode = cgraph (node);
      ....
    }

to

  if (cgraph_node *cnode = dyn_cast <cgraph_node> (node))
    {
      ....
    }

The necessary conditional test defines a variable that holds a known good
pointer to the specific item and avoids subsequent conversion calls and
the assertion checks that may come with them.

When, the property test is embedded within a larger condition, the variable
declaration gets pulled out of the condition.  (This leaves some room for
using the variable inappropriately.)

  if (symtab_variable_p (node)
      && varpool (node)->finalized)
    varpool_analyze_node (varpool (node));

becomes

  varpool_node *vnode = dyn_cast <varpool_node> (node);
  if (vnode && vnode->finalized)
    varpool_analyze_node (vnode);

Note that we have converted two sets of assertions in the calls to varpool
into safe and efficient use of a variable.

There are remaining calls to symtab_function_p and symtab_variable_p that
do not involve a pointer to a more specific type.  These have been converted
to calls to a functions is_a <cgraph_node> and is_a <varpool_node>.  The
original predicate functions have been removed.

The cgraph.h header defined both a struct and a function with the name
varpool_node.  This name overloading can cause some unintuitive error messages
when, as is common in C++, one omits the struct keyword when using the type.
I have renamed the function to varpool_node_for_decl.

Tested on x86_64.

Index: gcc/ChangeLog

2012-10-31  Lawrence Crowl  <crowl@google.com>

* is-a.h: New.
(is_a <T> (U*)): New.  Test for is-a relationship.
(as_a <T> (U*)): New.  Treat as a derived type.
(dyn_cast <T> (U*)): New.  Conditionally cast based on is_a.
* cgraph.h (varpool_node): Rename to varpool_node_for_decl.
Adjust callers to match.
(is_a_helper <cgraph_node>::test (symtab_node_def *)): New.
(is_a_helper <varpool_node>::test (symtab_node_def *)): New.
(symtab_node_def::try_function): New.  Change most calls to
symtab_function_p with calls to dyn_cast <cgraph_node> (p).
(symtab_node_def::try_variable): New.  Change most calls to
symtab_variable_p with calls to dyn_cast <varpool_node> (p).
(symtab_function_p): Remove.  Change callers to use
        is_a <cgraph_node> (p) instead.
(symtab_variable_p): Remove.  Change callers to use
        is_a <varpool_node> (p) instead.
* cgraph.c (cgraph_node_for_asm): Remove redundant call to
symtab_node_for_asm.
* cgraphunit.c (symbol_finalized_and_needed): New.
(symbol_finalized): New.
(cgraph_analyze_functions): Split complicated conditionals out into
above new functions.
* Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h.

From-SVN: r193051

11 years ago* gcc.dg/pr44974.c: Add noinline.
Jan Hubicka [Wed, 31 Oct 2012 23:10:22 +0000 (00:10 +0100)]
* gcc.dg/pr44974.c: Add noinline.

From-SVN: r193050

11 years agoFix PR number typo in ChangeLog.
Oleg Endo [Wed, 31 Oct 2012 22:05:40 +0000 (22:05 +0000)]
Fix PR number typo in ChangeLog.

From-SVN: r193049

11 years agore PR fortran/53718 ([OOP] gfortran generates asm label twice in the same output...
Janus Weil [Wed, 31 Oct 2012 21:55:50 +0000 (22:55 +0100)]
re PR fortran/53718 ([OOP] gfortran generates asm label twice in the same output file)

2012-10-31  Janus Weil  <janus@gcc.gnu.org>

PR fortran/53718
* trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed.
* trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove
GFC_DECL_PUSH_TOPLEVEL.
(build_function_decl): Do not push __copy procedure to toplevel.

2012-10-31  Janus Weil  <janus@gcc.gnu.org>

PR fortran/53718
* gfortran.dg/class_54.f90: New.

From-SVN: r193048

11 years agore PR tree-optimization/55018 (CDDCE pass is too aggressive sometimes with infinite...
Steven Bosscher [Wed, 31 Oct 2012 21:37:10 +0000 (21:37 +0000)]
re PR tree-optimization/55018 (CDDCE pass is too aggressive sometimes with infinite loops and with some functions)

gcc/
PR tree-optimization/55018
* basic-block.h (dfs_find_deadend): New prototype.
* cfganal.c (dfs_find_deadend): No longer static.  Use bitmap
instead of sbitmap for visited.
(flow_dfs_compute_reverse_execute): Use dfs_find_deadend here, too.
* dominance.c (calc_dfs_tree): If saw_unconnected,
traverse from dfs_find_deadend of unconnected b
instead of b directly.

testsuite/
PR tree-optimization/55018
* gcc.dg/torture/pr55018.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r193047

11 years agoruntime/goc2c: Drop gc support, change int to intgo.
Ian Lance Taylor [Wed, 31 Oct 2012 20:49:53 +0000 (20:49 +0000)]
runtime/goc2c: Drop gc support, change int to intgo.

From-SVN: r193046

11 years agoi386.c (ix86_expand_prologue): Emit frame info for the special register pushes before...
Eric Botcazou [Wed, 31 Oct 2012 20:10:26 +0000 (20:10 +0000)]
i386.c (ix86_expand_prologue): Emit frame info for the special register pushes before frame probing and allocation.

* config/i386/i386.c (ix86_expand_prologue): Emit frame info for the
special register pushes before frame probing and allocation.

From-SVN: r193044

11 years agore PR c++/54583 (Spurious warning: value computed is not used with variable-size...
Paolo Carlini [Wed, 31 Oct 2012 19:14:39 +0000 (19:14 +0000)]
re PR c++/54583 (Spurious warning: value computed is not used with variable-size array)

/cp
2012-10-31  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54583
* tree.c (build_cplus_array_type): Set TREE_NO_WARNING on the
TYPE_SIZE of VLAs.

/testsuite
2012-10-31  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54583
* g++.dg/ext/vla13.C: New.

From-SVN: r193043

11 years agore PR middle-end/55150 (Crash in copy_rtx)
Vladimir Makarov [Wed, 31 Oct 2012 18:41:18 +0000 (18:41 +0000)]
re PR middle-end/55150 (Crash in copy_rtx)

2012-10-31  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/55150
* lra-constraints.c (lra_constraints): Update debug insn info
after equivalence change.

2012-10-31  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/55150
* gcc.dg/pr55150.c: New test.

From-SVN: r193042

11 years agore PR fortran/55134 (associate construct and assumed size array)
Tobias Burnus [Wed, 31 Oct 2012 17:22:26 +0000 (18:22 +0100)]
re PR fortran/55134 (associate construct and assumed size array)

2012-10-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55134
        * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED
        * as
        array with descriptor.

2012-10-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55134
        * gfortran.dg/associate_11.f90: New.

From-SVN: r193041

11 years agovalidate_failures.py: Fix parsing of summary lines.
Diego Novillo [Wed, 31 Oct 2012 16:37:06 +0000 (12:37 -0400)]
validate_failures.py: Fix parsing of summary lines.

* testsuite-management/validate_failures.py: Fix parsing
of summary lines.

From-SVN: r193039

11 years agoipa-inline.c (ipa_inline): Avoid infinite loop on inlining empty virtual functions...
Jan Hubicka [Wed, 31 Oct 2012 16:15:21 +0000 (17:15 +0100)]
ipa-inline.c (ipa_inline): Avoid infinite loop on inlining empty virtual functions calling themselves.

* ipa-inline.c (ipa_inline): Avoid infinite loop on inlining
empty virtual functions calling themselves.

From-SVN: r193038

11 years agocomplex.c (csqrtq): NaN and INF fixes.
Tobias Burnus [Wed, 31 Oct 2012 15:46:59 +0000 (16:46 +0100)]
complex.c (csqrtq): NaN and INF fixes.

2012-10-31  Tobias Burnus  <burnus@net-b.de>
            Joseph Myers <joseph@codesourcery.com>
            David S. Miller <davem@davemloft.net>
            Ulrich Drepper <drepper@redhat.com>
            Marek Polacek <polacek@redhat.com>:
            Petr Baudis <pasky@suse.cz>

        * math/complex.c (csqrtq): NaN and INF fixes.
        * math/sqrtq.c (sqrt): NaN, INF and < 0 fixes.
        * math/expm1q.c (expm1q): Changes from GLIBC. Use expq for
        large parameters. Fix errno for boundary conditions.
        * math/finiteq.c (finiteq): Add comment.
        * math/fmaq.c (fmaq): Changes from GLIBC. Fix missing underflows
        and bad results for some subnormal results. Fix sign of inexact
        zero return. Fix sign of exact zero return.
        Ensure additions are not scheduled after fetestexcept.
        * math/jnq.c (jnq): Changes from GLIBC. Set up errno properly
        for ynq. Fix jnq precision.
        * math/nearbyintq.c (nearbyintq): Changes from GLIBC. Do not
        manipulate bits before adding and subtracting TWO112[sx].
        * math/rintq.c (rintq): Ditto.
        * math/scalbnq.c (scalbnq): Changes from GLIBC. Fix integer
        overflow.

Co-Authored-By: David S. Miller <davem@davemloft.net>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r193037

11 years agore PR other/50899 (need @direntry for gcov)
Tom Tromey [Wed, 31 Oct 2012 14:55:20 +0000 (14:55 +0000)]
re PR other/50899 (need @direntry for gcov)

PR other/50899
* doc/gcc.texi: Add @direntry for gcov.

From-SVN: r193036

11 years ago* expr.c (can_move_by_pieces): Apply ATTRIBUTE_UNUSED to len.
Joern Rennecke [Wed, 31 Oct 2012 14:23:00 +0000 (14:23 +0000)]
* expr.c (can_move_by_pieces): Apply ATTRIBUTE_UNUSED to len.

From-SVN: r193035

11 years agoUppercase in ChangeLog.
Marc Glisse [Wed, 31 Oct 2012 13:01:30 +0000 (13:01 +0000)]
Uppercase in ChangeLog.

From-SVN: r193034

11 years agoos_defines.h: Do not define anymore _GLIBCXX_HAVE_BROKEN_VSWPRINTF.
Jonathan Yong [Wed, 31 Oct 2012 11:36:45 +0000 (11:36 +0000)]
os_defines.h: Do not define anymore _GLIBCXX_HAVE_BROKEN_VSWPRINTF.

2012-10-31  Jonathan Yong  <jon_y@users.sourceforge.net>

* config/os/mingw32-w64/os_defines.h: Do not define anymore
_GLIBCXX_HAVE_BROKEN_VSWPRINTF.

From-SVN: r193033

11 years agoos_defines.h: Do not define anymore _GLIBCXX_HAVE_BROKEN_VSWPRINTF.
Jonathan Yong [Wed, 31 Oct 2012 11:34:27 +0000 (11:34 +0000)]
os_defines.h: Do not define anymore _GLIBCXX_HAVE_BROKEN_VSWPRINTF.

2012-10-31  Jonathan Yong  <jon_y@users.sourceforge.net>

* config/os/mingw32-w64/os_defines.h: Do not define anymore
_GLIBCXX_HAVE_BROKEN_VSWPRINTF.

From-SVN: r193032

11 years agoPR c++/54955 - Fail to parse alignas expr at the beginning of a declaration
Dodji Seketeli [Wed, 31 Oct 2012 08:55:43 +0000 (08:55 +0000)]
PR c++/54955 - Fail to parse alignas expr at the beginning of a declaration

In this PR, g++ embarrassingly fails to parse the simple alignas
expression below:

    alignas(double) int f;

even though the simple-declaration production in Clause 7 suggests
otherwise.

Fixed thus and tested on x86_64-unknown-linux-gnu against trunk.

gcc/cp

PR c++/54955
* parser.c (cp_nth_tokens_can_be_std_attribute_p): Recognize the
'Alignas' keyword as the beginning of a c++11 attribute specifier.
Update the comment of the function.
(cp_next_tokens_can_be_gnu_attribute_p): Update the comment of the
function.

gcc/testsuite/

PR c++/54955
* g++.dg/cpp0x/gen-attrs-48-2.C: New test.

From-SVN: r193029

11 years agore PR tree-optimization/19105 (fold does not spot anti-range test)
Jakub Jelinek [Wed, 31 Oct 2012 08:45:27 +0000 (09:45 +0100)]
re PR tree-optimization/19105 (fold does not spot anti-range test)

PR tree-optimization/19105
PR tree-optimization/21643
PR tree-optimization/46309
* tree-ssa-reassoc.c (init_range_entry): Add STMT argument
and use it if EXP is NULL.
(update_range_test): Handle OPCODE equal to ERROR_MARK
and oe->op NULL.
(optimize_range_tests): Likewise.
(final_range_test_p, suitable_cond_bb, no_side_effect_bb, get_ops,
maybe_optimize_range_tests): New functions.
(reassociate_bb): Call maybe_optimize_range_tests if last
stmt of bb is GIMPLE_COND that hasn't been visited yet.

* gcc.dg/pr19105.c: New test.
* gcc.dg/pr21643.c: New test.
* gcc.dg/pr46309-2.c: New test.
* gcc.c-torture/execute/pr46309.c: New test.

From-SVN: r193028

11 years agors6000.md (insvsi, [...]): Rename to...
Richard Sandiford [Wed, 31 Oct 2012 08:01:36 +0000 (08:01 +0000)]
rs6000.md (insvsi, [...]): Rename to...

gcc/
* config/rs6000/rs6000.md (insvsi, insvdi, extvsi, extvdi): Rename to...
(insvsi_internal, insvdi_internal, extvsi_internal)
(extvdi_internal): ...this.
(insv, extv): Update accordingly.

From-SVN: r193027

11 years agocombine.c (simplify_comparison): If BITS_BIG_ENDIAN...
Richard Sandiford [Wed, 31 Oct 2012 08:01:23 +0000 (08:01 +0000)]
combine.c (simplify_comparison): If BITS_BIG_ENDIAN...

gcc/
* combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
that zero_extracts of const_ints are doing word-sized extractions.

From-SVN: r193026

11 years agocombine.c (make_extraction): Remove dead wanted_inner_mode- and pos_rtx-related code.
Richard Sandiford [Wed, 31 Oct 2012 08:01:14 +0000 (08:01 +0000)]
combine.c (make_extraction): Remove dead wanted_inner_mode- and pos_rtx-related code.

gcc/
* combine.c (make_extraction): Remove dead wanted_inner_mode-
and pos_rtx-related code.

From-SVN: r193025

11 years agoexpmed.c (store_bit_field_1): Move generation of MEM insvs to the MEM_P block.
Richard Sandiford [Wed, 31 Oct 2012 08:00:51 +0000 (08:00 +0000)]
expmed.c (store_bit_field_1): Move generation of MEM insvs to the MEM_P block.

gcc/
* expmed.c (store_bit_field_1): Move generation of MEM insvs
to the MEM_P block.
(extract_bit_field_1): Likewise extvs and extzvs.

From-SVN: r193024

11 years agoexpmed.c (store_bit_field_using_insv): New function, split out from...
Richard Sandiford [Wed, 31 Oct 2012 08:00:39 +0000 (08:00 +0000)]
expmed.c (store_bit_field_using_insv): New function, split out from...

gcc/
* expmed.c (store_bit_field_using_insv): New function,
split out from...
(store_bit_field_1): ...here.
(extract_bit_field_using_extv): New function, split out from...
(extract_bit_field_1): ...here.

From-SVN: r193023

11 years agoexpmed.c (store_bit_field_1): Use OP_MODE to check whether an insv pattern is available.
Richard Sandiford [Wed, 31 Oct 2012 08:00:24 +0000 (08:00 +0000)]
expmed.c (store_bit_field_1): Use OP_MODE to check whether an insv pattern is available.

gcc/
* expmed.c (store_bit_field_1): Use OP_MODE to check whether an
insv pattern is available.  Remove redundant checks for OP_MODE
being MAX_MACHINE_MODE.
(extract_bit_field_1): Remove redundant checks for EXT_MODE being
MAX_MACHINE_MODE.

From-SVN: r193022

11 years agoexpmed.c (store_bit_field_1): Remove test for BLKmode values.
Richard Sandiford [Wed, 31 Oct 2012 08:00:12 +0000 (08:00 +0000)]
expmed.c (store_bit_field_1): Remove test for BLKmode values.

gcc/
* expmed.c (store_bit_field_1): Remove test for BLKmode values.

From-SVN: r193021

11 years agot-rtems: New (Custom multilibs).
Ralf Corsepius [Wed, 31 Oct 2012 05:03:28 +0000 (06:03 +0100)]
t-rtems: New (Custom multilibs).

2012-10-31  Ralf Corsépius  <ralf.corsepius@rtems.org>,
    Joel Sherrill  <joel.sherrill@oarcorp.com>

* config/sparc/t-rtems: New (Custom multilibs).
* config/sparc/t-rtems-64: New (Custom multilibs).
* config.gcc (sparc64-*-rtems*): Add sparc/t-rtems-64.
(sparc-*-rtems*): Add sparc/t-rtems.

Co-Authored-By: Joel Sherrill <joel.sherrill@oarcorp.com>
From-SVN: r193018

11 years agoDetect assembler support for RTM
Richard Henderson [Wed, 31 Oct 2012 04:46:20 +0000 (21:46 -0700)]
Detect assembler support for RTM

* acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
* configure.ac: Use it.
* config.h.in, configure: Rebuild.
* testsuite/Makefile.in: Rebuild.

From-SVN: r193017

11 years agors6000.c (legitimize_reload_address): Remove code handling non-aligned ld/std.
Alan Modra [Wed, 31 Oct 2012 04:22:48 +0000 (14:52 +1030)]
rs6000.c (legitimize_reload_address): Remove code handling non-aligned ld/std.

gcc/
* config/rs6000/rs6000.c (legitimize_reload_address): Remove code
handling non-aligned ld/std.
* config/rs6000/paired.md (movv2sf_paired): Use 'Y' instead of 'o'.
* config/rs6000/vsx.md (vsx_mov, vsx_movti): Likewise.
* config/rs6000/altivec.md (altivec_mov, altivec_movti): Likewise.
* config/rs6000/dfp.md (movtd_internal): Use 'm' instead of 'o'.
gcc/testsuite/
* gcc.target/powerpc/dimode_off.c: New.
* gcc.target/powerpc/timode_off.c: New.
* gcc.target/powerpc/dfmode_off.c: New.
* gcc.target/powerpc/tfmode_off.c: New.

From-SVN: r193016

11 years agolinux64_closure.S: Add new ABI support.
Alan Modra [Wed, 31 Oct 2012 03:45:34 +0000 (14:15 +1030)]
linux64_closure.S: Add new ABI support.

* src/powerpc/linux64_closure.S: Add new ABI support.
* src/powerpc/linux64.S: Likewise.

From-SVN: r193015

11 years agolinux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX.
Alan Modra [Wed, 31 Oct 2012 03:43:22 +0000 (14:13 +1030)]
linux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX.

* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX.

From-SVN: r193014

11 years agore PR target/52498 (vmsdbgout.c fails to build with --enable-werror-always)
Joern Rennecke [Wed, 31 Oct 2012 03:21:03 +0000 (03:21 +0000)]
re PR target/52498 (vmsdbgout.c fails to build with --enable-werror-always)

        PR target/52498
        * vmsdbgout.c (vmsdbgout_write_source_line): Comment out names of
        last two parameters.

From-SVN: r193013

11 years agolra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to hard_reg_class.
Joern Rennecke [Wed, 31 Oct 2012 02:51:26 +0000 (02:51 +0000)]
lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to hard_reg_class.

        * lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to
        hard_reg_class.

From-SVN: r193012

11 years agoconfig.host (m32r-*-rtems*): Include crtinit.o and crtfinit.o as extra_parts.
Joel Sherrill [Wed, 31 Oct 2012 02:17:37 +0000 (02:17 +0000)]
config.host (m32r-*-rtems*): Include crtinit.o and crtfinit.o as extra_parts.

2012-10-31  Joel Sherrill  <joel.sherrill@oarcorp.com>

* config.host (m32r-*-rtems*): Include crtinit.o and crtfinit.o
as extra_parts.

From-SVN: r193010

11 years agoforward_list.h (forward_list): Adjust comments.
Jonathan Wakely [Wed, 31 Oct 2012 01:09:59 +0000 (01:09 +0000)]
forward_list.h (forward_list): Adjust comments.

* include/bits/forward_list.h (forward_list): Adjust comments.
(forward_list(const forward_list&, const _Alloc&)): Use
_M_range_initialize to copy elements.
(forward_list(forward_list&&, const _Alloc&)): Add exception
specification.
(_Fwd_list_base(const _Fwd_list_base&, const _Node_alloc_type&)):
Remove.
* include/bits/forward_list.tcc (_Fwd_list_base(const _Fwd_list_base&,
const _Node_alloc_type&)): Remove.
(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Fix
memory leak when allocators are not equal.

From-SVN: r193009

11 years agocompiler: Add -fgo-relative-import-path.
Ian Lance Taylor [Wed, 31 Oct 2012 00:38:49 +0000 (00:38 +0000)]
compiler: Add -fgo-relative-import-path.

* lang.opt (-fgo-relative-import-path): New option.
* go-lang.c (go_relative_import_path): New static variable.
(go_langhook_init): Pass go_relative_import_path to
go_create_gogo.
(go_langhook_handle_option): Handle -fgo-relative-import-path.
* go-c.h (go_create_gogo): Update declaration.
* gccgo.texi (Invoking gccgo): Document
-fgo-relative-import-path.

From-SVN: r193008

11 years agoDaily bump.
GCC Administrator [Wed, 31 Oct 2012 00:18:51 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r193006

11 years agore PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)
Alexandre Oliva [Tue, 30 Oct 2012 23:47:35 +0000 (23:47 +0000)]
re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)

PR debug/54551
PR debug/54693
* valtrack.c (dead_debug_promote_uses): Assert-check that
global used bit was clear and initialize entry
unconditionally.

From-SVN: r193003

11 years agocse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in head comment.
Eric Botcazou [Tue, 30 Oct 2012 23:08:14 +0000 (23:08 +0000)]
cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in head comment.

* cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
head comment.
(hash_rtx): Likewise.

From-SVN: r193001

11 years agoRemove lra_in_progress check for ARG_POINTER_REGNUM
H.J. Lu [Tue, 30 Oct 2012 22:56:52 +0000 (22:56 +0000)]
Remove lra_in_progress check for ARG_POINTER_REGNUM

gcc/

PR rtl-optimization/55093
* rtlanal.c (simplify_subreg_regno): Remove lra_in_progress
check for ARG_POINTER_REGNUM.

gcc/testsuite/

PR rtl-optimization/55093
* gcc.target/i386/pr55093.c: New file.

From-SVN: r193000

11 years ago* gcc-interface/Make-lang.in: Fix and clean up rules for C files.
Eric Botcazou [Tue, 30 Oct 2012 22:54:04 +0000 (22:54 +0000)]
* gcc-interface/Make-lang.in: Fix and clean up rules for C files.

From-SVN: r192998

11 years agoRename pr55116.c to pr55116-1.c
H.J. Lu [Tue, 30 Oct 2012 21:39:05 +0000 (21:39 +0000)]
Rename pr55116.c to pr55116-1.c

* gcc.target/i386/pr55116.c: Renamed to ...
* gcc.target/i386/pr55116-1.c: This.

From-SVN: r192997

11 years agoAdd another testcase for PR middle-end/55116
H.J. Lu [Tue, 30 Oct 2012 21:35:35 +0000 (21:35 +0000)]
Add another testcase for PR middle-end/55116

* gcc.target/i386/pr55116-2.c: New file.

From-SVN: r192996

11 years agomti-linux.h (SYSROOT_SUFFIX_SPEC): Change order and add mabi=64.
Steve Ellcey [Tue, 30 Oct 2012 21:21:41 +0000 (21:21 +0000)]
mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order and add mabi=64.

2012-10-30  Steve Ellcey  <sellcey@mips.com>

* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order
and add mabi=64.
(DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs.
* config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order.
(MULTILIB_DIRNAMES): Ditto.
(MULTILIB_EXCEPTIONS): New.

From-SVN: r192995

11 years agoFix ChangeLog typo.
Joern Rennecke [Tue, 30 Oct 2012 21:06:12 +0000 (21:06 +0000)]
Fix ChangeLog typo.

From-SVN: r192994

11 years agolra-constrraints.c (check_secondary_memory_needed_p): Add ATTRIBUTE_UNUSED to parameters.
Joern Rennecke [Tue, 30 Oct 2012 21:03:03 +0000 (21:03 +0000)]
lra-constrraints.c (check_secondary_memory_needed_p): Add ATTRIBUTE_UNUSED to parameters.

* lra-constrraints.c (check_secondary_memory_needed_p):
Add ATTRIBUTE_UNUSED to parameters.

From-SVN: r192993

11 years agodefaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
Richard Sandiford [Tue, 30 Oct 2012 19:07:28 +0000 (19:07 +0000)]
defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.

gcc/
* defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
* expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
* expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
* lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
(simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.

From-SVN: r192992

11 years ago* ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.
Jan Hubicka [Tue, 30 Oct 2012 16:51:12 +0000 (17:51 +0100)]
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.

From-SVN: r192991

11 years agotree-ssa-loop-niter.c (number_of_iterations_exit): New parameter EVERY_ITERATION...
Jan Hubicka [Tue, 30 Oct 2012 16:50:05 +0000 (16:50 +0000)]
tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter EVERY_ITERATION with implicit value of true.

* tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter
EVERY_ITERATION with implicit value of true.
(record_estimate): Check dominance relationship of the basic block
we are estimating on instead of relying on UPPER to be false.
(struct ilb_data): Drop RELIABLE.
(idx_infer_loop_bounds): Update.
(infer_loop_bounds_from_ref): Drop parameter RELIABLE.
(infer_loop_bounds_from_array): Drop parameter RELIABLE.
(infer_loop_bounds_from_undefined): Update comments and handling
of RELIABLE.
(estimate_numbers_of_iterations_loop): Record all bounds.

From-SVN: r192990

11 years agotree-ssa-loop-niter.c (number_of_iterations_exit): New parameter EVERY_ITERATION...
Jan Hubicka [Tue, 30 Oct 2012 16:12:16 +0000 (17:12 +0100)]
tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter EVERY_ITERATION with implicit value of true.

* tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter
EVERY_ITERATION with implicit value of true.
(record_estimate): Check dominance relationship of the basic block
we are estimating on instead of relying on UPPER to be false.
(struct ilb_data): Drop RELIABLE.
(idx_infer_loop_bounds): Update.
(infer_loop_bounds_from_ref): Drop parameter RELIABLE.
(infer_loop_bounds_from_array): Drop parameter RELIABLE.
(infer_loop_bounds_from_undefined): Update comments and handling
of RELIABLE.
(estimate_numbers_of_iterations_loop): Record all bounds.

From-SVN: r192989

11 years agolra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg rather than gen_rt...
Richard Sandiford [Tue, 30 Oct 2012 14:33:48 +0000 (14:33 +0000)]
lra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg rather than gen_rtx_SUBREG.

gcc/
* lra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg
rather than gen_rtx_SUBREG.

From-SVN: r192988

11 years agogimple.h (gimple_store_p): New predicate.
Richard Biener [Tue, 30 Oct 2012 14:14:04 +0000 (14:14 +0000)]
gimple.h (gimple_store_p): New predicate.

2012-10-30  Richard Biener  <rguenther@suse.de>

* gimple.h (gimple_store_p): New predicate.
(gimple_assign_load_p): Likewise.
* tree-inline.c (estimate_num_insns): Use it.

* gcc.dg/vect/slp-perm-2.c: Adjust.

From-SVN: r192987

11 years agofold-const.c (fold_binary_op_with_conditional_arg): Handle vectors.
Marc Glisse [Tue, 30 Oct 2012 12:56:47 +0000 (13:56 +0100)]
fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors.

2012-10-30  Marc Glisse  <marc.glisse@inria.fr>

* fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors.
(fold_binary_loc): call it for VEC_COND_EXPR.

From-SVN: r192986

11 years ago2012-10-30 James Greenhalgh <james.greenhalgh@arm.com>
James Greenhalgh [Tue, 30 Oct 2012 12:31:49 +0000 (12:31 +0000)]
2012-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
    Tejas Belagod  <tejas.belagod@arm.com>

* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): New pattern.
(aarch64_simd_bsl<mode>): Likewise.
(aarch64_vcond_internal<mode>): Likewise.
(vcondu<mode><mode>): Likewise.
(vcond<mode><mode>): Likewise.
* config/aarch64/iterators.md (UNSPEC_BSL): Add to define_constants.

Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>
From-SVN: r192985

11 years agore PR tree-optimization/55111 (ICE: tree check: expected ssa_name, have integer_cst...
Richard Biener [Tue, 30 Oct 2012 12:02:39 +0000 (12:02 +0000)]
re PR tree-optimization/55111 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:89)

2012-10-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/55111
* tree-ssa-pre.c (eliminate_insert): Properly fold the built
stmt.

* gcc.dg/torture/pr55111.c: New testcase.

From-SVN: r192984

11 years agore PR target/54963 (Wrong code generated for libgfortran/generated/eoshift3_8.c on SH)
Oleg Endo [Tue, 30 Oct 2012 09:22:14 +0000 (09:22 +0000)]
re PR target/54963 (Wrong code generated for libgfortran/generated/eoshift3_8.c on SH)

PR target/54963
* config/sh/iterators.md (SIDI): New mode iterator.
* config/sh/sh.md (negdi2): Use parallel around operation and T_REG
clobber in expander.
(*negdi2): Mark output operand as early clobbered.  Add T_REG clobber.
Split after reload.  Simplify split code.
(abssi2, absdi2): Fold expanders into abs<mode>2.
(*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split.  Split insns
before reload.
(*negabssi2, *negabsdi2): Fold into *negabs<mode>2.  Add T_REG clobber.
Split insns before reload.
(negsi_cond): Reformat.  Use emit_move_insn instead of
gen_movesi.
(negdi_cond): Reformat.  Use emit_move_insn instead of a pair
of gen_movsi.  Split insn before reload.

From-SVN: r192983

11 years agore PR c++/54988 (fpmath=sse target pragma causes inlining failure because of target...
Oleg Endo [Tue, 30 Oct 2012 09:07:08 +0000 (09:07 +0000)]
re PR c++/54988 (fpmath=sse target pragma causes inlining failure because of target specific option mismatch)

PR target/54988
* config/sh/sh.md (tstqi_t_zero): Rename to *tstqi_t_zero.
(*tst<mode>_t_zero): New insns.
* config/sh/iterators.md (lowpart_be, lowpart_le): New mode attributes.

PR target/54988
* gcc.target/sh/pr53988.c: New.

From-SVN: r192982

11 years agoRemove alloca from dump_gimple_bb_header
H.J. Lu [Tue, 30 Oct 2012 08:38:11 +0000 (01:38 -0700)]
Remove alloca from dump_gimple_bb_header

* gimple-pretty-print.c (dump_gimple_bb_header): Avoid alloca.

From-SVN: r192981

11 years agoAdd myself to MAINTAINERS
Ganesh Gopalasubramanian [Tue, 30 Oct 2012 08:30:21 +0000 (08:30 +0000)]
Add myself to MAINTAINERS

From-SVN: r192980

11 years agore PR debug/54953 (New sra-1.c FAILs on powerpc)
Jakub Jelinek [Tue, 30 Oct 2012 08:08:01 +0000 (09:08 +0100)]
re PR debug/54953 (New sra-1.c FAILs on powerpc)

PR debug/54953
* valtrack.h (DEBUG_TEMP_AFTER_WITH_REG_FORCE): New.
* valtrack.c (dead_debug_insert_temp): Use emit_debug_insn_after
even for where == DEBUG_TEMP_AFTER_WITH_REG_FORCE.
* dce.c (word_dce_process_block, dce_process_block): Pass
DEBUG_TEMP_AFTER_WITH_REG_FORCE if insn is needed and therefore
not going to be eliminated.

From-SVN: r192978

11 years agore PR target/54989 (FAIL: gcc.dg/hoist-register-pressure.c scan-rtl-dump hoist "PRE...
Bin Cheng [Tue, 30 Oct 2012 02:17:50 +0000 (02:17 +0000)]
re PR target/54989 (FAIL: gcc.dg/hoist-register-pressure.c scan-rtl-dump hoist "PRE/HOIST: end of bb .* copying expression" on darwin)

PR target/54989
* gcc.dg/hoist-register-pressure-1.c: Rename from
hoist-register-pressure.c. Add nonpic condition.
* gcc.dg/hoist-register-pressure-2.c: New testcase.

From-SVN: r192976

11 years agoDaily bump.
GCC Administrator [Tue, 30 Oct 2012 00:17:58 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r192975

11 years agoThis patch implements the unification of the *bitmap interfaces as discussed.
Lawrence Crowl [Tue, 30 Oct 2012 00:02:55 +0000 (00:02 +0000)]
This patch implements the unification of the *bitmap interfaces as discussed.

Essentially, we rename ebitmap and sbitmap functions to use the same names
as the bitmap functions.  This rename works because we can now overload
on the bitmap type.  Some macros now become inline functions to enable
that overloading.

The sbitmap non-bool returning bitwise operations have been merged with
the bool versions.  Sometimes this merge involved modifying the non-bool
version to compute the bool value, and sometimes modifying bool version to
add additional work from the non-bool version.  The redundant routines have
been removed.

The allocation functions have not been renamed, because we often do not
have an argument on which to overload.  The cardinality functions have not
been renamed, because they have different parameters, and are thus not
interchangable.  The iteration functions have not been renamed, because
they are functionally different.

Tested on x86_64, contrib/config-list.mk testing passed.

Index: gcc/ChangeLog

2012-10-29  Lawrence Crowl  <crowl@google.com>

* sbitmap.h (sbitmap_copy): Rename bitmap_copy.
(sbitmap_copy_n): Rename bitmap_copy_n.
(sbitmap_equal): Rename bitmap_equal_p.
(sbitmap_empty_p): Rename bitmap_empty_p.
(sbitmap_range_empty_p): Rename bitmap_range_empty_p.
(sbitmap_zero): Rename bitmap_clear.
(sbitmap_ones): Rename bitmap_ones.
(sbitmap_vector_zero): Rename bitmap_vector_clear.
(sbitmap_vector_ones): Rename bitmap_vector_ones.
(sbitmap_not): Rename bitmap_not.
(sbitmap_a_and_b_cg): Commented out.
(sbitmap_a_and_b): Rename bitmap_and.  Add bool return.
(sbitmap_difference): Rename bitmap_and_compl.
(sbitmap_a_or_b_cg): Commented out.
(sbitmap_a_or_b): Rename bitmap_xor.  Add bool return.
(sbitmap_a_xor_b_cg): Commented out.
(sbitmap_a_xor_b): Rename bitmap_xor.  Add bool return.
(sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or.
(sbitmap_a_and_b_or_c): Commented out.
(sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and.
(sbitmap_a_or_b_and_c): Commented out.
(sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl.
(sbitmap_union_of_diff): Commented out.
(dump_sbitmap): Rename dump_bitmap.
(dump_sbitmap_file): Rename dump_bitmap_file.
(debug_sbitmap): Rename debug_bitmap.
(dump_sbitmap_vector): Rename dump_bitmap_vector.
(sbitmap_first_set_bit): Rename bitmap_first_set_bit.
(sbitmap_last_set_bit): Rename bitmap_last_set_bit.
(sbitmap_a_subset_b_p): Rename bitmap_subset_p.
(sbitmap_any_common_bits): Rename bitmap_intersect_p.
(#define sbitmap_free): Reimplement as inline function.
(#define sbitmap_vector_free): Reimplement as inline function.
* bitmap.h (#define bitmap_zero): Remove as redundant.
(#define bitmap_empty_p): Reimplement as inline function.
(#define dump_bitmap): Reimplement as inline function.

From-SVN: r192969

11 years agore PR c++/54930 (Add warning switch for "returning reference to temporary" and similar)
Jonathan Wakely [Mon, 29 Oct 2012 23:21:35 +0000 (23:21 +0000)]
re PR c++/54930 (Add warning switch for "returning reference to temporary" and similar)

gcc/c-family:
PR c++/54930
* c.opt (Wreturn_local_addr): Define new option.

gcc/c:
PR c++/54930
* c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.

gcc/cp:
PR c++/54930
* typeck.c (maybe_warn_about_returning_address_of_local): Use
OPT_Wreturn_local_addr.

gcc:
PR c++/54930
* doc/invoke.texi (Warning Options): Document -Wno-return-local-addr.

gcc/testsuite:
PR c++/54930
* gcc.dg/Wreturn-local-addr.c: New.
* g++.dg/warn/Wno-return-local-addr.C: New.
* g++.dg/warn/Wreturn-local-addr.C: New.

From-SVN: r192968

11 years agoAdd a testcase for PR middle-end/55116
H.J. Lu [Mon, 29 Oct 2012 23:09:03 +0000 (23:09 +0000)]
Add a testcase for PR middle-end/55116

PR middle-end/55116
* gcc.target/i386/pr55116.c: New file.

From-SVN: r192967

11 years agoRemove trailing white spaces
H.J. Lu [Mon, 29 Oct 2012 21:56:35 +0000 (21:56 +0000)]
Remove trailing white spaces

* lra-assigns.c: Remove trailing white spaces.
* lra-coalesce.c: Likewise.
* lra-constraints.c: Likewise.
* lra-eliminations.c: Likewise.
* lra-int.h: Likewise.
* lra-spills.c: Likewise.
* lra.c: Likewise.

From-SVN: r192966

11 years agore PR libstdc++/55123 ([C++11] Construction of shared_ptr<const T> from unique_ptr...
Jonathan Wakely [Mon, 29 Oct 2012 21:49:19 +0000 (21:49 +0000)]
re PR libstdc++/55123 ([C++11] Construction of shared_ptr<const T> from unique_ptr<const T> fails)

PR libstdc++/55123
* include/bits/shared_ptr_base.h (__shared_count::_S_create_from_up):
Do not instantiate allocator with element_type.
* testsuite/20_util/shared_ptr/cons/55123.cc: New.

From-SVN: r192964

11 years agore PR c/53066 (Wshadow should not warn for shadowing an extern function)
Manuel López-Ibáñez [Mon, 29 Oct 2012 20:17:23 +0000 (20:17 +0000)]
re PR c/53066 (Wshadow should not warn for shadowing an extern function)

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

PR c/53066
c/
* c-decl.c (warn_if_shadowing): Do not warn if a variable
shadows a function, unless the variable is a function or a
pointer-to-function.
gcc/
* tree.h (FUNCTION_POINTER_TYPE_P): New.
testsuite/
* gcc.dg/Wshadow-4.c: New.
* gcc.dg/Wshadow-4.h: New.

From-SVN: r192963

11 years agore PR debug/54693 (VTA guality issues with loops)
Alexandre Oliva [Mon, 29 Oct 2012 19:37:25 +0000 (19:37 +0000)]
re PR debug/54693 (VTA guality issues with loops)

PR debug/54693
* gcc/valtrack.c (dead_debug_insert_temp): Defer rescan of
newly-emitted debug insn.

From-SVN: r192962

11 years agore PR debug/54693 (VTA guality issues with loops)
Alexandre Oliva [Mon, 29 Oct 2012 19:36:47 +0000 (19:36 +0000)]
re PR debug/54693 (VTA guality issues with loops)

gcc/ChangeLog:
PR debug/54693
* tree-ssa-threadedge.c (thread_around_empty_block): Copy
debug temps from predecessor before threading.
gcc/testsuite/ChangeLog:
PR debug/54693
* gcc.dg/guality/pr54693.c: New.

From-SVN: r192961

11 years ago* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.
Diego Novillo [Mon, 29 Oct 2012 19:35:35 +0000 (15:35 -0400)]
* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.

From-SVN: r192960

11 years agore PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)
Alexandre Oliva [Mon, 29 Oct 2012 19:27:31 +0000 (19:27 +0000)]
re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)

PR debug/54551
PR debug/54693
* valtrack.c (dead_debug_global_find): Accept NULL dtemp.
(dead_debug_global_insert): Return new entry.
(dead_debug_global_replace_temp): Return early if REG is no
longer in place, or if dtemp was already substituted.
(dead_debug_promote_uses): Insert for all defs and replace all
debug uses at once.
(dead_debug_local_finish): Release used after promotion.
(dead_debug_insert_temp): Stop if dtemp is NULL.

From-SVN: r192959

11 years agore PR debug/54693 (VTA guality issues with loops)
Alexandre Oliva [Mon, 29 Oct 2012 19:27:09 +0000 (19:27 +0000)]
re PR debug/54693 (VTA guality issues with loops)

PR debug/54693
* loop-unroll.c (loop_exit_at_end_p): Skip debug insns.

From-SVN: r192958

11 years agore PR debug/54693 (VTA guality issues with loops)
Alexandre Oliva [Mon, 29 Oct 2012 19:26:16 +0000 (19:26 +0000)]
re PR debug/54693 (VTA guality issues with loops)

PR debug/54693
* config/i386/i386.c (add_parameter_dependencies): Stop
backward scan at the insn before the incoming head.
(ix86_dependencies_evaluation_hook): Skip debug insns.  Stop
if first_arg is head.

From-SVN: r192957

11 years agommap.c (backtrace_vector_release): Correct last patch: add aligned, not size.
Ian Lance Taylor [Mon, 29 Oct 2012 18:42:05 +0000 (18:42 +0000)]
mmap.c (backtrace_vector_release): Correct last patch: add aligned, not size.

* mmap.c (backtrace_vector_release): Correct last patch: add
aligned, not size.

From-SVN: r192956

11 years agoaarch64-protos.h (aarch64_load_tp): New proto.
Andrew Pinski [Mon, 29 Oct 2012 17:31:52 +0000 (17:31 +0000)]
aarch64-protos.h (aarch64_load_tp): New proto.

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

        * config/aarch64/aarch64-protos.h (aarch64_load_tp): New proto.
        * config/aarch64/aarch64.c (aarch64_load_tp): Export.
        (aarch64_init_builtins): Don't add __builtin_thread_pointer builtin.
        * config/aarch64/aarch64.h (aarch64_builtins): Delete

From-SVN: r192955

11 years agore PR middle-end/55027 (simplify vector multiplication by 1)
Marc Glisse [Mon, 29 Oct 2012 17:16:51 +0000 (18:16 +0100)]
re PR middle-end/55027 (simplify vector multiplication by 1)

2012-10-29  Marc Glisse  <marc.glisse@inria.fr>

PR middle-end/55027

gcc/
* tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
Handle VECTOR_CST.

testsuite/
* gcc.dg/pr55027.c: New testcase.

From-SVN: r192954

11 years agoIt is October, not September. :)
Bruce Korb [Mon, 29 Oct 2012 16:58:16 +0000 (16:58 +0000)]
It is October, not September. :)

From-SVN: r192953

11 years agoOmit testing wrap and replacement fixes during testing.
Bruce Korb [Mon, 29 Oct 2012 16:44:34 +0000 (16:44 +0000)]
Omit testing wrap and replacement fixes during testing.

This exposes a missing result and tests a test that got hidden before.

From-SVN: r192952

11 years agortlanal.c (strip_address_mutation): Use SUBREG_REG instead of XEXP.
Vladimir Makarov [Mon, 29 Oct 2012 16:44:01 +0000 (16:44 +0000)]
rtlanal.c (strip_address_mutation): Use SUBREG_REG instead of XEXP.

2012-10-29  Vladimir Makarov  <vmakarov@redhat.com>

* rtlanal.c (strip_address_mutation): Use SUBREG_REG instead of
XEXP.

From-SVN: r192951

11 years agoi386.c (ix86_decompose_address): Use simplify_gen_subreg for all addresses, zero...
Uros Bizjak [Mon, 29 Oct 2012 16:41:41 +0000 (17:41 +0100)]
i386.c (ix86_decompose_address): Use simplify_gen_subreg for all addresses, zero-extended with AND.

* config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
for all addresses, zero-extended with AND.

From-SVN: r192950

11 years agore PR middle-end/55116 (LRA failed to decompose ASHIFT)
Vladimir Makarov [Mon, 29 Oct 2012 16:36:57 +0000 (16:36 +0000)]
re PR middle-end/55116 (LRA failed to decompose ASHIFT)

2012-10-29  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/55116
* rtlanal.c (strip_address_mutation): Add SUBREG case.

From-SVN: r192949

11 years ago* gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons.
Arnaud Charlet [Mon, 29 Oct 2012 16:27:14 +0000 (16:27 +0000)]
* gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons.

From-SVN: r192947

11 years agoipa-inline.c (want_inline_function_called_once_p): Rename to ...
Jan Hubicka [Mon, 29 Oct 2012 15:48:21 +0000 (16:48 +0100)]
ipa-inline.c (want_inline_function_called_once_p): Rename to ...

* ipa-inline.c (want_inline_function_called_once_p): Rename to ...
(want_inline_function_to_all_callers_p): check also functions with
multiple callers.
(ipa_inline): Handle inlining for size into multiple callers.

From-SVN: r192946

11 years agommap.c (backtrace_vector_release): Make sure freed block is aligned on 8-byte boundary.
Ian Lance Taylor [Mon, 29 Oct 2012 15:43:37 +0000 (15:43 +0000)]
mmap.c (backtrace_vector_release): Make sure freed block is aligned on 8-byte boundary.

* mmap.c (backtrace_vector_release): Make sure freed block is
aligned on 8-byte boundary.

From-SVN: r192945

11 years agore PR rtl-optimization/55106 (ice: Maximum number of LRA constraint passes is achieve...
Vladimir Makarov [Mon, 29 Oct 2012 14:42:05 +0000 (14:42 +0000)]
re PR rtl-optimization/55106 (ice: Maximum number of LRA constraint passes is achieved (15))

2012-10-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55106
* g++.dg/pr55106.C: New.

From-SVN: r192944

11 years agore PR middle-end/53695 (ICE: in dfs_enumerate_from, at cfganal.c:1221 with -O2 -ftrac...
Richard Guenther [Mon, 29 Oct 2012 14:25:22 +0000 (14:25 +0000)]
re PR middle-end/53695 (ICE: in dfs_enumerate_from, at cfganal.c:1221 with -O2 -ftracer and labels/gotos)

2012-10-29  Richard Guenther  <rguenther@suse.de>

PR middle-end/53695
* tracer.c (tracer): Fixup loop structure.
* cfgloopmanip.c (force_single_succ_latches): Add assert.
(fix_loop_structure): Re-compute loop latches and disambiguate
loops with multiple latches if required.

* gcc.dg/torture/pr53695.c: New testcase.

From-SVN: r192943

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:56:46 +0000 (12:56 +0100)]
[multiple changes]

2012-10-29  Pascal Obry  <obry@adacore.com>

* xoscons.adb, Make-generated.in; The template used by xoscons is now
given as parameter.
* gcc-interface/Make-lang.in: Update dependencies.

2012-10-29  Yannick Moy  <moy@adacore.com>

* exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal
verification mode when there is a homonym.

From-SVN: r192942

11 years agoMAINTAINERS (Write After Approval): Add myself.
James Greenhalgh [Mon, 29 Oct 2012 11:56:03 +0000 (11:56 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2012-10-26  James Greenhalgh  <james.greenhalgh@arm.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r192941

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:42:17 +0000 (12:42 +0100)]
[multiple changes]

2012-10-29  Thomas Quinot  <quinot@adacore.com>

* xoscons.adb: Minor reformatting.

2012-10-29  Yannick Moy  <moy@adacore.com>

* exp_alfa.adb (Expand_Alfa): Backtrack change that removed
qualification of names in formal verification mode. Instead,
the qualification should be modified.
* exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal
verification mode, so that only a suffix is added to distinguish
homonyms from the same scope.

From-SVN: r192940

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:41:01 +0000 (12:41 +0100)]
[multiple changes]

2012-10-29  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is
ignored with a warning for packed variable length records.

2012-10-29  Thomas Quinot  <quinot@adacore.com>

* socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb,
g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb,
g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an
appropriate subtype for IOCTL requests, since these may be signed or
unsigned.

From-SVN: r192939

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:39:21 +0000 (12:39 +0100)]
[multiple changes]

2012-10-29  Gary Dismukes  <dismukes@adacore.com>

* exp_alfa.adb: Minor reformatting.

2012-10-29  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum
line length style switch.

2012-10-29  Robert Dewar  <dewar@adacore.com>

* layout.adb (Set_Composite_Alignment): Ignore pragma
Optimize_Alignment (Space) for packed variable length records.

From-SVN: r192938

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:36:12 +0000 (12:36 +0100)]
[multiple changes]

2012-10-29  Robert Dewar  <dewar@adacore.com>

* s-bignum.adb: Minor comment change.

2012-10-29  Thomas Quinot  <quinot@adacore.com>

* s-oscons-tmplt.c: Fix signedness of ioctl request identifiers
for x86_64-freebsd.

2012-10-29  Yannick Moy  <moy@adacore.com>

* exp_alfa.adb (Expand_Alfa): Remove qualification of names.

From-SVN: r192937

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:32:18 +0000 (12:32 +0100)]
[multiple changes]

2012-10-29  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb: Minor reformatting.

2012-10-29  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Minor rewording.

2012-10-29  Javier Miranda  <miranda@adacore.com>

* exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram.
* exp_disp.adb (Expand_Dispatching_Call): No action needed if the
call has been already expanded.
(Is_Expanded_Dispatching_Call): New subprogram.
* sem_disp.adb (Propagate_Tag): No action needed if the call
has been already expanded.

2012-10-29  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb (Create_Index_And_Data): Remove local
variable Index_Typ and its uses. The type of the index is now
System.Tasking.Entry_Index. Update all related comments.
* rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table.
* s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index.
* s-taskin.ads: The index type of Task_Entry_Names_Array is now
Entry_Index.
(Number_Of_Entries): The return type is now Entry_Index.
* s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index.
* s-tpoben.ads: The index type of Protected_Entry_Names_Array
is now Entry_Index.
(Number_Of_Entries): The return type is now Entry_Index.

2012-10-29  Pascal Obry  <obry@adacore.com>

* gnat_ugn.texi: Add note about SEH setup on x86-windows.

2012-10-29  Eric Botcazou  <ebotcazou@adacore.com>

* s-bignum.adb (Allocate_Bignum): Use the exact layout of
Bignum_Data for the overlay.

From-SVN: r192936

11 years agognat_rm.texi, [...] (Sem_Prag.Analyze_Pragma): Handle new pragma Attribute_Definition.
Thomas Quinot [Mon, 29 Oct 2012 11:21:57 +0000 (11:21 +0000)]
gnat_rm.texi, [...] (Sem_Prag.Analyze_Pragma): Handle new pragma Attribute_Definition.

2012-10-29  Thomas Quinot  <quinot@adacore.com>

* gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads,
par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma):
Handle new pragma Attribute_Definition.
(Sem_Util.Bad_Attribute): New routine, moved here
from par-util, so that it can be used by the above.
(Par_Util.Signal_Bad_Attribute): Processing moved to
Sem_Util.Bad_Attribute.

From-SVN: r192935

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:19:30 +0000 (12:19 +0100)]
[multiple changes]

2012-10-29  Robert Dewar  <dewar@adacore.com>

* s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting.

2012-10-29  Yannick Moy  <moy@adacore.com>

* sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions
into Formal_Extensions.

2012-10-29  Thomas Quinot  <quinot@adacore.com>

* sem_attr.adb: Minor reformatting.

From-SVN: r192934

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:09:46 +0000 (12:09 +0100)]
[multiple changes]

2012-10-29  Tristan Gingold  <gingold@adacore.com>

* gnat_rm.texi: Document implementation advice for Pragma
Partition_Elaboration_Policy.

2012-10-29  Yannick Moy  <moy@adacore.com>

* s-bignum.adb (Div_Rem): Reference that Algorithm_D is from
the second edition of TAOCP from Knuth, since the algo changed
in the third edition. Also correct the definition of 'd' which
could overflow.

2012-10-29  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch3.adb (Build_Initialization_Call): Create static strings
which denote entry [family] names and associate them with the
object's Protection_Entries or ATCB.
(Build_Init_Statements):
Remove local variable Names. Do not generate the entry [family]
names inside the init proc because they are now static.
* exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings
which denote entry [family] names are now generated statically
and associated with the concurrent object's Protection_Entries
or ATCB during initialization.
* exp_ch9.ads (Build_Entry_Names): Change subprogram profile
and associated comment on usage.
* rtsfind.ads: Add the following entries to tables RE_Id and
RE_Unit_Table:

RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array
RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names
RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names

Remove the following entries from tables RE_Id and RE_Unit_Table:

RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name

* s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation.
(Free_Entry_Names_Array): Removed.
(Number_Of_Entries): New routine.
(Set_Entry_Names): New routine.
* s-taskin.ads: Rename type Entry_Names_Array to
Task_Entry_Names_Array. Rename type Entry_Names_Array_Access
to Task_Entry_Names_Access. Update the type of ACTB field
Entry_Names and add a comment on its protection status.
(Free_Entry_Names_Array): Removed.
(Number_Of_Entries): New routine.
(Set_Entry_Names): New routine.
* s-tassta.adb (Create_Task): Remove formal parameter
Build_Entry_Names. Do not allocate an array to hold the
string names of entries and families.
(Free_Entry_Names): Removed.
(Free_Task): Remove the call to Free_Entry_Names.
(Set_Entry_Name): Removed.
(Vulnerable_Free_Task): Remove the call to Free_Entry_Names.
* s-tassta.ads (Create_Task): Remove formal parameter
Build_Entry_Names along with associated comment.
(Set_Entry_Name): Removed.
* s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation.
(Finalize): Remove the call to Free_Entry_Names.
(Free_Entry_Names): Removed.
(Initialize_Protection_Entries):
Remove formal parameter Build_Entry_Names. Do not allocate
an array to hold the string names of entries and families.
(Number_Of_Entries): New routine.
(Set_Entry_Name): Removed.
(Set_Entry_Names): New routine.
* s-tpoben.ads: Add types Protected_Entry_Names_Array and
Protected_Entry_Names_Access. Update the type of Protection_Enties
field Entry_Names.
(Initialize_Protection_Entries): Remove
formal parameter Build_Entry_Names along with associated comment.
(Number_Of_Entries): New routine.
(Set_Entry_Name): Removed.
(Set_Entry_Names): New routine.

2012-10-29  Arnaud Charlet  <charlet@adacore.com>

* gnat_ugn.texi: Minor typo fix.

From-SVN: r192933

11 years ago* Revert my last commit.
Uros Bizjak [Mon, 29 Oct 2012 11:08:42 +0000 (12:08 +0100)]
* Revert my last commit.

From-SVN: r192932

11 years ago[multiple changes]
Arnaud Charlet [Mon, 29 Oct 2012 11:07:12 +0000 (12:07 +0100)]
[multiple changes]

2012-10-29  Yannick Moy  <moy@adacore.com>

* debug.adb Associate debug switch -gnatd.V to extensions for
formal verification.
* gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions
when -gnatd.V is set.
* gnat_rm.texi: Remove doc for Assert_And_Cut.
* opt.ads Declare new flag S14_Extensions, to be set when new
aspects/pragmas/attributes for formal verification should be
accepted.
* sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is
set when treating pragma Assert_And_Cut.

2012-10-29  Tristan Gingold  <gingold@adacore.com>

* s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy.

From-SVN: r192931