gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_logical_op_short_circuit): New procedure.
* gcc.dg/binop-xor1.c: XFAIL for logical_op_short_circuit.
* gcc.dg/tree-ssa/forwprop-28.c: Use logical_op_short_circuit
instead of mips*-*-*, arc*-*-*, avr*-*-* and arm_cortex_m tests.
* gcc.dg/tree-ssa/vrp47.c: Likewise.
* gcc.dg/tree-ssa/vrp87.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. Also use
logical_op_short_circuit for the alternative test, extending
it to arm_cortex_m.
Michael Meissner [Sun, 16 Feb 2014 03:08:03 +0000 (03:08 +0000)]
re PR target/60203 (Support long double/_Decimal128 direct move on power8)
[gcc]
2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
into 64-bit and 32-bit moves. On 64-bit moves, add support for
using direct move instructions on ISA 2.07. Also adjust
instruction length for 64-bit.
(mov<mode>_64bit, TFmode/TDmode): Likewise.
(mov<mode>_32bit, TFmode/TDmode): Likewise.
[gcc/testsuite]
2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
* gcc.target/powerpc/pr60203.c: New testsuite.
Alan Modra [Sat, 15 Feb 2014 10:49:55 +0000 (21:19 +1030)]
re PR target/58675 (ICE in rs6000_secondary_reload_inner:15460, type = store)
PR target/58675
PR target/57935
* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
find_replacement on parts of insn rtl that might be reloaded.
Jeff Law [Fri, 14 Feb 2014 20:26:31 +0000 (13:26 -0700)]
re PR rtl-optimization/60131 (RTL check fail in rhs_regno)
PR rtl-optimization/60131
* ree.c (get_extended_src_reg): New function.
(combine_reaching_defs): Use it rather than assuming location
of REG.
(find_and_remove_re): Verify first operand of extension is
a REG before adding the insns to the copy list.
PR rtl-optimization/60131
* g++.dg/torture/pr60131.C: New test.
Roland McGrath [Fri, 14 Feb 2014 17:37:23 +0000 (17:37 +0000)]
Use ud2 assembly mnemonic when available.
gcc/
* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
* configure: Regenerated.
* config.in: Regenerated.
* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
instead of ASM_SHORT.
Vladimir Makarov [Fri, 14 Feb 2014 16:18:29 +0000 (16:18 +0000)]
re PR rtl-optimization/59535 (-Os code size regressions for Thumb1/Thumb2 with LRA)
2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
Richard Earnshaw <rearnsha@arm.com>
PR rtl-optimization/59535
* lra-constraints.c (process_alt_operands): Encourage alternative
when unassigned pseudo class is superset of the alternative class.
(inherit_reload_reg): Don't inherit when optimizing for code size.
* config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
returning CORE_REGS for anything but Thumb1 and BASE_REGS for
modes not less than 4 for Thumb1.
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r207787
Richard Biener [Fri, 14 Feb 2014 14:07:30 +0000 (14:07 +0000)]
cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
2014-02-14 Richard Biener <rguenther@suse.de>
* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
(get_frame_arg): Drop the assert with langhook types_compatible_p.
Do not strip INDIRECT_REFs.
Richard Biener [Fri, 14 Feb 2014 12:03:43 +0000 (12:03 +0000)]
re PR target/60179 (target optimization attribute streaming is broken)
2014-02-14 Richard Biener <rguenther@suse.de>
PR lto/60179
* lto-streamer-out.c (DFS_write_tree_body): Do not follow
DECL_FUNCTION_SPECIFIC_TARGET.
(hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-out.c (pack_ts_target_option): Remove.
(streamer_pack_tree_bitfields): Do not stream
TS_TARGET_OPTION.
(write_ts_function_decl_tree_pointers): Do not stream
DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-in.c (unpack_ts_target_option): Remove.
(unpack_value_fields): Do not stream TS_TARGET_OPTION.
(lto_input_ts_function_decl_tree_pointers): Do not stream
DECL_FUNCTION_SPECIFIC_TARGET.
lto/
* lto.c (compare_tree_sccs_1): Do not compare
DECL_FUNCTION_SPECIFIC_TARGET.
(lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
Jakub Jelinek [Fri, 14 Feb 2014 07:31:23 +0000 (08:31 +0100)]
tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
* tree-vect-loop.c (vect_is_slp_reduction): Don't set
use_stmt twice.
(get_initial_def_for_induction, vectorizable_induction): Ignore
debug stmts when looking for exit_phi.
(vectorizable_live_operation): Fix up condition.
Richard Biener [Thu, 13 Feb 2014 13:35:10 +0000 (13:35 +0000)]
re PR bootstrap/59878 (ISL from cloog does not work with trunk)
2014-02-13 Richard Biener <rguenther@suse.de>
PR bootstrap/59878
* doc/install.texi (ISL): Update recommended version to 0.12.2,
mention the possibility of an in-tree build.
(CLooG): Update recommended version to 0.18.1, mention the
possibility of an in-tree build and clarify that the ISL
bundled with CLooG does not work.
Dominik Vogt [Thu, 13 Feb 2014 12:38:52 +0000 (12:38 +0000)]
s390.c (s390_asm_output_function_label): Fix crash caused by bad second argument to warning_at() with -mhotpatch and...
2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390.c (s390_asm_output_function_label): Fix crash
caused by bad second argument to warning_at() with -mhotpatch and
nested functions (e.g. with gfortran).
Richard Biener [Wed, 12 Feb 2014 16:01:03 +0000 (16:01 +0000)]
vec.c (vec_prefix::calculate_allocation): Move as inline variant to vec.h.
2014-02-12 Richard Biener <rguenther@suse.de>
* vec.c (vec_prefix::calculate_allocation): Move as
inline variant to vec.h.
(vec_prefix::calculate_allocation_1): New out-of-line version.
* vec.h (vec_prefix::calculate_allocation_1): Declare.
(vec_prefix::m_has_auto_buf): Rename to ...
(vec_prefix::m_using_auto_storage): ... this.
(vec_prefix::calculate_allocation): Inline the easy cases
and dispatch to calculate_allocation_1 which doesn't need the
prefix address.
(va_heap::reserve): Use gcc_checking_assert.
(vec<T, A, vl_embed>::embedded_init): Add argument to initialize
m_using_auto_storage.
(auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
member and adjust.
(vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
(vec<T, va_heap, vl_ptr>::release): Avoid casting.
(vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
Thomas Schwinge [Wed, 12 Feb 2014 14:46:30 +0000 (15:46 +0100)]
Refactor common code into new maybe_fold_stmt function.
gcc/
* gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
common code...
(maybe_fold_stmt): ... into this new function.
* omp-low.c (lower_omp): Update comment.
Richard Biener [Wed, 12 Feb 2014 13:36:08 +0000 (13:36 +0000)]
re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
2014-02-12 Richard Biener <rguenther@suse.de>
PR middle-end/60092
* gimple-low.c (lower_builtin_posix_memalign): Lower conditional
of posix_memalign being successful.
(lower_stmt): Restrict lowering of posix_memalign to when
-ftree-bit-ccp is enabled.
* gcc.dg/torture/pr60092.c: New testcase.
* gcc.dg/tree-ssa/alias-31.c: Disable SRA.
Richard Biener [Wed, 12 Feb 2014 09:01:30 +0000 (09:01 +0000)]
re PR fortran/60060 (lto1: internal compiler error: in add_AT_specification, at dwarf2out.c:4096)
2014-02-12 Richard Biener <rguenther@suse.de>
PR lto/60060
* lto-lang.c (lto_write_globals): Do not call
wrapup_global_declarations or emit_debug_global_declarations
but emit debug info for non-function scope variables
directly.
Jakub Jelinek [Wed, 12 Feb 2014 07:35:50 +0000 (08:35 +0100)]
re PR c/60101 (Long compile times when mixed complex floating point datatypes are used in lengthy expressions)
PR c/60101
* c-common.c (merge_tlist): If copy is true, call new_tlist,
if false, add ADD itself, rather than vice versa.
(verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
copy. For SAVE_EXPR, only call merge_tlist once.
Balaji V. Iyer [Mon, 10 Feb 2014 16:56:54 +0000 (16:56 +0000)]
re PR target/59691 (cilk-plus run failures on non-sse processors)
Fix for PR target/59691.
+2014-02-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR target/59691
+ * runtime/config/x86/os-unix-sysdep.c (__builtin_cpu_supports): New
+ function.
+ (restore_x86_fp_state): Added a check if the cpu supports the
+ instruction before emitting it.
+ (sysdep_save_fp_ctrl_state): Likewise.
+
Jeff Law [Mon, 10 Feb 2014 16:25:44 +0000 (09:25 -0700)]
re PR middle-end/52306 (ICE in cselib_record_set, at cselib.c:2158)
PR middle-end/52306
* reload1.c (emit_input_reload_insns): Do not create invalid RTL
when changing the SET_DEST of a prior insn to avoid an input
reload.
PR middle-end-52306
* gcc.c-torture/compile/pr52306.c: New test.
Richard Biener [Mon, 10 Feb 2014 13:51:23 +0000 (13:51 +0000)]
re PR tree-optimization/60115 (wrong code at -O3 on x86_64-linux-gnu)
2014-02-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/60115
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
MEM_REF handling. Properly verify that the accesses are not
out of the objects bound.
Paul Thomas [Sun, 9 Feb 2014 20:50:21 +0000 (20:50 +0000)]
re PR fortran/57522 ([F03] ASSOCIATE construct creates array descriptor with incorrect stride for derived type array component)
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/57522
* resolve.c (resolve_assoc_var): Set the subref_array_pointer
attribute for the 'associate-name' if necessary.
* trans-stmt.c (trans_associate_var): If the 'associate-name'
is a subref_array_pointer, assign the element size of the
associate variable to 'span'.
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/57522
* gfortran.dg/associated_target_5.f03 : New test
Paul Thomas [Sun, 9 Feb 2014 19:45:06 +0000 (19:45 +0000)]
re PR fortran/59026 (ELEMENTAL procedure with VALUE arguments emits wrong code)
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59026
* trans-expr.c (gfc_conv_procedure_call): Pass the value of the
actual argument to a formal argument with the value attribute
in an elemental procedure.
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59026
* gfortran.dg/elemental_by_value_1.f90 : New test
Janus Weil [Sat, 8 Feb 2014 21:32:25 +0000 (22:32 +0100)]
re PR fortran/58470 ([OOP] ICE on invalid with FINAL procedure and type extension)
2014-02-08 Janus Weil <janus@gcc.gnu.org>
Mikael Morin <mikael.morin@gcc.gnu.org>
PR fortran/58470
* class.c (generate_finalization_wrapper): Assert that proc_tree has
been set in gfc_resolve_finalizers.
* resolve.c (resolve_fl_derived0): Remove unnecessary call to
gfc_is_finalizable.
Jakub Jelinek [Sat, 8 Feb 2014 14:52:39 +0000 (15:52 +0100)]
tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers not at the end of datarefs vector use ordered_remove to avoid...
* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
not at the end of datarefs vector use ordered_remove to avoid
reordering datarefs vector.
Jakub Jelinek [Sat, 8 Feb 2014 09:10:14 +0000 (10:10 +0100)]
re PR c/59984 (OpenMP pragma makes loop incorrect)
PR c/59984
* gimplify.c (gimplify_bind_expr): In ORT_SIMD region
mark local addressable non-static vars as GOVD_PRIVATE
instead of GOVD_LOCAL.
* omp-low.c (lower_omp_for): Move gimple_bind_vars
and BLOCK_VARS of gimple_bind_block to new_stmt rather
than copying them.