platform/upstream/gcc.git
10 years agoarm.h (ASM_APP_OFF): Re-define it in a cleaner way.
Terry Guo [Wed, 23 Apr 2014 08:59:07 +0000 (08:59 +0000)]
arm.h (ASM_APP_OFF): Re-define it in a cleaner way.

2014-04-23  Terry Guo  <terry.guo@arm.com>

* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.

From-SVN: r209678

10 years agore PR tree-optimization/60895 (error: address taken, but ADDRESSABLE bit not set)
Richard Biener [Wed, 23 Apr 2014 08:27:00 +0000 (08:27 +0000)]
re PR tree-optimization/60895 (error: address taken, but ADDRESSABLE bit not set)

2014-04-23  Richard Biener  <rguenther@suse.de>

PR middle-end/60895
* tree-inline.c (declare_return_variable): Use mark_addressable.

* g++.dg/torture/pr60895.C: New testcase.

From-SVN: r209675

10 years agore PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_...
Richard Biener [Wed, 23 Apr 2014 08:23:33 +0000 (08:23 +0000)]
re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts)

2014-04-23  Richard Biener  <rguenther@suse.de>

PR middle-end/60891
* loop-init.c (loop_optimizer_init): Make sure to apply
LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.

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

From-SVN: r209673

10 years agore PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap...
Jakub Jelinek [Wed, 23 Apr 2014 08:20:12 +0000 (10:20 +0200)]
re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal)

