Commit Graph

146751 Commits

Author SHA1 Message Date
Jakub Jelinek
a09c81b4ba re PR c++/71528 (multiple extern reference declarations produce uninitialized access)
PR c++/71528
	* decl.c (duplicate_decls): For DECL_INITIALIZED_P non-external
	olddecl vars, preserve their TREE_READONLY bit.

	* g++.dg/opt/pr71528.C: New test.

From-SVN: r237458
2016-06-14 21:55:08 +02:00
Andreas Tobler
5618c53ff3 freebsd.h: Only enable unaligned access for armv6 on FreeBSD 11 and above.
2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/arm/freebsd.h: Only enable unaligned access for armv6 on
    FreeBSD 11 and above.

From-SVN: r237457
2016-06-14 21:53:01 +02:00
Mikael Morin
775ee7fae0 * MAINTAINERS (Write After Approval): Update e-mail address.
From-SVN: r237454
2016-06-14 17:43:39 +00:00
Ian Lance Taylor
079d2e14e3 escape: Implement flood phase.
Walks the connection graphs built in the assign phase from the
    function context's sink, propagating the escape level to each
    visited node and uncovering nodes that leak out of their scope
    which implies they must be heap allocated.
    
    Reviewed-on: https://go-review.googlesource.com/18413

From-SVN: r237453
2016-06-14 17:20:33 +00:00
Evandro Menezes
eed7fbc5e3 [AArch64] Add commit message
* gcc/ChangeLog: Add commit messages for patch series that added
	support for optionally using the Newton series for division and
	square root.

From-SVN: r237452
2016-06-14 16:26:02 +00:00
Uros Bizjak
0d323358fd i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
* config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.

From-SVN: r237451
2016-06-14 18:10:11 +02:00
Jakub Jelinek
abe7f8287e re PR c++/71516 (ICE on invalid C++ code (invalid use of forward declared type) on x86_64-linux-gnu: Segmentation fault (program cc1plus))
PR c++/71516
	* decl.c (complete_vars): Handle gracefully type == error_mark_node.

	* g++.dg/init/pr71516.C: New test.

From-SVN: r237445
2016-06-14 16:33:11 +02:00
Paolo Carlini
acfadf066d typeck2.c (digest_init_r): Use EXPR_LOC_OR_LOC on init.
/cp
2016-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck2.c (digest_init_r): Use EXPR_LOC_OR_LOC on init.

/testsuite
2016-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/init/array46.C: New.

From-SVN: r237444
2016-06-14 14:15:53 +00:00
Uros Bizjak
4d568ab255 float128-3.c: New test.
* gcc.target/i386/float128-3.c: New test.
        * gcc.target/i386/quad-sse4.c: Ditto.
        * gcc.target/i386/quad-sse.c: Use -msse instead of -msse2.
        Update scan strings.

From-SVN: r237443
2016-06-14 16:00:45 +02:00
Kyrylo Tkachov
ee7d63ab3f Fix typo in copyright boilerplate
* expmed.h: Close parenthesis in "at your option" in copyright
	boilerplate.
	* lower-subreg.h: Likewise.

From-SVN: r237442
2016-06-14 13:53:50 +00:00
Richard Biener
30934c5da5 re PR middle-end/71526 (ICE: verify_gimple failed)
2016-06-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/71526
	* genmatch.c (expr::gen_transform): Use in_type for comparisons
	if available.

	* gfortran.dg/pr71526.f90: New testcase.

From-SVN: r237441
2016-06-14 13:47:01 +00:00
Kyrylo Tkachov
8c83f71d3b [AArch64] Handle AND+ASHIFT form of UBFIZ correctly in costs
* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
	New function.
	(aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
	mask+shift version.
	* config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
	New prototype.
	* config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
	matching condition with aarch64_mask_and_shift_for_ubfiz_p.

From-SVN: r237440
2016-06-14 13:39:03 +00:00
Arnaud Charlet
124bed2985 [multiple changes]
2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Set_Actual_Subtypes): Do not generate actual
	subtypes for unconstrained formals when analyzing the generated
	body of an expression function, because it may lead to premature
	and misplaced freezing of the types of formals.

