* config/i386/i386.md (preferred_for_size): New attribute
(*pushxf): Split Yx*r constraints to r,*r. Use preferred_for_size
attribute to conditionally disable alternative 1.
(*pushdf): Split Yd*r constraints to r,*r. Use preferred_for_size
and prefered_for_speed attributes to conditionally disable
alternative 1.
(*movxf_internal): Split Yx*r constraints to r,*r. Use
preferred_for_size attribute to conditionally disable
alternatives 3 and 4.
(*movdf_internal): Split Yd*r constraints to r,*r. Use
preferred_for_size and prefered_for_speed attributes to conditionally
disable alternatives 3 and 4.
* config/i386/constraints.md (Yd, Yx): Remove register constraints.
From-SVN: r218134
2014-11-27 Richard Biener <rguenther@suse.de>
PR middle-end/64088
* fold-const.c (const_unop): Re-instantiate missing condition
before calling fold_abs_const.
* gcc.dg/torture/pr64088.c: New testcase.
PR tree-optimization/64088
* tree-ssa-tail-merge.c (update_debug_stmt): After resetting
the stmt break from the loop over use operands.
* gcc.dg/torture/pr64091.c: New testcase.
From-SVN: r218128
2014-11-27 Tony Wang <tony.wang@arm.com>
libgcc/
* config/arm/lib1funcs.S (FUNC_START): Add conditional section
redefine for macro L_arm_muldivsf3 and L_arm_muldivdf3.
(SYM_END, ARM_SYM_START): Add macros used to expose function Symbols.
From-SVN: r218124
PR middle-end/64067
* expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
not only if modifier is EXPAND_INITIALIZER, but whenever
COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
* gcc.c-torture/compile/pr64067.c: New test.
From-SVN: r218121
PR tree-optimization/64024
* tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
field. Add simd_clone_info field.
(STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
(STMT_VINFO_SIMD_CLONE_INFO): Define.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
STMT_VINFO_SIMD_CLONE_INFO vector. For linear arguments, remember
base and linear_step from analysis phase and use it during transform
phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
multiplied by linear_step.
(free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
* gcc.dg/vect/vect-simd-clone-13.c: New test.
* gcc.dg/vect/vect-simd-clone-14.c: New test.
From-SVN: r218120
2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR target/59593
* config/arm/arm.c (dump_minipool): dispatch to consttable pattern
based on mode size.
* config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
make it TARGET_EITHER.
(consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
and move HFmode handling from consttable_4 to it.
(consttable_4): Move HFmode handling to consttable_2 pattern.
* config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
(consttable_2): Ditto.
gcc/testsuite/
PR target/59593
* gcc.target/arm/constant-pool.c: New test.
From-SVN: r218118
2014-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/64083
* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
forcibly mark loop for removal the wrong way.
* gcc.dg/torture/pr64083.c: New testcase.
From-SVN: r218115
2014-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/61634
* tree-vect-slp.c: Include gimple-walk.h.
(vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
down the SLP tree for one scalar statement.
(vect_detect_hybrid_slp_1): New walker function.
(vect_detect_hybrid_slp_2): Likewise.
(vect_detect_hybrid_slp): Properly handle pattern statements
in a pre-scan over all loop stmts.
* gcc.dg/vect/pr61634.c: New testcase.
From-SVN: r218113
This pulls in the missing Binutils pieces into the ./config
directory. Contains these missing Binutils changes:
2014-08-14 Alan Modra <amodra@gmail.com>
* plugins.m4: Test for dlfcn.h or windows.h here to set default
for --enable-plugins. Report error if someone tries to enable
plugins on a host we don't support.
2014-08-19 Alan Modra <amodra@gmail.com>
* plugins.m4 (AC_PLUGINS): If plugins are enabled, add -ldl to
LIBS via AC_SEARCH_LIBS.
For this commit:
2014-11-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/plugins.m4: Merge from Binutils.
From-SVN: r218102
GCC and Binutils had a common ./configure.ac after this commit:
commit 08d081652f50df83f7e9768f8dbb7a99b0df50a2
Author: sandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed May 14 23:20:59 2014 +0000
2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
* configure.ac (target_makefile_frag): Set for nios2-*-elf*.
* configure: Regenerated.
config/
* mt-nios2-elf: New file.
Based on that file version, all GCC and Binutils commits to this file were
applied. This pulls in the following missing Binutils changes to configure.ac:
2014-07-21 Joel Sherrill <joel.sherrill@oarcorp.com>
Disable gdb for or1k*-*-* until supported
* configure.ac (or1k*-*-*): Disable gdb.
* configure: Regenerated.
2014-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>
GDB not supported for or1k*-*-rtems*
* configure.ac (or1k*-*-rtems*): gdb not supported. The ordering
of the stanzas results in this not being caught by or1k*-*-* later.
* configure. Regenerated.
2014-09-06 Kuan-Lin Chen <kuanlinchentw@gmail.com>
* configure: Disable gdb for nds32*-*-* until supported.
* configure.ac: Disable gdb for nds32*-*-* until supported.
2014-09-12 Andrew Bennett <andrew.bennett@imgtec.com>
* configure.ac: Add mips*-img-elf* target triple.
* configure: Regenerate.
For this patch:
2014-11-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* configure.ac: Merge with Binutils.
From-SVN: r218100
/cp
2014-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63757
* call.c (standard_conversion): Do not require expr to be non-null
when NULLPTR_TYPE_P (from) is true.
/testsuite
2014-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63757
* g++.dg/cpp0x/nullptr33.C: New.
From-SVN: r218098
* gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
without -pie or -shared, error on -fsanitize=thread -static instead.
* lib/tsan-dg.exp (check_effective_target_fsanitize_thread,
tsan_init): Don't use -fPIE or -pie.
From-SVN: r218097
* testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
to dg-options unless expensive testing is on.
(TESTITERS): Define to N if not defined.
(main): Use TESTITERS instead of N.
* testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
dg-additional-options depending on whether expensive testing is on.
* testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
Decrease N to 100000 and CHUNKSZ to 10000.
From-SVN: r218095
2014-11-26 Richard Biener <rguenther@suse.de>
PR middle-end/63738
* tree-data-ref.c (split_constant_offset_1): Do not follow
SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
* gcc.dg/torture/pr63738.c: New testcase.
From-SVN: r218088
Diagnose string constant conversion to char* in c++11 and above
as forbidden, not deprecated.
* typeck.c (string_conv_p): Do a pedwarn in c++11 and above,
change the diagnostic for the Wwrite-strings case for c++11 and above.
From-SVN: r218087
2014-11-26 Richard Biener <rguenther@suse.de>
* fold-const.h (const_unop): Declare.
(const_binop): Likewise.
* fold-const.c (const_binop): Export overload that expects
a type parameter and dispatches to fold_relational_const as well.
Check both operand kinds for guarding the transforms.
(const_unop): New function, with constant folding from fold_unary_loc.
(fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
Remove constant folding done there from the simplifications.
(fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
(fold_negate_expr): Remove dead code from the REAL_CST case.
Avoid building garbage in the COMPLEX_CST case.
* gimple-match-head.c (gimple_resimplify1): Dispatch to
const_unop.
(gimple_resimplify2): Dispatch to const_binop.
(gimple_simplify): Likewise.
From-SVN: r218086
gcc/
PR bootstrap/63995
* tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
debug statement when searching for a new position for
bounds load/creation statement.
gcc/testsuite/
PR bootstrap/63995
* gcc.target/i386/pr63995-2.c: New.
From-SVN: r218085
2014-11-26 Richard Biener <rguenther@suse.de>
* gimple-fold.c (get_symbol_constant_value): Allow all
GIMPLE register type zero-constants.
From-SVN: r218076
This implements the DWARFv5 noreturn proposal:
http://dwarfstd.org/ShowIssue.php?issue=140331.1
TREE_THIS_VOLATILE on a FUNCTION_DECL node means the function does not
return normally. This catches the traditional noreturn GNU attribute,
the C11 _Noreturn keyword and the C++11 [[noreturn]] attribute.
This relies on the DW_AT_noreturn constant defined in the DWARFv5 DRAFT:
http://www.dwarfstd.org/doc/dwarf5.20141029.pdf
gcc/ChangeLog
* dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
function decl has TREE_THIS_VOLATILE.
gcc/testsuite/ChangeLog
* g++.dg/debug/dwarf2/noreturn-function.C: New test.
* gcc.dg/debug/dwarf2/noreturn-function-attribute.c: Likewise.
* gcc.dg/debug/dwarf2/noreturn-function-keyword.c: Likewise.
include/ChangeLog
* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.
From-SVN: r218075