Commit Graph

143317 Commits

Author SHA1 Message Date
Richard Henderson 7c11b0fef0 re PR ipa/67811 ([TM] ICE with try-block in transaction)
PR ipa/67811

	* gimple.h (struct gtransaction): Add label_norm, label_uninst;
	replace label with label_over.
	(gimple_build_transaction): Remove label parameter.
	(gimple_transaction_label_norm): New.
	(gimple_transaction_label_uninst): New.
	(gimple_transaction_label_over): Rename from gimple_transaction_label.
	(gimple_transaction_label_norm_ptr): New.
	(gimple_transaction_label_uninst_ptr): New.
	(gimple_transaction_label_over_ptr): Rename from
	gimple_transaction_label_ptr.
	(gimple_transaction_set_label_norm): New.
	(gimple_transaction_set_label_uninst): New.
	(gimple_transaction_set_label_over): Rename from
	gimple_transaction_set_label.
	* gimple-pretty-print.c (dump_gimple_transaction): Update.
	* gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same.
	* tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same.
	(cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same.
	(verify_gimple_transaction): Same.
	(gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same.
	* tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple.c (gimple_build_transaction): Remove label parameter;
	initialize all three label memebers.
	* gimplify.c (gimplify_transaction): Update call
	to gimple_build_transaction.
	* trans-mem.c (make_tm_uninst): New.
	(lower_transaction): Create uninstrumented code path here...
	(ipa_tm_scan_calls_transaction): ... not here.
	(ipa_uninstrument_transaction): Remove.

testsuite/
	* g++.dg/tm/noexcept-1.C: Update expected must_not_throw count.
	* g++.dg/tm/noexcept-4.C: Likewise.
	* g++.dg/tm/noexcept-5.C: Likewise.
	* g++.dg/tm/pr67811.C: New.

From-SVN: r231907
2015-12-22 11:42:24 -08:00
Peter Bergner ebe9921f0c Fix previous ChangeLog entry
From-SVN: r231906
2015-12-22 13:29:04 -06:00
Peter Bergner fa17b3dba4 re PR target/68772 (Many -gstabs tests FAIL with Xcode 7 as)
gcc/
	PR target/68772
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le,
	pass %(asm_cpu_power8)/-mpwr8.
	* config/rs6000/aix53.h: Likewise.
	* config/rs6000/aix61.h: Likewise.
	* config/rs6000/aix71.h: Likewise.

gcc/testsuite/
	PR target/68772
	* gcc.target/powerpc/pr68872.c: New test.

From-SVN: r231905
2015-12-22 13:27:14 -06:00
Patrick Palka 6be028226e Fix read of uninitialized value in make_pack_expansion()
gcc/cp/ChangeLog:

	* pt.c (make_pack_expansion): Make sure to initialize
	ppd.type_pack_expansion_p.

From-SVN: r231904
2015-12-22 17:49:21 +00:00
H.J. Lu af9345d7df [PATCH] Use call-clobbered register for sibcall via GOT
From: H.J. Lu  <hongjiu.lu@intel.com>

Since sibcall never returns, we can only use call-clobbered register as
GOT base.  Otherwise, callee-saved register used as GOT base won't be
properly restored.  sibcall_memory_operand is changed to allow 32-bit
GOT slot only with pseudo register as GOT base for RTL expansion.  2
new patterns, *sibcall_GOT_32 and *sibcall_value_GOT_32, are added to
expose GOT base register to register allocator so that call-clobbered
register will be used for GOT base.

gcc/

	PR target/68937
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Count
	call to global function via GOT slot as indirect call.
	* config/i386/i386.md (*sibcall_GOT_32): New pattern.
	(*sibcall_value_GOT_32): Likewise.
	* config/i386/predicates.md (sibcall_memory_operand): Rewrite.
	Allow 32-bit GOT slot only with pseudo register as GOT base.
	(GOT32_symbol_operand): New predicate.

gcc/testsuite/

	PR target/68937
	* gcc.target/i386/pr68937-1.c: New test.
	* gcc.target/i386/pr68937-2.c: Likewise.
	* gcc.target/i386/pr68937-3.c: Likewise.
	* gcc.target/i386/pr68937-4.c: Likewise.
	* gcc.target/i386/pr68937-5.c: Likewise.
	* gcc.target/i386/pr68937-6.c: Likewise.

From-SVN: r231903
2015-12-22 16:38:25 +01:00
Marek Polacek fda5652f8f re PR c/69002 (C front end should warn about undefined access to atomic structure or union)
PR c/69002
	* c-typeck.c (build_component_ref): Warn when acessing elements of
	atomic structures or unions.

	* gcc.dg/c11-atomic-1.c: Add dg-warnings.
	* gcc.dg/c11-atomic-4.c: New test.

From-SVN: r231902
2015-12-22 15:23:21 +00:00
Sujoy Saraswati 5a00b0aaf0 This series of patches fix PR61441.
This series of patches fix PR61441. This patch avoids various transformations
with signaling NaN operands when flag_signaling_nans is on, to avoid folding
which would lose exceptions.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* fold-const.c (const_binop): Convert sNaN to qNaN when
	flag_signaling_nans is off.
	(const_unop): Avoid the operation, other than NEGATE and
	ABS, if flag_signaling_nans is on and the operand is an sNaN.
	(fold_convert_const_real_from_real): Avoid the operation if
	flag_signaling_nans is on and the operand is an sNaN.
	(integer_valued_real_unary_p): Update comment stating it
	returns false for sNaN values.
	(integer_valued_real_binary_p, integer_valued_real_call_p): Same.
	(integer_valued_real_single_p): Same.
	(integer_valued_real_invalid_p, integer_valued_real_p): Same.
	* fold-const-call.c (fold_const_pow): Avoid the operation
	if flag_signaling_nans is on and the operand is an sNaN.
	(fold_const_builtin_load_exponent) Same.
	(fold_const_call_sss): Same for CASE_CFN_POWI.
	* gimple-fold.c (gimple_assign_integer_valued_real_p): Same.
	(gimple_call_integer_valued_real_p): Same.
	(gimple_phi_integer_valued_real_p): Same.
	(gimple_stmt_integer_valued_real_p): Same.
	* simplify-rtx.c (simplify_const_unary_operation): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.
	(simplify_const_binary_operation): Same.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.

	* gcc.dg/pr61441.c: New testcase.

From-SVN: r231901
2015-12-22 14:04:30 +00:00
Jonathan Wakely 9643ce888b Add inline to std::__invfwd
PR libstdc++/59768
	* include/std/functional (__invfwd): Add inline specifier.

From-SVN: r231900
2015-12-22 11:37:07 +00:00
Kyrylo Tkachov dda5c83188 [combine] Check WORD_REGISTER_OPERATIONS normally rather than through preprocessor
* combine.c (simplify_comparison): Convert preprocessor check of
	WORD_REGISTER_OPERATIONS into runtime check.

From-SVN: r231899
2015-12-22 10:42:47 +00:00
Eric Botcazou 18fccdb440 * gcc.dg/torture/pr68264.c: Tweak for Solaris.
From-SVN: r231898
2015-12-22 09:52:13 +00:00
Eric Botcazou f4fd20a2f0 re PR debug/60756 (var-tracking selects wrong registers)
PR debug/60756
	* var-tracking.c (tracked_record_parameter_p): New predicate.
	(track_expr_p): Invoke it.
	(add_stores): Likewise.

From-SVN: r231897
2015-12-22 09:51:02 +00:00
Jeff Law 102a9b4320 dbgcnt.def (dom_unreachable_edges): New debug counter.
* dbgcnt.def (dom_unreachable_edges): New debug counter.
	* tree-ssa-dom.c: Include dbgcnt.h
	(dom_opt_dom_walker::before_dom_children): Handle the new counter.

From-SVN: r231896
2015-12-21 20:09:08 -07:00
Ian Lance Taylor 399f5feb92 go-gcc.cc (class Bvariable): Remove Gcc_tree parent class.
* go-gcc.cc (class Bvariable): Remove Gcc_tree parent class.  Add
	t_ and orig_type_ fields.  Add new two parameter constructor.  Add
	get_tree and get_decl methods.
	(Gcc_backend::var_expression): Pass location to var get_tree.
	(Gcc_backend::global_variable): Don't add VIEW_CONVERT_EXPR.  Use
	two parameter constructor for Bvariable.
	(Gcc_backend::global_variable_set_init): Don't remove
	VIEW_CONVERT_EXPR.  Use var get_decl, not get_tree.
	(Gcc_backend::write_global_definitions): Likewise.
	(Gcc_backend::init_statement): Call var get_decl, not get_tree.
	(Gcc_backend::block): Likewise.
	(Gcc_backend::implicit_variable_set_init): Likewise.
	(Gcc_backend::immutable_struct_set_init): Likewise.
	(Gcc_backend::function_set_parameters): Likewise.

From-SVN: r231894
2015-12-22 01:58:17 +00:00
GCC Administrator 18fb580c1e Daily bump.
From-SVN: r231892
2015-12-22 00:16:12 +00:00
Ian Lance Taylor 8fd41e922d go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized, add a VIEW_CONVERT_EXPR to the tree.
* go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized,
	add a VIEW_CONVERT_EXPR to the tree.
	(Gcc_backend::global_variable_set_init): Remove any
	VIEW_CONVERT_EXPR.
	(Gcc_backend::write_global_definitions): Likewise.

From-SVN: r231888
2015-12-22 00:10:07 +00:00
Andrew Pinski bf507c789e aarch64-option-extensions.def (LSE): Change FEAT_STRING to "atomics".
2015-12-21  Andrew Pinski <apinski@cavium.com>

        * config/aarch64/aarch64-option-extensions.def (LSE): Change
        FEAT_STRING to "atomics".

From-SVN: r231887
2015-12-21 11:48:03 -08:00
David Malcolm 745e411d4f C and C++ FE: fix source ranges for binary ops
gcc/c-family/ChangeLog:
	* c-common.c (binary_op_error): Convert first param from
	location_t to rich_location * and use it when emitting an error.
	* c-common.h (binary_op_error): Convert first param from
	location_t to rich_location *.

gcc/c/ChangeLog:
	* c-typeck.c: Include "gcc-rich-location.h".
	(build_binary_op): In the two places that call binary_op_error,
	create a gcc_rich_location and populate it with the location of
	the binary op and its two operands.

gcc/cp/ChangeLog:
	* typeck.c (cp_build_binary_op): Update for change in signature
	of build_binary_op.  Use error_at to replace an implicit use
	of input_location with param "location" in "invalid operands"
	error.
	(cp_build_binary_op): Replace an error with an error_at, using
	"location", rather than implicitly using input_location.

gcc/testsuite/ChangeLog:
	* g++.dg/diagnostic/bad-binary-ops.C: New test case.
	* gcc.dg/bad-binary-ops.c: New test case.
	gcc.dg/plugin/diagnostic_plugin_show_trees.c (get_range_for_expr):
	Remove material copied from gcc-rich-location.c
	(gcc_rich_location::add_expr): Likewise.

From-SVN: r231884
2015-12-21 17:45:34 +00:00
Pierre-Marie de Rodat 7c154ecc12 DWARF: allow dynamic data member offsets for inheritance info
An unintended effect of the recently introduced machinery to handle
dynamic data member offsets in variable-length records (when
-fgnat-encodings=minimal) prevented GCC from describing correctly
inheritance information for classes in C++, which is a regression.

This change rectifies this machinery in this case.

gcc/ChangeLog:

	* dwarf2out.c (add_data_member_location_attribute): Do not
	disable dynamic data member offsets descriptions for TREE_BINFO
	members.

From-SVN: r231883
2015-12-21 15:44:32 +00:00
Eric Botcazou 059fbfa82b re PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)
PR tree-optimization/65337
	* tree-ssa-pre.c (eliminate): Also clean up abnormal edges if need be.

From-SVN: r231882
2015-12-21 15:15:50 +00:00
Jonathan Wakely 989d4a8609 Rename test file that had incorrect bug number
PR libstdc++/68982
	testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ...
	testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number.

From-SVN: r231881
2015-12-21 14:16:36 +00:00
Jonathan Wakely a716d11ad4 libstdc++/68995 qualify calls to __callable_functor
PR libstdc++/68995
	* include/std/functional (_function_handler, function): Qualify
	__callable_functor.
	* testsuite/20_util/function/68995.cc: New.

From-SVN: r231880
2015-12-21 13:02:18 +00:00
Jonathan Wakely e9e6a99538 libstdc++/68276 consistently qualify std::forward
PR libstdc++/68276
	* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
	std::forward.
	testsuite/20_util/function_objects/mem_fn/68276.cc: New.

From-SVN: r231879
2015-12-21 13:02:12 +00:00
Eric Botcazou c453c55157 Fix typo
From-SVN: r231877
2015-12-21 11:41:34 +00:00
Dominik Vogt 0b729f5806 S/390: Fix base reg condition.
2015-12-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Fix base reg condition.

From-SVN: r231876
2015-12-21 11:40:42 +00:00
Ville Voutilainen de0830e12b re PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)
PR libstdc++/66693.

	* include/std/tuple (tuple_element, tuple_size, tuple_element_t,
	__tuple_element_t): Move to...
	* include/std/utility: ...here.
	* testsuite/20_util/pair/astuple/astuple.cc: Adjust.
	* testsuite/20_util/pair/astuple/astuple_cpp14.cc: New.
	* testsuite/20_util/tuple/tuple_element.cc: Adjust.
	* testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc:
	New.
	* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust.