2016-06-14  Gary Dismukes  <dismukes@adacore.com>

	* sem_elab.adb, sem_ch4.adb: Minor reformatting and typo fix.

2016-06-14  Tristan Gingold  <gingold@adacore.com>

	* einfo.adb (Set_Has_Timing_Event): Add assertion.
	* sem_util.ads, sem_util.adb (Propagate_Concurrent_Flags): New
	name for Propagate_Type_Has_Flags.
	* exp_ch3.adb, sem_ch3.adb, sem_ch7.adb, sem_ch9.adb: Adjust after
	renaming.

From-SVN: r237439
2016-06-14 14:41:03 +02:00
Arnaud Charlet
519e9fdfba [multiple changes]
2016-06-14  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (Check_A_Call): Do nothing if the callee is
	(or is in) an instance, and the caller is outside.  Misc cleanup.

2016-06-14  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Analyze_Quantified_Expression):
	Generating C code avoid spurious warning on loop variable of
	inlinined postconditions.

From-SVN: r237438
2016-06-14 14:39:11 +02:00
Javier Miranda
64f5d139b9 sem_attr.adb (Analyze_Attribute_Old_Result): Adding assertion.
2016-06-14  Javier Miranda  <miranda@adacore.com>

	* sem_attr.adb (Analyze_Attribute_Old_Result): Adding assertion.
	(Analyze_Attribute [Attribute_Old]): Generating C handle
	analysis of 'old in inlined postconditions.
	(Analyze_Attribute [Attribute_Result]): Generating C handle analysis
	of 'result in inlined postconditions.
	* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
	Generating C handle expansion of 'old in inlined postconditions.
	* inline.adb (Declare_Postconditions_Result): New subprogram.
	* sem_ch12.adb (Copy_Generic_Node): Copy pragmas generated from
	aspects when generating C code since pre/post conditions are
	inlined and the frontend inlining relies on this routine to
	perform inlining.
	* exp_ch6.adb (Inlined_Subprogram): Replace Generate_C_Code
	by Modify_Tree_For_C.
	* exp_unst.adb (Visit_Node): Searching for up-level references
	skip entities defined in inlined subprograms.

From-SVN: r237437
2016-06-14 14:37:54 +02:00
Arnaud Charlet
5a52795215 [multiple changes]
2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch7.adb, sem_ch12.adb, freeze.adb, lib-xref.ads, exp_ch3.adb:
	Minor reformatting.

2016-06-14  Bob Duff  <duff@adacore.com>

	* sem_elab.adb: Do nothing if the callee is intrinsic.
	* sinfo.ads, einfo.ads: Minor comment fixes.

From-SVN: r237436
2016-06-14 14:36:01 +02:00
Arnaud Charlet
7782ff6771 [multiple changes]
2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* contracts.adb (Has_Null_Body): Move to sem_util, for general
	availability.
	* sem_util.ads, sem_util.adb (Has_Null_Body): Predicate to
	determine when an internal procedure created for some assertion
	checking (e.g. type invariant) is a null procedure. Used to
	eliminate redundant calls to such procedures when they apply to
	components of composite types.
	* exp_ch3.adb (Build_Component_Invariant_Call): Do not add call
	if invariant procedure has a null body.

2016-06-14  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads (Check_Selector): Clarify effect on IN OUT socket
	set parameters.

2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Process_Action): Pass the action
	list to Process_Transient_Object.
	(Process_If_Case_Statements): Pass the action list to
	Process_Transient_Object.
	(Process_Transient_Object): Add new parameter Stmts and update the
	comment on usage. When the context is a Boolean evaluation, insert
	any finalization calls after the last statement of the construct.

