gcc.git
9 years agoFix typo.
Julia Koval [Wed, 11 Nov 2015 11:47:00 +0000 (12:47 +0100)]
Fix typo.

gcc/
* config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.

From-SVN: r230155

9 years agoFix target arch attribute for Skylake.
Julia Koval [Wed, 11 Nov 2015 11:40:50 +0000 (12:40 +0100)]
Fix target arch attribute for Skylake.

gcc/
* config/i386/i386.c: Handle "skylake" and
"skylake-avx512".

gcc/testsuite/
* g++.dg/ext/mv16.C: New functions.

From-SVN: r230153

9 years agoFix various memory leaks
Martin Liska [Wed, 11 Nov 2015 11:21:44 +0000 (12:21 +0100)]
Fix various memory leaks

* gimple-ssa-strength-reduction.c (create_phi_basis):
Use auto_vec.
* passes.c (release_dump_file_name): New function.
(pass_init_dump_file): Used from this function.
(pass_fini_dump_file): Likewise.
* tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
* var-tracking.c (vt_initialize): Use pool_allocator.

From-SVN: r230152

9 years agodp-hack.h: Add support for ARCHS.
Claudiu Zissulescu [Wed, 11 Nov 2015 11:04:32 +0000 (12:04 +0100)]
dp-hack.h: Add support for ARCHS.

2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/dp-hack.h: Add support for ARCHS.
* config/arc/ieee-754/divdf3.S: Likewise.
* config/arc/ieee-754/divsf3-stdmul.S: Likewise.
* config/arc/ieee-754/muldf3.S: Likewise.
* config/arc/ieee-754/mulsf3.S: Likewise
* config/arc/lib1funcs.S: Likewise
* config/arc/gmon/dcache_linesz.S: Don't read the build register
for ARCv2 cores.
* config/arc/gmon/profil.S (__profil, __profil_irq): Don't profile
for ARCv2 cores.
* config/arc/ieee-754/arc-ieee-754.h (MPYHU, MPYH): Define.
* config/arc/t-arc700-uClibc: Remove hard selection for ARC 700
cores.

From-SVN: r230151

9 years ago[Patch] PR tree-optimization/68234 Improve range info for loop Phi node
Richard Biener [Wed, 11 Nov 2015 10:51:31 +0000 (10:51 +0000)]
[Patch] PR tree-optimization/68234 Improve range info for loop Phi node

2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
    Jiong Wang      <jiong.wang@arm.com>
gcc/
  PR tree-optimization/68234
  * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
  node which estimiated to be VR_VARYING initially.

gcc/testsuite/
  * gcc.dg/tree-ssa/pr68234.c: New testcase.

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

9 years agoTighten up checks when tying chains.
Robert Suchanek [Wed, 11 Nov 2015 10:36:00 +0000 (10:36 +0000)]
Tighten up checks when tying chains.

gcc/
* regname.c (scan_rtx_reg): Check the matching number of consecutive
registers when tying chains.
(build_def_use): Move terminated_this_insn earlier in the function.

From-SVN: r230149

9 years agore PR fortran/67826 (gcc/fortran/openmp.c:1808: bad test ?)
Dominique d'Humieres [Wed, 11 Nov 2015 10:30:25 +0000 (11:30 +0100)]
re PR fortran/67826 (gcc/fortran/openmp.c:1808: bad test ?)

2015-11-11  Dominique d'Humieres <dominiq@lps.ens.fr>

PR fortran/67826
* openmp.c (gfc_omp_udr_find): Fix typo.

From-SVN: r230148

9 years agore PR libstdc++/64651 (std::rethrow_exception not found by ADL)
Jonathan Wakely [Wed, 11 Nov 2015 10:08:23 +0000 (10:08 +0000)]
re PR libstdc++/64651 (std::rethrow_exception not found by ADL)

PR libstdc++/64651
* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
to __exception_ptr namespace.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
Remove unnecessary test variables.

From-SVN: r230147

9 years agogcc: configure: fix test == bashisms
Mike Frysinger [Wed, 11 Nov 2015 08:06:03 +0000 (08:06 +0000)]
gcc: configure: fix test == bashisms

From-SVN: r230146

9 years agoaix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and machine asserts.
David Edelsohn [Wed, 11 Nov 2015 04:01:30 +0000 (04:01 +0000)]
aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and machine asserts.

* config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
machine asserts.  Update defines for 64 bit.

From-SVN: r230145

9 years ago[ARM] PR63870 Remove error for invalid lane numbers
Charles Baylis [Wed, 11 Nov 2015 01:11:20 +0000 (01:11 +0000)]
[ARM] PR63870 Remove error for invalid lane numbers

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
lane number.
(neon_vst1_lane<mode>): Likewise.
(neon_vld2_lane<mode>): Likewise.
(neon_vst2_lane<mode>): Likewise.
(neon_vld3_lane<mode>): Likewise.
(neon_vst3_lane<mode>): Likewise.
(neon_vld4_lane<mode>): Likewise.
(neon_vst4_lane<mode>): Likewise.

From-SVN: r230144

9 years ago[ARM] PR63870 Mark lane indices of vldN/vstN with appropriate qualifier
Charles Baylis [Wed, 11 Nov 2015 01:08:43 +0000 (01:08 +0000)]
[ARM] PR63870 Mark lane indices of vldN/vstN with appropriate qualifier

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
qualifier_struct_load_store_lane_index.
(arm_storestruct_lane_qualifiers) Likewise.
* config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
big-endian.
(neon_vst1_lane<mode>) Likewise.
(neon_vld2_lane<mode>) Likewise.
(neon_vst2_lane<mode>) Likewise.
(neon_vld3_lane<mode>) Likewise.
(neon_vst3_lane<mode>) Likewise.
(neon_vld4_lane<mode>) Likewise.
(neon_vst4_lane<mode>) Likewise.

From-SVN: r230143

