Commit Graph

161033 Commits

Author SHA1 Message Date
Jonathan Wakely
59bcf90013 Remove duplicate function call in test
* testsuite/backward/strstream_move.cc: Remove duplicate function
	call.

From-SVN: r259843
2018-05-02 17:27:01 +01:00
Jonathan Wakely
c6d4257972 PR libstdc++/69608 Move semantics for strstreambuf
In libstdc++ the deprecated char* streams are non-copyable, as was
required pre-C++11.

Since C++11 the standard implies that those streams should be copyable,
but doesn't specify the effects of copying them. This is surely a
defect, so for consistency with other implementations this change makes
them movable, but not copyable.

	PR libstdc++/69608
	* include/backward/strstream (strstreambuf): Define move constructor
	and move assignment operator.
	(istrstream, ostrstream, strstream): Likewise.
	* testsuite/backward/strstream_move.cc: New.

From-SVN: r259842
2018-05-02 17:25:44 +01:00
Richard Biener
d6476f90da re PR tree-optimization/85597 (internal compiler error: in compute_live_loop_exits, at tree-ssa-loop-manip.c:229)
2018-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/85597
	* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
	do not use split vect_get_vec_defs call but call vect_get_slp_defs
	directly.

	* gcc.dg/vect/pr85597.c: New testcase.

From-SVN: r259840
2018-05-02 14:19:51 +00:00
Tom de Vries
9220b5116d [testsuite] Add scan-ltrans-tree-dump
2018-05-02  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/85106
	* gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump.
	* lib/scanltranstree.exp: New file.
	* lib/target-supports.exp (scan-ltrans-tree-dump_required_options)
	(scan-ltrans-tree-dump-times_required_options)
	(scan-ltrans-tree-dump-not_required_options)
	(scan-ltrans-tree-dump-dem_required_options)
	(scan-ltrans-tree-dump-dem-not_required_options): New proc.
	* lib/gcc-dg.exp: Include scanltranstree.exp.

	* testsuite/lib/libatomic.exp: Include scanltranstree.exp.

	* testsuite/lib/libgomp.exp: Include scanltranstree.exp.

	* testsuite/lib/libitm.exp: Include scanltranstree.exp.

	* testsuite/lib/libvtv.exp: Include scanltranstree.exp.

	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
	dump files): Add ltrans-tree.

From-SVN: r259838
2018-05-02 12:16:32 +00:00
Tom de Vries
6c3c13c181 [testsuite] Add scan-wpa-ipa-dump
2018-05-02  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/85106
	* gcc.dg/ipa/ipa-icf-38.c: New test.
	* gcc.dg/ipa/ipa-icf-38a.c: New test.
	* lib/scandump.exp (dump-base): New proc.
	(scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem)
	(scan-dump-dem-not): Add and handle parameter for suffix of the dump
	base.
	* lib/scanipa.exp: Add "" argument to scan-dump calls.
	* lib/scanlang.exp: Same.
	* lib/scanrtl.exp: Same.
	* lib/scantree.exp: Same.
	* lib/scanwpaipa.exp: New file.
	* lib/gcc-dg.exp: Include scanwpaipa.exp.

	* testsuite/lib/libatomic.exp: Include scanwpaipa.exp.

	* testsuite/lib/libgomp.exp: Include scanwpaipa.exp.

	* testsuite/lib/libitm.exp: Include scanwpaipa.exp.

	* testsuite/lib/libvtv.exp: Include scanwpaipa.exp.

	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
	dump files): Add wpa-ipa.

