2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
Backport from mainline
2014-06-20 Jakub Jelinek <jakub@redhat.com>
2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/61306
* tree-ssa-math-opts.c (struct symbolic_number): Store type of
expression instead of its size.
(do_shift_rotate): Adapt to change in struct symbolic_number. Return
false to prevent optimization when the result is unpredictable due to
arithmetic right shift of signed type with highest byte is set.
(verify_symbolic_number_p): Adapt to change in struct symbolic_number.
(find_bswap_1): Likewise. Return NULL to prevent optimization when the
result is unpredictable due to sign extension.
(find_bswap): Adapt to change in struct symbolic_number.
Jakub Jelinek [Tue, 24 Jun 2014 15:13:32 +0000 (17:13 +0200)]
re PR target/61570 (-march=native CPU you selected does not support x86-64 instruction under QEMU)
PR target/61570
* config/i386/driver-i386.c (host_detect_local_cpu): For unknown
model family 6 CPU with has_longmode never use a CPU without
64-bit support.
Uros Bizjak [Wed, 18 Jun 2014 20:01:37 +0000 (22:01 +0200)]
backport: re PR target/61423 (Incorrect conversion from unsigned int to floating point)
Backport from mainline
2014-06-06 Uros Bizjak <ubizjak@gmail.com>
PR target/61423
* config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
define_insn_and_split pattern, merged from *floatunssi<mode>2_1
and corresponding splitters. Zero extend general register
or memory input operand to XMM temporary. Enable for
TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
(floatunssi<mode>2): Update expander predicate.
testsuite/ChangeLog:
Backport from mainline
2014-06-13 Ilya Enkovich <ilya.enkovich@intel.com>
Yufeng Zhang [Tue, 17 Jun 2014 14:15:03 +0000 (14:15 +0000)]
re PR target/61483 ([AArch64] builtin va_start incorrectly initializes the field of va_list for incoming unnamed arguments on the stack)
gcc/
PR target/61483
* config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
variable 'size'; calculate 'size' right in the front; use
'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
pcum->aapcs_stack_words.
gcc/testsuite/
PR target/61483
* gcc.target/aarch64/aapcs64/type-def.h (struct hfa_fx2_t): New type.
* gcc.target/aarch64/aapcs64/va_arg-13.c: New test.
* gcc.target/aarch64/aapcs64/va_arg-14.c: Ditto.
* gcc.target/aarch64/aapcs64/va_arg-15.c: Ditto.
Georg-Johann Lay [Thu, 12 Jun 2014 08:54:24 +0000 (08:54 +0000)]
backport: re PR target/61443 ([avr] ICE when varargs argument is indirect addr-space access)
gcc/
Backport from 2014-05-09 trunk r210272
* config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
unsigned int initializers for regno_in, regno_out.
Backport from 2014-05-14 trunk r210418
* config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
shifted values to avoid build warning.
Backport from 2014-06-12 trunk r211491
PR target/61443
* config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
loading from address spaces.
gcc/testsuite/
Backport from 2014-06-12 trunk r211491
PR target/61443
* gcc.target/avr/torture/pr61443.c: New test.
Alan Modra [Wed, 11 Jun 2014 23:50:16 +0000 (09:20 +0930)]
re PR target/61300 (powerpc64le miscompile with K&R-style function definition at -O0)
PR target/61300
* doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
* doc/tm.texi: Regenerate.
* function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
Use throughout in place of REG_PARM_STACK_SPACE.
* config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
"incoming" param. Pass to rs6000_function_parms_need_stack.
(rs6000_function_parms_need_stack): Add "incoming" param, ignore
prototype_p when incoming. Use function decl when incoming
to handle K&R style functions.
* config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
(INCOMING_REG_PARM_STACK_SPACE): Define.
backport: re PR target/61431 (Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems)
2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
Back port from trunk
2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/61431
* config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
iterators, VSX_D that handles 64-bit types, and VSX_LE that
handles swapping the two 64-bit double words on little endian
systems. Include V1TImode and optionally TImode in VSX_LE so that
these types are properly swapped. Change all of the insns and
splits that do the 64-bit swaps to use VSX_LE.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for little endian memory operations): Likewise.
(vsx_xxpermdi2_le_<mode>): Likewise.
(vsx_lxvd2x2_le_<mode>): Likewise.
(vsx_stxvd2x2_le_<mode>): Likewise.
Jonathan Wakely [Tue, 3 Jun 2014 17:58:56 +0000 (18:58 +0100)]
backport: re PR libstdc++/60966 (std::call_once sometime hangs)
Backport from mainline
2014-05-16 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/60966
* include/std/future (__future_base::_State_baseV2::_M_set_result):
Signal condition variable after call_once returns.
(__future_base::_State_baseV2::_M_do_set): Do not signal here.
(promise::set_value, promise::set_exception): Increment the reference
count on the shared state until the function returns.
* testsuite/30_threads/promise/60966.cc: New.
backport: re PR rtl-optimization/60866 (ICE: in get_seqno_for_a_jump, at sel-sched-ir.c:4068 with -fselective-scheduling -fno-if-conversion)
Backport from mainline
2014-05-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/60866
* sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
Default it to -1. Pass it down to init_simplejump_data.
(init_simplejump_data): New parameter old_seqno. Pass it down
to get_seqno_for_a_jump.
(get_seqno_for_a_jump): New parameter old_seqno. Use it for
initializing new jump seqno as a last resort. Add comment.
(sel_redirect_edge_and_branch): Save old seqno of the conditional
jump and pass it down to sel_init_new_insn.
(sel_redirect_edge_and_branch_force): Likewise.
Uros Bizjak [Mon, 2 Jun 2014 22:05:48 +0000 (00:05 +0200)]
backport: re PR target/61239 (ICE in decompose, at rtl.h when compiling vshuf-v16hi.c using -mavx2)
Backport from mainline
2014-06-02 Uros Bizjak <ubizjak@gmail.com>
PR target/61239
* config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
Janne Blomqvist [Mon, 26 May 2014 18:36:01 +0000 (21:36 +0300)]
PR 61310 Rewrite implementation of CTIME and FDATE intrinsics.
2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline
PR libfortran/61310
* intrinsics.texi (CTIME): Remove mention of locale-dependent
behavior.
2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline
PR libfortran/61310
* intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
instead of strftime.
(fdate): Use gf_ctime.
(fdate_sub): Likewise.
(ctime): Likewise.
(ctime_sub): Likewise.