From-SVN: r237435
2016-06-14 14:33:56 +02:00
Arnaud Charlet
4969efdf7d [multiple changes]
2016-06-14  Tristan Gingold  <gingold@adacore.com>

	* einfo.adb, einfo.ads (Has_Timing_Event,
	Set_Has_Timing_Event): Add Has_Timing_Event flag.
	(Write_Entity_Flags): Display * sem_util.ads, sem_util.adb:
	(Propagate_Type_Has_Flags): New procedure to factorize code.
	* exp_ch3.adb (Expand_Freeze_Array_Type,
	Expand_Freeze_Record_Type): Call Propagate_Type_Has_Flags.
	* sem_ch3.adb (Access_Type_Decalaration): Initialize
	Has_Timing_Event flag.	(Analyze_Object_Declaration):
	Move code that check No_Local_Timing_Events near
	the code that check No_Local_Protected_Objects.
	(Analyze_Private_Extension_Declaration, Array_Type_Declaration)
	(Build_Derived_Type, Copy_Array_Base_Type_Attributes,
	Process_Full_View) (Record_Type_Definition): Call
	Propagate_Type_Has_Flags.
	* sem_ch4.adb (Analyze_Allocator): Check No_Local_Timing_Events.
	* sem_ch7.adb (New_Private_Type): Set Has_Timing_Event on the
	Timing_Event type.
	(Uninstall_Declaration): Call Propagate_Type_Has_Flags.
	* sem_ch9.adb (Analyze_Protected_Definition): Call
	Propagate_Type_Has_Flags.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* sem.ads: Minor style fix.

From-SVN: r237434
2016-06-14 14:23:34 +02:00
Arnaud Charlet
44900051ac [multiple changes]
2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations): An actual parameter
	with a box must be included in the count of actuals, to detect
	possible superfluous named actuals that do not match any of the
	formals of the generic unit in a formal package declaration.

2016-06-14  Justin Squirek  <squirek@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Fix formatting
	of error output related to SPARK RM 6.1.7(3) and pragma
	Extensions_Visible.
	* sem_ch4.adb (Analyze_Type_Conversion): Fix formatting of error
	output related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.
	* sem_prag.adb (Analyze_Pragma): Fix formatting of error output
	related to SPARK RM 7.1.2(15) and pragma Volatile_Function
	so that the values True and False are no longer surrounded by
	double quotes.
	* sem_res.adb (Resolve_Actuals): Fix formatting of error output
	related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Enable access checks
	in codepeer mode.
	* freeze.adb: Minor grammar fix in comment.

From-SVN: r237433
2016-06-14 14:20:01 +02:00
Arnaud Charlet
0da343bce0 [multiple changes]
2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib.adb: Minor reformatting.
	* sem_util.adb (Is_OK_Volatile_Context): Do
	include Address in the supported attributes.

2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression):
	Code cleanup. Finalize any transient controlled
	objects on exit from a case expression alternative.
	(Expand_N_If_Expression): Code cleanup.
	(Process_Actions): Removed.
	(Process_If_Case_Statements): New routine.
	(Process_Transient_Object): Change the name of formal Rel_Node to
	N and update all occurrences. Update the comment on usage. When
	the type of the context is Boolean, the proper insertion point
	for the finalization call is after the last declaration.

2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.ads, lib-xref.adb (Has_Deferred_Reference): new
	predicate to determine whether an entity appears in a context
	for which a Deferred_Reference was created, because it is not
	possible to determine when reference is analyzed whether it
	appears in a context in which the entity is modified.
	* sem_ch5.adb (Analyze_Statement): Do not emit a useless warning
	on assignment for an entity that has a deferred_reference.