From-SVN: r231875
2015-12-21 13:22:16 +02:00
Claudiu Zissulescu c69899f097 [ARC] Add and refurbish the builtins related functions.
gcc/
2015-12-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/builtins.def: New file.
	* config/arc/arc.c (arc_init_simd_builtins): Remove.
	(arc_builtins): Likewise.
	(TARGET_BUILTIN_DECL): Define.
	(arc_builtin_id): New enum.
	(arc_builtin_description): New structure.
	(arc_bdesc): New variable.
	(arc_tolower): New function.
	(def_mbuiltin): Remove.
	(arc_builtin_decl): New function.
	(arc_expand_builtin_aligned ): Likewise.
	(apply_GEN_FCN): Likewise.
	(arc_init_builtins): Refurbish.
	(arc_expand_builtin): Likewise.
	(simd_insn_args_type): Remove.
	(builtin_description): Likewise
	(arc_simd_builtin_desc_list): Likewise.
	(arc_expand_simd_builtin): Likewise.
	(arc_process_double_reg_moves): Use the new builtin name format.
	* config/arc/arc.md (unspec): New builtin function UNSPEC codes.
	(vunspec): New builtin function VUNSPEC codes.
	(UNSPEC_SWAP, UNSPEC_MUL64, UNSPEC_MULU64, UNSPEC_DIVAW)
	(UNSPEC_DIRECT, UNSPEC_LP, UNSPEC_CASESI, VUNSPEC_RTIE)
	(VUNSPEC_SYNC, VUNSPEC_BRK, VUNSPEC_FLAG, VUNSPEC_SLEEP)
	(VUNSPEC_SWI, VUNSPEC_CORE_READ, VUNSPEC_CORE_WRITE, VUNSPEC_LR)
	(VUNSPEC_SR, VUNSPEC_TRAP_S, VUNSPEC_UNIMP_S, VUNSPEC_NOP)
	(UNSPEC_ARC_MEMBAR,VUNSPEC_ARC_CAS, VUNSPEC_ARC_LL)
	(VUNSPEC_ARC_SC, VUNSPEC_ARC_EX, VUNSPEC_DEXCL)
	(VUNSPEC_DEXCL_NORES, VUNSPEC_LR_HIGH): Remove.
	(mul64, mulu64): Remove patterns.
	(store_direct, *movdf_insn_nolrsr, casesi, casesi_load)
	(casesi_compact_jump, nopv, swap, divaw, flag, brk, rtie, sync)
	(swi, sleep, core_read, core_write, lr, sr, trap_s, unimp_s)
	(doloop_begin_i): Use new builtin function code naming.
	(kflag, clri, ffs, ffs_f, ffssi2, fls, seti): New patterns.
	* config/arc/builtins.def: New file.
	* config/arc/fpx.md: Use new builtin function code naming.
	* config/arc/simdext.md: New SIMD builtin function UNSPEC
	codes. Use them in the SIMD patterns.