PR sanitizer/60275
* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
New options.
* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
if flag_sanitize_undefined_trap_on_error.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
* ubsan.c (ubsan_instrument_unreachable): Return
__builtin_trap () if flag_sanitize_undefined_trap_on_error.
(ubsan_expand_null_ifn): Emit __builtin_trap ()
if flag_sanitize_undefined_trap_on_error and
__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load): Emit __builtin_trap () if
flag_sanitize_undefined_trap_on_error and
__builtin_handle_*_abort () if !flag_sanitize_recover.
* doc/invoke.texi (-fsanitize-recover,
-fsanitize-undefined-trap-on-error): Document.
c-family/
* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
if flag_sanitize_undefined_trap_on_error.
(ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
if !flag_sanitize_recover.
testsuite/
* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
-fno-sanitize-recover to dg-options.
* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
add -std=c++11 to dg-options.
* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
add -std=c++1y to dg-options.
* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
-fno-sanitize-recover to dg-options.
* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
* c-c++-common/ubsan/vla-4.c: Likewise.
* c-c++-common/ubsan/pr59503.c: Likewise.
* c-c++-common/ubsan/vla-3.c: Likewise.
* c-c++-common/ubsan/save-expr-1.c: Likewise.
* c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/shift-3.c: Likewise.
* c-c++-common/ubsan/overflow-1.c: Likewise.
* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
* c-c++-common/ubsan/vla-2.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
* c-c++-common/ubsan/pr60613-1.c: Likewise.
* c-c++-common/ubsan/shift-6.c: Likewise.
* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
* c-c++-common/ubsan/overflow-add-3.c: New test.
* c-c++-common/ubsan/overflow-add-4.c: New test.
* c-c++-common/ubsan/div-by-zero-6.c: New test.
* c-c++-common/ubsan/div-by-zero-7.c: New test.

From-SVN: r209672

10 years agosh.md (mov<mode>): Replace movQIHI.
Christian Bruel [Wed, 23 Apr 2014 07:30:12 +0000 (09:30 +0200)]
sh.md (mov<mode>): Replace movQIHI.

2014-04-22  Christian Bruel  <christian.bruel@st.com>

        * config/sh/sh.md (mov<mode>): Replace movQIHI.
         Force immediates to SImode.

From-SVN: r209671

10 years agonios2.md (UNSPEC_ROUND): New.
Sandra Loosemore [Wed, 23 Apr 2014 02:14:42 +0000 (22:14 -0400)]
nios2.md (UNSPEC_ROUND): New.

2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.md (UNSPEC_ROUND): New.
(lroundsfsi2): New.
* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
(nios2_fpu_insn): Add entry for round.
(N2FPU_NO_ERRNO_P): Define.
(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
flag_errno_math.
* doc/invoke.texi (Nios II Options): Document -mcustom-round.

gcc/testsuite/
* gcc.target/nios2/custom-fp-conversion.c: Adjust to test that
lroundf generates custom round instruction, too.

From-SVN: r209670

10 years agoDaily bump.
GCC Administrator [Wed, 23 Apr 2014 00:17:11 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r209669

10 years agocompiler: Use backend interface for initialization functions.
Chris Manghane [Tue, 22 Apr 2014 23:46:30 +0000 (23:46 +0000)]
compiler: Use backend interface for initialization functions.

* go-gcc.cc (Gcc_backend::temporary_variable): Push cfun around
call to create_tmp_var.  Require that function be non-NULL.

From-SVN: r209665

10 years agoAArch64 add, sub, mul in TImode
Richard Henderson [Tue, 22 Apr 2014 20:31:29 +0000 (13:31 -0700)]
AArch64 add, sub, mul in TImode

* config/aarch64/aarch64.md (multi3): New expander.
(madd<GPI>): Remove leading * from name.

* config/aarch64/aarch64.md (<su_optab>mulditi3): New expander.

* config/aarch64/aarch64 (addti3, subti3): New expanders.
(add<GPI>3_compare0): Remove leading * from name.
(add<GPI>3_carryin): Likewise.
(sub<GPI>3_compare0): Likewise.
(sub<GPI>3_carryin): Likewise.

From-SVN: r209659

10 years agore PR fortran/60881 (ICE on dummy argument that extends a type with scalar and scalar...
Tobias Burnus [Tue, 22 Apr 2014 19:28:43 +0000 (21:28 +0200)]
re PR fortran/60881 (ICE on dummy argument that extends a type with scalar and scalar coarry components)

2014-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60881
        * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
        of scalar coarrays.

2014-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60881
        * coarray/alloc_comp_3.f90: New.

From-SVN: r209657

10 years agoAdd ada configuration for aarch64-linux
Richard Henderson [Tue, 22 Apr 2014 16:54:25 +0000 (09:54 -0700)]
Add ada configuration for aarch64-linux

* gcc-interface/Makefile.in: Support aarch64-linux.

From-SVN: r209654

10 years agoEnable __gnat_alternate_stack for most linux
Richard Henderson [Tue, 22 Apr 2014 16:51:14 +0000 (09:51 -0700)]
Enable __gnat_alternate_stack for most linux

* init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define.
(__gnat_alternate_stack): Enable for all linux except ia64.

From-SVN: r209653

10 years agore PR libstdc++/43622 (Incomplete C++ library support for __float128)
Marc Glisse [Tue, 22 Apr 2014 16:44:46 +0000 (18:44 +0200)]
re PR libstdc++/43622 (Incomplete C++ library support for __float128)

2014-04-22  Marc Glisse  <marc.glisse@inria.fr>

PR libstdc++/43622
gcc/c-family/
* c-common.c (registered_builtin_types): Make non-static.
* c-common.h (registered_builtin_types): Declare.
gcc/cp/
* rtti.c (emit_support_tinfo_1): New function, extracted from
emit_support_tinfos.
(emit_support_tinfos): Call it and iterate on registered_builtin_types.
libstdc++-v3/
* config/abi/pre/gnu.ver (CXXABI_1.3.9): New version, new symbols.
* config/abi/pre/gnu-versioned-namespace.ver: New symbols.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.

From-SVN: r209652

10 years agocgraphclones.c (cgraph_function_versioning): Copy ipa_transforms_to_apply instead...
Martin Jambor [Tue, 22 Apr 2014 16:33:29 +0000 (18:33 +0200)]
cgraphclones.c (cgraph_function_versioning): Copy ipa_transforms_to_apply instead of asserting it is empty.

2014-04-22  Martin Jambor  <mjambor@suse.cz>

* cgraphclones.c (cgraph_function_versioning): Copy
ipa_transforms_to_apply instead of asserting it is empty.

From-SVN: r209650

10 years agoMerge longlong.h from glibc tree.
Yufeng Zhang [Tue, 22 Apr 2014 16:31:45 +0000 (16:31 +0000)]
Merge longlong.h from glibc tree.

From-SVN: r209649

10 years agoUse counter_mode on count_exp to get mode
H.J. Lu [Tue, 22 Apr 2014 16:31:41 +0000 (16:31 +0000)]
Use counter_mode on count_exp to get mode

gcc/

PR target/60868
* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
on count_exp to get mode.

gcc/testsuite/

PR target/60868
* gcc.target/i386/pr60868.c: New testcase.

From-SVN: r209648

10 years agore PR c/59073 (ICE with missing increment in OpenMP for-loop)
Jakub Jelinek [Tue, 22 Apr 2014 16:22:22 +0000 (18:22 +0200)]
re PR c/59073 (ICE with missing increment in OpenMP for-loop)

PR c/59073
c/
* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
fails, don't set OM_PARALLEL_COMBINED and return NULL.
cp/
* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
fails, don't set OM_PARALLEL_COMBINED and return NULL.
testsuite/
* c-c++-common/gomp/pr59073.c: New test.

From-SVN: r209646

10 years ago[AArch64] Fix TLS for ILP32.
Andrew Pinski [Tue, 22 Apr 2014 16:18:49 +0000 (16:18 +0000)]
[AArch64] Fix TLS for ILP32.

From-SVN: r209645

10 years agofe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
Eric Botcazou [Tue, 22 Apr 2014 16:16:25 +0000 (16:16 +0000)]
fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.

* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
(Error_Msg_N): Likewise.
(Error_Msg_NE): Likewise.
(Get_External_Name_With_Suffix): Likewise.
* types.h (Fat_Pointer): Delete.
(String_Pointer): New type.
(DECLARE_STRING_POINTER): New macro.
* gcc-interface/decl.c (create_concat_name): Adjust.
* gcc-interface/trans.c (post_error): Likewise.
(post_error_ne): Likewise.
* gcc-interface/misc.c (internal_error_function): Likewise.

From-SVN: r209644

10 years ago[AArch64] Define TARGET_FLAGS_REGNUM
Ramana Radhakrishnan [Tue, 22 Apr 2014 16:08:33 +0000 (16:08 +0000)]
[AArch64] Define TARGET_FLAGS_REGNUM

Ramana noted:

This defines TARGET_FLAGS_REGNUM for AArch64 to be CC_REGNUM. Noticed
this turns on the cmpelim pass after reload and in a few examples and
a couple of benchmarks I noticed a number of comparisons getting
deleted.

From-SVN: r209643

10 years ago[AArch64] 64-bit float vreinterpret implemention
Alex Velenko [Tue, 22 Apr 2014 16:06:05 +0000 (16:06 +0000)]
[AArch64] 64-bit float vreinterpret implemention

This patch introduces vreinterpret implementation for vectors with
64-bit float lanes and adds testcase for those intrinsics.

From-SVN: r209642

10 years ago[AArch64] Vreinterpret re-implemention.
Alex Velenko [Tue, 22 Apr 2014 16:02:39 +0000 (16:02 +0000)]
[AArch64] Vreinterpret re-implemention.

This patch re-implements vreinterpret intrinsics to directly call a
cast. The aim is to forward as much information to front-end as
possible.

From-SVN: r209641

10 years ago[AArch64] vqneg and vqabs intrinsics implementation.
Alex Velenko [Tue, 22 Apr 2014 15:55:53 +0000 (15:55 +0000)]
[AArch64] vqneg and vqabs intrinsics implementation.

This patch implements vqneg_s64, vqnegd_s64, vqabs_s64 and vqabsd_s64
AArch64 intrinsics.

From-SVN: r209640

10 years agoImprove sparc_init_modes readability
Richard Henderson [Tue, 22 Apr 2014 14:48:47 +0000 (07:48 -0700)]
Improve sparc_init_modes readability

        * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
        computation to the top of the loop.

From-SVN: r209637

10 years ago[AArch64] Fix aarch64_initial_elimination_offset calculation.
Renlin Li [Tue, 22 Apr 2014 14:35:33 +0000 (14:35 +0000)]
[AArch64] Fix aarch64_initial_elimination_offset calculation.

This patch fixes the elimination offset calculation.  This is a latent
bug hidden by the frame alignment calculation.

Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
From-SVN: r209636

10 years ago[AArch64] Fix indentation.
Marcus Shawcroft [Tue, 22 Apr 2014 13:19:44 +0000 (13:19 +0000)]
[AArch64] Fix indentation.

From-SVN: r209627

10 years agomachmode.h (bitwise_mode_for_mode): Declare.
Richard Sandiford [Tue, 22 Apr 2014 12:46:07 +0000 (12:46 +0000)]
machmode.h (bitwise_mode_for_mode): Declare.

gcc/
* machmode.h (bitwise_mode_for_mode): Declare.
* stor-layout.h (bitwise_type_for_mode): Likewise.
* stor-layout.c (bitwise_mode_for_mode): New function.
(bitwise_type_for_mode): Likewise.
* builtins.c (fold_builtin_memory_op): Use it instead of
int_mode_for_mode and build_nonstandard_integer_type.

gcc/testsuite/
* gcc.dg/memcpy-5.c: New test.

From-SVN: r209622

10 years agoRemove obsolete Solaris 9 support
Rainer Orth [Tue, 22 Apr 2014 12:30:59 +0000 (12:30 +0000)]
Remove obsolete Solaris 9 support

libstdc++-v3:
* configure.host: Remove solaris2.9 handling.
Change os_include_dir to os/solaris/solaris2.10.
* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
* configure: Regenerate.
* config/abi/post/solaris2.9: Remove.
* config/os/solaris/solaris2.9: Rename to ...
* config/os/solaris/solaris2.10: ... this.
* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
Remove.

* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
Remove Solaris 9 reference.
* doc/html/manual/configure.html: Regenerate.

* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
Remove *-*-solaris2.9 xfail.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
Likewise.

* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
xfail.

libjava:
* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
handling.
* configure: Regenerate.

libgfortran:
* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
check.

libgcc:
* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
check.
* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
Solaris 9 single-threaded support.
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
Solaris 9 single-threaded support.  Add call_user_handler code
sequences.
(sparc_is_sighandler): Likewise.

libcpp:
* lex.c: Remove Solaris 9 reference.

gcc/testsuite:
* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
*-*-solaris2.9.
* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
from dg-options.
* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
from dg-additional-options.
* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
from dg-options.

* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
execution check.
* gcc.target/i386/sse-os-support.h [__sun__ && __svr4__]
(sigill_hdlr): Remove.
(sse_os_support) [__sun__ && __svr4__]: Remove SSE execution
check.

* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

* lib/target-supports.exp (add_options_for_tls): Remove
*-*-solaris2.9* handling.

gcc:
* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
(*-*-solaris2*): Simplify.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
*-*-solaris2.9* handling.

* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
as bug.
(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
handling, simplify.
(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
* configure: Regenerate.

* config/i386/sol2-9.h: Remove.

* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
Remove Solaris 9 references.

fixincludes:
* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
(solaris_int_types): Remove.
(solaris_longjmp_noreturn): Remove.
(solaris_mutex_init_2): Remove.
(solaris_once_init_2): Remove.
(solaris_sys_va_list): Remove.
* fixincl.x: Regenerate.
* tests/base/iso/setjmp_iso.h: Remove.
* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
[SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by
solaris_once_init_2.
[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
* tests/base/sys/int_types.h: Remove.
* tests/base/sys/va_list.h: Remove.

contrib:
* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.

From-SVN: r209621

10 years agoaarch64.md (float<GPI:mode><GPF:mode>2): Remove.
Vidya Praveen [Tue, 22 Apr 2014 11:34:52 +0000 (12:34 +0100)]
aarch64.md (float<GPI:mode><GPF:mode>2): Remove.

gcc/ChangeLog:

2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>

* aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
(floatuns<GPI:mode><GPF:mode>2): Remove.
(<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
and floatuns conversions.
(<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
and floatuns conversions.
* iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
(w1,w2): New mode attributes for inequal width conversions.

gcc/testsuite/ChangeLog:

2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>

* gcc.target/aarch64/vect_cvtf_1.c: New.

From-SVN: r209620

10 years ago[AArch64] Add a space to memory asm code between base register and offset.
Renlin Li [Tue, 22 Apr 2014 11:02:20 +0000 (11:02 +0000)]
[AArch64] Add a space to memory asm code between base register and offset.

From-SVN: r209618

10 years agoRe: [AArch64] Fix possible wrong code generation when comparing DImode values.
James Greenhalgh [Tue, 22 Apr 2014 10:49:48 +0000 (10:49 +0000)]
Re: [AArch64] Fix possible wrong code generation when comparing DImode values.

gcc/

* config/aarch64/aarch64-simd.md
(aarch64_cm<optab>di): Always split.
(*aarch64_cm<optab>di): New.
(aarch64_cmtstdi): Always split.
(*aarch64_cmtstdi): New.

From-SVN: r209617

10 years agore PR tree-optimization/60823 (ICE in gimple_expand_cfg, at cfgexpand.c:5644)
Jakub Jelinek [Tue, 22 Apr 2014 10:21:32 +0000 (12:21 +0200)]
re PR tree-optimization/60823 (ICE in gimple_expand_cfg, at cfgexpand.c:5644)

PR tree-optimization/60823
* omp-low.c (ipa_simd_modify_function_body): Go through
all SSA_NAMEs and for those refering to vector arguments
which are going to be replaced adjust SSA_NAME_VAR and,
if it is a default definition, change it into a non-default
definition assigned at the beginning of function from new_decl.
(ipa_simd_modify_stmt_ops): Rewritten.
* tree-dfa.c (set_ssa_default_def): When removing default def,
check for NULL loc instead of NULL *loc.

* c-c++-common/gomp/pr60823-1.c: New test.
* c-c++-common/gomp/pr60823-2.c: New test.
* c-c++-common/gomp/pr60823-3.c: New test.

From-SVN: r209616

10 years ago[ARM] Allow any register for DImode values in Thumb2
Ramana Radhakrishnan [Tue, 22 Apr 2014 10:05:48 +0000 (10:05 +0000)]
[ARM] Allow any register for DImode values in Thumb2

Ramana commented in the submission email:

    I noticed that for T32 we don't allow any old register for DImode
    values. The restriction of an even register is true only for ARM state
    because the ISA doesn't allow any old register in this place. In a few
    large .i files that I had knocking about, noticed a nice drop in stack
    usage and a generally improved register allocation strategy.

From-SVN: r209615

10 years agoOptimise NotDI AND/OR ZeroExtendSI for ARMv7A
Ian Bolton [Tue, 22 Apr 2014 09:59:50 +0000 (09:59 +0000)]
Optimise NotDI AND/OR ZeroExtendSI for ARMv7A

[gcc]
* config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
* config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.

[gcc/testsuite]
* gcc.target/arm/anddi_notdi-1.c: New test.
* gcc.target/arm/iordi_notdi-1.c: New test case.

From-SVN: r209614

10 years agoAArch32 Support ORN for DIMode
Ian Bolton [Tue, 22 Apr 2014 09:50:33 +0000 (09:50 +0000)]
AArch32 Support ORN for DIMode

[gcc]
* config/arm/thumb2.md (*iordi_notdi_di): New pattern.
(*iordi_notzesidi_di): Likewise.
(*iordi_notsesidi_di): Likewise.

[gcc/testsuite]
* gcc.target/arm/iordi_notdi-1.c: New test.

From-SVN: r209613

10 years agoarm-protos.h (tune_params): New struct members.
Ian Bolton [Tue, 22 Apr 2014 09:33:00 +0000 (09:33 +0000)]
arm-protos.h (tune_params): New struct members.

* config/arm/arm-protos.h (tune_params): New struct members.
* config/arm/arm.c: Initialise tune_params per processor.
(thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
for speed, based on new tune_params.

From-SVN: r209561

10 years ago[AArch64] vrnd<*>_f64 patch
Alex Velenko [Tue, 22 Apr 2014 08:39:48 +0000 (08:39 +0000)]
[AArch64] vrnd<*>_f64 patch

This patch adds vrnd<*>_f64 aarch64 intrinsics.  A testcase for those
intrinsics is added.  Run a complete LE and BE regression run with no
regressions.

From-SVN: r209559

10 years ago* gennews (files): Add files for GCC 4.9.
Jakub Jelinek [Tue, 22 Apr 2014 08:23:08 +0000 (10:23 +0200)]
* gennews (files): Add files for GCC 4.9.

From-SVN: r209557

10 years agoarm.c (arm_print_operand, thumb_exit): Make sure GET_MODE_SIZE argument is enum machi...
Zhenqiang Chen [Tue, 22 Apr 2014 08:12:22 +0000 (08:12 +0000)]
arm.c (arm_print_operand, thumb_exit): Make sure GET_MODE_SIZE argument is enum machine_mode.

2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
GET_MODE_SIZE argument is enum machine_mode.

From-SVN: r209556

10 years agore PR target/60910 (sparc-linux bootstrap failure due to many "invalid conversion...
Jakub Jelinek [Tue, 22 Apr 2014 07:25:12 +0000 (09:25 +0200)]
re PR target/60910 (sparc-linux bootstrap failure due to many "invalid conversion from 'int' to 'machine_mode'" errors)

PR target/60910
* config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.

From-SVN: r209555

10 years agore PR middle-end/60281 (Address Sanitizer triggers alignment fault in ARM machines)
Lin Zuojian [Tue, 22 Apr 2014 05:55:40 +0000 (05:55 +0000)]
re PR middle-end/60281 (Address Sanitizer triggers alignment fault in ARM machines)

PR middle-end/60281
* asan.c (asan_emit_stack_protection): Force the base to align to
appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
appropriate bits if STRICT_ALIGNMENT.
* cfgexpand.c (expand_stack_vars): Set base_align appropriately
when asan is on.
(expand_used_vars): Leave a space in the stack frame for alignment
if STRICT_ALIGNMENT.

From-SVN: r209554

10 years agoDaily bump.
GCC Administrator [Tue, 22 Apr 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209553

10 years agoConst-correctness fixes for some gimple accessors
David Malcolm [Mon, 21 Apr 2014 22:04:01 +0000 (22:04 +0000)]
Const-correctness fixes for some gimple accessors

gcc/
* gimple.h (gimple_assign_single_p): Accept a const_gimple rather
than a gimple.
(gimple_store_p): Likewise.
(gimple_assign_load_p): Likewise.
(gimple_assign_cast_p): Likewise.
(gimple_clobber_p): Likewise.

* doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
rather than a gimple.
(gimple_assign_cast_p): Likewise.

From-SVN: r209548

10 years agore PR target/60735 (GCC targeting E500 with SPE has errors with the _Decimal64 type)
Michael Meissner [Mon, 21 Apr 2014 20:51:37 +0000 (20:51 +0000)]
re PR target/60735 (GCC targeting E500 with SPE has errors with the _Decimal64 type)

[gcc]
2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
If mode is DDmode and TARGET_E500_DOUBLE allow move.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
more debug information for E500 if -mdebug=reg.

[gcc/testsuite]
2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* gcc.target/powerpc/pr60735.c: New test.  Insure _Decimal64 does
not cause errors if -mspe.

From-SVN: r209546

10 years agore PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable insn) with...
Uros Bizjak [Mon, 21 Apr 2014 18:34:10 +0000 (20:34 +0200)]
re PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable insn) with -mrdrnd and __builtin_ia32_rdrand32_step())

PR target/60909
* config/i386/i386.c (ix86_expand_builtin)
<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
register for target RTX.
<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.

Testsuite/ChangeLog:

PR target/60909
* gcc.target/i386/pr60909-1.c: New test.
* gcc.target/i386/pr60909-2.c: Ditto.

From-SVN: r209545

10 years ago* MAINTAINERS (Write After Approval): Delete myself.
Rafael Ávila de Espíndola [Mon, 21 Apr 2014 13:38:17 +0000 (13:38 +0000)]
* MAINTAINERS (Write After Approval): Delete myself.

From-SVN: r209544

10 years agoDaily bump.
GCC Administrator [Mon, 21 Apr 2014 00:16:49 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209542

10 years agoDaily bump.
GCC Administrator [Sun, 20 Apr 2014 00:16:47 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209534

10 years agoDaily bump.
GCC Administrator [Sat, 19 Apr 2014 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209530

10 years agoCorrect the discription in ChangLog:
Cong Hou [Fri, 18 Apr 2014 19:53:14 +0000 (15:53 -0400)]
Correct the discription in ChangLog:

2014-04-18  Cong Hou  <congh@google.com>

        * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
        the widen-mult pattern by handling two operands with different
        sizes, and operands whose size is smaller than half of the result
        type.

From-SVN: r209525

10 years agotree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance the widen-mult pattern...
Cong Hou [Fri, 18 Apr 2014 19:46:49 +0000 (15:46 -0400)]
tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance the widen-mult pattern by handling two operands with different sizes.

2014-04-18  Cong Hou  <congh@google.com>

        * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
        the widen-mult pattern by handling two operands with different
        sizes.
        * tree-vect-stmts.c (vectorizable_conversion): Allow multi-steps
        conversions after widening mult operation.
        (supportable_widening_operation): Likewise.

2014-04-18  Cong Hou  <congh@google.com>

        * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: New test.
        * gcc.dg/vect/vect-widen-mult-u8-u32.c: New test.

From-SVN: r209524

10 years agoipa-inline.h (INLINE_HINT_known_hot): New hint.
Jan Hubicka [Fri, 18 Apr 2014 19:36:01 +0000 (21:36 +0200)]
ipa-inline.h (INLINE_HINT_known_hot): New hint.

* ipa-inline.h (INLINE_HINT_known_hot): New hint.
* ipa-inline-analysis.c (dump_inline_hints): Dump it.
(do_estimate_edge_time): Compute it.
* ipa-inline.c (want_inline_small_function_p): Bypass
INLINE_INSNS_AUTO/SINGLE limits for calls that are known
to be hot.

From-SVN: r209523

10 years agoipa-inline.c (spec_rem): New static variable.
Jan Hubicka [Fri, 18 Apr 2014 18:30:45 +0000 (20:30 +0200)]
ipa-inline.c (spec_rem): New static variable.

* ipa-inline.c (spec_rem): New static variable.
(dump_overall_stats): New function.
(dump_inline_stats): New function.

From-SVN: r209522

10 years agoDR 1571
Jason Merrill [Fri, 18 Apr 2014 18:13:53 +0000 (14:13 -0400)]
DR 1571

DR 1571
* call.c (reference_binding): Recurse on user-defined conversion.

From-SVN: r209521

10 years agore PR c++/60872 (Cannot memcpy array of restricted pointers)
Jason Merrill [Fri, 18 Apr 2014 18:11:22 +0000 (14:11 -0400)]
re PR c++/60872 (Cannot memcpy array of restricted pointers)

PR c++/60872
* call.c (standard_conversion): Don't try to apply restrict to void.

From-SVN: r209520

10 years agoaarch64: Fix build error in aarch64_register_move_cost
Richard Henderson [Fri, 18 Apr 2014 15:52:50 +0000 (08:52 -0700)]
aarch64: Fix build error in aarch64_register_move_cost

        * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
        to GET_MODE_SIZE, not a reg_class_t.

From-SVN: r209517

10 years agovsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
Bill Schmidt [Fri, 18 Apr 2014 13:31:57 +0000 (13:31 +0000)]
vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.

[gcc]

2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
little-endian.
(vsx_xxmrglw_<mode>): Likewise.

[gcc/testsuite]

2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/merge-vsx.c: Add V4SI and V4SF tests.
* gcc.dg/vmx/merge-vsx-be-order.c: Likewise.

From-SVN: r209516

10 years agoDaily bump.
GCC Administrator [Fri, 18 Apr 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209513

10 years agogofrontend: deduplicate C syscall function declarations
Ian Lance Taylor [Thu, 17 Apr 2014 23:39:23 +0000 (23:39 +0000)]
gofrontend: deduplicate C syscall function declarations

A gccgo language extension allows a function to be declared multiple
times. Avoid the use of this extension by dedeplicating declarations
in mksyscall.awk.

From-SVN: r209508

10 years agoruntime: remove use of obsolete map deletion syntax
Ian Lance Taylor [Thu, 17 Apr 2014 23:27:31 +0000 (23:27 +0000)]
runtime: remove use of obsolete map deletion syntax

The use of this syntax was eliminated upstream in Go 992248b2adc2,
but this particular use slipped through somehow.

From-SVN: r209506

10 years agogofrontend: avoid use of unsafe.Sizeof extension
Ian Lance Taylor [Thu, 17 Apr 2014 23:13:39 +0000 (23:13 +0000)]
gofrontend: avoid use of unsafe.Sizeof extension

Avoid the use of a gccgo language extension which allows unsafe.Sizeof
to accept a type by passing an expression of the relevant type.

From-SVN: r209503

10 years agore PR c++/59200 (ICE with invalid alias template use)
Paolo Carlini [Thu, 17 Apr 2014 21:56:46 +0000 (21:56 +0000)]
re PR c++/59200 (ICE with invalid alias template use)

2014-04-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59200
* g++.dg/cpp0x/alias-decl-42.C: New.

From-SVN: r209499

10 years agore PR target/60876 (2014-04-17 change to machmode.h breaks PowerPC)
Michael Meissner [Thu, 17 Apr 2014 21:50:58 +0000 (21:50 +0000)]
re PR target/60876 (2014-04-17 change to machmode.h breaks PowerPC)

2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60876
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
GET_MODE_SIZE gets passed an enum machine_mode type and not
integer.
(rs6000_init_hard_regno_mode_ok): Likewise.

From-SVN: r209498

10 years agocompiler: Use backend interface for constant expressions.
Chris Manghane [Thu, 17 Apr 2014 20:42:31 +0000 (20:42 +0000)]
compiler: Use backend interface for constant expressions.

* go-gcc.cc (Gcc_backend::named_constant_expression): New
function.

From-SVN: r209495

10 years agore PR go/60870 (go interface methods broken on ppc64le (bug296.go))
Ian Lance Taylor [Thu, 17 Apr 2014 19:27:22 +0000 (19:27 +0000)]
re PR go/60870 (go interface methods broken on ppc64le (bug296.go))

PR go/60870

compiler: Don't convert function type for an interface method.

For an interface method the function type is the type without
the receiver, which is wrong since we are passing a receiver.
The interface method will always have the correct type in this
case, so no type conversion is necessary.

Also don't do the type conversion when calling a named
function, since in that case the type is also always correct.

The type can be wrong, and the conversion required, when the
function type refers to itself recursively.

From-SVN: r209494

10 years agocompiler: Define immutability for numeric, constant, type info, type conversion,...
Ian Lance Taylor [Thu, 17 Apr 2014 19:10:27 +0000 (19:10 +0000)]
compiler: Define immutability for numeric, constant, type info, type conversion, and addressof expressions.

From-SVN: r209493

10 years agoipa-inline.c (inline_small_functions): Account only non-cold functions.
Jan Hubicka [Thu, 17 Apr 2014 18:35:54 +0000 (20:35 +0200)]
ipa-inline.c (inline_small_functions): Account only non-cold functions.

* ipa-inline.c (inline_small_functions): Account only non-cold
functions.
* doc/invoke.texi (inline-unit-growth): Update documentation.

From-SVN: r209490

10 years agors6000.md (addti3, subti3): New.
Pat Haugen [Thu, 17 Apr 2014 18:26:47 +0000 (18:26 +0000)]
rs6000.md (addti3, subti3): New.

* config/rs6000/rs6000.md (addti3, subti3): New.

* gcc.target/powerpc/ti_math1.c: New.
* gcc.target/powerpc/ti_math2.c: New.

From-SVN: r209489

10 years agoGenerate "xor reg, reg" if optimizing for size
H.J. Lu [Thu, 17 Apr 2014 15:19:34 +0000 (15:19 +0000)]
Generate "xor reg, reg" if optimizing for size

PR target/60863
* config/i386/i386.c (ix86_expand_clear): Remove outdated
comment.  Check optimize_insn_for_size_p instead of
optimize_insn_for_speed_p.

From-SVN: r209488

10 years agogimple-iterator.c (gsi_start_edge): New function.
Martin Jambor [Thu, 17 Apr 2014 13:53:59 +0000 (15:53 +0200)]
gimple-iterator.c (gsi_start_edge): New function.

2014-04-17  Martin Jambor  <mjambor@suse.cz>

* gimple-iterator.c (gsi_start_edge): New function.
* gimple-iterator.h (gsi_start_edge): Declare.
* tree-sra.c (single_non_eh_succ): New function.
(disqualify_ops_if_throwing_stmt): Renamed to
disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
having one non-EH successor BB.
(sra_modify_expr): If stmt ends bb, use single non-EH successor to
generate loads into replacements.
(sra_modify_assign): Likewise and and also use the simple path for
such statements.
(sra_modify_function_body): Commit statements on edges.

testsuite/
* gnat.dg/opt34.adb: New.
* gnat.dg/opt34_pkg.ads: Likewise.

From-SVN: r209487

10 years agore PR tree-optimization/60849 (bogus comparison result type)
Richard Biener [Thu, 17 Apr 2014 13:50:55 +0000 (13:50 +0000)]
re PR tree-optimization/60849 (bogus comparison result type)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
comparison results and add clarifying comment.

From-SVN: r209486

10 years agogenmodes.c (struct mode_data): Add need_bytesize_adj field.
Jakub Jelinek [Thu, 17 Apr 2014 12:49:49 +0000 (14:49 +0200)]
genmodes.c (struct mode_data): Add need_bytesize_adj field.

* genmodes.c (struct mode_data): Add need_bytesize_adj field.
(blank_mode): Initialize it.
(emit_mode_size_inline, emit_mode_nunits_inline,
emit_mode_inner_inline): New functions.
(emit_insn_modes_h): Call them and surround their output with
#if GCC_VERSION >= 4001 ... #endif.
* machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
For GCC_VERSION >= 4001 use mode_*_inline routines instead of
mode_* arrays if the argument is __builtin_constant_p.
* lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
is enum machine_mode.
fortran/
* trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
argument is enum machine_mode.

From-SVN: r209484

10 years agopass cfun to pass::execute
Trevor Saunders [Thu, 17 Apr 2014 12:37:34 +0000 (12:37 +0000)]
pass cfun to pass::execute

gcc/
* passes.c (opt_pass::execute): Adjust.
(pass_manager::execute_pass_mode_switching): Likewise.
(early_local_passes::execute): Likewise.
(execute_one_pass): Pass cfun to the pass's execute method.
* tree-pass.h (opt_pass::execute): Add function * argument.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
Adjust.

From-SVN: r209482

10 years agopass current function to opt_pass::gate ()
Trevor Saunders [Thu, 17 Apr 2014 12:37:16 +0000 (12:37 +0000)]
pass current function to opt_pass::gate ()

gcc/
* passes.c (opt_pass::gate): Take function * argument.
(gate_all_early_local_passes): Merge into
(early_local_passes::gate): this.
(gate_all_early_optimizations): Merge into
(all_early_optimizations::gate): this.
(gate_all_optimizations): Mege into
(all_optimizations::gate): this.
(gate_all_optimizations_g): Merge into
(all_optimizations_g::gate): this.
(gate_rest_of_compilation): Mege into
(rest_of_compilation::gate): this.
(gate_postreload): Merge into
(postreload::gate): this.
(dump_one_pass): Pass cfun to the pass's gate method.
(execute_ipa_summary_passes): Likewise.
(execute_one_pass): Likewise.
(ipa_write_summaries_2): Likewise.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_read_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.
(execute_ipa_stmt_fixups): Likewise.
* tree-pass.h (opt_pass::gate): Add function * argument.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
combine-stack-adj.c, combine.c, compare-elim.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
var-tracking.c, vtable-verify.c, web.c: Adjust.

gcc/testsuite/
* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfasign.c,
gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfasign.c: Adjust.

From-SVN: r209481

10 years agoenable -Woverloaded-virtual when available
Trevor Saunders [Thu, 17 Apr 2014 12:37:05 +0000 (12:37 +0000)]
enable -Woverloaded-virtual when available

gcc/
* configure.ac: Check for -Woverloaded-virtual and enable it if found.
* configure: Regenerate.

From-SVN: r209480

10 years agoremove has_gate
Trevor Saunders [Thu, 17 Apr 2014 12:36:56 +0000 (12:36 +0000)]
remove has_gate

gcc/
* passes.c (dump_one_pass): don't check pass->has_gate.
(execute_ipa_summary_passes): Likewise.
(execute_one_pass): Likewise.
(ipa_write_summaries_2): Likewise.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.
(execute_ipa_stmt_fixups): Likewise.
* tree-pass.h (pass_data::has_gate): Remove.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
gimple-low.c, gimple-ssa-isolate-paths.c,
gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
Adjust.

gcc/testsuite/
* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfassign.c,
gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfassign.c: Adjust.

From-SVN: r209479

10 years agomerge register_dump_files_1 into register_dump_files and remove more fiddling with...
Trevor Saunders [Thu, 17 Apr 2014 12:36:41 +0000 (12:36 +0000)]
merge register_dump_files_1 into register_dump_files and remove more fiddling with properties

gcc/
* pass_manager.h (pass_manager::register_dump_files_1): Remove declaration.
* passes.c (pass_manager::register_dump_files_1): Merge into
(pass_manager::register_dump_files): this, and remove its handling of
properties since the pass always has the properties anyway.
(pass_manager::pass_manager): Adjust.

From-SVN: r209478

10 years agoremove properties stuff from register_dump_files_1
Trevor Saunders [Thu, 17 Apr 2014 12:36:35 +0000 (12:36 +0000)]
remove properties stuff from register_dump_files_1

gcc/
* pass_manager.h (pass_manager::register_dump_files_1): Adjust.
* passes.c (pass_manager::register_dump_files_1): Remove dead code
dealing with properties.
(pass_manager::register_dump_files): Adjust.

From-SVN: r209477

10 years agore PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))
Jakub Jelinek [Thu, 17 Apr 2014 12:25:25 +0000 (14:25 +0200)]
re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))

PR sanitizer/56781
lto-plugin/
* Makefile.am (CFLAGS, LDFLAGS): Filter out -fsanitize=address.
(liblto_plugin_la_LIBADD, liblto_plugin_la_LDFLAGS,
liblto_plugin_la_DEPENDENCIES): Prefer ../libiberty/noasan/libiberty.a
over ../libiberty/pic/libiberty.a if the former exists.
* Makefile.in: Regenerated.
libiberty/
* maint-tool: Also emit rule for noasan/ subdirectory.
* configure.ac (NOASANFLAG): Set and substitute.
* Makefile.in: Regenerated.
(NOASANFLAG): Set.
(all, $(TARGETLIB), mostlyclean): Handle noasan subdir like pic
subdir.
(stamp-noasandir): New goal.
* configure: Regenerated.

From-SVN: r209476

10 years agore PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))
Jakub Jelinek [Thu, 17 Apr 2014 12:23:28 +0000 (14:23 +0200)]
re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))

PR sanitizer/56781
* libtool-ldflags: Also prefix -static-lib*, -shared-lib*
and -B* options with -Xcompiler.
lto-plugin/
* Makefile.am (LTLDFLAGS, liblto_plugin_la_LINK): New variables.
* Makefile.in: Regenerated.

From-SVN: r209475

10 years agodwarf2out: Use normal constant values in bound_info if possible.
Mark Wielaard [Thu, 17 Apr 2014 10:36:21 +0000 (10:36 +0000)]
dwarf2out: Use normal constant values in bound_info if possible.

* dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
then represent the bound as normal constant value.

From-SVN: r209473

10 years agore PR target/60847 (x86 BMI intrinsics not recognized)
Jakub Jelinek [Thu, 17 Apr 2014 10:02:36 +0000 (12:02 +0200)]
re PR target/60847 (x86 BMI intrinsics not recognized)

PR target/60847
Forward port from 4.8 branch
2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>

* config/i386/bmiintrin.h (_blsi_u32): New.
(_blsi_u64): Ditto.
(_blsr_u32): Ditto.
(_blsr_u64): Ditto.
(_blsmsk_u32): Ditto.
(_blsmsk_u64): Ditto.
(_tzcnt_u32): Ditto.
(_tzcnt_u64): Ditto.

* gcc.target/i386/bmi-1.c: Extend with new instrinsics.
Fix scan patterns.
* gcc.target/i386/bmi-2.c: Ditto.

From-SVN: r209471

10 years ago* gcc.c (used_arg): Prevent out of bound access for multilib_options.
Kito Cheng [Thu, 17 Apr 2014 09:01:22 +0000 (09:01 +0000)]
* gcc.c (used_arg): Prevent out of bound access for multilib_options.

From-SVN: r209470

10 years agore PR tree-optimization/60849 (bogus comparison result type)
Richard Biener [Thu, 17 Apr 2014 08:13:53 +0000 (08:13 +0000)]
re PR tree-optimization/60849 (bogus comparison result type)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
boolean results for comparisons.

* g++.dg/opt/pr60849.C: New testcase.

From-SVN: r209469

10 years agore PR c++/60836 (invalid PHI argument and ICE in verify_gimple)
Richard Biener [Thu, 17 Apr 2014 08:12:58 +0000 (08:12 +0000)]
re PR c++/60836 (invalid PHI argument and ICE in verify_gimple)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/60836
* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
initial PHI args to be gimple values.

* g++.dg/vect/pr60836.cc: New testcase.

From-SVN: r209468

10 years agore PR tree-optimization/60841 (gcc: internal compiler error: Killed (program cc1...
Richard Biener [Thu, 17 Apr 2014 08:09:02 +0000 (08:09 +0000)]
re PR tree-optimization/60841 (gcc: internal compiler error: Killed (program cc1) out of memory)

2014-04-17   Richard Biener  <rguenther@suse.de>

PR tree-optimization/60841
* tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
* tree-vect-loop.c (vect_analyze_loop_2): Pass down number
of stmts to SLP build.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
(vect_analyze_slp): Likewise.
(vect_analyze_slp_instance): Likewise.
(vect_build_slp_tree): Limit overall SLP tree growth.
* tree-vectorizer.h (vect_analyze_data_refs,
vect_analyze_slp): Adjust prototypes.

* gcc.dg/vect/pr60841.c: New testcase.

From-SVN: r209467

10 years agoi386.c (x86_add_stmt_cost): Fix vector cost model for Silvermont.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:47:37 +0000 (07:47 +0000)]
i386.c (x86_add_stmt_cost): Fix vector cost model for Silvermont.

gcc/
        * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
        Silvermont.

From-SVN: r209466

10 years agox86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:46:45 +0000 (07:46 +0000)]
x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.

gcc/
        * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
        * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
        * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
        for TARGET_SLOW_PSHUFB

From-SVN: r209465

10 years agoi386.c (slm_cost): Adjust vec_to_scalar_cost.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:45:42 +0000 (07:45 +0000)]
i386.c (slm_cost): Adjust vec_to_scalar_cost.

gcc/
        * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
        * config/i386/i386.c (intel_cost): Ditto.

From-SVN: r209464

10 years agoopts.c (OPT_fif_conversion, [...]): Disable for Og.
Joey Ye [Thu, 17 Apr 2014 07:09:56 +0000 (07:09 +0000)]
opts.c (OPT_fif_conversion, [...]): Disable for Og.

2014-04-17  Joey Ye  <joey.ye@arm.com>

        * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.

From-SVN: r209463

10 years agoopts.c (common_handle_option): Disable -fipa-reference coorectly with -fuse-profile.
Jan Hubicka [Thu, 17 Apr 2014 05:59:03 +0000 (07:59 +0200)]
opts.c (common_handle_option): Disable -fipa-reference coorectly with -fuse-profile.

* opts.c (common_handle_option): Disable -fipa-reference coorectly
with -fuse-profile.

From-SVN: r209462

10 years agoipa-devirt.c (odr_type_d): Add field all_derivations_known.
Jan Hubicka [Thu, 17 Apr 2014 02:43:53 +0000 (04:43 +0200)]
ipa-devirt.c (odr_type_d): Add field all_derivations_known.

* ipa-devirt.c (odr_type_d): Add field all_derivations_known.
(type_all_derivations_known_p): New predicate.
(type_all_ctors_visible_p): New predicate.
(type_possibly_instantiated_p): New predicate.
(get_odr_type): Compute all_derivations_known.
(dump_odr_type): Dump the flag.
(maybe_record_type): Cleanup.
(record_target_from_binfo): Add bases_to_consider array;
record bases for types w/o instances and skip CXX destructor.
(possible_polymorphic_call_targets_1): Add bases_to_consider
and consider_construction parameters; check if type may
have instance.
(get_polymorphic_call_info): Set maybe_in_construction to true
when we know nothing.
(record_targets_from_bases): Skip CXX destructors; they are
never called for types in construction.
(possible_polymorphic_call_targets): Do not record target when
type may not have instance.

* g++.dg/ipa/devirt-31.C: New testcase.

From-SVN: r209461

10 years agore PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)
Jan Hubicka [Thu, 17 Apr 2014 02:32:26 +0000 (04:32 +0200)]
re PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)

PR lto/60820
* gcc.dg/lto/pr60820_0.c: New testcase.
* gcc.dg/lto/pr60820_1.c: New testcase.

From-SVN: r209460

10 years agore PR ipa/60854 (inline constructor of extern template)
Jan Hubicka [Thu, 17 Apr 2014 02:22:57 +0000 (04:22 +0200)]
re PR ipa/60854 (inline constructor of extern template)

PR ipa/60854
* ipa.c (symtab_remove_unreachable_nodes): Mark targets of
external aliases alive, too.
* g++.dg/torture/pr60854.C: New testcase.

From-SVN: r209459

10 years agohost-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32 definition.
Andrew Pinski [Thu, 17 Apr 2014 00:18:29 +0000 (00:18 +0000)]
host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32 definition.

2014-04-16  Andrew  Pinski  <apinski@cavium.com>

* config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
        definition.

From-SVN: r209457

10 years agoDaily bump.
GCC Administrator [Thu, 17 Apr 2014 00:17:05 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r209456

10 years agofinal.c (compute_alignments): Do not apply loop alignment to a block falling through...
Eric Botcazou [Wed, 16 Apr 2014 23:31:30 +0000 (23:31 +0000)]
final.c (compute_alignments): Do not apply loop alignment to a block falling through to the exit.

* final.c (compute_alignments): Do not apply loop alignment to a block
falling through to the exit.

From-SVN: r209451

10 years agomips.md (*mov<mode>_internal, [...]): Adjust constraints for microMIPS store patterns.
Catherine Moore [Wed, 16 Apr 2014 21:09:30 +0000 (17:09 -0400)]
mips.md (*mov<mode>_internal, [...]): Adjust constraints for microMIPS store patterns.

2014-04-16  Catherine Moore  <clm@codesourcery.com>

gcc/
* mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
Adjust constraints for microMIPS store patterns.

testsuite/
* gcc.target/mips/umips-store16-2.c: New test.

From-SVN: r209450

10 years agodecl.c (reshape_init_r): Handle a single element of vector type.
Marc Glisse [Wed, 16 Apr 2014 20:46:47 +0000 (22:46 +0200)]
decl.c (reshape_init_r): Handle a single element of vector type.

2014-04-16  Marc Glisse  <marc.glisse@inria.fr>

gcc/cp/
* decl.c (reshape_init_r): Handle a single element of vector type.
gcc/testsuite/
* g++.dg/cpp0x/initlist-vect.C: New file.

From-SVN: r209449

10 years agolibgo: Remove Solaris 8 & 9 support.
Ian Lance Taylor [Wed, 16 Apr 2014 20:33:57 +0000 (20:33 +0000)]
libgo: Remove Solaris 8 & 9 support.

From Rainer Orth.

From-SVN: r209448