gcc.git
9 years agore PR tree-optimization/68128 (A huge regression in Parboil v2.5 OpenMP CUTCP test...
Jakub Jelinek [Thu, 26 Nov 2015 10:18:50 +0000 (11:18 +0100)]
re PR tree-optimization/68128 (A huge regression in Parboil v2.5 OpenMP CUTCP test (2.5 times lower performance))

PR tree-optimization/68128
* tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
* gimplify.c: Include gimple-walk.h.
(enum gimplify_omp_var_data): Add GOVD_WRITTEN.
(omp_notice_variable): Set flags to n->value if n already
exists in target region, but we need to jump to do_outer.
(omp_shared_to_firstprivate_optimizable_decl_p,
omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
functions.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body.  Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE.
(gimplify_adjust_omp_clauses): Add body argument, call
omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body.  Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
non-local vars or local vars referenced from nested routines.
* omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
TREE_READONLY, don't call use_pointer_for_field with non-NULL
second argument until we are sure we are keeping OMP_CLAUSE_SHARED.

* gcc.dg/gomp/pr68128-1.c: New test.
* gcc.dg/gomp/pr68128-2.c: New test.

From-SVN: r230932

9 years agoimplement-c.texi (Integers Implementation): Make GCC's promises about signed left...
Paolo Bonzini [Thu, 26 Nov 2015 10:16:56 +0000 (10:16 +0000)]
implement-c.texi (Integers Implementation): Make GCC's promises about signed left shift stronger and clarify the cases when...

2015-11-26  Paolo Bonzini <bonzini@gnu.org>

* doc/implement-c.texi (Integers Implementation): Make GCC's promises
about signed left shift stronger and clarify the cases when they're
broken.

From-SVN: r230931

9 years ago[calls.c] PR rtl-optimization/67226: Take into account pretend_args_size when checkin...
Kyrylo Tkachov [Thu, 26 Nov 2015 09:58:28 +0000 (09:58 +0000)]
[calls.c] PR rtl-optimization/67226: Take into account pretend_args_size when checking stack offsets for sibcall optimisation

2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
            Bernd Schmidt  <bschmidt@redhat.com>

PR rtl-optimization/67226
* calls.c (store_one_arg): Take into account
crtl->args.pretend_args_size when checking for overlap between
arg->value and argblock + arg->locate.offset during sibcall
optimization.

* gcc.c-torture/execute/pr67226.c: New test.

Co-Authored-By: Bernd Schmidt <bernds@redhat.com>
From-SVN: r230929

9 years agore PR c++/68508 (Internal compiler error with parentheses around return value in...
Jakub Jelinek [Thu, 26 Nov 2015 09:52:48 +0000 (10:52 +0100)]
re PR c++/68508 (Internal compiler error with parentheses around return value in C++14 with ASan enabled)

PR c++/68508
* cp-tree.h (cp_ubsan_maybe_instrument_downcast): Add INTYPE argument.
* cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.  Use
it instead of or in addition to TREE_TYPE (op).  Use
is_properly_derived_from, return NULL_TREE if TREE_TYPE (intype) and
TREE_TYPE (type) are the same type minus qualifiers.
* typeck.c (build_static_cast_1): Adjust callers.

* g++.dg/ubsan/pr68508.C: New test.

From-SVN: r230928

9 years ago[AArch64] Update patterns to support FP zero
Wilco Dijkstra [Thu, 26 Nov 2015 09:46:34 +0000 (09:46 +0000)]
[AArch64] Update patterns to support FP zero

2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>

* config/aarch64/aarch64.md (cbranch<mode>4): Use
aarch64_fp_compare_operand.
(store_pairsf): Use aarch64_reg_or_fp_zero.
(store_pairdf): Likewise.
(cstore<mode>4): Use aarch64_fp_compare_operand.
(cmov<mode>6): Likewise.
* config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.

From-SVN: r230927

9 years ago* testsuite/libgomp.c/target-35.c: New test.
Jakub Jelinek [Thu, 26 Nov 2015 09:44:49 +0000 (10:44 +0100)]
* testsuite/libgomp.c/target-35.c: New test.

From-SVN: r230926

9 years agoPR c++/67876 - [6 Regression] ICE when compiling Firefox 38
Martin Sebor [Thu, 26 Nov 2015 01:52:04 +0000 (01:52 +0000)]
PR c++/67876 - [6 Regression] ICE when compiling Firefox 38

gcc/cp
* pt.c (convert_template_argument): Make sure number of tree
operands is greater than zero before attempting to extract one.

gcc/testsuite/
* g++.dg/pr67876.C: New test.

From-SVN: r230924

9 years agore PR go/61303 (gccgo: segfault, regression since 4.8.2)
Ian Lance Taylor [Thu, 26 Nov 2015 00:24:21 +0000 (00:24 +0000)]
re PR go/61303 (gccgo: segfault, regression since 4.8.2)

PR go/61303
    runtime: don't overallocate in select code

    If we've already allocated an fd_set, don't allocate another one.

    Also, don't bother to read from rdwake if it wasn't returned in select.

    Fixes https://gcc.gnu.org/PR61303.

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

From-SVN: r230922

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

From-SVN: r230921

9 years agofix PR68453: recursively add phi nodes to merge points
Aditya Kumar [Thu, 26 Nov 2015 00:07:43 +0000 (00:07 +0000)]
fix PR68453: recursively add phi nodes to merge points

The patch adds close phi nodes to every outer loop exit, and to every loop
guard.  For loop guards it computes an initial value that determines where we
stop inserting phi nodes.  When the initial value is a constant, the initial
value is considered to be defined in the entry of the code gen region.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230918

9 years agoPR c/66516 - missing diagnostic on taking the address of a builtin function
Martin Sebor [Wed, 25 Nov 2015 23:29:57 +0000 (23:29 +0000)]
PR c/66516 - missing diagnostic on taking the address of a builtin function

PR c/66516 - missing diagnostic on taking the address of a builtin function
* g++.dg/addr_builtin-1.C: New test (accidentally omitted from
initial commit).
* gcc.dg/addr_builtin-1.c: Same.

From-SVN: r230916

9 years agore PR lto/67548 (LTO drops weak binding with "ld -r")
Jan Hubicka [Wed, 25 Nov 2015 23:05:07 +0000 (00:05 +0100)]
re PR lto/67548 (LTO drops weak binding with "ld -r")

PR lto/67548
* lto-plugin.c (linker_output, linker_output_set): New statics.
(all_symbols_read_handler): Add -flinker-output option.
(onload): Record linker_output info.

* ipa-visibility.c (cgraph_externally_visible_p,
varpool_node::externally_visible_p): When doing incremental linking,
hidden symbols may be still used later.
(update_visibility_by_resolution_info): Do not drop weak during
incremental link.
(function_and_variable_visibility): Fix formating.
* flag-types.h (lto_linker_output): Declare.
* common.opt 9flag_incremental_link): New flag.

* lto-lang.c (lto_post_options): Process flag_lto_linker_output.
* lang.opt (lto_linker_output): New enum.
(flinker_output): New flag.

From-SVN: r230915

9 years agoupdate changelog
Michael Meissner [Wed, 25 Nov 2015 23:01:59 +0000 (23:01 +0000)]
update changelog

From-SVN: r230914

9 years ago<patch #10>
Michael Meissner [Wed, 25 Nov 2015 22:49:41 +0000 (22:49 +0000)]
<patch #10>

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

<patch #10>
* config/rs6000/constraints.md (wb constraint): New constraint for
ISA 3.0 d-form scalar addressing.

* config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
Altivec registers.  Add wb constraint for Altivec registers with
D-form addressing.  If we have ISA 3.0 d-form support, undo
secondary reload support for using FPR registers if we want to do
D-form addressing.
(rs6000_debug_reg_global): Likewise.
(rs6000_setup_reg_addr_masks): Likewise.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_secondary_reload): Likewise.
(rs6000_preferred_reload_class): Likewise.
(rs6000_secondary_reload_class): Likewise.

* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
constraint.

* config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
(f32_lm2): Likewise.
(f32_li2): Likewise.
(f32_sr2): Likewise.
(f32_sm2): Likewise.
(f32_si2): Likewise.
(f64_p9): Likewise.
(extendsfdf2_fpr): Likewise.
(mov<mode>_hardfloat): Likewise.
(mov<mode>_hardfloat32): Likewise.
(mov<mode>_hardfloat64): Likewise.

* doc/md.texi (RS/6000 constraints): Document wb constraint.
Fixup we constraint documentation.

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

* gcc.target/powerpc/dform-1.c: New test.
* gcc.target/powerpc/dform-2.c: Likewise.

From-SVN: r230913

9 years agolto-symtab.c: Include alias.h
Jan Hubicka [Wed, 25 Nov 2015 22:22:37 +0000 (23:22 +0100)]
lto-symtab.c: Include alias.h

* lto-symtab.c: Include alias.h
(warn_type_compatibility_p): Replace types_compatible_p checks by
TBAA and size checks; set bit 2 if locations are TBAA incompatible.
(lto_symtab_merge): Compare DECL sizes.
(lto_symtab_merge_decls_2): Warn about TBAA in compatibility.
* gfortran.dg/lto/bind_c-6_0.f90: New testcase.
* gfortran.dg/lto/bind_c-6_1.c: New testcase.

From-SVN: r230911

9 years ago* g++.dg/init/self1.C: Remove dg-do run.
Jason Merrill [Wed, 25 Nov 2015 22:13:28 +0000 (17:13 -0500)]
* g++.dg/init/self1.C: Remove dg-do run.

From-SVN: r230910

9 years agore PR c++/68434 ([concepts] function tsubst sets TYPE_CANONICAL before setting a...
Ryan Burn [Wed, 25 Nov 2015 22:13:23 +0000 (22:13 +0000)]
re PR c++/68434 ([concepts] function tsubst sets TYPE_CANONICAL before setting a type's PLACEHOLDER_TYPE_CONSTRAINTS)

PR c++/68434

* pt.c (tsubst): Set PLACEHOLDER_TYPE_CONSTRAINTS before
calling canonical_type_parameter.

From-SVN: r230909

9 years agolambda.c (maybe_add_lambda_conv_op): Only set no_sanitize_undefined if SANITIZE_NULL.
Jason Merrill [Wed, 25 Nov 2015 21:34:00 +0000 (16:34 -0500)]
lambda.c (maybe_add_lambda_conv_op): Only set no_sanitize_undefined if SANITIZE_NULL.

* lambda.c (maybe_add_lambda_conv_op): Only set
no_sanitize_undefined if SANITIZE_NULL.

From-SVN: r230908

9 years agoAdd pass_oacc_kernels pass group in passes.def
Tom de Vries [Wed, 25 Nov 2015 21:26:37 +0000 (21:26 +0000)]
Add pass_oacc_kernels pass group in passes.def

2015-11-25  Tom de Vries  <tom@codesourcery.com>

* omp-low.c (pass_expand_omp_ssa::clone): New function.
* passes.def: Add pass_oacc_kernels pass group.
* tree-ssa-loop-ch.c (pass_ch::clone): New function.

* g++.dg/tree-ssa/copyprop-1.C: Update after adding new dce1.
* gcc.dg/pr23911.c: Same.
* gcc.dg/tree-ssa/20030709-2.c: Same.
* gcc.dg/tree-ssa/20030731-2.c: Same.
* gcc.dg/tree-ssa/20040729-1.c: Same.
* gcc.dg/tree-ssa/cfgcleanup-1.c: Same.
* gcc.dg/tree-ssa/loop-36.c: Same.
* gcc.dg/tree-ssa/pr21086.c: Same.
* gcc.dg/tree-ssa/ssa-dce-1.c: Same.
* gcc.dg/tree-ssa/ssa-dce-2.c: Same.
* gcc.dg/vect/pr26359.c: Same.
* c-c++-common/restrict-2.c: Update after adding new lim1.
* c-c++-common/restrict-4.c: Same.
* g++.dg/tree-ssa/pr33615.C: Same.
* g++.dg/tree-ssa/restrict1.C: Same.
* gcc.dg/tm/pub-safety-1.c: Same.
* gcc.dg/tm/reg-promotion.c: Same.
* gcc.dg/tree-ssa/20050314-1.c: Same.
* gcc.dg/tree-ssa/loop-32.c: Same.
* gcc.dg/tree-ssa/loop-33.c: Same.
* gcc.dg/tree-ssa/loop-34.c: Same.
* gcc.dg/tree-ssa/loop-35.c: Same.
* gcc.dg/tree-ssa/loop-7.c: Same.
* gcc.dg/tree-ssa/pr23109.c: Same.
* gcc.dg/tree-ssa/restrict-3.c: Same.
* gcc.dg/tree-ssa/restrict-5.c: Same.
* gcc.dg/tree-ssa/ssa-lim-1.c: Same.
* gcc.dg/tree-ssa/ssa-lim-10.c: Same.
* gcc.dg/tree-ssa/ssa-lim-11.c: Same.
* gcc.dg/tree-ssa/ssa-lim-12.c: Same.
* gcc.dg/tree-ssa/ssa-lim-2.c: Same.
* gcc.dg/tree-ssa/ssa-lim-3.c: Same.
* gcc.dg/tree-ssa/ssa-lim-6.c: Same.
* gcc.dg/tree-ssa/ssa-lim-7.c: Same.
* gcc.dg/tree-ssa/ssa-lim-8.c: Same.
* gcc.dg/tree-ssa/ssa-lim-9.c: Same.
* gcc.dg/tree-ssa/structopt-1.c: Same.
* gfortran.dg/pr32921.f: Same.
* g++.dg/tree-ssa/pr19637.C: Update after adding new dom1.
* g++.dg/tree-ssa/pr61009.C: Same.
* g++.dg/tree-ssa/ssa-dom.C: Same.
* gcc.dg/pr20115-1.c: Same.
* gcc.dg/tree-prof/20050826-2.c: Same.
* gcc.dg/tree-prof/cmpsf-1.c: Same.
* gcc.dg/tree-ssa/20030821-1.c: Same.
* gcc.dg/tree-ssa/20030922-2.c: Same.
* gcc.dg/tree-ssa/20031022-1.c: Same.
* gcc.dg/tree-ssa/20040615-1.c: Same.
* gcc.dg/tree-ssa/20040624-1.c: Same.
* gcc.dg/tree-ssa/pr21417.c: Same.
* gcc.dg/tree-ssa/pr61607.c: Same.
* gcc.dg/tree-ssa/slsr-27.c: Same.
* gcc.dg/tree-ssa/slsr-28.c: Same.
* gcc.dg/tree-ssa/slsr-29.c: Same.
* gcc.dg/tree-ssa/ssa-dom-branch-1.c: Same.
* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-1.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2a.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2c.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2d.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2e.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-2f.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-5.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Same.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same.
* gcc.dg/tree-ssa/ssa-thread-12.c: Same.
* gcc.dg/tree-ssa/vrp47.c: Same.
* gcc.dg/tree-ssa/copy-headers.c: Update after adding ch1.
* gcc.dg/tree-ssa/foldconst-2.c: Same.
* gcc.dg/tree-ssa/loop-40.c: Same.
* gcc.dg/gomp/notify-new-function-3.c: Update after adding ompexpssa1.

From-SVN: r230907

9 years agoAdd pass_oacc_kernels
Tom de Vries [Wed, 25 Nov 2015 21:26:24 +0000 (21:26 +0000)]
Add pass_oacc_kernels

2015-11-25  Tom de Vries  <tom@codesourcery.com>

* tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
Declare.
* tree-ssa-loop.c (gate_oacc_kernels): New static function.
(pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
(class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
(make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.

From-SVN: r230906

9 years agoconstexpr-array13.C: Fix.
Paolo Carlini [Wed, 25 Nov 2015 20:46:25 +0000 (20:46 +0000)]
constexpr-array13.C: Fix.

2015-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/constexpr-array13.C: Fix.

From-SVN: r230903

9 years agotimevar.def (TV_IPA_LTO_DECOMPRESS, [...]): New.
Jan Hubicka [Wed, 25 Nov 2015 20:00:47 +0000 (21:00 +0100)]
timevar.def (TV_IPA_LTO_DECOMPRESS, [...]): New.

* timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
TV_IPA_LTO_OUTPUT): New.
* lto-compress.c: Include timevar.h
(lto_end_compression, lto_end_uncompression): Add timers.
* langhooks.c: Include timevar.h
(lhd_append_data): Add timer.

From-SVN: r230902

9 years ago* gfortran.dg/nint_p7.f90: New testcase.
David Edelsohn [Wed, 25 Nov 2015 19:39:19 +0000 (19:39 +0000)]
* gfortran.dg/nint_p7.f90: New testcase.

From-SVN: r230898

9 years agore PR sanitizer/67941 (calls on function pointer from a captureless lambda cause...
Jason Merrill [Wed, 25 Nov 2015 18:58:11 +0000 (13:58 -0500)]
re PR sanitizer/67941 (calls on function pointer from a captureless lambda cause ubsan warning)

PR c++/67941
* lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
no_sanitize_undefined.

From-SVN: r230897

9 years agocp-ubsan.c (cp_ubsan_instrument_vptr_p): Use do_ubsan_in_current_function.
Jason Merrill [Wed, 25 Nov 2015 18:58:06 +0000 (13:58 -0500)]
cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use do_ubsan_in_current_function.

* cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use
do_ubsan_in_current_function.

From-SVN: r230896

9 years agovarasm.c (default_elf_asm_output_limited_string, [...]): Replace fprintf by putc.
Jan Hubicka [Wed, 25 Nov 2015 18:12:51 +0000 (19:12 +0100)]
varasm.c (default_elf_asm_output_limited_string, [...]): Replace fprintf by putc.

* varasm.c (default_elf_asm_output_limited_string,
default_elf_asm_output_ascii): Replace fprintf by putc.

From-SVN: r230895

9 years agore PR rtl-optimization/67954 (internal compiler error: in patch_jump_insn, at cfgrtl...
Vladimir Makarov [Wed, 25 Nov 2015 17:58:35 +0000 (17:58 +0000)]
re PR rtl-optimization/67954 (internal compiler error: in patch_jump_insn, at cfgrtl.c:1303)

2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/67954
* lra-constraints.c (curr_insn_transform): Add check on scratch
pseudo when change class to NO_REGS.  Add an assert.

From-SVN: r230894

9 years agonvptx.md (load_arg_reg<mode>): Arg number constraint is 'n'.
Nathan Sidwell [Wed, 25 Nov 2015 17:33:30 +0000 (17:33 +0000)]
nvptx.md (load_arg_reg<mode>): Arg number constraint is 'n'.

* config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
constraint is 'n'.
* config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
number.
(nvptx_write_function_decl): Number args from 0.
(nvptx_declare_function_name): Likewise.
(nvptx_function_incoming_arg): Likewise.
(nvptx_output_call_insn): Correct formatting.

From-SVN: r230889

9 years agooptabs.def: Add new optabs fmax_optab/fmin_optab.
David Sherwood [Wed, 25 Nov 2015 17:12:28 +0000 (17:12 +0000)]
optabs.def: Add new optabs fmax_optab/fmin_optab.

2015-11-25  David Sherwood  <david.sherwood@arm.com>

        * optabs.def: Add new optabs fmax_optab/fmin_optab.
        * internal-fn.def: Add new fmax/fmin internal functions.
        * doc/md.texi: Add fmin and fmax patterns.

From-SVN: r230888

9 years agore PR c++/68087 (ICE with constexpr in array with negative index)
Markus Trippelsdorf [Wed, 25 Nov 2015 16:40:16 +0000 (16:40 +0000)]
re PR c++/68087 (ICE with constexpr in array with negative index)

/cp
2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68087
* constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
tree_to_shwi to avoid ICEs.

/testsuite
2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68087
* g++.dg/cpp0x/constexpr-array13.C: New.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r230886

9 years ago[multiple changes]
Arnaud Charlet [Wed, 25 Nov 2015 15:30:09 +0000 (16:30 +0100)]
[multiple changes]

2015-11-25  Eric Botcazou  <ebotcazou@adacore.com>

* gnatlink.adb (Gnatlink): Do not reinstate -fsjlj for the linker
from the switches saved in the ALI file but from the exception
settings.

2015-11-25  Arnaud Charlet  <charlet@adacore.com>

* lib-xref-spark_specific.adb
(Add_SPARK_Scope): Take entry families into account.
* a-exetim.ads, a-exetim-default.ads, a-exetim-mingw.ads (Clock,
Clock_For_Interrupts): preconditions added.
* a-extiin.ads (Clock): preconditions added.
* par-ch3.adb (P_Declarative_Items): In case of misplaced
aspect specifications, ensure that flag Done is properly set to
continue parsing.

From-SVN: r230879

9 years ago[multiple changes]
Arnaud Charlet [Wed, 25 Nov 2015 15:16:44 +0000 (16:16 +0100)]
[multiple changes]

2015-11-25  Arnaud Charlet  <charlet@adacore.com>

* exp_util.adb (Remove_Side_Effects): Minimize extra temporaries
and use of 'Reference when needed.

2015-11-25  Doug Rupp  <rupp@adacore.com>

* sigtramp-vxworks-target.inc (__x86_64__): Restore context for the
sake of uniformity.
* init.c (__gnat_inum_to_ivec): Add some casting to avoid
warnings when sizeof(long) != sizeof(int)

2015-11-25  Yannick Moy  <moy@adacore.com>

* lib-xref-spark_specific.adb (SPARK_Entities): Add entries for
consideration.
(Add_SPARK_Scope): Take tasks into account.
(Detect_And_Add_SPARK_Scope): Take tasks into account.
(Enclosing_Subprogram_Or_Library_Package): Take tasks into account.

From-SVN: r230878

9 years ago[multiple changes]
Arnaud Charlet [Wed, 25 Nov 2015 15:14:27 +0000 (16:14 +0100)]
[multiple changes]

2015-11-25  Bob Duff  <duff@adacore.com>

* sem_elab.adb (Check_Internal_Call_Continue): Code clean ups.

2015-11-25  Eric Botcazou  <ebotcazou@adacore.com>

* sem_util.ads (Has_Compatible_Alignment): Add Layout_Done
parameter.
* sem_util.adb (Has_Compatible_Alignment): Likewise.
(Has_Compatible_Alignment_Internal): Likewise. Do not set the
result to Unknown for packed types if Layout_Done is true.
* checks.adb (Apply_Address_Clause_Check): Adjust call and
pass False to Has_Compatible_Alignment.
* sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True.

From-SVN: r230877

9 years ago[multiple changes]
Arnaud Charlet [Wed, 25 Nov 2015 15:10:52 +0000 (16:10 +0100)]
[multiple changes]

2015-11-25  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: When <target>-gnat is called with switch -P
and a GPR tool is invoked, invoke the GPR tool with switch
--target=<target>.

2015-11-25  Hristian Kirtchev  <kirtchev@adacore.com>

* opt.adb, bcheck.adb: Minor reformatting.

From-SVN: r230876

9 years ago[multiple changes]
Arnaud Charlet [Wed, 25 Nov 2015 15:09:38 +0000 (16:09 +0100)]
[multiple changes]

2015-11-25  Jerome Lambourg  <lambourg@adacore.com>

* init.c: Enable the signal trampoline on x86_64-vx7
* sigtramp-vxworks-target.inc: Implement the signal trampoline
for x86_64
* tracebak.c: Remove the hook to use the generic
unwinder on x86_64-vx7.

2015-11-25  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: When "gnat name -P" is called, invoke gprname
directly if available.

From-SVN: r230875

9 years agoinit.c (__gnat_is_stack_guard): Do not use mach calls for IOS simulator.
Tristan Gingold [Wed, 25 Nov 2015 15:07:12 +0000 (15:07 +0000)]
init.c (__gnat_is_stack_guard): Do not use mach calls for IOS simulator.

2015-11-25  Tristan Gingold  <gingold@adacore.com>

* init.c (__gnat_is_stack_guard): Do not use mach calls for
IOS simulator.

From-SVN: r230874

9 years agore PR fortran/68227 (ICE on using variable limit in forall header (gfc_do_allocate))
Steven G. Kargl [Wed, 25 Nov 2015 15:04:33 +0000 (15:04 +0000)]
re PR fortran/68227 (ICE on using variable limit in forall header (gfc_do_allocate))

2015-11-25  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/68227
    * trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into
    into part of conditional statement.

From-SVN: r230873

9 years agore PR fortran/63858 (fixed form OpenACC directive ICE with -fopenacc -fopenmp)
Ilmir Usmanov [Wed, 25 Nov 2015 14:37:36 +0000 (14:37 +0000)]
re PR fortran/63858 (fixed form OpenACC directive ICE with -fopenacc -fopenmp)

PR fortran/63858

gcc/fortran/
* scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
Rename as ...
(skip_free_oacc_sentinel): ... this.
(skip_omp_attribute): Remove continue_flag parameter. Rename as ...
(skip_free_omp_sentinel): ... this.
(skip_free_comments): Update to call skip_free_oacc_sentinel and
skip_free_omp_sentinel.
(skip_fixed_omp_sentinel): New function.
(skip_fixed_oacc_sentinel): New function.
(skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
continuation.

gcc/testsuite/
* goacc/omp-fixed.f: New test.
* goacc/omp.f95: Add check for mis-matched omp and acc continuations.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r230872

9 years agore PR c++/68385 (ICE building libstdc++ on arm-none-eabi)
Jason Merrill [Wed, 25 Nov 2015 14:35:24 +0000 (09:35 -0500)]
re PR c++/68385 (ICE building libstdc++ on arm-none-eabi)

PR c++/68385

* tree.c (integer_zerop, integer_onep, integer_each_onep)
(integer_all_onesp, integer_minus_onep, integer_pow2p)
(integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
(real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.

From-SVN: r230871

9 years agore PR middle-end/68528 ([5 Only] Wrong constant folding)
Richard Biener [Wed, 25 Nov 2015 14:21:25 +0000 (14:21 +0000)]
re PR middle-end/68528 ([5 Only] Wrong constant folding)

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

PR middle-end/68528
* fold-const.c (fold_binary_loc): Do not call negate_expr_p
on stripped operands.

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

From-SVN: r230870

9 years agonvptx.c (walk_args_for_params): Delete.
Nathan Sidwell [Wed, 25 Nov 2015 14:03:44 +0000 (14:03 +0000)]
nvptx.c (walk_args_for_params): Delete.

* config/nvptx/nvptx.c (walk_args_for_params): Delete.
(nvptx_declare_function_name): Move assignments next to register
declarations, and process params here.

From-SVN: r230869

9 years agoImprove tests for valid values of iostream bitmask types
Jonathan Wakely [Wed, 25 Nov 2015 13:49:06 +0000 (13:49 +0000)]
Improve tests for valid values of iostream bitmask types

* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly
check minimum and maximum values, and size of underlying type.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230868

9 years agors6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot...
David Edelsohn [Wed, 25 Nov 2015 12:52:50 +0000 (12:52 +0000)]
rs6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot" symbol for function descriptors.

* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
both the symbol and the "dot" symbol for function descriptors.  Fix
inversion for rename of symbols with dollar sign.

From-SVN: r230867

9 years agoImprove verification of loop->latch in verify_loop_structure
Tom de Vries [Wed, 25 Nov 2015 11:28:49 +0000 (11:28 +0000)]
Improve verification of loop->latch in verify_loop_structure

2015-11-25  Tom de Vries  <tom@codesourcery.com>

* cfgloop.c (find_single_latch): New function, factored out of ...
(flow_loops_find): ... here.
(verify_loop_structure): Improve verification of loop->latch.
* cfgloop.h (find_single_latch): Declare.
* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.

From-SVN: r230866

9 years agoPort libvtv to Solaris
Rainer Orth [Wed, 25 Nov 2015 10:30:25 +0000 (10:30 +0000)]
Port libvtv to Solaris

libstdc++-v3:
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
-Wl,-R in VTV_CXXLINKFLAGS.
* configure: Regenerate.

* testsuite/18_support/bad_exception/23591_thread-1.c: Use
-fvtable-verify=none on Solaris 12+.

libgcc:
* Makefile.in (VTV_CFLAGS): New variable.
(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
to extra_parts if $enable_vtable_verify = yes.

libvtv:
* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
<*-*-solaris2*>: Check for init priority support.
Check for getexecname, __fortify_fail, _obstack_begin.
(VTV_NO_OBSTACK): New conditional.
* configure: Regenerate.
* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
Create empty config.h
* Makefile.in: Regenerate.

* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
variable.
(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.

(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.

(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
(iterate_modules): Fix typo.
Use VTV_PAGE_SIZE.
(dl_iterate_phdr_callback): Fix typo.
Use VTV_PAGE_SIZE.
(__VLTChangePermission): Fix typos.

include:
* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
__sparc__]: Define.

gcc:
* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
(STARTFILE_SPEC): Use %(startfile_vtv).
(ENDFILE_SPEC): Use %(endfile_vtv).
(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
ENDFILE_VTV_SPEC.

* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.

From-SVN: r230865

9 years agoRemove broken ifcvt code for speculating memory writes
Bernd Schmidt [Wed, 25 Nov 2015 10:23:28 +0000 (10:23 +0000)]
Remove broken ifcvt code for speculating memory writes

* ifcvt.c (noce_mem_write_may_trap_or_fault_p,
noce_can_store_speculate): Delete.
(noce_process_if_block): Don't try to handle single MEM stores.
* rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
* alias.c (memory_must_be_modified_in_insn_p): Delete.

From-SVN: r230864

9 years agore PR c++/58910 (std::Tuple_impl is non constexpr when using identical userdefined...
Paolo Carlini [Wed, 25 Nov 2015 10:00:02 +0000 (10:00 +0000)]
re PR c++/58910 (std::Tuple_impl is non constexpr when using identical userdefined structs as template-args)

2015-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58910
* g++.dg/cpp0x/constexpr-tuple2.C: New.

From-SVN: r230860

9 years ago[RTL-ifcvt] PR rtl-optimization/68435 Allow (c ? x++ : x--) form
Kyrylo Tkachov [Wed, 25 Nov 2015 09:48:29 +0000 (09:48 +0000)]
[RTL-ifcvt] PR rtl-optimization/68435 Allow (c ? x++ : x--) form

PR rtl-optimization/68435
* ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
for conflicts between a, b and the set destinations.

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

From-SVN: r230859

9 years agore PR tree-optimization/68517 (ICE in tree-vect-data-refs.c:2751)
Richard Biener [Wed, 25 Nov 2015 09:22:47 +0000 (09:22 +0000)]
re PR tree-optimization/68517 (ICE in tree-vect-data-refs.c:2751)

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

PR tree-optimization/68517
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
Properly handle zero-sized types.

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

From-SVN: r230858

9 years agoipa-inline-analysis.c: Include gimplify.h (set_cond_stmt_execution_predicate...
Jan Hubicka [Wed, 25 Nov 2015 09:08:20 +0000 (10:08 +0100)]
ipa-inline-analysis.c: Include gimplify.h (set_cond_stmt_execution_predicate...

* ipa-inline-analysis.c: Include gimplify.h
(set_cond_stmt_execution_predicate,
set_switch_stmt_execution_predicate): Be sure to not leak locations
to function body.

From-SVN: r230857

9 years agore PR target/67089 (Integer overflow checks not optimized on x86/x86_64)
Jakub Jelinek [Wed, 25 Nov 2015 08:58:32 +0000 (09:58 +0100)]
re PR target/67089 (Integer overflow checks not optimized on x86/x86_64)

PR target/67089
* tree-ssa-math-opts.c (uaddsub_overflow_check_p,
match_uaddsub_overflow): New functions.
(pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.

* gcc.dg/pr67089-1.c: New test.
* gcc.dg/pr67089-2.c: New test.
* gcc.dg/pr67089-3.c: New test.
* gcc.dg/pr67089-4.c: New test.
* gcc.dg/pr67089-5.c: New test.
* gcc.dg/pr67089-6.c: New test.
* gcc.dg/pr67089-7.c: New test.

From-SVN: r230856

9 years agore PR tree-optimization/68492 (internal compiler error: in vect_is_simple_use, at...
Richard Biener [Wed, 25 Nov 2015 08:53:22 +0000 (08:53 +0000)]
re PR tree-optimization/68492 (internal compiler error: in vect_is_simple_use, at tree-vect-stmts.c:8266)

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

PR tree-optimization/68492
* tree-vect-slp.c (vect_build_slp_tree): Consistently build up
op from scalars after operand swapping.

From-SVN: r230855

9 years agore PR tree-optimization/68502 ([i686] spec2000/179.art runfails after r222914)
Richard Biener [Wed, 25 Nov 2015 08:46:34 +0000 (08:46 +0000)]
re PR tree-optimization/68502 ([i686] spec2000/179.art runfails after r222914)

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

PR tree-optimization/68502
* tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
check that the step is a multiple of the type size.

* gcc.dg/vect/pr68502-1.c: New testcase.
* gcc.dg/vect/pr68502-2.c: Likewise.

From-SVN: r230854

9 years ago2015-11-24 Michael Collison <michael.collison@linaro.org>
Michael Collison [Wed, 25 Nov 2015 06:51:55 +0000 (06:51 +0000)]
2015-11-24  Michael Collison  <michael.collison@linaro.org>

* config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
* config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
* gcc.target/aarch64/saddw-1.c: New test.
* gcc.target/aarch64/saddw-2.c: New test.
* gcc.target/aarch64/uaddw-1.c: New test.
* gcc.target/aarch64/uaddw-2.c: New test.
* gcc.target/aarch64/uaddw-3.c: New test.
* lib/target-support.exp
(check_effective_target_vect_widen_sum_hi_to_si_pattern):
Add aarch64 to list of support targets.

From-SVN: r230853

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

From-SVN: r230850

9 years agoFix typos from last checkin.
Steve Ellcey [Tue, 24 Nov 2015 22:12:25 +0000 (22:12 +0000)]
Fix typos from last checkin.

From-SVN: r230847

9 years agoframe-header-4.c: New test.
Steve Ellcey [Tue, 24 Nov 2015 22:11:27 +0000 (22:11 +0000)]
frame-header-4.c: New test.

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

* gcc.target/mips/frame-header-4.c: New test.

From-SVN: r230846

9 years agoframe-header-opt.c (gate): Check for optimize > 0.
Steve Ellcey [Tue, 24 Nov 2015 22:09:17 +0000 (22:09 +0000)]
frame-header-opt.c (gate): Check for optimize > 0.

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

* frame-header-opt.c (gate): Check for optimize > 0.
(has_inlined_assembly): New function.
(needs_frame_header_p): Remove is_leaf_function check,
add argument type check.
(callees_functions_use_frame_header): Add is_leaf_function
and has_inlined_assembly calls..
(set_callers_may_not_allocate_frame): New function.
(frame_header_opt): Add is_leaf_function call, add
set_callers_may_not_allocate_frame call.
* config/mips/mips.c (mips_compute_frame_info): Add check
to see if callee saved regs can be put in frame header.
(mips_expand_prologue): Add check to see if step1 is zero,
fix cfa restores when using frame header to store regs.
(mips_can_use_return_insn): Check to see if registers are
stored in frame header.
* config/mips/mips.h (machine_function): Add
callers_may_not_allocate_frame and
use_frame_header_for_callee_saved_regs fields.

From-SVN: r230845

9 years agoshrink-wrap: Fix thinko (PR68520)
Segher Boessenkool [Tue, 24 Nov 2015 21:23:25 +0000 (22:23 +0100)]
shrink-wrap: Fix thinko (PR68520)

Part of the shrink-wrapping algorithm has this comment:

  /* Now see if we can put the prologue at the start of PRO.  Putting it
     there might require duplicating a block that cannot be duplicated,
     or in some cases we cannot insert the prologue there at all.  If PRO
     wont't do, try again with the immediate dominator of PRO, and so on.

     The blocks that need duplicating are those reachable from PRO but
     not dominated by it.  We keep in BB_WITH a bitmap of the blocks
     reachable from PRO that we already found, and in VEC a stack of
     those we still need to consider (to find successors).  */

Two of the cases that push to that stack do not actually check the
bitmap first.  Either I thought those blocks could not be on the stack
already, or more likely I didn't think and it just didn't crash during
any testing.  But of course those blocks *can* already be on the stack
(if you have a hideous loop structure), and then we end up with the
same block on the stack more than once.  This is harmless, except that
(like in the PR) this can overflow the stack.

This fixes it, by doing the necessary bitmap checks before pushing.

PR rtl-optimization/68520
* shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
its bit was already set in BB_WITH.

From-SVN: r230843

9 years agoc-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABL...
Ilya Verbin [Tue, 24 Nov 2015 21:04:47 +0000 (21:04 +0000)]
c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABLE_OFFLOADING)".

gcc/c/
* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
with "if (ENABLE_OFFLOADING)".
gcc/cp/
* parser.c (cp_parser_oacc_declare): replace "ifdef enable_offloading"
with "if (enable_offloading)".

From-SVN: r230842

9 years agoalias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that...
Jan Hubicka [Tue, 24 Nov 2015 20:35:16 +0000 (21:35 +0100)]
alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant.

* alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
double check that type is main variant.
* tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
variant.
(verify_type_variant): Verify that variants have no
TYPE_ALIAS_SET_KNOWN_P set
* tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
streaming so constant fields come first; stream TYPE_ALIAS_SET==0
only for main variants; stream TYPE_ALIAS_SET as a bit.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
accordingly.

From-SVN: r230838

9 years agotree.c (make_vector_type): Properly compute canonical type of the main variant.
Jan Hubicka [Tue, 24 Nov 2015 20:26:48 +0000 (21:26 +0100)]
tree.c (make_vector_type): Properly compute canonical type of the main variant.

* tree.c (make_vector_type): Properly compute canonical type of the
main variant.
(verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
a main variant.

From-SVN: r230837

9 years agonvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode.
Nathan Sidwell [Tue, 24 Nov 2015 20:15:44 +0000 (20:15 +0000)]
nvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode.

* config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
VOIDmode, don't alter incoming mode.
(nvptx_split_reg_p): Delete.
(write_one_arg, walk_args_for_param, nvptx_declare_function_name,
write_func_decl_from_insn, nvptx_output_call_insn): Adjust
maybe_split_mode calls.
(nvptx_print_operand): Use maybe_split_mode.

From-SVN: r230836

9 years agolto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types...
Jan Hubicka [Tue, 24 Nov 2015 19:35:38 +0000 (20:35 +0100)]
lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them.

* lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
only for types where LTO sets them.
* tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
(make_vector_type): Likewise.
(gimple_canonical_types_compatible_p): Use canonical_type_used_p.
* tree.h (canonical_type_used_p): New inline.
* alias.c (get_alias_set): Handle structural equality for all
types that pass canonical_type_used_p.
(record_component_aliases): Look through all types with
record_component_aliases for possible pointers; sanity check that
the alias sets match.

* lto.c (iterative_hash_canonical_type): Recruse for all types
which pass !canonical_type_used_p.
(gimple_register_canonical_type_1): Sanity check we do not compute
canonical type of anything with !canonical_type_used_p.
(gimple_register_canonical_type): Skip all types that are
!canonical_type_used_p

From-SVN: r230835

9 years agors6000.md (lround<mode>di2): Remove constraints.
Michael Meissner [Tue, 24 Nov 2015 19:16:18 +0000 (19:16 +0000)]
rs6000.md (lround<mode>di2): Remove constraints.

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

* config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.

From-SVN: r230834

9 years agotree.c (free_node): New function.
Jan Hubicka [Tue, 24 Nov 2015 19:04:04 +0000 (20:04 +0100)]
tree.c (free_node): New function.

* tree.c (free_node): New function.
(type_hash_canon): Use it.
* tree.h (free_node): Declare.
* lto.c (unify_scc): Use free_node.

From-SVN: r230833

9 years agore PR fortran/68486 (187.facerec in SPEC CPU 2000 failed to build)
Steven G. Kargl [Tue, 24 Nov 2015 18:58:28 +0000 (18:58 +0000)]
re PR fortran/68486 (187.facerec in SPEC CPU 2000 failed to build)

2015-11-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68486
* simplify.c (gfc_simplify_cshift): Allow all EXPR_*.

2015-11-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68486
* gfortran.dg/simplify_cshift_3.f90

From-SVN: r230832

9 years agofix ChangeLog
Michael Meissner [Tue, 24 Nov 2015 18:54:34 +0000 (18:54 +0000)]
fix ChangeLog

From-SVN: r230831

9 years agofix ChangeLog
Michael Meissner [Tue, 24 Nov 2015 18:47:49 +0000 (18:47 +0000)]
fix ChangeLog

From-SVN: r230830

9 years agors6000.md (UNSPEC_XSRDPI): New unspec.
David Edelsohn [Tue, 24 Nov 2015 18:46:07 +0000 (18:46 +0000)]
rs6000.md (UNSPEC_XSRDPI): New unspec.

2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
    Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
(Fv2): New mode attribute to be used when ISA 2.06 instructions
are used on SF/DF values.
(abs<mode>2_fpr): Use <Fv2> instead of <Fv>.
(nabs<mode>2_fpr): Likewise.
(neg<mode>2_fpr): Likewise.
(copysign<mode>3_fcpsgn): Likewise.
(smax<mode>3_vsx): Likewise.
(smin<mode>3_vsx): Likewise.
(floatsi<mode>2_lfiwax): Likewise.
(floatunssi<mode>2_lfiwz): Likewise.
(fctiwz_<mode>): Likewise.
(fctiwuz_<mode>): Likewise.
(btrunc<mode>2): Likewise.
(ceil<mode>2): Likewise.
(floor<mode>2): Likewise.
(xsrdpi<mode>): Add support for the lround function.
(lround<mode>2): Likewise.

Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
From-SVN: r230829

9 years agore PR c++/68278 (internal compiler error with C++14 polymorphic lambda and type alias)
Paolo Carlini [Tue, 24 Nov 2015 18:30:02 +0000 (18:30 +0000)]
re PR c++/68278 (internal compiler error with C++14 polymorphic lambda and type alias)

2015-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68278
* g++.dg/cpp1y/pr68278.C: New.

From-SVN: r230828

9 years agore PR c++/68388 (incomplete type bug when using decltype)
Paolo Carlini [Tue, 24 Nov 2015 18:16:26 +0000 (18:16 +0000)]
re PR c++/68388 (incomplete type bug when using decltype)

2015-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68388
* g++.dg/cpp1y/pr68388.C: New.

From-SVN: r230827

9 years agofix PR67984: check for constants in rename map
Aditya Kumar [Tue, 24 Nov 2015 18:00:52 +0000 (18:00 +0000)]
fix PR67984: check for constants in rename map

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230826

9 years agomove all declarations to a same .h file
Aditya Kumar [Tue, 24 Nov 2015 17:57:45 +0000 (17:57 +0000)]
move all declarations to a same .h file

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230825

9 years agoDWARF: materialize subprogram renamings in Ada as imported declarations
Pierre-Marie de Rodat [Tue, 24 Nov 2015 16:59:43 +0000 (16:59 +0000)]
DWARF: materialize subprogram renamings in Ada as imported declarations

... so that debugger users can reference them instead of the renamed
subprograms.  This is in accordance with the DWARF specification: the
section 3.2.3 (Imported (or Renamed) Declaration Entities) allows
DW_TAG_imported_declaration DIEs to be used "as a general means to
rename or provide an alias for an entity regardless of the context in
which the importing declaration or the imported entity occur." (wording
from the DWARFv3 and DWARFv4 specifications, allowed in DWARFv2).

gcc/ada/ChangeLog:

* gcc-interface/utils.c (gnat_write_global_declarations): Output
debugging information for top-level imported declarations.

gcc/ChangeLog:

* dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead
of DW_TAG_namespace for IMPORTED_DECL declarations.  Call
dwarf2out_imported_module_or_decl_1 for all DWARF versions as
this function already takes care of checking what it can emit.

Bootstrapped, regtested and checked with GDB's testsuite on
x86_64-linux.

From-SVN: r230821

9 years ago[AArch64] Documentation fix for -fpic
Szabolcs Nagy [Tue, 24 Nov 2015 16:06:30 +0000 (16:06 +0000)]
[AArch64] Documentation fix for -fpic

gcc/
* doc/invoke.texi (-fpic): Add the AArch64 limit.
(-fPIC): Add AArch64.

From-SVN: r230819

9 years agore PR rtl-optimization/68392 (ICE: SIGSEGV in update_uses (fwprop.c:896) with -fno...
Michael Matz [Tue, 24 Nov 2015 16:00:51 +0000 (16:00 +0000)]
re PR rtl-optimization/68392 (ICE: SIGSEGV in update_uses (fwprop.c:896) with -fno-checking)

PR rtl-optimization/68392
* g++.dg/pr68392.C: New test.

From-SVN: r230818

9 years agoAllow pass_lim to run outside pass_tree_loop
Tom de Vries [Tue, 24 Nov 2015 14:47:55 +0000 (14:47 +0000)]
Allow pass_lim to run outside pass_tree_loop

2015-11-24  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-loop-im.c (tree_ssa_lim): Make static.
(pass_lim::execute): Allow to run outside pass_tree_loop.

From-SVN: r230815

9 years ago[PATCH][AArch64] Improve add immediate expansion
Wilco Dijkstra [Tue, 24 Nov 2015 14:46:05 +0000 (14:46 +0000)]
[PATCH][AArch64] Improve add immediate expansion

gcc/

* gcc/config/aarch64/aarch64.md (add<mode>3):
Block early expansion into 2 add instructions.
(add<mode>3_pluslong): New pattern to combine complex
immediates into 2 additions.

From-SVN: r230814

9 years agors6000: Fix for and_operand oversight (PR68332, PR67677)
Segher Boessenkool [Tue, 24 Nov 2015 14:04:11 +0000 (15:04 +0100)]
rs6000: Fix for and_operand oversight (PR68332, PR67677)

Calling rs6000_is_valid_and_mask on a reg instead of on a const_int is
not a good idea, as PR68332 and PR67677 as well as testing with
--enable-checking=yes,rtl show.  Fix this.

PR target/66217
PR target/67677
PR target/68332
* config/rs6000/predicates.md (and_operand): Check that the operand
is a const_int before calling rs6000_is_valid_and_mask.

From-SVN: r230811

9 years ago* gcc.dg/sso/dump.h: Force IO to be putchar function call on nvptx.
Nathan Sidwell [Tue, 24 Nov 2015 13:53:31 +0000 (13:53 +0000)]
* gcc.dg/sso/dump.h: Force IO to be putchar function call on nvptx.

From-SVN: r230810

9 years agoTestcase for PR rtl-optimization/68381
Kyrylo Tkachov [Tue, 24 Nov 2015 13:35:56 +0000 (13:35 +0000)]
Testcase for PR rtl-optimization/68381

PR rtl-optimization/68381
* gcc.c-torture/execute/pr68381.c: New test.

From-SVN: r230809

9 years agoHandle C++11 <math.h> overloads on Solaris 12
Rainer Orth [Tue, 24 Nov 2015 13:15:43 +0000 (13:15 +0000)]
Handle C++11 <math.h> overloads on Solaris 12

* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
* configure.ac: Use it.
* configure: Regenerate.
* config.h.in: Regenerate.

* include/c_global/cmath [__cplusplus >= 201103L]
(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::isfinite): Likewise.
(std::isinf): Likewise.
(std::isnan): Likewise.
(std::isnormal): Likewise.
(std::signbit): Likewise.
(std::isgreater): Likewise.
(std::isgreaterequal): Likewise.
(std::isless): Likewise.
(std::islessequal): Likewise.
(std::islessgreater): Likewise.
(std::isunordered): Likewise.
(std::acosh): Likewise.
(std::asinh): Likewise.
(std::atanh): Likewise.
(std::cbrt): Likewise.
(std::copysign): Likewise.
(std::erf): Likewise.
(std::erfc): Likewise.
(std::exp2): Likewise.
(std::expm1): Likewise.
(std::fdim): Likewise.
(std::fma): Likewise.
(std::fmax): Likewise.
(std::fmin): Likewise.
(std::hypot): Likewise.
(std::ilogb): Likewise.
(std::lgamma): Likewise.
(std::llrint): Likewise.
(std::llround): Likewise.
(std::log1p): Likewise.
(std::log2): Likewise.
(std::logb): Likewise.
(std::lrint): Likewise.
(std::lround): Likewise.
(std::nearbyint): Likewise.
(std::nextafter): Likewise.
(std::nexttoward): Likewise.
(std::remainder): Likewise.
(std::remquo): Likewise.
(std::rint): Likewise.
(std::round): Likewise.
(std::scalbln): Likewise.
(std::scalbn): Likewise.
(std::tgamma): Likewise.
(std::trunc): Likewise.
* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::tr1::asinh): Likewise.
(std::tr1::atanh): Likewise.
(std::tr1::cbrt): Likewise.
(std::tr1::copysign): Likewise.
(std::tr1::erf): Likewise.
(std::tr1::erfc): Likewise.
(std::tr1::exp2): Likewise.
(std::tr1::expm1): Likewise.
(std::tr1::fabs): Likewise.
(std::tr1::fdim): Likewise.
(std::tr1::fma): Likewise.
(std::tr1::fmax): Likewise.
(std::tr1::fmin): Likewise.
(std::tr1::hypot): Likewise.
(std::tr1::ilogb): Likewise.
(std::tr1::lgamma): Likewise.
(std::tr1::llrint): Likewise.
(std::tr1::llround): Likewise.
(std::tr1::log1p): Likewise.
(std::tr1::log2): Likewise.
(std::tr1::logb): Likewise.
(std::tr1::lrint): Likewise.
(std::tr1::lround): Likewise.
(std::tr1::nearbyint): Likewise.
(std::tr1::nextafter): Likewise.
(std::tr1::nexttoward): Likewise.
(std::tr1::remainder): Likewise.
(std::tr1::remquo): Likewise.
(std::tr1::rint): Likewise.
(std::tr1::scalbln): Likewise.
(std::tr1::scalbn): Likewise.
(std::tr1::tgamma): Likewise.
(std::tr1::trunc): Likewise.
(std::tr1::pow): Likewise.

* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*.

From-SVN: r230807

9 years ago[AArch64][v2] Improve comparison with complex immediates followed by branch/cset
Kyrylo Tkachov [Tue, 24 Nov 2015 13:08:56 +0000 (13:08 +0000)]
[AArch64][v2] Improve comparison with complex immediates followed by branch/cset

* config/aarch64/aarch64.md (*condjump): Rename to...
(condjump): ... This.
(*compare_condjump<mode>): New define_insn_and_split.
(*compare_cstore<mode>_insn): Likewise.
(*cstore<mode>_insn): Rename to...
(cstore<mode>_insn): ... This.
* config/aarch64/iterators.md (CMP): Handle ne code.
* config/aarch64/predicates.md (aarch64_imm24): New predicate.

* gcc.target/aarch64/cmpimm_branch_1.c: New test.
* gcc.target/aarch64/cmpimm_cset_1.c: Likewise.

From-SVN: r230805

9 years agoMove ptrace.h to appropriate place.
Max Ostapenko [Tue, 24 Nov 2015 12:24:46 +0000 (14:24 +0200)]
Move ptrace.h to appropriate place.

libsanitizer/

* include/system/linux/asm/ptrace.h: Move to ...
* include/system/asm/ptrace.h: ... this.

From-SVN: r230804

9 years agoFix PR68497 (ICE with -fno-checking)
Mikhail Maltsev [Tue, 24 Nov 2015 12:18:21 +0000 (12:18 +0000)]
Fix PR68497 (ICE with -fno-checking)

gcc/

PR target/68497
* config/i386/i386.c (output_387_binary_op): Fix assertion for
-fno-checking case.

gcc/testsuite/

PR target/68497
* gcc.target/i386/pr68497.c: New test.

From-SVN: r230803

9 years agoremove val_ssa_equiv_hash_traits
Trevor Saunders [Tue, 24 Nov 2015 11:46:18 +0000 (11:46 +0000)]
remove val_ssa_equiv_hash_traits

gcc/ChangeLog:

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
(val_ssa_equiv_hash_traits::remove): Likewise.
(pass_uncprop::execute): Adjust.

From-SVN: r230802

9 years agodestroy values as well as keys when removing them from hash maps
Trevor Saunders [Tue, 24 Nov 2015 11:46:10 +0000 (11:46 +0000)]
destroy values as well as keys when removing them from hash maps

gcc/ChangeLog:

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* hash-map-traits.h (simple_hashmap_traits ::remove): call
destructors on values that are being removed.
* mem-stats.h (hash_map): Pass type of values to
simple_hashmap_traits.
* tree-sra.c (sra_deinitialize): Remove work around for hash
maps not destructing values.
* genmatch.c (sinfo_hashmap_traits): Adjust.
* tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.

From-SVN: r230801

9 years ago[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of...
Bilyan Borisov [Tue, 24 Nov 2015 11:22:48 +0000 (11:22 +0000)]
[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of...

[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out
of bounds accesses to vmulx_lane* NEON intrinsics

gcc/testsuite/

* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxs_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c:
New.

From-SVN: r230800

9 years ago[cfgloop] PR middle-end/68375: Restructure get_loop_body_in_bfs_order to handle loops...
Kyrylo Tkachov [Tue, 24 Nov 2015 11:03:51 +0000 (11:03 +0000)]
[cfgloop] PR middle-end/68375: Restructure get_loop_body_in_bfs_order to handle loops with only a header

PR middle-end/68375
* cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
bogus assertion.

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

From-SVN: r230798

9 years agore PR target/68483 (gcc 5.2: suboptimal code compared to 4.9)
Jakub Jelinek [Tue, 24 Nov 2015 10:45:52 +0000 (11:45 +0100)]
re PR target/68483 (gcc 5.2: suboptimal code compared to 4.9)

PR target/68483
* tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
is valid vec_shr pattern, don't lower it even if can_vec_perm_p
returns false.
* optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
whenever first is nelt or above.  Don't mask expected with
2 * nelt - 1.

* gcc.target/i386/pr68483-1.c: New test.
* gcc.target/i386/pr68483-2.c: New test.

From-SVN: r230797

9 years agore PR c/68337 ([MPX] memcpy() for arrays with function pointers results in huge resou...
Ilya Enkovich [Tue, 24 Nov 2015 09:45:20 +0000 (09:45 +0000)]
re PR c/68337 ([MPX] memcpy() for arrays with function pointers results in huge resource usage and binaries)

gcc/

PR c/68337
* gimple-fold.c: Include ipa-chkp.h.
(gimple_fold_builtin_memory_op): Don't fold call if we
are going to instrument it and it may copy pointers.

gcc/testsuite/

PR c/68337
* gcc.target/i386/mpx/pr68337-1.c: New test.
* gcc.target/i386/mpx/pr68337-2.c: New test.

From-SVN: r230796

9 years ago[RTL-ree] PR rtl-optimization/68194: Restrict copy instruction in presence of conditi...
Kyrylo Tkachov [Tue, 24 Nov 2015 09:31:57 +0000 (09:31 +0000)]
[RTL-ree] PR rtl-optimization/68194: Restrict copy instruction in presence of conditional moves

PR rtl-optimization/68194
PR rtl-optimization/68328
PR rtl-optimization/68185
* ree.c (combine_reaching_defs): Reject copy_needed case if
copies_list is not empty.

* gcc.c-torture/execute/pr68185.c: New test.
* gcc.c-torture/execute/pr68328.c: Likewise.

From-SVN: r230795

9 years agosem_ch3.adb, [...]: Minor reformatting, rewording, and typo corrections.
Gary Dismukes [Tue, 24 Nov 2015 09:22:24 +0000 (09:22 +0000)]
sem_ch3.adb, [...]: Minor reformatting, rewording, and typo corrections.

2015-11-24  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb,
sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor
reformatting, rewording, and typo corrections.

From-SVN: r230794

9 years agore PR middle-end/68221 (libgomp reduction-11/12 failures)
Richard Biener [Tue, 24 Nov 2015 09:17:40 +0000 (09:17 +0000)]
re PR middle-end/68221 (libgomp reduction-11/12 failures)

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

PR middle-end/68221
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
use mem_ref_offset.

From-SVN: r230793

9 years agodecl.c (gnat_to_gnu_entity): In ASIS mode, do a minimal translation for root types...
Eric Botcazou [Tue, 24 Nov 2015 09:00:45 +0000 (09:00 +0000)]
decl.c (gnat_to_gnu_entity): In ASIS mode, do a minimal translation for root types with discriminants.

* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
ASIS mode, do a minimal translation for root types with discriminants.
* gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around.
<N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise.  In ASIS mode,
process the declarations attached to the body.

From-SVN: r230792

9 years agotrans.c (gnat_to_gnu): In type_annotate_only mode, do not build a NULL_EXPR for an...
Eric Botcazou [Tue, 24 Nov 2015 08:52:54 +0000 (08:52 +0000)]
trans.c (gnat_to_gnu): In type_annotate_only mode, do not build a NULL_EXPR for an N_Expanded_Name.

* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do
not build a NULL_EXPR for an N_Expanded_Name.

From-SVN: r230791

9 years agoFix libsanitizer build with old kernel headers on ARM after r230739.
Max Ostapenko [Tue, 24 Nov 2015 08:44:39 +0000 (10:44 +0200)]
Fix libsanitizer build with old kernel headers on ARM after r230739.

libsanitizer/

* include/system/linux/asm/ptrace.h: New header.

From-SVN: r230790

9 years agodecl.c (is_cplusplus_method): Check that the type of the first parameter (indirectly...
Eric Botcazou [Tue, 24 Nov 2015 08:42:37 +0000 (08:42 +0000)]
decl.c (is_cplusplus_method): Check that the type of the first parameter (indirectly) has C++ convention too.

* gcc-interface/decl.c (is_cplusplus_method): Check that the type of
the first parameter (indirectly) has C++ convention too.

From-SVN: r230788

9 years agocombine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)
Segher Boessenkool [Tue, 24 Nov 2015 06:43:20 +0000 (07:43 +0100)]
combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)

Some users of is_parallel_of_n_reg_sets disregard the clobbers in a
parallel after it has returned "yes, this is a parallel of N sets and
maybe some clobbers".  But combine uses a clobber of const0_rtx to
indicate substitution failure, so this leads to disaster.

Fix this by checking for such special clobbers in is_parallel_of_n_reg_sets.

PR rtl-optimization/68381
* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
is poisoned.

From-SVN: r230786