gcc/testsuite
2015-12-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/builtin_general.c: New test.
	* gcc.target/arc/builtin_simd.c: Likewise.
	* gcc.target/arc/builtin_special.c: Likewise.

From-SVN: r231874
2015-12-21 10:53:01 +01:00
Nick Clifton f8e663301f re PR other/66827 (left shifts of negative value warnings due to C++14 switch)
PR 66827
	* regex.c (EXTRACT_NUMBER): Cast sign byte to unsigned before left
	shifting.

From-SVN: r231873
2015-12-21 08:23:35 +00:00
Sujoy Saraswati de4b6238e7 This series of patches fix PR61441.
This series of patches fix PR61441. This patch makes resulting NaN values
to be quiet NaN for real value operations, irrespective of the flag_signaling_nans
flag. The caller has the responsibility to avoid the operation if flag_signaling_nans
is on.

gcc/
	* real.c (do_add): Make resulting NaN value to be qNaN.
	(do_multiply, do_divide, do_fix_trunc): Same.
	(real_arithmetic, real_ldexp, real_convert): Same.
	(real_isinteger): Updated comment stating it returns false for sNaN.

From-SVN: r231872
2015-12-21 07:59:30 +00:00
Jeff Law 091534a9f4 re PR tree-optimization/64910 (tree reassociation results in poor code)
PR tree-optimization/64910
	* config/i386/i386.md (testqi_ext_3): Allow HImode.

	PR tree-optimization/64910
	* gcc.target/i386/bittest.c: New test.