9 years ago[ARM] PR63870 Add qualifiers for NEON builtins
Charles Baylis [Wed, 11 Nov 2015 01:05:16 +0000 (01:05 +0000)]
[ARM] PR63870 Add qualifiers for NEON builtins

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
qualifier_struct_load_store_lane_index.
(builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
(arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
argument qualifiers.
(arm_expand_neon_builtin): Handle new NEON argument qualifier.
* config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.

From-SVN: r230142

9 years agoDaily bump.
GCC Administrator [Wed, 11 Nov 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r230141

9 years agonvptx.opt (moptimize): New flag.
Nathan Sidwell [Tue, 10 Nov 2015 22:29:20 +0000 (22:29 +0000)]
nvptx.opt (moptimize): New flag.

* config/nvptx/nvptx.opt (moptimize): New flag.
* config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
default.
(nvptx_optimize_inner): New.
(nvptx_process_pars): Call it when optimizing.
* doc/invoke.texi (Nvidia PTX Options): Document -moptimize.

From-SVN: r230137

9 years agors6000.c (rs6000_secondary_reload_direct_move): Remove redundant code.
Bill Schmidt [Tue, 10 Nov 2015 21:52:50 +0000 (21:52 +0000)]
rs6000.c (rs6000_secondary_reload_direct_move): Remove redundant code.

2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
Remove redundant code.

From-SVN: r230136

9 years agolibgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields
Ian Lance Taylor [Tue, 10 Nov 2015 21:38:30 +0000 (21:38 +0000)]
libgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields

    Before Solaris 12 the sendfile function is found in -lsendfile, so look
    for it there.

    Solaris 12 adds some more types that use _in6_addr_t, that need to be
    edited in mksysinfo.

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/16779

From-SVN: r230132

9 years ago[PATCH] Fix minor fallout from operand_address changes
Jeff Law [Tue, 10 Nov 2015 21:11:07 +0000 (14:11 -0700)]
[PATCH] Fix minor fallout from operand_address changes
2015-11-10  Jeff Law  <law@redhat.com>

* config/ft32/ft32.c (ft32_print_operand): Supply mode to
call to output_address.
* config/moxie/moxie.c (moxie_print_operand_address): Similarly.
Add unnamed machine_mode argument.

From-SVN: r230130

9 years agoconfig.gcc (powerpc*-*-*, [...]): Add power9 to hosts that default to 64-bit.
Michael Meissner [Tue, 10 Nov 2015 20:50:39 +0000 (20:50 +0000)]
config.gcc (powerpc*-*-*, [...]): Add power9 to hosts that default to 64-bit.

2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
default to 64-bit.

Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r230123

9 years agore PR go/68255 (cgo-generated constructor not being called)
Ian Lance Taylor [Tue, 10 Nov 2015 20:31:11 +0000 (20:31 +0000)]
re PR go/68255 (cgo-generated constructor not being called)

PR go/68255
    cmd/go: always use --whole-archive for gccgo packages

    This is a backport of https://golang.org/cl/16775.

    This is, in effect, what the gc toolchain does.  It fixes cases where Go
    code refers to a C global variable; without this, if the global variable
    was the only thing visible in the C code, the generated cgo file might
    not get pulled in from the archive, leaving the Go variable
    uninitialized.

    This was reported against gccgo as https://gcc.gnu.org/PR68255 .

    Reviewed-on: https://go-review.googlesource.com/16778

From-SVN: r230120

9 years agoi386.md (*movabs<mode>_1): Add explicit size directives for -masm=intel.
Uros Bizjak [Tue, 10 Nov 2015 19:26:08 +0000 (20:26 +0100)]
i386.md (*movabs<mode>_1): Add explicit size directives for -masm=intel.

* config/i386/i386.md (*movabs<mode>_1): Add explicit
size directives for -masm=intel.
(*movabs<mode>_2): Ditto.

From-SVN: r230119

9 years agoi386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call...
Uros Bizjak [Tue, 10 Nov 2015 17:48:31 +0000 (18:48 +0100)]
i386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call operands.

* config/i386/i386.c (ix86_print_operand): Remove dead code that
tried to avoid (%rip) for call operands.

* config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
argument.  Do not use RIP relative addressing when no_rip is set.
(ix86_print_operand): Update call to ix86_print_operand_address_as.
(ix86_print_operand_address): Ditto.
* config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
absolute movabs operand 0.  Add square braces for -masm=intel.
(*movabs<mode>_2): Ditto for operand 1.

From-SVN: r230117

9 years ago[ARM] Fix costing of vmul+vcvt combine pattern
Kyrylo Tkachov [Tue, 10 Nov 2015 17:29:46 +0000 (17:29 +0000)]
[ARM] Fix costing of vmul+vcvt combine pattern

* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
combine_vcvtf2i pattern.

From-SVN: r230116

9 years ago[ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW
Kyrylo Tkachov [Tue, 10 Nov 2015 17:27:42 +0000 (17:27 +0000)]
[ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW

* config/arm/arm.c (neon_valid_immediate): Remove integer
CONST_DOUBLE handling.  It should never occur.

From-SVN: r230115

9 years ago[AArch64] Move iterators from atomics.md to iterators.md
Matthew Wahab [Tue, 10 Nov 2015 15:59:37 +0000 (15:59 +0000)]
[AArch64] Move iterators from atomics.md to iterators.md

* config/aarch64/atomics.md (unspecv): Move to iterators.md.
(ATOMIC_LDOP): Likewise.
(atomic_ldop): Likewise.
* config/aarch64/iterators.md (unspecv): Moved from atomics.md.
(ATOMIC_LDOP): Likewise.
(atomic_ldop): Likewise.

From-SVN: r230114

9 years agoFix return type of heterogeneous find for sets
Jonathan Wakely [Tue, 10 Nov 2015 15:12:24 +0000 (15:12 +0000)]
Fix return type of heterogeneous find for sets

PR libstdc++/68190
* include/bits/stl_multiset.h (multiset::find): Fix return types.
* include/bits/stl_set.h (set::find): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test find return types.
* testsuite/23_containers/multimap/operations/2.cc: Likewise.
* testsuite/23_containers/multiset/operations/2.cc: Likewise.
* testsuite/23_containers/set/operations/2.cc: Likewise.

From-SVN: r230113

9 years agoUpdate C++17 library implementation status
Jonathan Wakely [Tue, 10 Nov 2015 14:05:01 +0000 (14:05 +0000)]
Update C++17 library implementation status

* doc/xml/manual/status_cxx2017.xml: Update.
* doc/html/*: Regenerate.

From-SVN: r230108

9 years agofirstprivate-1.c: Remove inadvertent commit.
Nathan Sidwell [Tue, 10 Nov 2015 13:51:09 +0000 (13:51 +0000)]
firstprivate-1.c: Remove inadvertent commit.

* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
inadvertent commit.

From-SVN: r230107

9 years agoEnhance pool allocator
Martin Liska [Tue, 10 Nov 2015 12:27:33 +0000 (13:27 +0100)]
Enhance pool allocator

* alloc-pool.h (allocate_raw): New function.
(operator new (size_t, object_allocator<T> &a)): Use the
function instead of object_allocator::allocate).

From-SVN: r230105

9 years agosse.md (HALFMASKMODE): New attribute.
Ilya Enkovich [Tue, 10 Nov 2015 12:19:42 +0000 (12:19 +0000)]
sse.md (HALFMASKMODE): New attribute.

gcc/

* config/i386/sse.md (HALFMASKMODE): New attribute.
(DOUBLEMASKMODE): New attribute.
(vec_pack_trunc_qi): New.
(vec_pack_trunc_<mode>): New.
(vec_unpacks_lo_hi): New.
(vec_unpacks_lo_si): New.
(vec_unpacks_lo_di): New.
(vec_unpacks_hi_hi): New.
(vec_unpacks_hi_<mode>): New.

gcc/testsuite/

* gcc.target/i386/mask-pack.c: New test.
* gcc.target/i386/mask-unpack.c: New test.

From-SVN: r230104

9 years agooptabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab.
Ilya Enkovich [Tue, 10 Nov 2015 12:17:30 +0000 (12:17 +0000)]
optabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab.

gcc/

* optabs.c (expand_binop_directly): Allow scalar mode for
vec_pack_trunc_optab.
* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
boolean vector producers from pattern sequence when computing VF.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
vect_recog_mask_conversion_pattern.
(search_type_for_mask): Choose the smallest
type if different size types are mixed.
(build_mask_conversion): New.
(vect_recog_mask_conversion_pattern): New.
(vect_pattern_recog_1): Allow scalar mode for boolean vectype.
* tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
load with pattern.
(vectorizable_conversion): Support boolean vectors.
(free_stmt_vec_info): Allow patterns for statements with no lhs.
* tree-vectorizer.h (NUM_PATTERNS): Increase to 14.

From-SVN: r230103

9 years agoi386-protos.h (ix86_expand_sse_movcc): New.
Ilya Enkovich [Tue, 10 Nov 2015 12:15:42 +0000 (12:15 +0000)]
i386-protos.h (ix86_expand_sse_movcc): New.

gcc/

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
* config/i386/i386.c (ix86_expand_sse_movcc): Make public.
Cast mask to FP mode if required.
* config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
(vcond_mask_<mode><avx512fmaskmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_v2div2di): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.

From-SVN: r230102

9 years agooptabs-query.h (get_vcond_mask_icode): New.
Ilya Enkovich [Tue, 10 Nov 2015 12:14:19 +0000 (12:14 +0000)]
optabs-query.h (get_vcond_mask_icode): New.

gcc/

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* optabs-query.h (get_vcond_mask_icode): New.
* optabs-tree.c (expand_vec_cond_expr_p): Use
get_vcond_mask_icode for VEC_COND_EXPR with mask.
* optabs.c (expand_vec_cond_mask_expr): New.
(expand_vec_cond_expr): Use get_vcond_mask_icode
when possible.
* optabs.def (vcond_mask_optab): New.
* tree-vect-patterns.c (vect_recog_bool_pattern): Don't
generate redundant comparison for COND_EXPR.
* tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
as a condition.
(vectorizable_condition): Likewise.
* tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
cond_exp with no embedded comparison.
(vect_build_slp_tree_1): Likewise.

From-SVN: r230101

9 years agosse.md (maskload<mode>): Rename to ...
Ilya Enkovich [Tue, 10 Nov 2015 12:08:02 +0000 (12:08 +0000)]
sse.md (maskload<mode>): Rename to ...

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* config/i386/sse.md (maskload<mode>): Rename to ...
(maskload<mode><sseintvecmodelower>): ... this.
(maskstore<mode>): Rename to ...
(maskstore<mode><sseintvecmodelower>): ... this.
(maskload<mode><avx512fmaskmodelower>): New.
(maskstore<mode><avx512fmaskmodelower>): New.

From-SVN: r230100

9 years agointernal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
Ilya Enkovich [Tue, 10 Nov 2015 12:06:05 +0000 (12:06 +0000)]
internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.

gcc/

* internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
(expand_MASK_STORE): Adjust to maskstore optab changes.
* optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
 Adjust to maskload, maskstore optab changes.
* optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
* optabs.def (maskload_optab): Transform into convert optab.
(maskstore_optab): Likewise.
* tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
can_vec_mask_load_store_p signature change.
(predicate_mem_writes): Use boolean mask.
* tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
can_vec_mask_load_store_p signature change.  Allow invariant masks.
(vectorizable_operation): Ignore type precision for boolean vectors.

gcc/testsuite/

* gcc.target/i386/avx2-vec-mask-bit-not.c: New test.

From-SVN: r230099

9 years agoexpr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
Ilya Enkovich [Tue, 10 Nov 2015 11:57:34 +0000 (11:57 +0000)]
expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.

gcc/

* expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
(const_vector_mask_from_tree): New.
(const_vector_from_tree): Use const_vector_mask_from_tree
for boolean vectors.
* optabs-query.h (get_vec_cmp_icode): New.
* optabs-tree.c (expand_vec_cmp_expr_p): New.
* optabs-tree.h (expand_vec_cmp_expr_p): New.
* optabs.c (vector_compare_rtx): Add OPNO arg.
(expand_vec_cond_expr): Adjust to vector_compare_rtx change.
(expand_vec_cmp_expr): New.
* optabs.def (vec_cmp_optab): New.
(vec_cmpu_optab): New.
* optabs.h (expand_vec_cmp_expr): New.
* tree-vect-generic.c (expand_vector_comparison): Add vector
comparison optabs check.
* tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
operations for VF.  Add mask type computation.
* tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
(vectorizable_comparison): New.
(vect_analyze_stmt): Add vectorizable_comparison.
(vect_transform_stmt): Likewise.
(vect_init_vector): Support boolean vector invariants.
(vect_get_vec_def_for_operand): Add VECTYPE arg.
(vectorizable_condition): Directly provide vectype for invariants
used in comparison.
* tree-vectorizer.h (get_mask_type_for_scalar_type): New.
(enum vect_var_kind): Add vect_mask_var.
(enum stmt_vec_info_type): Add comparison_vec_info_type.
(vectorizable_comparison): New.
(vect_get_vec_def_for_operand): Add VECTYPE arg.
* tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
(vect_create_destination_var): Likewise.
* tree-vect-patterns.c (check_bool_pattern): Check fails
if we can vectorize comparison directly.
(search_type_for_mask): New.
(vect_recog_bool_pattern): Support cases when bool pattern
check fails.
* tree-vect-slp.c (vect_build_slp_tree_1): Allow
comparison statements.
(vect_get_constant_vectors): Support boolean vector
constants.
* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
(ix86_expand_int_vec_cmp): New.
(ix86_expand_fp_vec_cmp): New.
* config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
op_true and op_false.
(ix86_int_cmp_code_to_pcmp_immediate): New.
(ix86_fp_cmp_code_to_pcmp_immediate): New.
(ix86_cmp_code_to_pcmp_immediate): New.
(ix86_expand_mask_vec_cmp): New.
(ix86_expand_fp_vec_cmp): New.
(ix86_expand_int_sse_cmp): New.
(ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
(ix86_expand_int_vec_cmp): New.
(ix86_get_mask_mode): New.
(TARGET_VECTORIZE_GET_MASK_MODE): New.
* config/i386/sse.md (avx512fmaskmodelower): New.
(vec_cmp<mode><avx512fmaskmodelower>): New.
(vec_cmp<mode><sseintvecmodelower>): New.
(vec_cmpv2div2di): New.
(vec_cmpu<mode><avx512fmaskmodelower>): New.
(vec_cmpu<mode><sseintvecmodelower>): New.
(vec_cmpuv2div2di): New.

gcc/testsuite/

* gcc.dg/vect/slp-cond-5.c: New test.

From-SVN: r230098

9 years ago* include/bits/functional_hash.h: Fix grammar in comment.
Jonathan Wakely [Tue, 10 Nov 2015 11:12:33 +0000 (11:12 +0000)]
* include/bits/functional_hash.h: Fix grammar in comment.

From-SVN: r230097

9 years agore PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above on...
Richard Biener [Tue, 10 Nov 2015 10:14:02 +0000 (10:14 +0000)]
re PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above on x86_64-linux-gnu)

2015-11-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68240
* tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
properly.
(visit_phi): For PHIs with just a single executable edge
take its value directly.
(expressions_equal_p): Handle VN_TOP properly.

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

From-SVN: r230095

9 years agotree-vect-data-refs.c (vect_slp_analyze_node_dependences): Handle memory using/clobbe...
Richard Biener [Tue, 10 Nov 2015 10:12:13 +0000 (10:12 +0000)]
tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF conservatively.

2015-11-10  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
conservatively.

From-SVN: r230094

9 years agore PR tree-optimization/56118 (Piecewise vector / complex initialization from constan...
Richard Biener [Tue, 10 Nov 2015 09:43:54 +0000 (09:43 +0000)]
re PR tree-optimization/56118 (Piecewise vector / complex initialization from constants not combined)

2015-11-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56118
* tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
cost favor vectorized version.

* gcc.target/i386/pr56118.c: New testcase.

From-SVN: r230091

9 years ago[AArch64][2/3] Implement negcc, notcc optabs
Kyrylo Tkachov [Tue, 10 Nov 2015 09:37:51 +0000 (09:37 +0000)]
[AArch64][2/3] Implement negcc, notcc optabs

* config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
* config/aarch64/iterators.md (NEG_NOT): New code iterator.
(neg_not_op): New code attribute.

* gcc.target/aarch64/cond_op_imm_1.c: New test.

From-SVN: r230090

9 years ago[optabs][ifcvt][1/3] Define negcc, notcc optabs
Kyrylo Tkachov [Tue, 10 Nov 2015 09:35:11 +0000 (09:35 +0000)]
[optabs][ifcvt][1/3] Define negcc, notcc optabs

* ifcvt.c (noce_try_inverse_constants): New function.
(noce_process_if_block): Call it.
* optabs.h (emit_conditional_neg_or_complement): Declare prototype.
* optabs.def (negcc_optab, notcc_optab): Declare.
* optabs.c (emit_conditional_neg_or_complement): New function.
* doc/tm.texi (Standard Names): Document negcc, notcc names.

From-SVN: r230089

9 years ago[haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher lookahead...
Kyrylo Tkachov [Tue, 10 Nov 2015 09:22:58 +0000 (09:22 +0000)]
[haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher lookahead if not in haifa sched

PR rtl-optimization/68236
* haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
if insn_queue doesn't exist.
(haifa_sched_finish): Reset insn_queue to NULL.

From-SVN: r230088

9 years agoTie chains for move instructions.
Robert Suchanek [Tue, 10 Nov 2015 09:12:52 +0000 (09:12 +0000)]
Tie chains for move instructions.

gcc/
* regrename.c (create_new_chain): Initialize renamed and tied_chain.
(build_def_use): Initialize terminated_this_insn.
(find_best_rename_reg): Pick and check register from the tied chain.
(regrename_do_replace): Mark head as renamed.
(struct du_head *terminated_this_insn). New static variable.
(scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
* regrename.h (struct du_head): Add tied_chain, renamed members.

From-SVN: r230087

9 years ago* gfortran.dg/pr68251.f90: New test.
Eric Botcazou [Tue, 10 Nov 2015 09:01:58 +0000 (09:01 +0000)]
* gfortran.dg/pr68251.f90: New test.

From-SVN: r230086

9 years agoWorkaround PR68256 on AArch64
Ramana Radhakrishnan [Tue, 10 Nov 2015 08:35:21 +0000 (08:35 +0000)]
Workaround PR68256 on AArch64

> This is causing a bootstrap comparison failure in gcc/go/gogo.o.

I've had a look at this and the trigger is the
aarch64_use_constant_blocks_p change which appears to be causing a
bootstrap comparison failure because of differences to offsets when
built with debug and without debug. I don't think the problem is
specifically in the backend but this needs some careful
investigation. For now, in the interest of go bootstraps continuing on
trunk - I'm proposing a patch that partially rolls back the change in
aarch64_use_constant_blocks_p and am still looking into the issue but
it will take me some more time to get to the bottom of the issue.

Bootstrapped on aarch64-none-linux-gnu including (c,c++ and go) -
testing finished ok.

2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR bootstrap/68256
* config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
Return false.

From-SVN: r230085

9 years agoparser.c (cp_finalize_oacc_routine): New boolean first argument.
Cesar Philippidis [Tue, 10 Nov 2015 05:23:04 +0000 (21:23 -0800)]
parser.c (cp_finalize_oacc_routine): New boolean first argument.

gcc/cp/
* parser.c (cp_finalize_oacc_routine): New boolean first argument.
(cp_ensure_no_oacc_routine): Update call to cp_finalize_oacc_routine.
(cp_parser_simple_declaration): Maintain a boolean first to keep track
of each new declarator.  Propagate it to cp_parser_init_declarator.
(cp_parser_init_declarator): New boolean first argument.  Propagate it
to cp_parser_save_member_function_body and cp_finalize_oacc_routine.
(cp_parser_member_declaration): Likewise.
(cp_parser_single_declaration): Update call to
cp_parser_init_declarator.
(cp_parser_save_member_function_body): New boolean first_decl argument.
Propagate it to cp_finalize_oacc_routine.
(cp_parser_finish_oacc_routine): New boolean first argument.  Use it to
determine if multiple declarators follow a routine construct.
(cp_parser_oacc_routine): Update call to cp_parser_finish_oacc_routine.

gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Enable c++ tests.

From-SVN: r230082

9 years agoPR c++/67913 - new expression with negative size not diagnosed
Martin Sebor [Tue, 10 Nov 2015 02:23:34 +0000 (02:23 +0000)]
PR c++/67913 - new expression with negative size not diagnosed

PR c++/67913 - new expression with negative size not diagnosed
PR c++/67927 - array new expression with excessive number of elements
               not diagnosed

gcc/cp/
* call.c (build_operator_new_call): Do not assume size_check
is non-null, analogously to the top half of the function.
* init.c (build_new_1): Detect and diagnose array sizes in
excess of the maximum of roughly SIZE_MAX / 2.
Insert a runtime check only for arrays with a non-constant size.
(build_new): Detect and diagnose negative array sizes.

gcc/testsuite/
* init/new45.C: New test to verify that operator new is invoked
with or without overhead for a cookie.
* init/new44.C: New test for placement new expressions for arrays
with excessive number of elements.
* init/new43.C: New test for placement new expressions for arrays
with negative number of elements.
* other/new-size-type.C: Expect array new expression with
an excessive number of elements to be rejected.

From-SVN: r230081

9 years agoroutine-1.c: New.
Nathan Sidwell [Tue, 10 Nov 2015 01:01:15 +0000 (01:01 +0000)]
routine-1.c: New.

gcc/testsuite/
* c-c++-common/goacc/routine-1.c: New.
* c-c++-common/goacc/routine-2.c: New.
* c-c++-common/goacc/routine-3.c: New.
* c-c++-common/goacc/routine-4.c: New.
* c-c++-common/goacc/routine-5.c: New.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.

From-SVN: r230080

9 years agore PR target/57845 (ICE with -freg-struct-return on SPARC)
Eric Botcazou [Tue, 10 Nov 2015 00:45:03 +0000 (00:45 +0000)]
re PR target/57845 (ICE with -freg-struct-return on SPARC)

PR target/57845
* config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
not promote the mode for aggregate types.

From-SVN: r230074

9 years agoomp-low.h (replace_oacc_fn_attrib, [...]): Declare.
Nathan Sidwell [Tue, 10 Nov 2015 00:27:26 +0000 (00:27 +0000)]
omp-low.h (replace_oacc_fn_attrib, [...]): Declare.

* omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
* omp-low.c (build_oacc_routine_dims): New.

c/
* c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
routine arg.
(c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
(c_parser_pragma): Parse 'acc routine'.
(OACC_ROUTINE_CLAUSE_MARK): Define.
(c_parser_oacc_routine, (c_finish_oacc_routine): New.

c-family/
* c-pragma.c (oacc_pragmas): Add "routine".
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.

cp/
* parser.h (struct cp_parser): Add oacc_routine field.
* parser.c (cp_ensure_no_oacc_routine): New.
(cp_parser_new): Initialize oacc_routine field.
(cp_parser_linkage_specification): Call cp_ensure_no_oacc_routine.
(cp_parser_namespace_definition,
cp_parser_class_specifier_1): Likewise.
(cp_parser_init_declarator): Call cp_finalize_oacc_routine.
(cp_parser_function_definition,
cp_parser_save_member_function_body): Likewise.
(OACC_ROUTINE_CLAUSE_MASK): New.
(cp_parser_finish_oacc_routine, cp_parser_oacc_routine,
cp_finalize_oacc_routine): New.
(cp_parser_pragma): Adjust omp_declare_simd checking.  Call
cp_ensure_no_oacc_routine.
(cp_parser_pragma): Add OpenACC routine handling.

From-SVN: r230072

9 years agoDaily bump.
GCC Administrator [Tue, 10 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r230069

9 years agoconstraints.md (wF constraint): New constraints for power9/toc fusion.
Michael Meissner [Tue, 10 Nov 2015 00:04:03 +0000 (00:04 +0000)]
constraints.md (wF constraint): New constraints for power9/toc fusion.

[gcc]
2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/constraints.md (wF constraint): New constraints
for power9/toc fusion.
(wG constraint): Likewise.

* config/rs6000/predicates.md (u6bit_cint_operand): New
predicate, recognize 0..63.
(upper16_cint_operand): New predicate for power9 and toc fusion.
(fpr_reg_operand): Likewise.
(toc_fusion_or_p9_reg_operand): Likewise.
(toc_fusion_mem_raw): Likewise.
(toc_fusion_mem_wrapped): Likewise.
(fusion_gpr_addis): If power9 fusion, allow fusion for a larger
address range.
(fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
instead.
(fusion_addis_mem_combo_load): Add support for power9 fusion of
floating point loads, floating point stores, and gpr stores.
(fusion_addis_mem_combo_store): Likewise.
(fusion_offsettable_mem_operand): Likewise.

* config/rs6000/rs6000-protos.h (emit_fusion_addis): Add
declarations.
(emit_fusion_load_store): Likewise.
(fusion_p9_p): Likewise.
(expand_fusion_p9_load): Likewise.
(expand_fusion_p9_store): Likewise.
(emit_fusion_p9_load): Likewise.
(emit_fusion_p9_store): Likewise.
(fusion_wrap_memory_address): Likewise.

* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
elements for power9 fusion.
(rs6000_debug_print_mode): Rework debug information to print more
information about fusion.
(rs6000_init_hard_regno_mode_ok): Setup for power9 fusion
support.
(rs6000_legitimate_address_p): Recognize toc fusion as a valid
offsettable memory address.
(rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
(emit_fusion_gpr_load): Move most of the code from
emit_fusion_gpr_load into emit_fusion-addis that handles both
power8 and power9 fusion.
(emit_fusion_addis): Likewise.
(emit_fusion_load_store): Likewise.
(fusion_wrap_memory_address): Add support for TOC fusion.
(fusion_split_address): Likewise.
(fusion_p9_p): Add support for power9 fusion.
(expand_fusion_p9_load): Likewise.
(expand_fusion_p9_store): Likewise.
(emit_fusion_p9_load): Likewise.
(emit_fusion_p9_store): Likewise.

* config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
new instructions in ISA 3.0.
(TARGET_CTZ): Likewise.
(TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
(TARGET_TOC_FUSION_FP): Likewise.

* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
fusion unspecs.
(UNSPEC_FUSION_ADDIS): Likewise.
(QHSI mode iterator): New iterator for power9 fusion.
(GPR_FUSION): Likewise.
(FPR_FUSION): Likewise.
(mod<mode>3): Add support for ISA 3.0
modulus instructions.
(umod<mode>3): Likewise.
(divmod peephole): Likewise.
(udivmod peephole): Likewise.
(ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
instructions.
(ctz<mode>2_h): Likewise.
(ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
(ashdi3_extswsli_dot): Likewise.
(ashdi3_extswsli_dot2): Likewise.
(power9 fusion splitter): New power9/toc fusion support.
(toc_fusionload_<mode>): Likewise.
(toc_fusionload_di): Likewise.
(fusion_gpr_load_<mode>): Update predicate function.
(power9 fusion peephole2s): New power9/toc fusion support.
(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
(fusion_p9_<mode>_constant): Likewise.

[gcc/testsuite]
2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

* lib/target-supports.exp (check_p8vector_hw_available): Split
long line.
(check_vsx_hw_available): Likewise.
(check_p9vector_hw_available): Add new checks for ISA 3.0 hardware
support and for PowerPC float128 support.
(check_p9modulo_hw_available): Likewise.
(check_ppc_float128_sw_available): Likewise.
(check_ppc_float128_hw_available): Likewise.
(check_effective_target_powerpc_p9vector_ok): Likewise.
(check_effective_target_powerpc_p9modulo_ok): Likewise.
(check_effective_target_powerpc_float128_sw_ok): Likewise.
(check_effective_target_powerpc_float128_hw_ok): Likewise.
(is-effective-target): Add new PowerPc targets.
(is-effective-target-keyword): Likewise.
(check_vect_support_and_set_flags): If we have ISA 3.0 vector
instructions, use it.

* gcc.target/powerpc/mod-1.c: New test for ISA 3.0 instructions.
* gcc.target/powerpc/mod-2.c: Likewise.
* gcc.target/powerpc/ctz-1.c: Likewise.
* gcc.target/powerpc/ctz-2.c: Likewise.
* gcc.target/powerpc/extswsli-1.c: Likewise.
* gcc.target/powerpc/extswsli-2.c: Likewise.
* gcc.target/powerpc/extswsli-3.c: Likewise.

* gcc.target/powerpc/fusion.c (fusion_vector): Move to fusion2.c
and allow the test on PowerPC LE.
* gcc.target/powerpc/fusion2.c (fusion_vector): Likewise.
* gcc.target/powerpc/fusion3.c: New file, test power9 fusion.

* gcc.target/powerpc/float128-call.c: Use powerpc_float128_sw_ok
check instead of powerpc_vsx_ok.
* gcc.target/powerpc/float128-mix.c: Likewise.

From-SVN: r230066

9 years agooptabs.c (prepare_libcall_arg): New function.
Steve Ellcey [Mon, 9 Nov 2015 23:56:33 +0000 (23:56 +0000)]
optabs.c (prepare_libcall_arg): New function.

2015-11-09  Steve Ellcey  <sellcey@imgtec.com>

* optabs.c (prepare_libcall_arg): New function.
(expand_fixed_convert): Add call to prepare_libcall_arg.

From-SVN: r230065

9 years ago* gcc.dg/sso/*.c: Robustify dg-output directives.
Eric Botcazou [Mon, 9 Nov 2015 23:32:48 +0000 (23:32 +0000)]
* gcc.dg/sso/*.c: Robustify dg-output directives.

From-SVN: r230063

9 years ago[sched] Dump dependency graph to a dot file
Nikolai Bozhenov [Mon, 9 Nov 2015 23:29:36 +0000 (23:29 +0000)]
[sched] Dump dependency graph to a dot file

* sched-int.h (dump_rgn_dependencies_dot): Declare
* sched-rgn.c (dump_rgn_dependencies_dot): New function
* print-rtl.h (print_insn): Add prototype

From-SVN: r230062

9 years agoChange behavior of -fsched-verbose option
Nikolai Bozhenov [Mon, 9 Nov 2015 23:26:15 +0000 (23:26 +0000)]
Change behavior of -fsched-verbose option

* haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
* common.opt (-fsched-verbose): Set default value to 1.
* invoke.texi (-fsched-verbose): Update the option's description.

From-SVN: r230061

9 years agovisium.h (PRINT_OPERAND): Delete.
Eric Botcazou [Mon, 9 Nov 2015 22:53:31 +0000 (22:53 +0000)]
visium.h (PRINT_OPERAND): Delete.

* config/visium/visium.h (PRINT_OPERAND): Delete.
(PRINT_OPERAND_PUNCT_VALID_P): Likewise.
(PRINT_OPERAND_ADDRESS): Likewise.
* config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
to...
(visium_print_operand_punct_valid_p): ...this.  New function.
(TARGET_PRINT_OPERAND): Define to...
(print_operand): Rename to...
(visium_print_operand): ...this.
(TARGET_PRINT_OPERAND_ADDRESS): Define to...
(visium_output_address): Rename to...
(visium_print_operand_address): ...this.
(print_operand_address): Delete.

From-SVN: r230060

9 years agore PR middle-end/68259 ([sso] tree checking failure in reverse_storage_order_for_comp...
Eric Botcazou [Mon, 9 Nov 2015 22:40:44 +0000 (22:40 +0000)]
re PR middle-end/68259 ([sso] tree checking failure in reverse_storage_order_for_component_p, at tree.h:4392)

PR middle-end/68259
* tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
Check that the type of the first operand is an aggregate type.

From-SVN: r230056

9 years agoomp-low.c: Fix some OpenACC comment typos.
Nathan Sidwell [Mon, 9 Nov 2015 21:56:42 +0000 (21:56 +0000)]
omp-low.c: Fix some OpenACC comment typos.

* omp-low.c: Fix some OpenACC comment typos.
(lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
* omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
BUILT_IN_GOACC_GET_NUM_THREADS): Delete.

From-SVN: r230054

9 years ago2015-11-09 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Mon, 9 Nov 2015 21:10:18 +0000 (21:10 +0000)]
2015-11-09  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_algo.h
(partial_sort_copy): Instantiate std::iterator_traits only if concept
checks.
(lower_bound): Likewise.
(upper_bound): Likewise.
(equal_range): Likewise.
(binary_search): Likewise.
* include/bits/stl_heap.h (pop_heap): Likewise.

From-SVN: r230052

9 years agoi386.md (*strmovqi_1): Fix insn enable condition.
Uros Bizjak [Mon, 9 Nov 2015 20:06:57 +0000 (21:06 +0100)]
i386.md (*strmovqi_1): Fix insn enable condition.

* config/i386/i386.md (*strmovqi_1): Fix insn enable condition.

From-SVN: r230050

9 years agoRe: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
Jeff Law [Mon, 9 Nov 2015 19:56:57 +0000 (12:56 -0700)]
Re: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier

* tree-ssanames.c (verify_ssaname_freelists): Simplify check for
being in gimple/ssa form.  Remove redundant check for SSA_NAME.
Fix comment typo.

From-SVN: r230049

9 years agopr66326.cc: Do not include cilk.h.
Uros Bizjak [Mon, 9 Nov 2015 19:49:44 +0000 (20:49 +0100)]
pr66326.cc: Do not include cilk.h.

* g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h.
(main): Use _Cilk_spawn instead of cilk_spawn.

From-SVN: r230048

9 years agoResolve DejaGnu hard stop
Thomas Schwinge [Mon, 9 Nov 2015 17:53:02 +0000 (18:53 +0100)]
Resolve DejaGnu hard stop

gcc/testsuite/
* gcc.target/i386/addr-space-3.c: Fix quoting in dg-final
scan-assembler directive.

From-SVN: r230038

9 years agoSupport sized delete.
Torvald Riegel [Mon, 9 Nov 2015 17:30:24 +0000 (17:30 +0000)]
Support sized delete.

This adds transactional clones of the sized version of operator delete.

From-SVN: r230036

9 years agors6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9).
Michael Meissner [Mon, 9 Nov 2015 16:56:22 +0000 (16:56 +0000)]
rs6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9).

2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
ISA 3.0 (power9).
(-mpower9-vector): Likewise.
(-mpower9-dform): Likewise.
(-mpower9-minmax): Likewise.
(-mtoc-fusion): Likewise.
(-mmodulo): Likewise.
(-mfloat128-hardware): Likewise.

* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
mask for ISA 3.0 (power9).
(POWERPC_MASKS): Add new ISA 3.0 switches.
(power9 cpu): Add power9 cpu.

* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for
power9.
(ASM_CPU_SPEC): Likewise.
(EXTRA_SPECS): Likewise.

* config/rs6000/rs6000-opts.h (enum processor_type): Add
PROCESSOR_POWER9.

* config/rs6000/rs6000.c (power9_cost): Initial cost setup for
power9.
(rs6000_debug_reg_global): Add support for power9 fusion.
(rs6000_setup_reg_addr_masks): Cache mode size.
(rs6000_option_override_internal): Until real power9 tuning is
added, use -mtune=power8 for -mcpu=power9.
(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
of Altivec registers.
(rs6000_option_override_internal): Add support for ISA 3.0
switches.
(rs6000_loop_align): Add support for power9 cpu.
(rs6000_file_start): Likewise.
(rs6000_adjust_cost): Likewise.
(rs6000_issue_rate): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_opt_masks): Likewise.

* config/rs6000/rs6000.md (cpu attribute): Add power9.
* config/rs6000/rs6000-tables.opt: Regenerate.

* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
_ARCH_PWR9 if power9 support is available.

* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.

* configure.ac: Determine if the assembler supports the ISA 3.0
instructions.
* config.in (HAVE_AS_POWER9): Likewise.
* configure: Regenerate.

* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
switches.

From-SVN: r230031

9 years ago[AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW
Kyrylo Tkachov [Mon, 9 Nov 2015 15:55:56 +0000 (15:55 +0000)]
[AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW

* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
Remove integer CONST_DOUBLE handling.  It should never occur.

From-SVN: r230030

9 years ago[AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT
Kyrylo Tkachov [Mon, 9 Nov 2015 15:53:26 +0000 (15:53 +0000)]
[AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT

PR target/68129
* config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
* config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
Delete VOIDmode case.  Assert that mode is not VOIDmode.
* config/aarch64/predicates.md (const0_operand): Remove const_double
match.

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

From-SVN: r230029

9 years agoFix memory leaks in IPA.
Martin Liska [Mon, 9 Nov 2015 15:47:01 +0000 (16:47 +0100)]
Fix memory leaks in IPA.

* ipa-inline-analysis.c (estimate_function_body_sizes): Call
body_info release function.
* ipa-prop.c (ipa_release_body_info): New function.
(ipa_analyze_node): Call the function.
(ipa_node_params::~ipa_node_params): Release known_csts.
* ipa-prop.h (ipa_release_body_info): Declare.

From-SVN: r230028

9 years agoFix memory leaks and use a pool_allocator
Martin Liska [Mon, 9 Nov 2015 15:45:59 +0000 (16:45 +0100)]
Fix memory leaks and use a pool_allocator

* gcc.c (record_temp_file): Release name string.
* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead
of vec.
* lra-lives.c (free_live_range_list): Utilize
lra_live_range_pool for allocation and deallocation.
(create_live_range): Likewise.
(copy_live_range): Likewise.
(lra_merge_live_ranges): Likewise.
(remove_some_program_points_and_update_live_ranges): Likewise.
(lra_create_live_ranges_1): Release point_freq_vec that can
be not freed from previous iteration of the function.
* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of
vec.
* tree-sra.c (sra_deinitialize): Release all vectors in
base_access_vec.
* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
Release edge_info for a removed edge.
(thread_through_all_blocks): Free region vector.
* tree-ssa.h (free_dom_edge_info): Declare function extern.

From-SVN: r230027

9 years ago[PR debug/67192] Further fix C loops' back-jump location
Andreas Arnez [Mon, 9 Nov 2015 15:35:10 +0000 (15:35 +0000)]
[PR debug/67192] Further fix C loops' back-jump location

gcc/c/ChangeLog:

PR debug/67192
* c-typeck.c (c_finish_loop): For unconditional loops, set the
location of the backward-goto to the start of the loop body.

gcc/testsuite/ChangeLog:

PR debug/67192
* gcc.dg/guality/pr67192.c (f3, f4): New functions.
(main): Invoke them.

From-SVN: r230024

9 years ago[PR debug/67192] Fix C loops' back-jump location
Andreas Arnez [Mon, 9 Nov 2015 15:31:32 +0000 (15:31 +0000)]
[PR debug/67192] Fix C loops' back-jump location

gcc/c/ChangeLog:

PR debug/67192
* c-parser.c (c_parser_while_statement): Finish the loop before
parsing ahead for misleading indentation.
(c_parser_for_statement): Likewise.

gcc/testsuite/ChangeLog:

PR debug/67192
* gcc.dg/guality/pr67192.c: New test.

From-SVN: r230023

9 years agooptabs.c (expand_vec_cond_expr): Always get sign from type.
Ilya Enkovich [Mon, 9 Nov 2015 15:11:02 +0000 (15:11 +0000)]
optabs.c (expand_vec_cond_expr): Always get sign from type.

gcc/

* optabs.c (expand_vec_cond_expr): Always get sign from type.
* tree.c (wide_int_to_tree): Support negative values for boolean.
(build_nonstandard_boolean_type): Use signed type for booleans.

From-SVN: r230022

9 years agore PR tree-optimization/68248 (ICE on valid code at -O3 on x86_64-linux-gnu in unifor...
Richard Biener [Mon, 9 Nov 2015 14:47:09 +0000 (14:47 +0000)]
re PR tree-optimization/68248 (ICE on valid code at -O3 on x86_64-linux-gnu in uniform_vector_p, at tree.c:10807)

2015-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68248
* tree-vect-generic.c (expand_vector_operations_1): Handle
scalar rhs2.

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

From-SVN: r230021

9 years agore PR tree-optimization/56118 (Piecewise vector / complex initialization from constan...
Richard Biener [Mon, 9 Nov 2015 12:59:17 +0000 (12:59 +0000)]
re PR tree-optimization/56118 (Piecewise vector / complex initialization from constants not combined)

2015-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56118
* tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
function.
(vect_slp_analyze_data_ref_dependences): Instead of computing
all dependences of the region DRs just analyze the code motions
SLP vectorization will perform.  Remove SLP instances that
cannot have their store/load motions applied.
(vect_analyze_data_refs): Allow DRs without a vectype
in BB vectorization.

* gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Adjust.

From-SVN: r230020

9 years agoMachine modes for address printing.
Julian Brown [Mon, 9 Nov 2015 12:16:55 +0000 (12:16 +0000)]
Machine modes for address printing.

* final.c (output_asm_insn): Pass VOIDmode to output_address.
(output_address): Add MODE argument. Pass to print_operand_address
hook.
* targhooks.c (default_print_operand_address): Add MODE argument.
* targhooks.h (default_print_operand_address): Update prototype.
* output.h (output_address): Update prototype.
* target.def (print_operand_address): Add MODE argument.
* config/vax/vax.c (print_operand_address): Pass VOIDmode to
output_address.
(print_operand): Pass access mode to output_address.
* config/mcore/mcore.c (mcore_print_operand_address): Add MODE
argument.
(mcore_print_operand): Update calls to mcore_print_operand_address.
* config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
output_address.
* config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
output_address.
* config/tilegx/tilegx.c (output_memory_reference_mode): Remove
global.
(tilegx_print_operand): Don't set above global. Update calls to
output_address.
(tilegx_print_operand_address): Add MODE argument. Use instead of
output_memory_reference_mode global.
* config/frv/frv.c (frv_print_operand_address): Add MODE argument.
(frv_print_operand): Pass mode to frv_print_operand_address calls.
* config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
output_address.
* config/cris/cris.c (cris_print_operand_address): Add MODE
argument.
(cris_print_operand): Pass mode to output_address calls.
* config/spu/spu.c (print_operand): Pass mode to output_address
calls.
* config/aarch64/aarch64.h (aarch64_print_operand)
(aarch64_print_operand_address): Remove prototypes.
* config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
global.
(aarch64_print_operand): Make static. Update calls to
output_address.
(aarch64_print_operand_address): Add MODE argument. Use instead of
aarch64_memory_reference_mode global.
(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
hooks.
* config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
Delete macro definitions.
* config/pa/pa.c (pa_print_operand): Pass mode in output_address
calls.
* config/xtensa/xtensa.c (print_operand): Pass mode in
output_address calls.
* config/h8300/h8300.c (h8300_print_operand_address): Add MODE
argument.
(h83000_print_operand): Update calls to h8300_print_operand_address
and output_address.
* config/ia64/ia64.c (ia64_print_operand_address): Add MODE
argument.
* config/tilepro/tilepro.c (output_memory_reference_mode): Delete
global.
(tilepro_print_operand): Pass mode to output_address.
(tilepro_print_operand_address): Add MODE argument. Use instead of
output_memory_reference_mode.
* config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
(nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
to output_address calls.
(nvptx_print_operand_address): Add MODE argument.
* config/alpha/alpha.c (print_operand): Pass mode argument in
output_address calls.
* config/m68k/m68k.c (print_operand): Pass mode argument in
output_address call.
* config/avr/avr.c (avr_print_operand_address): Add MODE argument.
(avr_print_operand): Update calls to avr_print_operand_address.
* config/sparc/sparc.c (sparc_print_operand_address): Add MODE
argument. Update calls to output_address.
(sparc_print_operand): Pass mode to output_address.
* config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
argument.
(iq2000_print_operand): Pass mode in output_address calls.
* config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
MODE argument.
(xstormy16_print_operand): Pass mode to
xstormy16_print_operand_address calls.
* config/mips/mips.c (mips_print_operand): Update calls to
output_address.
(mips_print_operand_address): Add MODE argument.
* config/epiphany/epiphany.c (epiphany_print_operand): Update calls
to output_address.
(epiphany_print_operand_address): Add MODE argument. Add FIXME note.
* config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
output_address.
* config/rx/rx.c (rx_print_operand_address): Add MODE argument.
(rx_print_operand): Update calls to output_address,
rx_print_operand_address.
* config/nds32/nds32.c (nds32_print_operand): Update calls to
output_address.
(nds32_print_operand_address): Add MODE argument.
* config/rs6000/rs6000.c (print_operand): Pass mem mode to
output_address calls.
* config/c6x/c6x.c (print_address_offset): Pass mem mode to
output_address call.
(c6x_print_address_operand): Update calls to output_address.
(c6x_print_operand_address): Pass mode to above.
* config/v850/v850.c (v850_print_operand_address): Add MODE
argument.
(v850_print_operand): Pass mode to v850_print_operand_address,
output_address.
* config/mmix/mmix.c (mmix_print_operand_address): Add MODE
argument.
(mmix_print_operand): Pass mode in output_address calls.
* config/sh/sh.c (sh_print_operand_address): Add MODE argument.
(sh_print_operand): Pass mem mode to output_address,
sh_print_operand_address.
* config/cr16/cr16.c (cr16_print_operand_address): Add MODE
argument.
(cr16_print_operand): Pass mode to output_address,
cr16_print_operand_address.
* config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
output_address.
* config/microblaze/microblaze.c (print_operand): Pass mode to
output_address.
* config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
output_address.
(nios2_print_operand_address): Add MODE argument. Update call to
nios2_print_operand_address.
* config/s390/s390.c (print_operand): Pass mode to output_address.
* config/m32c/m32c.c (m32c_print_operand_address): Add MODE
argument.
* config/arc/arc.c (arc_print_operand): Pass VOIDmode to
output_address.
* config/arm/arm.c (arm_print_operand_address): Add MODE argument.
Use instead of output_memory_reference_mode.
(output_memory_reference_mode): Delete global.
(arm_print_operand): Pass mem mode to output_address.
* config/m32r/m32r.c (m32r_print_operand_address): Add MODE
argument.
(m32r_print_operand): Pass mode to output_address.
* config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
argument.
(msp430_print_operand): Pass mode to msp430_print_operand_addr.
* config/i386/i386.c (ix86_print_operand): Pass mode to
output_address calls.
(ix86_print_operand_address): Add MODE argument.

From-SVN: r230016

9 years agore PR middle-end/68251 (sorry, unimplemented: reverse storage order for BLKmode)
Eric Botcazou [Mon, 9 Nov 2015 12:14:07 +0000 (12:14 +0000)]
re PR middle-end/68251 (sorry, unimplemented: reverse storage order for BLKmode)

PR middle-end/68251
* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
* tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
* tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.

From-SVN: r230015

9 years ago[RTL-ifcvt] PR rtl-optimization/67749: Do not emit separate SET insn in IF-ELSE case
Kyrylo Tkachov [Mon, 9 Nov 2015 11:40:17 +0000 (11:40 +0000)]
[RTL-ifcvt] PR rtl-optimization/67749: Do not emit separate SET insn in IF-ELSE case

PR rtl-optimization/67749
* ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
case before emitting the two blocks.  Instead modify the register
in the corresponding final insn of the basic block.

From-SVN: r230014

9 years agoSupport init priority on Solaris
Rainer Orth [Mon, 9 Nov 2015 11:33:30 +0000 (11:33 +0000)]
Support init priority on Solaris

libgcc:
* config/ia64/crtbegin.S: Check HAVE_INITFINI_ARRAY_SUPPORT
value.
* config/ia64/crtend.S: Likewise.

gcc:
* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
assembler syntax.
Support Solaris ld.
Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.

* config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
HAVE_INITFINI_ARRAY_SUPPORT.
* config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT
value.

* configure.ac (gcc_cv_as_sparc_nobits): Remove.
* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
Don't check HAVE_AS_SPARC_NOBITS.
Heed SECTION_NOTYPE.

* configure: Regenerate.
* config.in: Regenerate.

From-SVN: r230013

9 years agore PR middle-end/68253 (conditional jump or move depends on uninitialized value in...
Eric Botcazou [Mon, 9 Nov 2015 10:45:00 +0000 (10:45 +0000)]
re PR middle-end/68253 (conditional jump or move depends on uninitialized value in fold-const.c:5587)

PR middle-end/68253
* fold-const.c (fold_truth_andor_1): Initialize new variables to 0.

From-SVN: r230011

9 years agothumb2-slow-flash-data.c: Add missing typespec for labelref and check use of constant...
Thomas Preud'homme [Mon, 9 Nov 2015 10:29:06 +0000 (10:29 +0000)]
thumb2-slow-flash-data.c: Add missing typespec for labelref and check use of constant pool by looking for...

2015-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * gcc.target/arm/thumb2-slow-flash-data.c: Add missing typespec for
    labelref and check use of constant pool by looking for .word and
    similar directives.

From-SVN: r230010

9 years agore PR target/66326 (Floating point exception with -mfpmath=387 and -fcilkplus.)
Igor Zamyatin [Mon, 9 Nov 2015 10:12:34 +0000 (10:12 +0000)]
re PR target/66326 (Floating point exception with -mfpmath=387 and -fcilkplus.)

libcilkrts/

2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

PR target/66326
* runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state):
Use fnstcw instead fnstsw.

gcc/testsuite

2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

PR target/66326
* g++.dg/cilk-plus/CK/pr66326.cc: New test.

From-SVN: r230008

9 years agoi386: Add address spaces for fs/gs segments and tls
Richard Henderson [Mon, 9 Nov 2015 09:20:21 +0000 (01:20 -0800)]
i386: Add address spaces for fs/gs segments and tls

        * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
        __SEG_GS, __SEG_TLS.
        (ix86_register_pragmas): Register address spaces __seg_fs,
        __seg_gs, __seg_tls.
        * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
        (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
        (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
        * config/i386/i386.c (ix86_decompose_address): Likewise.
        (ix86_legitimate_address_p): Likewise.
        (memory_address_length): Likewise.  Check mem address space too.
        (ix86_print_operand): Use ix86_print_operand_address_as.
        (ix86_print_operand_address_as): Rename from
        ix86_print_operand_address, add new addr_space_t parameter.
        Validate that either the parameter or the ix86_address segment
        is default address space.  Handle ADDR_SPACE_SEG_TLS.
        (ix86_print_operand_address): New.
        (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
        (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
        (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
        (ix86_addr_space_zero_address_valid): New.
        (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
        * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
        * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
        * config/i386/predicates.md (address_no_seg_operand): Likewise.
        (vsib_address_operand): Likewise.
        (address_mpx_no_base_operand): Likewise.
        (address_mpx_no_index_operand): Likewise.
        * doc/extend.texi (x86 Named Address Spaces): New section.

        * gcc.target/i386/addr-space-1.c: New test.
        * gcc.target/i386/addr-space-2.c: New test.
        * gcc.target/i386/addr-space-3.c: New test.

From-SVN: r230003

9 years agoi386: Disallow address spaces with string insns
Richard Henderson [Mon, 9 Nov 2015 09:19:59 +0000 (01:19 -0800)]
i386: Disallow address spaces with string insns

While cmps and movs allow a segment override of the ds:esi
source, the es:edi source/destination cannot be overriden.
Simplify things in the backend for now by disallowing
segments for string insns entirely.

* config/i386/i386.c (ix86_check_no_addr_space): New.
(decide_alg): Add have_as parameter.
(alg_usable_p): Likewise; disable rep algorithms if set.
(ix86_expand_set_or_movmem): Notice if either MEM has a
non-default address space.
(ix86_expand_strlen): Likewise.
* config/i386/i386.md (strmov, strset): Likewise.
(*strmovdi_rex_1): Use ix86_check_no_addr_space.
(*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
*strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
*rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
*cmpstrnqi_1, *strlenqi_1): Likewise.

From-SVN: r230002

9 years agoi386: Handle address spaces in movabs patterns
Richard Henderson [Mon, 9 Nov 2015 09:19:40 +0000 (01:19 -0800)]
i386: Handle address spaces in movabs patterns

* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
(*movabs<mode>_2): Likewise.

From-SVN: r230001

9 years agoAdd hook for modifying debug info for address spaces
Richard Henderson [Mon, 9 Nov 2015 09:19:19 +0000 (01:19 -0800)]
Add hook for modifying debug info for address spaces

        * dwarf2out.c (modified_type_die): Pass the address space number
        through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
        * target.def (TARGET_ADDR_SPACE_DEBUG): New.
        * targhooks.c (default_addr_space_debug): New.
        * targhooks.h (default_addr_space_debug): Declare.
        * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
        * doc/tm.texi: Rebuild.

From-SVN: r230000

9 years agoAdd TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
Richard Henderson [Mon, 9 Nov 2015 09:18:59 +0000 (01:18 -0800)]
Add TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID

        * gimple.c (check_loadstore): Return false when 0 is a valid address.
        * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
        null when 0 is valid in the source address space.
        * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
        * targhooks.c (default_addr_space_zero_address_valid): New.
        * targhooks.h (default_addr_space_zero_address_valid): Declare.
        * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
        * doc/tm.texi: Rebuild.

From-SVN: r229999

9 years agoAvoid CSE of MEMs in different address spaces
Richard Henderson [Mon, 9 Nov 2015 09:18:35 +0000 (01:18 -0800)]
Avoid CSE of MEMs in different address spaces

        * cselib.c (add_mem_for_addr): Compare address spaces when
        matching memories.
        (cselib_lookup_mem): Likewise.
        * fold-const.c (operand_equal_p): Check address spaces of
        pointer types before checking integer constants.

From-SVN: r229998

9 years agore PR tree-optimization/66768 (address space gets lost on literal pointer)
Richard Henderson [Mon, 9 Nov 2015 09:18:16 +0000 (01:18 -0800)]
re PR tree-optimization/66768 (address space gets lost on literal pointer)

PR tree-opt/66768

        * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
        the correct type for the base.

From-SVN: r229997

9 years ago[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
Jeff Law [Mon, 9 Nov 2015 09:02:27 +0000 (02:02 -0700)]
[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier

[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
* tree-into-ssa.c (names_to_release): No longer static.
* tree-into-ssa.h (names_to_release): Declare.
* tree-ssanames.c (verify_ssaname_freelists): New debug function.
(release_free_names_and_compact_live_names): New function extracted
from pass_release_ssa_names::execute.
(pass_release_ssa_names::execute): Use it.

Co-Authored-By: Nathan Sidwell <nathan@acm.org>
From-SVN: r229995

9 years agore PR fortran/68053 (lower bound of implied shape array restricted too much)
Steven G. Kargl [Mon, 9 Nov 2015 05:50:24 +0000 (05:50 +0000)]
re PR fortran/68053 (lower bound of implied shape array restricted too much)

2015-11-08  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/68053
* decl.c (add_init_expr_to_sym):  Try to reduce initialization expression
before testing for a constant value.

2015-11-08  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/68053
* gfortran.dg/pr68053.f90: New test.

From-SVN: r229992

9 years agoConfigury changes for obstack optimization
Alan Modra [Mon, 9 Nov 2015 04:54:15 +0000 (15:24 +1030)]
Configury changes for obstack optimization

Missed from last patch

* config.in: Regenerate.

From-SVN: r229991

9 years agoConfigury changes for obstack optimization
Alan Modra [Mon, 9 Nov 2015 04:32:08 +0000 (15:02 +1030)]
Configury changes for obstack optimization

* configure.ac: Check size of size_t.
* configure: Regenerate.

From-SVN: r229990

9 years agoSilence obstack.c -Wc++compat warning
Alan Modra [Mon, 9 Nov 2015 04:30:26 +0000 (15:00 +1030)]
Silence obstack.c -Wc++compat warning

* obstack.c (_obstack_newchunk): Silence -Wc++compat warning.
(_obstack_begin_worker): Likewise.  Move assignment to h->chunk
after alloc failure check.

From-SVN: r229989

9 years agoModify obstack.[hc] to avoid having to include other gnulib files
Alan Modra [Mon, 9 Nov 2015 04:28:21 +0000 (14:58 +1030)]
Modify obstack.[hc] to avoid having to include other gnulib files

Using the standard gnulib obstack source requires importing quite a
lot of other files from gnulib, and requires build changes.

include/
* obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE.
libiberty/
* obstack.c (__alignof__): Expand alignof_type from alignof.h.
(obstack_exit_failure): Don't use exitfail.h.
(_): Include libintl.h when HAVE_LIBINTL_H and nls enabled.
Provide default.  Don't include gettext.h.
(_Noreturn): Define.
* obstacks.texi: Adjust node references to external libc info files.

From-SVN: r229988

9 years agoCopy gnulib obstack files
Alan Modra [Mon, 9 Nov 2015 04:26:32 +0000 (14:56 +1030)]
Copy gnulib obstack files

This copies obstack.[ch] from gnulib, and updates the docs.  The next
patch should be applied if someone repeats the import at a later date.

include/
* obstack.h: Import current gnulib file.
libiberty/
* obstack.c: Import current gnulib file.
* obstacks.texi: Updated doc, from glibc's manual/memory.texi.

From-SVN: r229987

9 years agoUpdate libsanitizer obstack interceptors
Alan Modra [Mon, 9 Nov 2015 04:23:25 +0000 (14:53 +1030)]
Update libsanitizer obstack interceptors

New obstack uses sensible types, size_t instead of int for length
params.  Since libsanitizer does not use prototypes from obstack.h to
call the real functions, it's necessary to update the libsanitizer
function declarations emitted by the INTERCEPTOR macro.

* sanitizer_common/sanitizer_common_interceptors.inc: Update size
params for _obstack_begin_1, _obstack_begin, _obstack_newchunk
interceptors.
* configure.ac: Substitute OBSTACK_DEFS.
* asan/Makefile.am: Add OBSTACK_DEFS to DEFS.
* tsan/Makefile.am: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* asan/Makefile.in: Regenerate.
* interception/Makefile.in: Regenerate.
* libbacktrace/Makefile.in: Regenerate.
* lsan/Makefile.in: Regenerate.
* sanitizer_common/Makefile.in: Regenerate.
* tsan/Makefile.in: Regenerate.
* ubsan/Makefile.in: Regenerate.

From-SVN: r229986

9 years agoCorrect libvtv obstack use
Alan Modra [Mon, 9 Nov 2015 04:19:43 +0000 (14:49 +1030)]
Correct libvtv obstack use

Fixes a compile error with both old and new obstacks due to
obstack_chunk_free having the wrong signature.  Also, setting chunk
size and alignment before obstack_init is pointless since they are
overwritten.

* vtv_malloc.cc (obstack_chunk_free): Correct param type.
(__vtv_malloc_init): Use obstack_specify_allocation.

From-SVN: r229985

9 years agoNew obstack_next_free is not an lvalue
Alan Modra [Mon, 9 Nov 2015 04:17:53 +0000 (14:47 +1030)]
New obstack_next_free is not an lvalue

New obstack.h casts obstack_next_free to (void *), resulting in it
being a non-lvalue, and warnings on pointer arithmetic.

gcc/
* gensupport.c (add_mnemonic_string): Make len param a size_t.
(gen_mnemonic_setattr): Make "size" var a size_t.  Use
obstack_blank_fast to shrink obstack.  Cast obstack_next_free
return value.
gcc/objc/
* objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
return value.

From-SVN: r229984