From-SVN: r259837
2018-05-02 12:16:15 +00:00
Segher Boessenkool
559289370f rs6000: Remove paired single
This removes paired single (used on the 750CL and friends).  It was
deprecated in GCC 8.  Removing it means we only have one vector model
to deal with (VMX+VSX, 16-byte vectors).


	* config.gcc (powerpc*-*-*): Remove paired.h.  Unsupport the
	powerpc*-*-linux*paired* target.
	* config/rs6000/750cl.h: Delete.
	* config/rs6000/paired.h: Delete.
	* config/rs6000/paired.md: Delete.
	* config/rs6000/predicates.md (easy_vector_constant): Remove paired
	float support.
	* config/rs6000/rs6000-builtin.def: Remove paired float support.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
	comment.  Remove paired float support.
	* config/rs6000/rs6000-modes.def: Remove V2SF and V2SI.
	* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
	VECTOR_PAIRED.
	* config/rs6000/rs6000-protos.h (paired_expand_vector_init,
	paired_emit_vector_cond_expr, paired_expand_vector_move): Delete
	declarations.
	* config/rs6000/rs6000.c: Remove paired float support.
	(paired_expand_vector_init, paired_expand_vector_move,
	paired_emit_vector_compare, paired_emit_vector_cond_expr,
	(paired_expand_lv_builtin, paired_expand_stv_builtin,
	paired_expand_builtin, paired_expand_predicate_builtin,
	paired_init_builtins): Delete.
	* config/rs6000/rs6000.h: Remove paired float support.
	* config/rs6000/rs6000.md: Remove paired float support.
	(move_from_CR_ov_bit): Delete.
	* config/rs6000/rs6000.opt (mpaired): Delete.
	* config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired.

From-SVN: r259833
2018-05-02 12:46:00 +02:00
Alan Modra
85b3bb6d57 ansidecl.h (ATTRIBUTE_NONSTRING): Define.
ATTRIBUTE_NONSTRING

	* ansidecl.h (ATTRIBUTE_NONSTRING): Define.

From-SVN: r259832
2018-05-02 19:21:45 +09:30
Jakub Jelinek
b1750618e4 * gennews (files): Add files for GCC 8.
From-SVN: r259828
2018-05-02 10:12:23 +02:00
Richard Biener
b18f161d55 re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at gimplify.c:5797 when using sincos())
2018-05-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/85567
	* gimplify.c (gimplify_save_expr): When in SSA form allow
	SAVE_EXPRs to compute to SSA vars.

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

From-SVN: r259826
2018-05-02 07:59:34 +00:00
Jakub Jelinek
014dcf477d re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode)
PR target/85582
	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
	*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
	*<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't
	clobber operands[2], instead use a new pseudo.  Formatting fixes.

	* gcc.c-torture/execute/pr85582-1.c: New test.
	* gcc.c-torture/execute/pr85582-2.c: New test.

From-SVN: r259825
2018-05-02 09:52:08 +02:00
Richard Sandiford
9e4da9b5d5 Tighten early exit in vect_analyze_data_ref_dependence (PR85586)
The problem in this PR was that we didn't consider aliases between
writes in the same strided group.  After tightening the early exit
we get the expected abs(step) >= 2 versioning check.

2018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR tree-optimization/85586
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
	exit early for statements in the same group if the accesses are
	not strided.

gcc/testsuite/
	PR tree-optimization/85586
	* gcc.dg/vect/pr85586.c: New test.

From-SVN: r259822
2018-05-02 07:40:22 +00:00
Tom de Vries
c2e1580cbe [lto] Add "could not find mkoffload" error message to lto-wrapper
2018-05-02  Tom de Vries  <tom@codesourcery.com>

	PR lto/85451
	* lto-wrapper.c (compile_offload_image): Add "could not find mkoffload"
	error message.

From-SVN: r259821
2018-05-02 07:12:15 +00:00
Sriraman Tallam
01f30ce6ea Plugin API to get the list of wrap symbols.
This was approved for the binutils gold linker.
2018-05-01  Sriraman Tallam  <tmsriram@google.com>

	* plugin-api.h: Add plugin API to get the list of wrap
	symbols.

From-SVN: r259820
2018-05-02 00:53:48 +00:00
Jim Wilson
254f79336f Add support for gcc as git submodule of another repository.
contrib/
	* gcc_update: Check for .git as a file.