From-SVN: r231871
2015-12-20 21:49:02 -07:00
Jason Merrill 58688a4ec0 re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
PR c++/67411
	* decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.

From-SVN: r231869
2015-12-20 22:04:08 -05:00
GCC Administrator 3057cbb3d8 Daily bump.
From-SVN: r231867
2015-12-21 00:16:11 +00:00
Andrew Pinski 1ffdcafd1a 2015-12-20 Andrew Pinsi <apinski@cavium.com>
* config/aarch64/atomics.md
        (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): Add early clobber
        to the scratch register.

From-SVN: r231864
2015-12-20 14:01:32 -08:00
Jason Merrill 72013ec51a re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
PR c++/67411

	* lambda.c (generic_lambda_fn_p): Split out from...
	(maybe_add_lambda_conv_op): ...here.
	* semantics.c (process_outer_var_ref): Don't defer maybe-constant
	variables in a generic lambda.
	* pt.c (instantiate_non_dependent_or_null): New.
	* init.c (constant_value_1): Use it.
	* cp-tree.h: Declare it and generic_lambda_fn_p.

From-SVN: r231863
2015-12-20 13:38:37 -05:00
Jason Merrill b6b9902193 re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
PR c++/67411

	* decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.

From-SVN: r231862
2015-12-20 13:38:30 -05:00
Eric Botcazou 60424a41dd utils2.c (gnat_rewrite_reference): New case identical to FLOAT_EXPR.
* gcc-interface/utils2.c (gnat_rewrite_reference) <REALPART_EXPR>: New
	case identical to FLOAT_EXPR.
	<IMAGPART_EXPR>: Likewise.

