Andreas Krebbel [Fri, 5 Feb 2016 10:08:17 +0000 (10:08 +0000)]
S/390: Fix r6 vararg handling.
This patch fixes a problem introduced with the GPR into FPR slot save
feature for leaf functions.
r6 is argument register as well as call-saved. Currently we might
decide that it will be a candidate for being saved into an FPR. If it
turns out later that r6 also needs to be saved due to being required
for vararg we undo the FPR save decision and put it on the stack
again. Unfortunately the code did not adjust the GPR restore range
accordingly so that the register does not get restored in the load
multiple.
This fixes the following testcases on s390x:
< FAIL: libgomp.c/doacross-1.c execution test
< FAIL: libgomp.c/doacross-2.c execution test
< FAIL: libgomp.c/doacross-3.c execution test
< FAIL: libgomp.c++/doacross-1.C execution test
gcc/ChangeLog:
2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/69625
* config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New
defines.
(s390_register_info_gprtofpr): Use new macros above.
(s390_register_info_stdarg_fpr): Adjust max_fpr to better match
its name.
(s390_register_info_stdarg_gpr): Adjust max_gpr to better match
its name. Adjust restore and save gpr ranges.
(s390_register_info_set_ranges): New function.
(s390_register_info): Use new macros above. Call
s390_register_info_set_ranges.
(s390_optimize_register_info): Likewise.
(s390_hard_regno_rename_ok): Use new macros.
(s390_hard_regno_scratch_ok): Likewise.
(s390_emit_epilogue): Likewise.
(s390_can_use_return_insn): Likewise.
(s390_optimize_prologue): Likewise.
* config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
From-SVN: r233168
Jakub Jelinek [Fri, 5 Feb 2016 09:23:03 +0000 (10:23 +0100)]
re PR bootstrap/69677 (bootstrap failed with --with-arch=corei7 --with-cpu=corei7)
PR bootstrap/69677
* config/i386/i386.c (convert_scalars_to_vector): Readd stack
alignment fixes.
(ix86_option_override_internal): Disable TARGET_STV even for
-m{incoming,preferred}-stack-boundary=3.
From-SVN: r233167
H.J. Lu [Fri, 5 Feb 2016 03:06:40 +0000 (03:06 +0000)]
Compile pr69454-2.c with -msse2 -mno-accumulate-outgoing-args
2016-02-04 H.J. Lu <hongjiu.lu@intel.com>
* gcc.target/i386/pr69454-2.c: Compile with -msse2
-mno-accumulate-outgoing-args.
From-SVN: r233166
Trevor Saunders [Fri, 5 Feb 2016 01:40:39 +0000 (01:40 +0000)]
obsolete the deprecated rtems targets
gcc/ChangeLog:
2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* config.gcc: Mark deprecated rtems targets as obsolete.
From-SVN: r233165
GCC Administrator [Fri, 5 Feb 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233164
Jonathan Wakely [Thu, 4 Feb 2016 23:47:21 +0000 (23:47 +0000)]
Test for C99 stdlib.h functions with -std=c++98
PR libstdc++/69626
* acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
* config.h.in: Regenerate.
* configure: Regenerate.
* testsuite/21_strings/c_strings/char/69626.cc: New.
From-SVN: r233161
Segher Boessenkool [Thu, 4 Feb 2016 23:09:51 +0000 (00:09 +0100)]
combine: distribute_notes again (PR69567, PR64682)
As it happens the patch I did over a year ago for PR64682 isn't quite
correct. This is PR69567. This fixes it.
PR rtl-optimization/64682
PR rtl-optimization/69567
* combine.c (distribute_notes) <REG_DEAD>: Place the death note
before I2 only if the register is both used and set in I2.
From-SVN: r233159
Patrick Palka [Thu, 4 Feb 2016 22:54:52 +0000 (22:54 +0000)]
Fix constexpr evaluation of comparisons involving pointer-to-members
gcc/cp/ChangeLog:
* constexpr.c (cxx_eval_binary_expression): Fold equality
comparisons involving PTRMEM_CSTs.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/constexpr-ptrmem5.C: New test.
From-SVN: r233158
DJ Delorie [Thu, 4 Feb 2016 22:54:30 +0000 (17:54 -0500)]
* config/msp430/msp430.c (msp430_start_function): Add function type.
From-SVN: r233157
Ian Lance Taylor [Thu, 4 Feb 2016 22:54:20 +0000 (22:54 +0000)]
libgo: bump version number for upgrade to 1.6rc1
Reviewed-on: https://go-review.googlesource.com/19233
From-SVN: r233156
Jakub Jelinek [Thu, 4 Feb 2016 22:17:05 +0000 (23:17 +0100)]
re PR c/69669 (ICE with enum __attribute__((mode(QI))))
PR c/69669
* c-decl.c (finish_enum): When honoring mode attribute,
make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
* c-c++-common/pr69669.c: New test.
From-SVN: r233154
Jakub Jelinek [Thu, 4 Feb 2016 22:15:33 +0000 (23:15 +0100)]
re PR fortran/69368 (spec2006 test case 416.gamess fails with the g++ 6.0 compiler starting with r232508)
PR fortran/69368
* tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
From-SVN: r233153
Uros Bizjak [Thu, 4 Feb 2016 22:10:56 +0000 (23:10 +0100)]
re PR target/69577 (wrong code with -fno-forward-propagate -mavx and 128bit arithmetics since r215450)
PR rtl-optimization/69577
Revert:
2015-10-29 Richard Henderson <rth@redhat.com>
PR target/68124
PR rtl-opt/67609
* config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
sse check to the exact conditions of PR 67609.
From-SVN: r233152
Jonathan Wakely [Thu, 4 Feb 2016 21:46:19 +0000 (21:46 +0000)]
Regenerate front page of libstdc++ HTML docs
* doc/html/index.html: Regenerate.
From-SVN: r233151
Jonathan Wakely [Thu, 4 Feb 2016 21:43:40 +0000 (21:43 +0000)]
Update copyright years in libstdc++ manual and add link
* doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
* doc/xml/manual/spine.xml: Update copyright years and author blurb.
* doc/html/*: Regenerate.
From-SVN: r233150
Michael Meissner [Thu, 4 Feb 2016 21:05:14 +0000 (21:05 +0000)]
re PR target/69667 (ppc64le -mlra: ICE: Max. number of generated reload insns per insn is achieved (90))
[gcc]
2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/69667
* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
not allowed into the traditional Altivec registers.
(movtd_64bit_nodm): Likewise.
(mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
[gcc/testsuite]
2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/69667
* g++.dg/pr69667.C: New file.
From-SVN: r233147
David Malcolm [Thu, 4 Feb 2016 19:30:28 +0000 (19:30 +0000)]
Fix jit crash on aarch64
gcc/ChangeLog:
* config/aarch64/cortex-a57-fma-steering.c
(aarch64_register_fma_steering): Remove "static" from arguments
to register_pass.
From-SVN: r233146
Wilco Dijkstra [Thu, 4 Feb 2016 18:23:35 +0000 (18:23 +0000)]
This patch fixes an exponential issue in ccmp.c.
This patch fixes an exponential issue in ccmp.c. When deciding which ccmp
expansion to use, the tree nodes gs0 and gs1 are fully expanded twice. If
they contain more CCMP opportunities, their subtrees are also expanded twice.
When the trees are complex the expansion takes exponential time and memory.
As a workaround in GCC6 compute the cost of the first expansion early, and
only try the alternative expansion if the cost is low enough. This rarely
affects real code, eg. SPECINT2006 has identical codesize.
2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
gcc/
PR target/69619
* ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
twice when complex.
gcc/testsuite/
PR target/69619
* gcc.dg/pr69619.c: Add new test.
From-SVN: r233145
Mike Frysinger [Thu, 4 Feb 2016 17:32:11 +0000 (17:32 +0000)]
gcc: invoke: delete -mno-fma4 docs
We don't document the -mno-xxx variants for other flags here, and the
paragraph here specifically says "Each has a corresponding -mno- option
to disable use of these instructions". Drop the -mno-fma4 line.
From-SVN: r233144
Richard Sandiford [Thu, 4 Feb 2016 15:01:15 +0000 (15:01 +0000)]
PR 69577: Invalid RA of destination subregs
In PR 69577 we have:
A: (set (reg:V2TI X) ...)
B: (set (subreg:TI (reg:V2TI X) 0) ...)
X gets allocated to an AVX register, as usual for V2TI. The problem is
that the movti for B doesn't then preserve the other half of X, even
though the subreg semantics are supposed to guarantee that.
If instead the same value had been set by:
A': (set (subreg:TI (reg:V2TI X) 16) ...)
B: (set (subreg:TI (reg:V2TI X) 0) ...)
the subreg in A' would have prevented the use of AVX registers for X,
since you can't directly access the high part.
IMO these are really the same thing. An alternative way to view it
is that the original sequence is equivalent to:
A: (set (reg:V2TI X) ...)
B1: (set (subreg:TI (reg:V2TI X) 0) ...)
B2: (set (subreg:TI (reg:V2TI X) 16) (subreg:TI (reg:V2TI X) 16))
in which B2 is a no-op and therefore implicit. The handling ought
to be the same regardless of whether there is an rtl insn that
explicitly assigns to (subreg:TI (reg:V2TI X) 16).
This patch implements that idea. Hopefully the comments explain
what's going on.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabihf.
gcc/
PR rtl-optimization/69577
* reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
(find_subregs_of_mode): Update accordingly. Iterate over partial
definitions.
gcc/testsuite/
PR rtl-optimization/69577
* gcc.target/i386/pr69577.c: New test.
From-SVN: r233143
Alan Lawrence [Thu, 4 Feb 2016 14:49:02 +0000 (14:49 +0000)]
[ARM] Remove neon_reinterpret, use casts
* config/arm/arm-protos.h (neon_reinterpret): Remove.
* config/arm/arm.c (neon_reinterpret): Remove.
* config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
vreinterpretti): Remove.
* config/arm/neon.md (neon_vreinterpretv8qi<mode>,
neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
* config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
From-SVN: r233142
Joseph Myers [Thu, 4 Feb 2016 14:17:21 +0000 (14:17 +0000)]
Update gcc .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.
From-SVN: r233141
Joseph Myers [Thu, 4 Feb 2016 14:15:08 +0000 (14:15 +0000)]
Update cpplib .po files.
* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
vi.po, zh_CN.po, zh_TW.po: Update.
From-SVN: r233140
Martin Liska [Thu, 4 Feb 2016 11:50:40 +0000 (12:50 +0100)]
re PR sanitizer/69276 (Address sanitizer does not handle heap overflow)
Fix PR sanitizer/69276
* g++.dg/asan/pr69276.C: New test.
PR sanitizer/PR69276
* asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
that are gimple_store_p.
(maybe_instrument_call): Likewise.
From-SVN: r233137
Bin Cheng [Thu, 4 Feb 2016 11:05:46 +0000 (11:05 +0000)]
aarch64.c (aarch64_legitimize_address): Force register scaling out of memory reference and comment why.
* config/aarch64/aarch64.c (aarch64_legitimize_address): Force
register scaling out of memory reference and comment why.
From-SVN: r233136
Jakub Jelinek [Thu, 4 Feb 2016 11:04:07 +0000 (12:04 +0100)]
class.c (find_flexarrays): Don't declare dom variable.
* class.c (find_flexarrays): Don't declare dom variable.
(diagnose_flexarray): Likewise.
From-SVN: r233135
Kyrylo Tkachov [Thu, 4 Feb 2016 09:57:36 +0000 (09:57 +0000)]
[ARM][4/4] Adjust gcc.target/arm/wmul-[123].c tests
PR target/65932
PR target/67714
* gcc.target/arm/wmul-3.c: Simplify test to generate just
a single smulbb instruction.
* gcc.target/amr/wmul-1.c: Add -mtune=cortex-a9 to dg-options.
* gcc.target/amr/wmul-2.c: Likewise.
From-SVN: r233134
Kyrylo Tkachov [Thu, 4 Feb 2016 09:56:13 +0000 (09:56 +0000)]
[cse][3/4] Don't overwrite original rtx when folding source of set
PR target/65932
PR target/67714
* cse.c (cse_insn): Pass NULL to fold_rtx when initially
folding the source of a SET.
From-SVN: r233133
Kyrylo Tkachov [Thu, 4 Feb 2016 09:54:37 +0000 (09:54 +0000)]
[ARM][2/4] Fix operand costing logic for SMUL[TB][TB]
PR target/65932
PR target/67714
* config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
From-SVN: r233132
Kyrylo Tkachov [Thu, 4 Feb 2016 09:51:35 +0000 (09:51 +0000)]
[ARM][1/4] PR target/65932: Add testcase
PR target/65932
PR target/67714
* gcc.c-torture/execute/pr67714.c: New test.
From-SVN: r233131
Jim Wilson [Thu, 4 Feb 2016 09:50:12 +0000 (09:50 +0000)]
[ARM] PR target/65932: stop changing signedness in PROMOTE_MODE
2016-02-04 Jim Wilson <jim.wilson@linaro.org>
PR target/65932
PR target/67714
* config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
HImode.
From-SVN: r233130
Christian Bruel [Thu, 4 Feb 2016 09:06:32 +0000 (10:06 +0100)]
arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
2016-02-04 Christian Bruel <christian.bruel@st.com>
* config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
* config/arm/arm.c (arm_set_current_function): Likewise.
From-SVN: r233129
Jakub Jelinek [Thu, 4 Feb 2016 09:02:01 +0000 (10:02 +0100)]
re PR target/69454 (ix86_expand_prologue internal compiler error: Segmentation fault)
PR target/69454
* config/i386/i386.c (convert_scalars_to_vector): Remove
stack alignment fixes.
(ix86_option_override_internal): Disable TARGET_STV if stack
might not be aligned enough.
(ix86_minimum_alignment): Assert that TARGET_STV is false.
* gcc.target/i386/pr69454-1.c: New test.
* gcc.target/i386/pr69454-2.c: New test.
From-SVN: r233128
Victoria Stepanyan [Thu, 4 Feb 2016 07:52:08 +0000 (07:52 +0000)]
Disable auto prefetcher for -march=znver1.
2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
* gcc/config/i386/x86-tune.def: Disable default prefetching
for -march=znver1.
From-SVN: r233127
Martin Sebor [Thu, 4 Feb 2016 04:50:42 +0000 (21:50 -0700)]
PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array
PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array
member
PR c++/69253 - [6 Regression] ICE in cxx_incomplete_type_diagnostic initializing
a flexible array member with empty string
PR c++/69290 - [6 Regression] ICE on invalid initialization of a flexible array
member
PR c++/69277 - [6 Regression] ICE mangling a flexible array member
PR c++/69349 - template substitution error for flexible array members
gcc/testsuite/ChangeLog:
2016-02-03 Martin Sebor <msebor@redhat.com>
PR c++/69251
PR c++/69253
PR c++/69290
PR c++/69277
PR c++/69349
* g++.dg/ext/flexarray-mangle-2.C: New test.
* g++.dg/ext/flexarray-mangle.C: New test.
* g++.dg/ext/flexarray-subst.C: New test.
* g++.dg/ext/flexary11.C: New test.
* g++.dg/ext/flexary12.C: New test.
* g++.dg/ext/flexary13.C: New test.
* g++.dg/ext/flexary14.C: New test.
* g++.dg/other/dump-ada-spec-2.C: Adjust.
gcc/cp/ChangeLog:
2016-02-03 Martain Sebor <msebor@redhat.com>
PR c++/69251
PR c++/69253
PR c++/69290
PR c++/69277
PR c++/69349
* class.c (walk_subobject_offsets): Avoid testing the upper bound
of a flexible array member for equality to null.
(find_flexarrays): Remove spurious whitespace introduced in r231665.
(diagnose_flexarrays): Avoid checking the upper bound of arrays.
(check_flexarrays): Same.
* decl.c (compute_array_index_type): Avoid special case for flexible
array members.
(grokdeclarator): Avoid calling compute_array_index_type for flexible
array members.
* error.c (dump_type_suffix): Revert changes introduced in r231665
and rendered unnecessary by the changes above.
* pt.c (tsubst): Same.
* tree.c (build_ctor_subob_ref): Handle flexible array members.
* typeck2.c (digest_init_r): Revert changes introduced in r231665.
(process_init_constructor_array): Same.
(process_init_constructor_record): Same.
From-SVN: r233126
H.J. Lu [Thu, 4 Feb 2016 01:46:17 +0000 (01:46 +0000)]
Define check_union_passing6 only for CHECK_FLOAT128
* gcc.target/i386/iamcu/test_passing_unions.c (check_union_passing6):
Define only if CHECK_FLOAT128 is defined.
(main): Properly initialize u5.
From-SVN: r233124
Michael Meissner [Thu, 4 Feb 2016 00:39:34 +0000 (00:39 +0000)]
re PR target/69461 (ICE in lra_set_insn_recog_data, at lra.c:964)
2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
Vladimir Makarov <vmakarov@redhat.com>
PR target/69461
* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
in validating fused toc addresses.
Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>
From-SVN: r233120
GCC Administrator [Thu, 4 Feb 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233119
Jakub Jelinek [Wed, 3 Feb 2016 22:40:22 +0000 (23:40 +0100)]
re PR c/69627 (Conditional jump or move depends on uninitialised value(s) in (anonymous namespace)::layout::get_state_at_point)
PR c/69627
* diagnostic-show-locus.c (layout::get_state_at_point): Don't read
range->m_caret fields if range->m_show_caret_p is false.
* gcc.dg/pr69627.c: New test.
From-SVN: r233114
Jakub Jelinek [Wed, 3 Feb 2016 22:38:56 +0000 (23:38 +0100)]
re PR target/69644 (ICE with -O on __sync_bool_compare_and_swap with short in extract_insn, at recog.c:2286)
PR target/69644
* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
Force oldval into register if it does not satisfy reg_or_short_operand
predicate. Fix up formatting.
* gcc.dg/pr69644.c: New test.
From-SVN: r233113
Mike Stump [Wed, 3 Feb 2016 22:23:57 +0000 (22:23 +0000)]
compat.exp (compat-get-options-main): Add dg-timeout-factor support for struct-layout-1.exp.
* lib/compat.exp (compat-get-options-main): Add dg-timeout-factor
support for struct-layout-1.exp.
From-SVN: r233112
Andreas Tobler [Wed, 3 Feb 2016 22:15:21 +0000 (23:15 +0100)]
re PR bootstrap/69611 (Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.)
2016-02-03 Andreas Tobler <andreast@gcc.gnu.org>
PR bootstrap/69611
* config/rs6000/sfp-machine.h: Guard __sfp_exceptions with
__FLOAT128__ to compile only for __float128 capable targets.
From-SVN: r233111
Ian Lance Taylor [Wed, 3 Feb 2016 21:58:02 +0000 (21:58 +0000)]
libgo: Update to go1.6rc1.
Reviewed-on: https://go-review.googlesource.com/19200
From-SVN: r233110
H.J. Lu [Wed, 3 Feb 2016 20:17:24 +0000 (12:17 -0800)]
Add the new IA MCU test
From-SVN: r233109
Patrick Palka [Wed, 3 Feb 2016 20:14:43 +0000 (20:14 +0000)]
Fix PR c++/69056 (argument pack deduction failure during overload resolution)
gcc/cp/ChangeLog:
PR c++/69056
* pt.c (try_one_overload): Handle comparing argument packs so
that there is no conflict if we deduced more arguments of an
argument pack than were explicitly specified.
gcc/testsuite/ChangeLog:
PR c++/69056
g++.dg/cpp0x/pr69056.C: New test.
From-SVN: r233108
Vladimir Makarov [Wed, 3 Feb 2016 17:58:34 +0000 (17:58 +0000)]
re PR target/69461 (ICE in lra_set_insn_recog_data, at lra.c:964)
2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
Alexandre Oliva <aoliva@redhat.com>
PR target/69461
* lra-constraints.c (simplify_operand_subreg): Check additionally
address validity after potential reloading.
(process_address_1): Check insns validity. In case of failure do
nothing.
2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
Alexandre Oliva <aoliva@redhat.com>
PR target/69461
* gcc.target/powerpc/pr69461.c: New.
Co-Authored-By: Alexandre Oliva <aoliva@redhat.com>
From-SVN: r233107
Uros Bizjak [Wed, 3 Feb 2016 17:01:01 +0000 (18:01 +0100)]
tsan-dg.exp (tsan_init): Move check if tsan executable works from here ...
* lib/tsan-dg.exp (tsan_init): Move check if tsan executable
works from here ...
(check_effective_target_fsanitize_thread): ... to here. Do not
specify additional compile flags for the test source.
* lib/asan-dg.exp (check_effective_target_fsanitize_address): Do not
specify additional compile flags for the test source.
From-SVN: r233106
Kirill Yukhin [Wed, 3 Feb 2016 13:44:50 +0000 (13:44 +0000)]
re PR target/69118 (Wrong condition in avx512f_maskcmp<mode>3)
PR target/69118
gcc/
* config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
Fix target.
From-SVN: r233103
Wilco Dijkstra [Wed, 3 Feb 2016 12:18:19 +0000 (12:18 +0000)]
Fix the ccmp_1.c test back to use '0' as regular expressions don't work correctly.
Fix the ccmp_1.c test back to use '0' as regular expressions don't work
correctly. '0' is right due to compare with zero now printing as
'CMP w0, 0' rather than 'CMP w0, wzr'.
2016-02-03 Wilco Dijkstra <wdijkstr@arm.com>
gcc/testsuite/
* gcc.target/aarch64/ccmp_1.c: Fix test issue.
From-SVN: r233102
Andre Vehreschild [Wed, 3 Feb 2016 10:39:09 +0000 (11:39 +0100)]
re PR fortran/67451 ([F08] ICE with sourced allocation from coarray.)
gcc/testsuite/ChangeLog:
2016-02-03 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/67451
PR fortran/69418
* gfortran.dg/coarray_allocate_2.f08: New test.
* gfortran.dg/coarray_allocate_3.f08: New test.
* gfortran.dg/coarray_allocate_4.f08: New test.
gcc/fortran/ChangeLog:
2016-02-03 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/67451
PR fortran/69418
* trans-expr.c (gfc_copy_class_to_class): For coarrays just the
pointer is passed. Take it as is without trying to deref the
_data component.
* trans-stmt.c (gfc_trans_allocate): Take care of coarrays as
argument to source=-expression.
From-SVN: r233101
Alan Lawrence [Wed, 3 Feb 2016 10:33:03 +0000 (10:33 +0000)]
[Testsuite] Fix scan-tree-dump failures with vect_multiple_sizes
* gcc.dg/vect/vect-outer-1-big-array.c: Drop vect_multiple_sizes;
use same scan-tree-dump-times on all platforms.
* gcc.dg/vect/vect-outer-1.c: Likewise.
* gcc.dg/vect/vect-outer-1a-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-1a.c: Likewise.
* gcc.dg/vect/vect-outer-1b-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-1b.c: Likewise.
* gcc.dg/vect/vect-outer-2b.c: Likewise.
* gcc.dg/vect/vect-outer-3b.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
From-SVN: r233100
Ian Lance Taylor [Wed, 3 Feb 2016 06:54:41 +0000 (06:54 +0000)]
compiler, runtime: mark stub methods, ignore them in runtime.Caller.
This fixes the long-standing bug in which the testing package misreports
the file/line of an error.
Reviewed-on: https://go-review.googlesource.com/19179
From-SVN: r233098
Ian Lance Taylor [Wed, 3 Feb 2016 05:27:16 +0000 (05:27 +0000)]
compiler: Unpack method names when sorting them.
Reviewed-on: https://go-review.googlesource.com/19177
From-SVN: r233097
GCC Administrator [Wed, 3 Feb 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233096
Segher Boessenkool [Tue, 2 Feb 2016 20:38:06 +0000 (21:38 +0100)]
This testcase fails on 32-bit powerpc-linux with
vector-compare-4.c
This testcase fails on 32-bit powerpc-linux with
Excess errors:
/home/segher/src/gcc/gcc/testsuite/c-c++-common/vector-compare-4.c:31:1: warning: GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee
Fix this as in vector-compare-2.c .
testsuite/
* c-c++-common/vector-compare-4.c: Prune "non-standard ABI extension"
warning.
From-SVN: r233093
Jakub Jelinek [Tue, 2 Feb 2016 19:44:16 +0000 (20:44 +0100)]
wide-int.cc (canonize_uhwi): New function.
* wide-int.cc (canonize_uhwi): New function.
(wi::divmod_internal): Use it.
From-SVN: r233092
H.J. Lu [Tue, 2 Feb 2016 19:22:04 +0000 (11:22 -0800)]
Add IA MCU tests for passing/returning of empty structures/unions
* gcc.target/i386/iamcu/test_empty_structs_and_unions.c: New test.
From-SVN: r233090
James Norris [Tue, 2 Feb 2016 19:17:37 +0000 (19:17 +0000)]
gimplify.c (omp_notice_variable): Add usage check.
gcc/
* gimplify.c (omp_notice_variable): Add usage check.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Add tests.
From-SVN: r233089
Alexander Monakov [Tue, 2 Feb 2016 18:24:25 +0000 (21:24 +0300)]
nvptx: do not use alternative spelling of unsigned comparisons
gcc/ChangeLog:
* config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
like LE, GE, LT, GT when emitting relational operator.
gcc/testsuite/ChangeLog:
* gcc.target/nvptx/unsigned-cmp.c: New test.
From-SVN: r233088
Alexander Monakov [Tue, 2 Feb 2016 18:18:43 +0000 (21:18 +0300)]
libgomp: fix target-31.c testcase
* testsuite/libgomp.c/target-31.c: Fix testcase.
From-SVN: r233087
Alexander Monakov [Tue, 2 Feb 2016 18:15:58 +0000 (21:15 +0300)]
libgomp: fix teams-3/4 testcases
* testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
clause.
* testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
reduction and map clauses.
* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
From-SVN: r233086
Wilco Dijkstra [Tue, 2 Feb 2016 17:12:56 +0000 (17:12 +0000)]
Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook.
Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook. It turns out there
is another case where the register allocator uses the union of register classes
without checking that the cost of the resulting register class is lower than
both (see https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01765.html ). This
happens when the cost of the best and alternative class are both lower than the
memory cost. In this case we typically end up with ALL_REGS as the allocno
class, which almost invariably results in bad allocations with many redundant
int<->FP moves (which are expensive on various cores). AArch64 is affected by
this significantly due to supporting many scalar integer operations in SIMD.
Currently the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook forces the class to
GENERAL_REGS if the allocno class is ALL_REGS and the register has an integer
mode. This is bad if the best class happens to be FP_REGS. To handle this
case as well, an extra argument is needed in the hook to pass the best class.
If the allocno class is ALL_REGS, but the best class isn't, we use the best
class instead (rather than using the mode to force to GENERAL_REGS or FP_REGS).
Previously this might happen:
r79: preferred FP_REGS, alternative GENERAL_REGS, allocno GENERAL_REGS
a1 (r79,l0) best GENERAL_REGS, allocno GENERAL_REGS
a1(r79,l0) costs: CALLER_SAVE_REGS:5000,5000 GENERAL_REGS:5000,5000
FP_LO_REGS:0,0 FP_REGS:0,0 ALL_REGS:10000,10000 MEM:9000,9000
The proposed allocno is ALL_REGS (despite having the highest cost!) and is then
forced by the hook to GENERAL_REGS because r79 has integer mode. However
FP_REGS has the lowest cost. After this patch the choice is as follows:
r79: preferred FP_REGS, alternative GENERAL_REGS, allocno FP_REGS
a1 (r79,l0) best FP_REGS, allocno FP_REGS
As a result it is now no longer a requirement to use register move costs that
are larger than the memory move cost. So it will be feasible to use realistic
costs for both without a huge penalty.
2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
gcc/
* ira-costs.c (find_costs_and_classes): Add extra argument.
* target.def (ira_change_pseudo_allocno_class): Add parameter.
* targhooks.h (ira_change_pseudo_allocno_class): Likewise.
* targhooks.c (ira_change_pseudo_allocno_class): Likewise.
* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
Add best_class parameter, and return it if not ALL_REGS.
* config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
Add parameter.
* doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
Update target hook.
From-SVN: r233084
Wilco Dijkstra [Tue, 2 Feb 2016 17:03:05 +0000 (17:03 +0000)]
This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook.
When the cost of GENERAL_REGS and FP_REGS is identical, the register allocator
always uses ALL_REGS even when it has a much higher cost. The hook changes the
class to either FP_REGS or GENERAL_REGS depending on the mode of the register.
This results in better register allocation overall, fewer spills and reduced
codesize - particularly in SPEC2006 gamess.
2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
gcc/
* config/aarch64/aarch64.c
(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
(aarch64_ira_change_pseudo_allocno_class): New function.
gcc/testsuite/
* gcc.target/aarch64/scalar_shift_1.c
(test_corners_sisd_di): Improve force to SIMD register.
(test_corners_sisd_si): Likewise.
* gcc.target/aarch64/vect-ld1r-compile-fp.c:
Remove scan-assembler check for ldr.
From-SVN: r233083
James Norris [Tue, 2 Feb 2016 16:22:26 +0000 (16:22 +0000)]
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
From-SVN: r233082
Uros Bizjak [Tue, 2 Feb 2016 16:07:24 +0000 (17:07 +0100)]
re PR target/67032 (Geode optimizations incorrectly return -NaN)
PR target/67032
* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
From-SVN: r233079
Senthil Kumar Selvaraj [Tue, 2 Feb 2016 16:01:45 +0000 (16:01 +0000)]
avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1.
* config/avr/avr.c (avr_option_override): Set
PARAM_ALLOW_STORE_DATA_RACES to 1.
From-SVN: r233078
Claudiu Zissulescu [Tue, 2 Feb 2016 15:24:22 +0000 (16:24 +0100)]
MAINTAINERS (Write After Approval): Add myself
2016-02-02 Claudiu Zissulescu <claziss@synopsys.com>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r233077
Richard Biener [Tue, 2 Feb 2016 15:19:32 +0000 (15:19 +0000)]
re PR tree-optimization/69595 (Bogus -Warray-bound warning due to missed optimization)
2016-02-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/69595
* match.pd: Add range test simplifications to true/false.
* gcc.dg/Warray-bounds-17.c: New testcase.
From-SVN: r233076
Thomas Schwinge [Tue, 2 Feb 2016 13:53:55 +0000 (14:53 +0100)]
Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START
gcc/
* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
* omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
instead.
libgomp/
* libgomp.map (GOACC_2.0): Remove GOACC_host_data.
* oacc-parallel.c (GOACC_host_data): Remove function definition.
From-SVN: r233074
Thomas Schwinge [Tue, 2 Feb 2016 12:48:41 +0000 (13:48 +0100)]
libgomp: Skip hsa offloading for OpenACC test cases
libgomp/
* testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
cases.
From-SVN: r233073
Thomas Schwinge [Tue, 2 Feb 2016 12:48:31 +0000 (13:48 +0100)]
libgomp: Use HSA_RUNTIME_LIB, HSA_KMT_LIB in the testsuite
libgomp/
* plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
variables.
* testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
(hsa_kmt_lib): Set variables.
* testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
always_ld_library_path.
* Makefile.in: Regenerate.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r233072
Thomas Schwinge [Tue, 2 Feb 2016 12:48:21 +0000 (13:48 +0100)]
libgomp: For hsa offloading, compilation is all handled by the target compiler
libgomp/
* plugin/configfrag.ac (offload_additional_options)
(offload_additional_lib_paths): Don't amend for hsa offloading.
* configure: Regenerate.
From-SVN: r233071
Thomas Schwinge [Tue, 2 Feb 2016 12:48:04 +0000 (13:48 +0100)]
libgomp: Don't configure for offloading target if we don't build the corresponding plugin
libgomp/
* plugin/configfrag.ac: Don't configure for offloading target if
we don't build the corresponding plugin.
* configure: Regenerate.
From-SVN: r233070
Richard Biener [Tue, 2 Feb 2016 12:39:36 +0000 (12:39 +0000)]
re PR tree-optimization/69606 (wrong code at -Os and above on x86_64-linux-gnu)
2016-02-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/69606
* tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
info on the result before moving a stmt.
* gcc.dg/torture/pr69606.c: New testcase.
From-SVN: r233069
Yuri Rumyantsev [Tue, 2 Feb 2016 09:46:26 +0000 (09:46 +0000)]
re PR middle-end/68542 (10% 481.wrf performance regression)
gcc/
2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
PR middle-end/68542
* config/i386/i386.c (ix86_expand_branch): Add support for conditional
branch with vector comparison.
* config/i386/sse.md (VI48_AVX): New mode iterator.
(define_expand "cbranch<mode>4): Add support for conditional branch
with vector comparison.
* tree-vect-loop.c (optimize_mask_stores): New function.
* tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
has_mask_store field of vect_info.
* tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
vectorized loops having masked stores after vec_info destroy.
* tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
correspondent macros.
(optimize_mask_stores): Add prototype.
gcc/testsuite
2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
PR middle-end/68542
* gcc.dg/vect/vect-mask-store-move-1.c: New test.
* gcc.target/i386/avx2-vect-mask-store-move1.c: New test.
From-SVN: r233068
Alan Modra [Tue, 2 Feb 2016 01:29:17 +0000 (11:59 +1030)]
[RS6000] lqarx and stqcx. registers
lqarx RT and stqcx. RS are valid only with even numbered gprs. The
predicate to enforce this happens to allow a loophole, closed by this
patch.
PR target/69548
gcc/
* config/rs6000/predicates.md (quad_int_reg_operand): Don't
allow subregs.
gcc/testsuite/
* gcc.target/powerpc/pr69548.c: New test.
From-SVN: r233065
GCC Administrator [Tue, 2 Feb 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233064
Alan Modra [Tue, 2 Feb 2016 00:01:16 +0000 (10:31 +1030)]
[RS6000] ABI_V4 init of toc section
Since
4c4a180d lto has turned off flag_pic when linking a fixed
position executable. So flag_pic is zero in rs6000_file_start.
However, when we get to actually emitting code, flag_pic may be on
again. This results in undefined references to ".LCTOC1".
PR target/68662
* config/rs6000/rs6000.c (need_toc_init): New var, set it
whenever toc_label_name used.
(rs6000_file_start): Don't set up toc section here,
(rs6000_output_function_epilogue): do so here instead,
(rs6000_xcoff_file_start): and here.
* config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
(load_toc_aix_di): Likewise.
From-SVN: r233061
Jakub Jelinek [Mon, 1 Feb 2016 22:39:31 +0000 (23:39 +0100)]
re PR rtl-optimization/69592 (Compile-time and memory-use hog in combine)
PR rtl-optimization/69592
* rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
(cached_nonzero_bits): Use it instead of ARITHMETIC_P.
(num_sign_bit_copies_binary_arith_p): New inline function.
(cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
* gcc.dg/pr69592.c: New test.
From-SVN: r233059
Jakub Jelinek [Mon, 1 Feb 2016 22:36:07 +0000 (23:36 +0100)]
re PR preprocessor/69543 (_Pragma does not apply within macro)
PR preprocessor/69543
PR c/69558
* c-pragma.c (handle_pragma_diagnostic): Pass input_location
instead of loc to control_warning_option.
* gcc.dg/pr69543.c: New test.
* gcc.dg/pr69558.c: New test.
From-SVN: r233058
Uros Bizjak [Mon, 1 Feb 2016 22:25:31 +0000 (23:25 +0100)]
* Add PR number.
From-SVN: r233057
Uros Bizjak [Mon, 1 Feb 2016 22:20:47 +0000 (23:20 +0100)]
anon5.C (dg-opetions): Use -gdwarf-2 instead of -g.
* g++.dg/other/anon5.C (dg-opetions): Use -gdwarf-2 instead of -g.
From-SVN: r233056
Jeff Law [Mon, 1 Feb 2016 22:05:58 +0000 (15:05 -0700)]
Fix PR # in last change
From-SVN: r233054
Jeff Law [Mon, 1 Feb 2016 22:03:57 +0000 (15:03 -0700)]
re PR testsuite/68580 (FAIL: c-c++-common/tsan/pr65400-1.c -O0 execution test)
PR tree-optimization/68580
* params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
* tree-ssa-threadbackward.c
(fsm_find_control_statement_thread_paths): Do not try to walk
through large PHI nodes.
From-SVN: r233053
Jakub Jelinek [Mon, 1 Feb 2016 20:37:49 +0000 (21:37 +0100)]
ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false when count is incremented above limit...
* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
when count is incremented above limit, don't analyze further
insns afterwards.
From-SVN: r233050
Martin Sebor [Mon, 1 Feb 2016 19:38:53 +0000 (19:38 +0000)]
Remove duplicate copy of the test body inadvertently inserted by patch.
From-SVN: r233045
Jakub Jelinek [Mon, 1 Feb 2016 19:14:59 +0000 (20:14 +0100)]
omp-low.c (oacc_parse_default_dims): Avoid -Wsign-compare warning...
* omp-low.c (oacc_parse_default_dims): Avoid
-Wsign-compare warning, make sure value fits into int
rather than just unsigned int.
From-SVN: r233044
Bin Cheng [Mon, 1 Feb 2016 17:17:47 +0000 (17:17 +0000)]
re PR tree-optimization/67921 ("internal compiler error: in build_polynomial_chrec, at tree-chrec.h:147" when using -fsanitize=undefined)
PR tree-optimization/67921
* fold-const.c (split_tree): New parameters. Convert pointer
type variable part to proper type before negating.
(fold_binary_loc): Pass new arguments to split_tree.
gcc/testsuite/ChangeLog
PR tree-optimization/67921
* c-c++-common/ubsan/pr67921.c: New test.
From-SVN: r233042
Nathan Sidwell [Mon, 1 Feb 2016 16:20:13 +0000 (16:20 +0000)]
nvptx.c (PTX_GANG_DEFAULT): New.
gcc/
* config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
(nvptx_goacc_validate_dims): Extend to handle global defaults.
* target.def (OACC_VALIDATE_DIMS): Extend documentation.
* doc/tm.texti: Rebuilt.
* doc/invoke.texi (fopenacc-dim): Document.
* lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
(append_compiler_options): Likewise.
* omp-low.c (oacc_default_dims, oacc_min_dims): New.
(oacc_parse_default_dims): New.
(oacc_validate_dims): Add USED arg. Select non-unity default when
possible.
(oacc_loop_fixed_partitions): Return mask of used partitions.
(oacc_loop_auto_partitions): Emit dump info.
(oacc_loop_partition): Return mask of used partitions.
(execute_oacc_device_lower): Parse default dimension arg. Adjust
loop partitioning and validation calls.
gcc/c-family/
* c.opt (fopenacc-dim=): New option.
gcc/fortran/
* lang.opt (fopenacc-dim=): New option.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
* testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
From-SVN: r233041
Richard Biener [Mon, 1 Feb 2016 15:40:23 +0000 (15:40 +0000)]
re PR tree-optimization/69556 (forwprop4/match.pd undoing work from recip)
2016-02-01 Richard Biener <rguenther@suse.de>
PR middle-end/69556
* match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
* gcc.dg/tree-ssa/recip-8.c: New testcase.
From-SVN: r233040
Richard Biener [Mon, 1 Feb 2016 15:38:08 +0000 (15:38 +0000)]
re PR tree-optimization/69574 (gcc ICE at -O2 and -O3 on x86_64-linux-gnu in hide_evolution_in_other_loops_than_loop)
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69574
* tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
of asserting return chrec_dont_know.
* gcc.dg/torture/pr69574.c: New testcase.
From-SVN: r233039
Martin Liska [Mon, 1 Feb 2016 13:57:09 +0000 (14:57 +0100)]
Missing copyright for mem-stats header files.
* mem-stats-traits.h: Add copyright header.
* mem-stats.h: Likewise.
From-SVN: r233037
Richard Biener [Mon, 1 Feb 2016 12:39:04 +0000 (12:39 +0000)]
re PR tree-optimization/69579 (gcc ICE at -O3 and __sigsetjmp with “tree check: expected ssa_name, have integer_cst in compute_optimized_partition_bases”)
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69579
* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
Do not propagate through abnormal PHI results.
* gcc.dg/setjmp-6.c: New testcase.
From-SVN: r233036
Bernd Edlinger [Mon, 1 Feb 2016 11:13:40 +0000 (11:13 +0000)]
Don't define guard macros when doing #include_next in math.h and stdlib.h
2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR libstdc++/69581
* include/c_compatibility/math.h: Move header guards.
* include/c_compatibility/stdlib.h: Likewise.
From-SVN: r233035
Eric Botcazou [Mon, 1 Feb 2016 11:04:22 +0000 (11:04 +0000)]
* postreload.c (reload_cse_simplify): Remove dead code.
From-SVN: r233034
Jakub Jelinek [Mon, 1 Feb 2016 08:47:27 +0000 (09:47 +0100)]
re PR rtl-optimization/69570 (if-conversion bug on i?86)
PR rtl-optimization/69570
* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
if there is more than one set, not if there is a single set.
* g++.dg/opt/pr69570.C: New test.
From-SVN: r233033
Richard Henderson [Mon, 1 Feb 2016 07:32:01 +0000 (23:32 -0800)]
re PR rtl-optimization/69535 (wrong code with -O -fno-tree-bit-ccp -fno-tree-reassoc due to use of uninitialised value)
PR rtl-opt/69535
* combine.c (make_compound_operation): When looking through a
subreg, make sure to re-extend to the width of the outer mode.
From-SVN: r233032
John David Anglin [Mon, 1 Feb 2016 01:12:23 +0000 (01:12 +0000)]
re PR testsuite/69584 (FAIL: gcc.dg/pr67964.c (test for excess errors))
PR testsuite/69584
* gcc.dg/tree-ssa/sra-17.c: Fix regexps to work on hpux.
* gcc.dg/tree-ssa/sra-18.c: Likewise.
From-SVN: r233030
John David Anglin [Mon, 1 Feb 2016 00:54:22 +0000 (00:54 +0000)]
re PR target/68741 (FAIL: tr1/8_c_compatibility/cstdio/functions.cc (test for excess errors))
PR target/68741
* inclhack.def (hpux_vsscanf): New fix.
* fixincl.x: Regenerated.
* tests/base/stdio.h [HPUX_VSSCANF_CHECK]: New test.
From-SVN: r233029
John David Anglin [Mon, 1 Feb 2016 00:38:17 +0000 (00:38 +0000)]
re PR debug/68244 (FAIL: g++.dg/parse/parens3.C -std=gnu++98 (internal compiler error))
PR debug/68244
* g++.dg/parse/parens3.C: Use register "4" on hppa.
From-SVN: r233028