From-SVN: r259819
2018-05-01 17:24:45 -07:00
GCC Administrator
77972c795d Daily bump.
From-SVN: r259818
2018-05-02 00:16:32 +00:00
Tulio Magno Quites Machado Filho
f421e442c6 PR libstdc++/84654 Disable __float128 specializations for -mno-float128
2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>

	PR libstdc++/84654
	* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
	* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
	* configure: Regenerate.
	* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
	based on ENABLE_FLOAT128.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
	[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
	_GLIBCXX_USE_FLOAT128.

From-SVN: r259813
2018-05-01 23:47:33 +01:00
Marc Glisse
dac920e8c8 Generalize a<b&a<c -> a<min(b,c)
2018-05-01  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/85143
gcc/
	* match.pd (A<B&A<C): Extend to BIT_IOR_EXPR.

gcc/testsuite/
	* gcc.dg/tree-ssa/minmax-loopend.c: Extend and split...
	* gcc.dg/tree-ssa/minmax-loopend-2.c: ... here.

From-SVN: r259812
2018-05-01 21:41:05 +00:00
Joseph Myers
5052a74c45 * gcc.pot: Regenerate.
From-SVN: r259810
2018-05-01 21:33:44 +01:00
Tom de Vries
8ec60bacf0 [nvptx] Improve "offload compiler not found" message in mkoffload
2018-05-01  Tom de Vries  <tom@codesourcery.com>

	PR lto/85451
	* config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler
	not found" error message.

From-SVN: r259809
2018-05-01 19:52:57 +00:00
Tom de Vries
b94c2dc138 Add VEC_ORDERED_REMOVE_IF
2018-05-01  Tom de Vries  <tom@codesourcery.com>

	PR other/83786
	* vec.h	(VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define.
	* vec.c (test_ordered_remove_if): New function.
	(vec_c_tests): Call test_ordered_remove_if.
	* dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO.
	* lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF.
	* tree-vect-patterns.c (vect_pattern_recog_1): Use
	VEC_ORDERED_REMOVE_IF.

From-SVN: r259808
2018-05-01 19:16:43 +00:00
David Malcolm
2cc7d3a7da -Wformat: fix nonsensical "wide character" message (PR c/84258)
gcc/c-family/ChangeLog:
	PR c/84258
	* c-format.c (struct format_check_results): Add field
	"number_non_char".
	(check_format_info): Initialize it, and warn if encountered.
	(check_format_arg): Distinguish between wide char and
	everything else when detecting arrays of non-char.

gcc/testsuite/ChangeLog:
	PR c/84258
	* c-c++-common/Wformat-pr84258.c: New test.

From-SVN: r259807
2018-05-01 18:51:15 +00:00
Prathamesh Kulkarni
41e2c1b0b4 re PR tree-optimization/82665 (missing value range optimization for memchr)
PR tree-optimization/82665
	* vr-values.c (vr_values::extract_range_from_binary_expr): Handle
	pointer subtraction where arguments come from a memchr call.

        PR tree-optimization/82665
	* gcc.dg/tree-ssa/pr82665.c: New test.

From-SVN: r259806
2018-05-01 12:20:39 -06:00
Jason Merrill
1a142d6e68 PR c++/85587 - error with scoped enum in template.
* semantics.c (finish_qualified_id_expr): Don't return an
	unqualified IDENTIFIER_NODE.

From-SVN: r259805
2018-05-01 14:11:53 -04:00
Jakub Jelinek
fefedb945e configure.ac (LD_AS_NEEDED_OPTION, [...]): Use --push-state --as-needed and --pop-state instead of --as-needed and...
* configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
	--push-state --as-needed and --pop-state instead of --as-needed and
	--no-as-needed if ld supports it.
	* configure: Regenerated.

From-SVN: r259803
2018-05-01 19:04:52 +02:00
Francois H. Theron
58b40a6702 Add the Netronome Flow Processor (nfp) as a build target to the top-level configure.ac file.
* configure.ac: Added "nfp" target.
	* configure: Regenerate.

From-SVN: r259800
2018-05-01 15:26:51 +00:00
Jakub Jelinek
00ef0d038d re PR web/85578 (broken links in gcc-8.0.1-RC-20180427/INSTALL/specific.html, and out of date prerequisites.html)
PR web/85578
	* doc/install.texi2html: Replace _002d with - and _002a with * in
	generated html files using sed.

From-SVN: r259799
2018-05-01 17:26:36 +02:00
Ian Lance Taylor
8c2e1d6ca5 re PR go/85429 (Several gotools tests FAIL with Solaris as)
PR go/85429
    cmd/go: support more Solaris assembler syntaxes
    
    Patch by Rainer Orth.
    
    Reviewed-on: https://go-review.googlesource.com/110563

From-SVN: r259797
2018-05-01 14:08:44 +00:00
Jason Merrill
38dff92114 PR c++/85580 - extern "C" and local variables
* name-lookup.c (check_extern_c_conflict): Ignore local decls.

From-SVN: r259793
2018-05-01 08:45:49 -04:00
GCC Administrator
879bdafad2 Daily bump.
From-SVN: r259787
2018-05-01 00:16:20 +00:00
David Malcolm
1a3a7b4eeb Add gcc_rich_location::add_fixit_insert_formatted
This patch adds a support function to class gcc_rich_location
to make it easier for fix-it hints to use idiomatic C/C++
indentation, for use by the patch for PR c++/85523.

gcc/ChangeLog:
	PR c++/85523
	* gcc-rich-location.c (blank_line_before_p): New function.
	(use_new_line): New function.
	(gcc_rich_location::add_fixit_insert_formatted): New function.
	* gcc-rich-location.h
	(gcc_rich_location::add_fixit_insert_formatted): New function.

gcc/testsuite/ChangeLog:
	PR c++/85523
	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
	(test_add_fixit_insert_formatted_single_line): New function.
	(test_add_fixit_insert_formatted_multiline): New function.
	Extend expected output of generated patch to include fix-it hints
	for these.
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include
	"gcc-rich-location.h".  Add test coverage for
	gcc_rich_location::add_fixit_insert_formatted.

From-SVN: r259783
2018-05-01 00:10:10 +00:00
David Malcolm
47ae164c05 selftest: remove "Yoda ordering" in assertions
gcc/ChangeLog:
	* selftest.c (assert_streq): Rename "expected" and "actual" to
	"val1" and "val2".  Extend NULL-handling to cover both inputs
	symmetrically, while still requiring both to be non-NULL for a pass.
	* selftest.h (assert_streq): Rename "expected" and "actual" to
	"val1" and "val2".
	(ASSERT_EQ): Likewise.
	(ASSERT_EQ_AT): Likewise.
	(ASSERT_KNOWN_EQ): Likewise.
	(ASSERT_KNOWN_EQ_AT): Likewise.
	(ASSERT_NE): Likewise.
	(ASSERT_MAYBE_NE): Likewise.
	(ASSERT_MAYBE_NE_AT): Likewise.
	(ASSERT_STREQ): Likewise.  Clarify that both must be non-NULL for
	the assertion to pass.
	(ASSERT_STREQ_AT): Likewise.

From-SVN: r259782
2018-05-01 00:02:49 +00:00
Jason Merrill
fe43c63503 PR c++/84701 - unsigned typeof.
* decl.c (grokdeclarator): Overhaul diagnostics for invalid use
	of long/short/signed/unsigned.

From-SVN: r259780
2018-04-30 17:21:32 -04:00
Jason Merrill
f026530a85 PR c++/85305 - pack in lambda init-capture.
* parser.c (cp_parser_initializer): Add subexpression_p parm; don't
	check_for_bare_parameter_packs in a subexpression.
	(cp_parser_lambda_introducer): Use it.

From-SVN: r259779
2018-04-30 17:21:25 -04:00
Daniel van Gerpen
d6df811e5d argv.c (expandargv): Fix memory leak for expanded arguments.
* argv.c (expandargv): Fix memory leak for expanded
        arguments.

From-SVN: r259775
2018-04-30 12:00:49 -06:00
Jonathan Wakely
98c2d5ae46 Clarify documentation for -fpie and -fPIE
* doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify
	interaction with -pie.

From-SVN: r259774
2018-04-30 17:55:12 +01:00
David Malcolm
2099cb2d27 selftest.h: fix alphabetization of per-source-file selftest declarations
gcc/ChangeLog:
	* selftest.h: Fix alphabetization of per-source-file selftest
	declarations.

From-SVN: r259773
2018-04-30 15:32:32 +00:00
Jason Merrill
cdc184174c PR c++/61982 - dead stores to destroyed objects.
gcc/cp/
	* call.c (build_trivial_dtor_call): New, assigns a clobber.
	(build_over_call, build_special_member_call): Use it.
	* cp-tree.h: Declare it.
	* init.c (build_delete): Remove trivial path.
gcc/
	* gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS
	of clobber.

From-SVN: r259772
2018-04-30 11:21:01 -04:00
Jason Merrill
4d20f49036 init.c (build_dtor_call): Use build_special_member_call.
* init.c (build_dtor_call): Use build_special_member_call.

	(build_delete): Remove redundant uses of save_addr.

From-SVN: r259771
2018-04-30 11:20:56 -04:00
Jason Merrill
94b2a1e543 tree.c (build_clobber): New.
* tree.c (build_clobber): New.

	* tree.h: Declare it.
	* gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it.

From-SVN: r259770
2018-04-30 11:20:46 -04:00
David Malcolm
7761dfbee1 Use char_span for return type of location_get_source_line
location_get_source_line returns a const char * that isn't 0-terminated,
writing back a length through an int * param.

This is error-prone, as all call-sites have to take into account the
lack of 0-termination, and respect the length of the buffer.

It's cleaner to bundle together this pointer+length state into a class,
so this patch does so, reusing the "char_span" class that I introduced
in r250187 (as part of the fix for PR c/81405).

The patch also adds assertions to all access to the char_span.

gcc/c-family/ChangeLog:
	* c-format.c (get_corrected_substring): Update for
	location_get_source_line returning a char_span.  Use a char_span
	when handling the prefix of the correction.
	* c-indentation.c (get_visual_column): Update for
	location_get_source_line returning a char_span.
	(get_first_nws_vis_column): Likewise.

gcc/ChangeLog:
	* diagnostic-show-locus.c (layout::layout): Update for
	location_get_source_line returning a char_span.
	(struct char_span): Move to input.h.
	(struct correction): Update for fields in char_span becoming
	private.
	(struct source_line): Update for location_get_source_line
	returning a char_span.
	(layout::print_line): Likewise.
	* edit-context.c (edited_file::print_content): Likewise.
	(edited_file::print_diff_hunk): Likewise.
	(edited_file::print_run_of_changed_lines): Likewise.
	(edited_file::get_num_lines): Likewise.
	(edited_line::edited_line): Likewise.
	* final.c (asm_show_source): Likewise.
	* input.c (location_get_source_line): Convert return type
	from const char * to char_span, losing the final "line_len"
	param.
	(dump_location_info): Update for the above.
	(get_substring_ranges_for_loc): Likewise.  Use a char_span
	when handling the literal within the line.
	(test_reading_source_line): Update for location_get_source_line
	returning a char_span.
	* input.h (class char_span): Move here from
	diagnostic-show-locus.c, converting from a struct to a class.
	Make data members private.
	(char_span::operator bool): New.
	(char_span::length): New.
	(char_span::get_buffer): New.
	(char_span::operator[]): New.
	(char_span::subspan): Make const.
	(char_span::xstrdup): New.
	(location_get_source_line): Convert return type from const char *
	to char_span, losing the final "line_size" param.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
	(test_show_locus): Update for location_get_source_line returning a
	char_span.  Use char_span for handling words in the
	"test_many_nested_locations" fix-it example.

From-SVN: r259768
2018-04-30 15:01:56 +00:00
Jan Hubicka
b6e33d73d8 lto-wrapper.c (ltrans_priorities): New static var.
* lto-wrapper.c (ltrans_priorities): New static var.
	(cmp_priority): New.
	(run_gcc): Read priorities and if doing parallel build order
	the Makefile by them.

	* lto.c (cmp_partitions_size): Remove.
	(lto_wpa_write_files): Also output priorities; do not sort partitions.
	(cmp_partition_order): Move to ...
	* lto-partition.c (cmp_partition_order): ...
	(lto_1_to_1_map): Sort partitions.

From-SVN: r259767
2018-04-30 14:40:10 +00:00
David Malcolm
fee69672c2 input.h: use STATIC_ASSERT
gcc/ChangeLog:
	* input.h (builtins_location_check): Convert to a STATIC_ASSERT.

From-SVN: r259766
2018-04-30 13:50:22 +00:00
Richard Biener
c7b8bff734 tree-cfg.c (verify_address): Remove base argument, add flag whether to check TREE_ADDRESSABLE and do that.
2018-04-30  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_address): Remove base argument, add
	flag whether to check TREE_ADDRESSABLE and do that.
	(verify_expr): Remove.
	(verify_types_in_gimple_reference): Add pieces from verify_expr.
	(verify_gimple_assign_single): Likewise.
	(verify_gimple_switch): Likewise.
	(verify_expr_location_1): Dereference tp once.  Add (disabled)
	piece from verify_expr.
	(verify_gimple_in_cfg): Do not call verify_expr on all ops.

From-SVN: r259765
2018-04-30 13:18:59 +00:00
Claudiu Zissulescu
6fe3b9fdd5 [ARC] Clear the instruction cache using syscalls.
Clear the instruction cache from `beg' to `end'.  This makes an inline
system call to SYS_cacheflush.

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/linux.h (CLEAR_INSN_CACHE): Define.

From-SVN: r259764
2018-04-30 15:16:24 +02:00
Claudiu Zissulescu
e0be3321b9 [ARC] Cleanup sdata handling.
Clean up how we handle small data load/store operations.

gcc/
2018-01-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (prepare_extend_operands): Remove.
	(small_data_pattern): Likewise.
	(arc_rewrite_small_data): Likewise.
	* config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove.
	(LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise.
	(get_symbol_alignment): New function.
	(legitimate_small_data_address_p): Likewise.
	(legitimate_scaled_address): Update, call
	legitimate_small_data_address_p.
	(output_sdata): New static variable.
	(arc_print_operand): Update how we handle small data operands.
	(arc_print_operand_address): Likewise.
	(arc_legitimate_address_p): Update, use
	legitimate_small_data_address_p.
	(arc_rewrite_small_data_p): Remove.
	(arc_rewrite_small_data_1): Likewise.
	(arc_rewrite_small_data): Likewise.
	(small_data_pattern): Likewise.
	(compact_sda_memory_operand): Update to use
	legitimate_small_data_address_p and get_symbol_alignment.
	(prepare_move_operands): Don't rewite sdata pattern.
	(prepare_extend_operands): Remove.
	* config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata
	pattern.
	(zero_extendqisi2): Likewise.
	(zero_extendhisi2): Likewise.
	(extendqihi2): Likewise.
	(extendqisi2): Likewise.
	(extendhisi2): Likewise.
	(addsi3): Likewise.
	(subsi3): Likewise.
	(andsi3): Likewise.
	* config/arc/constraints.md (Usd): Change it to memory constraint.

gcc/testsuite
2018-01-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/interrupt-8.c: Update test.
	* gcc.target/arc/loop-4.c: Likewise.
	* gcc.target/arc/loop-hazard-1.c: Likewise.
	* gcc.target/arc/sdata-3.c: Likewise.

From-SVN: r259763
2018-04-30 15:16:09 +02:00
Claudiu Zissulescu
2295aa7522 [ARC] Update movhi and movdi patterns.
Allow signed 6-bit short immediates into st[d] instructions.

2017-10-19  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_split_move): Allow signed 6-bit constants
	as source of std instructions.
	* config/arc/arc.md (movsi_insn): Update pattern predicate to
	allow 6-bit constants as source for store instructions.
	(movdi_insn): Update instruction pattern to allow 6-bit constants
	as source for store instructions.

testsuite/
2017-10-19  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/store-merge-1.c: New test.
	* gcc.target/arc/add_n-combine.c: Update test.

From-SVN: r259762
2018-04-30 15:15:35 +02:00
Jonathan Wakely
e2df7e6df4 * doc/invoke.texi (-fdebug-types-section): Fix grammar.
From-SVN: r259761
2018-04-30 13:17:32 +01:00
Nathan Sidwell
bd9918c411 [patch] allow '-' for stdout dump
https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01303.html
	* dumpfile.c (dump_open): Allow '-' for stdout.
	* doc/invoke.texi (Developer Options): Document dump filename
	determination early.  Document stdin/stdout selection.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r259760
2018-04-30 11:47:04 +00:00
Jan Hubicka
e693ebce81 * lto-partition.c (lto_balanced_map): Fix sanity check.
From-SVN: r259759
2018-04-30 11:40:47 +00:00
Andrew Sadek
af1682fc3a Microblaze Target: PIC data text relative
2018-04-30 Andrew Sadek  <andrew.sadek.se@gmail.com>

gcc/ChangeLog:
	* config/microblaze/microblaze.opt: add new option -mpic-data-text-rel.
	* config/microblaze/microblaze-protos.h (microblaze_constant_address_p):
	Add declaration.
	* gcc/config/microblaze/microblaze.h (microblaze_constant_address_p):
	CONSTANT_ADDRESS_P definition to microblaze_constant_address_p.
	* config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL):
	New addressing mode for data-text relative position indepenedent code.
	(microblaze_classify_unspec): add 'UNSPEC_TEXT' case ->
	'ADDRESS_SYMBOLIC_TXT_REL'.
	(microblaze_classify_address): Add handling for UNSPEC + CONST_INT.
	(microblaze_legitimate_pic_operand): Exclude function calls from
	pic operands in case of TARGET_PIC_DATA_TEXT_REL option.
	(microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible
	addresses cases.
	(microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
	(print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
	(print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling
	for 'address + offset'.
	(microblaze_expand_prologue): Add new function prologue call for
	'r20' assignation.
	(microblaze_asm_generate_pic_addr_dif_vec): Override new target hook
	'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector
	table in case of TARGET_PIC_DATA_TEXT_REL.
	(expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'.
	* gcc/config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL):
	Add new macros 'UNSPEC_TEXT',
	'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue
	+ exclude function calls from 'UNSPEC_PLT' in case of data text
	relative mode.
	* doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
	new target hook for generating address diff vector tables in case of
	flag_pic.
	* doc/tm.texi : Regenerate.
	* stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition
	'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case
	of addr diff vector generation.
	* target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
	target hook definition.
	* targhooks.h, gcc/targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
	Add default function for generate_pic_addr_diff_vec -> flag_pic.
	* doc/invoke.texi (Add new pic option): Add new microblaze pic
	option for data text relative.

testsuite/ChangeLog:
	* gcc.target/microblaze/others/data_var1.c: Include
	PIC case of r20 base register.
	* gcc.target/microblaze/others/data_var2.c: Ditto.
	* gcc.target/microblaze/others/picdtr.c: Add new
	test case for -mpic-is-data-text-relative.
	* gcc.target/microblaze/others/sdata_var1.c: Add
	* gcc.target/microblaze/others/sdata_var2.c: Ditto.
	* gcc.target/microblaze/others/sdata_var3.c: Ditto.
	* gcc.target/microblaze/others/sdata_var4.c: Ditto.
	* gcc.target/microblaze/others/sdata_var5.c: Ditto.
	* gcc.target/microblaze/others/sdata_var6.c: Ditto.
	* gcc.target/microblaze/others/string_cst1_gpopt.c:	Ditto.
	* gcc.target/microblaze/others/string_cst2_gpopt.c: Ditto.

From-SVN: r259758
2018-04-30 11:16:55 +00:00