From-SVN: r231861
2015-12-20 10:38:09 +00:00
Eric Botcazou c00d5b12b0 decl.c (gnat_to_gnu_entity): During layout in type_annotate_only mode...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: During
	layout in type_annotate_only mode, skip discriminants of derived
	tagged types renaming those of the parent type.
	In type_annotate_only mode, if the type is tagged, do not override a
	size clause but take into account the alignment of the tag.
	(annotate_rep): In type_annotate_only mode, deal with  discriminants
	of derived tagged types renaming those of the parent type.

From-SVN: r231860
2015-12-20 10:30:27 +00:00
Eric Botcazou 80746f5d88 utils.c (maybe_pad_type): In type_annotate_only mode...
* gcc-interface/utils.c (maybe_pad_type): In type_annotate_only mode,
	retrieve the component type if this is an array and do not issue the
	warning for concurrent types.

From-SVN: r231859
2015-12-20 10:27:37 +00:00
Sujoy Saraswati afeb246c1b This series of patches fix PR61441.
This series of patches fix PR61441. This patch removes flag_errno_math check
for RINT, treating it similar to nearbyint.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* match.pd (f(x) -> x): Removed flag_errno_math check for RINT.

From-SVN: r231858
2015-12-20 09:20:57 +00:00
Sujoy Saraswati 683aa9290b This series of patches are for fixing PR61441.
This series of patches are for fixing PR61441. This patch modifies code to use
REAL_VALUE_ISSIGNALING_NAN instead of REAL_VALUE_ISNAN to avoid the operatins
only for sNaN operands.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* fold-const.c (const_binop): Use REAL_VALUE_ISSIGNALING_NAN instead
	of REAL_VALUE_ISNAN to avoid the operation for sNaN operands.
	* simplify-rtx.c (simplify_const_binary_operation): Same.