2016-06-14  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Actuals): Generate a reference to actuals that
	come from source. Previously the reference was generated only if the
	call comes from source but the call may be rewritten by the expander
	thus causing the notification of spurious warnings.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Remove further references to AAMP.
	* checks.adb (Apply_Scalar_Range_Check): Take
	Check_Float_Overflow info account.
	* live.ads, live.adb Added subprogram headers and
	start-of-processing-for comments.
	* sem_ch12.adb (Instantiate_Package_Body): Do not suppress
	checks when instantiating runtime units in CodePeer mode.

From-SVN: r237432
2016-06-14 14:17:48 +02:00
Arnaud Charlet
a5150cb18f [multiple changes]
2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Only consider
	nodes from sources.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb, gnat1drv.adb (Adjust_Global_Switches): Only disable
	simple value propagation in CodePeer mode when warnings are disabled.
	(Scan_Front_End_Switches): Enable relevant front-end switches
	when using -gnateC.

2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Is_OK_Volatile_Context): A
	reference to a volatile object is considered OK if appears as
	the prefix of attributes Address, Alignment, Component_Size,
	First_Bit, Last_Bit, Position, Size, Storage_Size.

2016-06-14  Yannick Moy  <moy@adacore.com>

	* lib-xref-spark_specific.adb (Add_SPARK_File): Do not traverse
	subunits directly, as they are already traversed as part of the
	top-level unit to which they belong.
	(Add_SPARK_Xrefs): Add assertions to ensure correct sorting.
	(Generate_Dereference): Use unique definition place for special
	variable __HEAP, to ensure correct sorting of references.
	* lib-xref.adb (Generate_Reference): Use top-level unit in case
	of subunits.
	* lib.adb, lib.ads (Get_Top_Level_Code_Unit): New functions that
	compute the top-level code unit for a source location of AST node,
	that go past subunits.

From-SVN: r237431
2016-06-14 14:12:42 +02:00
Andre Vieira
3970e5458e zero_bits_compound-1.c: Support aarch64.
2016-06-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>

gcc/testsuite/ChangeLog:
	* gcc.dg/zero_bits_compound-1.c: Support aarch64.
	* gcc.dg/zero_bits_compound-1.c: Likewise.

From-SVN: r237430
2016-06-14 11:24:51 +00:00
Richard Biener
04976c6e07 re PR tree-optimization/71522 (Wrong optimization of memcpy through a var of type long double)
2016-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71522
	* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
	copying into float copying.

	* gcc.dg/torture/pr71522.c: New testcase.