From-SVN: r231857
2015-12-20 09:13:51 +00:00
Jan Hubicka e4dbb0d449 re PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)
PR middle-end/65337
	* tree-ssa-dce.c (bb_postorder): New static var.
	(forward_edge_to_pdom): Remove.
	(remove_dead_stmt): Instead of redirecting edges only keep an edge
	on a path to nearest live BB.
	(eliminate_unnecessary_stmts): Free bb_postorder.
	* cfganal.c (dfs_find_deadend): Add START_POINTES.
	* cfganal.h (inverted_post_order_compute): Update prototype.

From-SVN: r231856
2015-12-20 05:50:29 +00:00
GCC Administrator e07e03ddc1 Daily bump.
From-SVN: r231855
2015-12-20 00:16:13 +00:00
Eric Botcazou 8073cbd493 re PR rtl-optimization/68910 (huge stack frame and poor code with instruction scheduling at -O2)
PR rtl-optimization/68910
	* emit-rtl.c (set_unique_reg_note) <>REG_EQUAL>: Add bypass for USEs.
	* config/sparc/sparc.md (anddi3): Enable only in 64-bit mode.
	(iordi3): Likewise.
	(xordi3): Likewise.
	(one_cmpldi2): Likewise.
	(*anddi3_sp32): Delete.
	(*and_not_di_sp32): Likewise.
	(*iordi3_sp32): Likewise.
	(*or_not_di_sp32): Likewise.
	(*xordi3_sp32): Likewise.
	(*xor_not_di_sp32): Likewise.
	(32-bit DImode logical operations splitter): Likewise.
	(*one_cmpldi2_sp32): Likewise.

From-SVN: r231851
2015-12-19 21:58:02 +00:00
Andrew Burgess 94d7642bda arc.md (*storeqi_update): Use 'memory_operand' and fix RTL pattern to include the plus.
2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*storeqi_update): Use 'memory_operand' and
        fix RTL pattern to include the plus.
        (*storehi_update): Likewise.
        (*storesi_update): Likewise.
        (*storesf_update): Likewise.
        * config/arc/predicates.md (store_update_operand): Delete.

From-SVN: r231850
2015-12-19 19:29:12 +00:00
Andrew Burgess 0086bd992f arc.md (*loadqi_update): Use new 'any_mem_operand' and fix RTL pattern to include the plus.
gcc:

        2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*loadqi_update): Use new 'any_mem_operand'
        and fix RTL pattern to include the plus.
        (*load_zeroextendqisi_update): Likewise.
        (*load_signextendqisi_update): Likewise.
        (*loadhi_update): Likewise.
        (*load_zeroextendhisi_update): Likewise.
        (*load_signextendhisi_update): Likewise.
        (*loadsi_update): Likewise.
        (*loadsf_update): Likewise.
        * config/arc/predicates.md (load_update_operand): Delete.
        (any_mem_operand): New predicate.

gcc/testsuite:

        2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/load-update.c: New file.

From-SVN: r231849
2015-12-19 19:22:51 +00:00
Sujoy Saraswati a278e20177 This series of patches fix PR61441. This patch adds REAL_VALUE_ISSIGNALING_NAN.
Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* real.c (real_issignaling_nan): New.
	* real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New.

From-SVN: r231848
2015-12-19 04:57:57 +00:00
John David Anglin d3ccfbb91e re PR target/68729 (../Xbae/Methods.c:1772:1: ICE: in extract_insn, at recog.c:2343)
PR target/68729
	* config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of
	floating-point reloads. Only reload operands that are not valid
	floating-point memory operands.

From-SVN: r231845
2015-12-19 01:50:00 +00:00
GCC Administrator c73f322361 Daily bump.
From-SVN: r231844
2015-12-19 00:16:12 +00:00
Patrick Palka 46ab17dbae Fix PR c++/68978 (bogus error: lvalue required as left operand of assignment)
gcc/cp/ChangeLog:

	PR c++/68978
	* tree.c (lvalue_kind) [MODOP_EXPR]: New case.

gcc/testsuite/ChangeLog:

	PR c++/68978
	* g++.dg/template/pr68978.C: New test.

From-SVN: r231841
2015-12-18 23:16:33 +00:00
Jakub Jelinek a49de7a463 re PR debug/68860 (FAIL: gcc.dg/guality/pr36728-1.c -flto -O3 -g line 17 arg1 == 1)
PR debug/68860
	* ipa-split.c (split_function): Only perform caller side
	modifications for decl_debug_args here.
	* cgraph.c: Include gimplify.h.
	(cgraph_edge::redirect_call_stmt_to_callee): Add caller side
	debug stmts for decl_debug_args.  Spelling fix in a comment.
	* tree-inline.c (tree_function_versioning): Populate decl_debug_args
	for args_to_skip arguments and add callee side debug stmts.
	Formatting fixes.  Avoid shadowing i variable.

	* gcc.dg/guality/pr68860-1.c: New test.
	* gcc.dg/guality/pr68860-2.c: New test.

From-SVN: r231840
2015-12-18 23:16:24 +01:00
Ville Voutilainen ca2c1b3283 Fix a regression introduced by the fix of libstdc++/68276.
2015-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Fix a regression introduced by the fix of libstdc++/68276.
	* src/c++11/ios.cc (_M_grow_words): Catch bad_alloc again so that
	bad_array_new_length is handled properly.

From-SVN: r231839
2015-12-18 23:27:53 +02:00