From-SVN: r237429
2016-06-14 10:42:00 +00:00
Richard Biener
86c24ba677 re PR tree-optimization/71521 (Regression in GCC-7.0.0's optimizer)
2016-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71521
	* tree-vrp.c (extract_range_from_binary_expr_1): Guard
	division int_const_binop against zero divisor.

	* gcc.dg/tree-ssa/vrp101.c: New testcase.

From-SVN: r237428
2016-06-14 10:28:23 +00:00
Jakub Jelinek
23e025db70 re PR tree-optimization/71520 (Missing cross-jumping of switch cases)
PR tree-optimization/71520
	* tree-ssa-tail-merge.c (find_duplicate): Handle labels.
	(replace_block_by): Move user labels from bb1 to bb2.

	* gcc.dg/tree-ssa/pr71520.c: New test.

From-SVN: r237427
2016-06-14 12:20:04 +02:00
Richard Biener
585334d41d re PR middle-end/71310 (Bitfields cause load hit store with smaller store and larger load)
2016-06-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/71310
	PR bootstrap/71510
	* expr.h (get_bit_range): Declare.
	* expr.c (get_bit_range): Export.
	* fold-const.c (optimize_bit_field_compare): Use get_bit_range and
	word_mode again to constrain the bitfield access.

From-SVN: r237426
2016-06-14 07:26:52 +00:00
Richard Biener
90b72e84c4 re PR tree-optimization/71521 (Regression in GCC-7.0.0's optimizer)
2016-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71521
	* tree-vrp.c (extract_range_from_binary_expr_1): Guard
	division int_const_binop against zero divisor.

	* gcc.dg/tree-ssa/vrp101.c: New testcase.

From-SVN: r237425
2016-06-14 07:22:04 +00:00
Ian Lance Taylor
3db5773f70 escape: Implement assign phase.
Implementation of the assign/connect phase.
    Statements containing expressions which alias local, parameter,
    and global objects are analyzed and the alias relationship between
    objects containing pointers are captured in a connection graph to
    summarize the assignments within a function.
    
    Reviewed-on: https://go-review.googlesource.com/18302

From-SVN: r237424
2016-06-14 04:29:43 +00:00
GCC Administrator
c8aa46d6b2 Daily bump.
From-SVN: r237423
2016-06-14 00:16:23 +00:00
Uros Bizjak
7d6aa9a605 * Partially revert my previous commit.
From-SVN: r237418
2016-06-14 01:11:27 +02:00
Uros Bizjak
385c7747b7 i386-builtin-types.def (INT_FTYPE_FLOAT128): New function type.
* config/i386/i386-builtin-types.def (INT_FTYPE_FLOAT128):
	New function type.
	* config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_SIGNBITQ]: New.
	(ix86_init_builtins): Add __builtin_signbitq function.
	(ix86_expand_args_builtin): Handle INT_FTYPE_FLOAT128.
	(ix86_expand_builtin): Handle IX86_BUILTIN_SIGNBITQ.
	* config/i386/i386.md (signbittf2): New expander.
	* config/i386/sse.md (ptesttf2): New insn pattern.
	* doc/extend.texi (x86 Built-in Functions): Document
	__builtin_signbitq.

libgcc/ChangeLog:

	* config.host (i[34567]86-*-* | x86_64-*-*): Always include
	i386/${host_address}/t-softfp in tmake_file.
	* config/i386/32/t-softfp: Update comment for __builtin_copysignq.
	* config/i386/32/tf-signs.c: Add __signbittf2 fallback function.
	* config/i386/64/t-softfp: New file.
	* config/i386/64/tf-signs.c: Ditto.
	* config/i386/libgcc-bsd.ver: Add __signbittf2.
	* config/i386/libgcc-glibc.ver: Ditto.
	* config/i386/libgcc-sol2.ver: Ditto.

testsuite/ChangeLog:

	* gcc.target/i386/float128-3.c: New test.
	* gcc.target/i386/quad-sse4.c: Ditto.
	* gcc.target/i386/quad-sse.c: Use -msse instead of -msse2.
	Update scan strings.

From-SVN: r237415
2016-06-13 23:34:07 +02:00
David Malcolm
85ecd05c26 PR bootstrap/71481: fix input.c selftest
gcc/ChangeLog:
	PR bootstrap/71481
	* input.c (selftest::test_reading_source_line): Avoid reading from
	__FILE__ by creating a tempfile with known content and reading
	from that instead.

From-SVN: r237414
2016-06-13 21:20:10 +00:00
David Malcolm
2fe00b1fba pretty-print.c: skip color selftests if GCC_COLORS is set
gcc/ChangeLog:
	* pretty-print.c (assert_pp_format_colored): Skip the test if
	GCC_COLORS is set.
	(test_pp_format): Remove comment about GCC_COLORS.

From-SVN: r237411
2016-06-13 21:07:18 +00:00
David Malcolm
09765e3a0a selftests: improve reported failure locations
This patch introduce a selftest::location struct to wrap up __FILE__
and __LINE__ information (and __FUNCTION__) throughout the selftests,
allowing location information to be passed around.

It updates the helper functions in pretty-print.c to pass through
the precise location of each test, so that if a failure occurs, the
correct line number is printed, rather than a line within a helper
function.

gcc/ChangeLog:
	* input.c (test_reading_source_line): Use SELFTEST_LOCATION.
	* pretty-print.c (assert_pp_format_va): Add location param and use
	it with ASSERT_STREQ_AT.
	(assert_pp_format): Add location param and pass it to
	assert_pp_format_va.
	(assert_pp_format_colored): Likewise.
	(ASSERT_PP_FORMAT_1): New.
	(ASSERT_PP_FORMAT_2): New.
	(ASSERT_PP_FORMAT_3): New.
	(test_pp_format): Provide SELFTEST_LOCATION throughout, either
	explicitly, or implicitly via the above macros.
	* selftest.c (selftest::pass): Use a selftest::location rather
	than file and line.
	(selftest::fail): Likewise.  Print the function name.
	(selftest::fail_formatted): Likewise.
	(selftest::assert_streq): Use a selftest::location rather than
	file and line.
	* selftest.h (selftest::location): New struct.
	(SELFTEST_LOCATION): New macro.
	(selftest::pass): Accept a const location & rather than file
	and line.
	(selftest::fail): Likewise.
	(selftest::fail_formatted): Likewise.
	(selftest::assert_streq): Likewise.
	(ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
	(ASSERT_FALSE): Likewise.
	(ASSERT_EQ): Likewise.
	(ASSERT_NE): Likewise.
	(ASSERT_STREQ): Likewise.
	(ASSERT_PRED1): Likewise.
	(ASSERT_STREQ_AT): New macro.

From-SVN: r237410
2016-06-13 21:04:07 +00:00
Jakub Jelinek
0dda258b6f re PR sanitizer/71498 (ubsan bounds checking influenced by surrounding code)
PR sanitizer/71498
	* c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
	all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.

	* c-c++-common/ubsan/bounds-13.c: New test.

From-SVN: r237409
2016-06-13 23:01:44 +02:00
Jakub Jelinek
ef7cf206b6 re PR preprocessor/71183 (gcc -E always gives __DATE__ and __TIME__ as Jan 1 1970 00:00:00)
PR preprocessor/71183
	* c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
	to cb_get_source_date_epoch.

	* gcc.dg/cpp/source_date_epoch-3.c: New test.

From-SVN: r237408
2016-06-13 23:00:07 +02:00
David Malcolm
755fa6662d selftest: show values when ASSERT_STREQ fails
Rework ASSERT_STREQ so that it prints the actual and expected values
to stderr when it fails (by moving it to a helper function).

gcc/ChangeLog:
	* selftest.c (selftest::fail_formatted): New function.
	(selftest::assert_streq): New function.
	* selftest.h (selftests::fail_formatted): New decl.
	(selftest::assert_streq): New decl.
	(ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.

From-SVN: r237404
2016-06-13 20:58:08 +00:00
Jeff Law
a73786e39f re PR tree-optimization/71403 (wrong code (segfault) at -O3 on x86_64-linux-gnu)
PR tree-optimization/71403
	* tree-ssa-threadbackward.c
	(convert_and_register_jump_thread_path): No longer accept reference
	to path.  Do not pop items off the path anymore.
	(fsm_find_control_statement_thread_paths): Do not allow threading
	to a deeper loop nest.  Pop the last item off the path here rather
	than in convert_and_register_jump_thread_path.

	PR tree-optimization/71403
	* c-c++-common/ubsan/pr71403-1.c: New test.
	* c-c++-common/ubsan/pr71403-2.c: New test.
	* c-c++-common/ubsan/pr71403-3.c: New test.

From-SVN: r237403
2016-06-13 14:55:59 -06:00
Evandro Menezes
79a2bc2dc9 [AArch64] Emit division using the Newton series
2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
            Wilco Dijkstra  <Wilco.Dijkstra@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h
	(cpu_approx_modes): Add new member "division".
	(aarch64_emit_approx_div): Declare new function.
	* config/aarch64/aarch64.c
	(generic_approx_modes): New member "division".
	(exynosm1_approx_modes): Likewise.
	(xgene1_approx_modes): Likewise.
	(aarch64_emit_approx_div): Define new function.
	* config/aarch64/aarch64.md ("div<mode>3"): New expansion.
	* config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
	* config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
	* doc/invoke.texi (-mlow-precision-div): Describe new option.

From-SVN: r237397
2016-06-13 19:03:00 +00:00
Evandro Menezes
98daafa0b3 [AArch64] Emit square root using the Newton series
2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
            Wilco Dijkstra  <wilco.dijkstra@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h
	(aarch64_emit_approx_rsqrt): Replace with new function
	"aarch64_emit_approx_sqrt".
	(cpu_approx_modes): New member "sqrt".
	* config/aarch64/aarch64.c
	(generic_approx_modes): New member "sqrt".
	(exynosm1_approx_modes): Likewise.
	(xgene1_approx_modes): Likewise.
	(aarch64_emit_approx_rsqrt): Replace with new function
	"aarch64_emit_approx_sqrt".
	(aarch64_override_options_after_change_1): Handle new option.
	* config/aarch64/aarch64-simd.md
	(rsqrt<mode>2): Use new function instead.
	(sqrt<mode>2): New expansion and insn definitions.
	* config/aarch64/aarch64.md: Likewise.
	* config/aarch64/aarch64.opt
	(mlow-precision-sqrt): Add new option description.
	* doc/invoke.texi (mlow-precision-sqrt): Likewise.

From-SVN: r237396
2016-06-13 19:02:56 +00:00
Evandro Menezes
9acc9cbeb8 [AArch64] Add more choices for the reciprocal square root approximation
Allow a target to prefer such operation depending on the operation mode.

gcc/
	* config/aarch64/aarch64-protos.h
	(AARCH64_APPROX_MODE): New macro.
	(AARCH64_APPROX_{NONE,ALL}): Likewise.
	(cpu_approx_modes): New structure.
	(tune_params): New member "approx_modes".
	* config/aarch64/aarch64-tuning-flags.def
	(AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
	* config/aarch64/aarch64.c
	({generic,exynosm1,xgene1}_approx_modes): New core
	"cpu_approx_modes" structures.
	(generic_tunings): New member "approx_modes".
	(cortexa35_tunings): Likewise.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(cortexa72_tunings): Likewise.
	(exynosm1_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(use_rsqrt_p): New argument for the mode and use new member from
	"tune_params".
	(aarch64_builtin_reciprocal): Devise mode from builtin.
	(aarch64_optab_supported_p): New argument for the mode.
	* doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.

From-SVN: r237395
2016-06-13 19:02:52 +00:00
David Edelsohn
d4f076c9b8 inclhack.def (aix_stdlib_malloc): New fix.
* inclhack.def (aix_stdlib_malloc): New fix.
(aix_stdlib_realloc): New fix.
(aix_stdlib_calloc): New fix.
(aix_stdlib_valloc): New fix.
* fixincl.x: Regenerate.
* test/base/stdlib.h [AIX_STDLIB_MALLOC]: New test.
[AIX_STDLIB_REALLOC]: New test.
[AIX_STDLIB_CALLOC]: New test.
[AIX_STDLIB_VALLOC]: New test.

From-SVN: r237394
2016-06-13 14:59:43 -04:00
Jakub Jelinek
0ac249bf93 re PR tree-optimization/71478 (ICE in tree-ssa-reassoc.c after r236564)
PR middle-end/71478
	* gcc.dg/pr71478.c: Remove dg-require-effective-target vect_int.
	Add -Wno-psabi -w to dg-options.

From-SVN: r237392
2016-06-13 20:54:25 +02:00
Kelvin Nilsen
402e60c546 rs6000.h (RS6000_BTM_COMMON): Add the RS6000_BTM_MODULO flag into the set of flags that are considered to be...
gcc/ChangeLog:

2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
	RS6000_BTM_MODULO flag into the set of flags that are considered
	to be part of the common configuration.

From-SVN: r237391
2016-06-13 18:30:40 +00:00
Kelvin Nilsen
5408a64ac4 altivec.h (vec_absd): New macro for vector absolute difference unsigned.
gcc/ChangeLog:

2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/altivec.h (vec_absd): New macro for vector absolute
	difference unsigned.
	(vec_absdb): New macro for vector absolute difference unsigned
	byte.
	(vec_absdh): New macro for vector absolute difference unsigned
	half-word.
	(vec_absdw): New macro for vector absolute difference unsigned word.
	* config/rs6000/altivec.md (UNSPEC_VADU): New value.
	(vadu<mode>3): New insn.
	(*p9_vadu<mode>3): New insn.
	* config/rs6000/rs6000-builtin.def (vadub): New built-in
	definition.
	(vaduh): New built-in definition.
	(vaduw): New built-in definition.
	(vadu): New overloaded built-in definition.
	(vadub): New overloaded built-in definition.
	(vaduh): New overloaded built-in definition.
	(vaduw): New overloaded built-in definition.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	overloaded vector absolute difference unsigned functions.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	the ISA 3.0 vector absolute difference unsigned built-in functions.

gcc/testsuite/ChangeLog:

2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/vadsdu-0.c: New test.
	* gcc.target/powerpc/vadsdu-1.c: New test.
	* gcc.target/powerpc/vadsdu-2.c: New test.
	* gcc.target/powerpc/vadsdu-3.c: New test.
	* gcc.target/powerpc/vadsdu-4.c: New test.
	* gcc.target/powerpc/vadsdu-5.c: New test.
	* gcc.target/powerpc/vadsdub-1.c: New test.
	* gcc.target/powerpc/vadsdub-2.c: New test.
	* gcc.target/powerpc/vadsduh-1.c: New test.
	* gcc.target/powerpc/vadsduh-2.c: New test.
	* gcc.target/powerpc/vadsduw-1.c: New test.
	* gcc.target/powerpc/vadsduw-2.c: New test.

From-SVN: r237390
2016-06-13 17:59:12 +00:00
Eric Botcazou
ec67c62e3c tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and update shared_lookup_references only once after changing...
* tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
	update shared_lookup_references only once after changing operands.

From-SVN: r237388
2016-06-13 17:44:12 +00:00
David Malcolm
f7e4f2e3f3 C: fixits for named initializers
gcc/c/ChangeLog:
	* c-parser.c (c_parser_initelt): Provide location of name for new
	location_t param of set_init_label.
	* c-tree.h (set_init_label): Add location_t param.
	* c-typeck.c (set_init_index): Add "fieldname_loc" location_t
	param and use it when issuing error messages about unrecognized
	field names.  Attempt to provide a fixit hint if appropriate,
	otherwise update the error message to provide the type name.

gcc/testsuite/ChangeLog:
	* gcc.dg/c99-init-2.c (c): Update expected error message.
	* gcc.dg/init-bad-8.c (foo): Likewise.
	* gcc.dg/spellcheck-fields-3.c: New test case.

From-SVN: r237387
2016-06-13 17:14:42 +00:00
Thomas Schwinge
5a0fa90713 [PR middle-end/71373] Document missing OMP_CLAUSE_* in gcc/tree-nested.c
gcc/
	PR middle-end/71373
	* tree-nested.c (convert_nonlocal_omp_clauses)
	(convert_local_omp_clauses): Document missing OMP_CLAUSE_*.

From-SVN: r237386
2016-06-13 18:37:29 +02:00
Bernd Edlinger
7f6f6f3970 added "PR bootstrap/71481" to r237383's ChangeLog
From-SVN: r237385
2016-06-13 16:22:05 +00:00
Thomas Schwinge
1a0c3c3466 Fix CASE_CHAIN typos
gcc/
	* tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
	* tree.def (CASE_LABEL_EXPR): Likewise.

From-SVN: r237384
2016-06-13 18:10:35 +02:00