Commit Graph

160715 Commits

Author SHA1 Message Date
Kelvin Nilsen
d4f18ec652 rs6000-c.c (altivec_overloaded_builtins): Remove erroneous entries for "vector int vec_ldl (int...
gcc/ChangeLog:

2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
	erroneous entries for
	"vector int vec_ldl (int, long int *)", and
	"vector unsigned int vec_ldl (int, unsigned long int *)".
	Add comments and entries for
	"vector bool char vec_ldl (int, bool char *)",
	"vector bool short vec_ldl (int, bool short *)",
	"vector bool int vec_ldl (int, bool int *)",
	"vector bool long long vec_ldl (int, bool long long *)",
	"vector pixel vec_ldl (int, pixel *)",
	"vector long long vec_ldl (int, long long *)",
	"vector unsigned long long vec_ldl (int, unsigned long long *)".
	* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
	type tree bool_long_long_type_node and correct definition of
	bool_V2DI_type_node to make reference to this new type tree.
	(rs6000_mangle_type): Replace erroneous reference to
	bool_long_type_node with bool_long_long_type_node.
	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
	comments to emphasize sign distinctions for char and int types and
	replace RS6000_BTI_bool_long constant with
	RS6000_BTI_bool_long_long constant.  Also add comment to restrict
	use of RS6000_BTI_pixel.
	(bool_long_type_node): Remove this macro definition.
	(bool_long_long_type_node): New macro definition

gcc/testsuite/ChangeLog:

2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/vec-ldl-1.c: New test.
	* gcc.dg/vmx/ops-long-1.c: Correct test programs to reflect
	corrections to ABI implementation.

From-SVN: r259294
2018-04-10 17:59:52 +00:00
Jason Merrill
45d144619c PR debug/65821 - wrong location for main().
* call.c (clear_location_r, convert_default_arg): Revert.
	* tree.c (break_out_target_exprs): Add clear_location parm.
	(struct bot_data): New.
	(bot_manip): Clear location if requested.
	* init.c (get_nsdmi): Pass clear_location.

From-SVN: r259291
2018-04-10 13:19:09 -04:00
Thomas Schwinge
f6d17c4d02 [PR target/85056] Address -Wmaybe-uninitialized diagnostic
gcc/testsuite/
	* gcc.target/nvptx/pr85056.c (main): Initialize "sum".

From-SVN: r259288
2018-04-10 18:55:02 +02:00
Martin Sebor
df18c24ad6 cppopts.texi: Use "side effect" instead of side-effect.
gcc/ChangeLog:

	* doc/cppopts.texi: Use "side effect" instead of side-effect.
	* doc/extend.texi: Same.
	* doc/generic.texi: Same.
	* doc/implement-c.texi: Same.
	* doc/invoke.texi: Same.
	* doc/md.texi: Same.
	* doc/rtl.texi: Same.
	* doc/tree-ssa.texi: Same.

From-SVN: r259287
2018-04-10 09:49:59 -06:00
Jonathan Wakely
25949ee332 Update links to archived copy of SGI STL docs
* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
	* doc/xml/manual/backwards_compatibility.xml: Likewise.
	* doc/xml/manual/containers.xml: Likewise.
	* doc/xml/manual/debug_mode.xml: Likewise.
	* doc/xml/manual/extensions.xml: Likewise.
	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
	* doc/xml/manual/using.xml: Likewise.
	* doc/xml/manual/utilities.xml: Likewise.

From-SVN: r259286
2018-04-10 16:49:26 +01:00
Jakub Jelinek
e0cf12bab5 re PR rtl-optimization/85300 (ICE in exact_int_to_float_conversion_p, at simplify-rtx.c:895)
PR rtl-optimization/85300
	* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
	into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
	simplify_unary_operation fails.

	* gcc.dg/pr85300.c: New test.

From-SVN: r259285
2018-04-10 17:31:57 +02:00
Martin Liska
efbf619bab gdbhooks: Add new pretty-printers for: varpool_node, symtab_node, cgraph_edge and ipa_ref.
2018-04-10  Martin Liska  <mliska@suse.cz>

	* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
	cgraph_edge and ipa_ref.

From-SVN: r259283
2018-04-10 14:43:09 +00:00
David Malcolm
672c767bf6 Show pertinent parameter (PR c++/85110)
gcc/cp/ChangeLog:
	PR c++/85110
	* call.c (get_fndecl_argument_location): Make non-static.
	* cp-tree.h (get_fndecl_argument_location): New decl.
	* typeck.c (convert_for_assignment): When complaining due to
	conversions for an argument, show the location of the parameter
	within the decl.

gcc/testsuite/ChangeLog:
	PR c++/85110
	* g++.dg/cpp1z/direct-enum-init1.C: Update for the cases
	where we now show the pertinent parameter.
	* g++.dg/diagnostic/aka2.C: Likewise.
	* g++.dg/diagnostic/param-type-mismatch-2.C: Likewise.

From-SVN: r259282
2018-04-10 14:37:09 +00:00
Jonathan Wakely
5f30251862 PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure
Define a new exception type derived from std::ios::failure[abi:cxx11]
which also aggregates an object of the gcc4-compatible ios::failure
type. Make __throw_ios_failure throw this new type for iostream errors
that raise exceptions. Provide custom type info for the new type so that
it can be caught by handlers for the gcc4-compatible ios::failure type
as well as handlers for ios::failure[abi:cxx11] and its bases.

	PR libstdc++/85222
	* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
	cxx11-ios_failure.cc to rewrite type info for __ios_failure.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
	New types.
	[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
	* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
	* src/c++98/ios_failure.cc (__construct_ios_failure)
	(__destroy_ios_failure, is_ios_failure_handler): New functions.
	[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
	* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
	handler types, to always catch std::ios_base::failure.
	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
	exceptions_failbit.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
	exceptions_failbit.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_other/char/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/ios_base/storage/2.cc: Likewise.

From-SVN: r259281
2018-04-10 15:36:09 +01:00
Jakub Jelinek
7e6b73b1c0 PR c++/85312 - P0962 cleanup
PR c++/85312 - P0962 cleanup
	* parser.c (cp_parser_perform_range_for_lookup): Remove unreachable
	diagnostics.

From-SVN: r259279
2018-04-10 16:28:54 +02:00
Jason Merrill
6e2446b6df PR debug/65821 - wrong location for main().
* call.c (clear_location_r): New.
	(convert_default_arg): Use it.
	* tree.c (bot_manip): Remove builtin_LINE/FILE handling.

From-SVN: r259278
2018-04-10 10:24:00 -04:00
Jason Merrill
05c602a135 PR c++/85285 - ICE with flexible array after substitution.
* pt.c (instantiate_class_template_1): Check for flexible array in
	union.

From-SVN: r259277
2018-04-10 10:23:54 -04:00
Jason Merrill
4b51265982 * parser.c (cp_parser_check_template_parameters): Improve comment.
From-SVN: r259276
2018-04-10 10:23:49 -04:00
Jakub Jelinek
24f80aa404 re PR fortran/85313 (gcc/fortran/openmp.c: 2 * confused logic ?)
PR fortran/85313
	* openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
	(resolve_oacc_nested_loops): Likewise.  Formatting fix.

	* gfortran.dg/gomp/pr85313.f90: New test.

From-SVN: r259275
2018-04-10 16:04:37 +02:00
Martin Liska
c16833dc2c Fix obvious error in handling of error attribute (PR lto/85248).
2018-04-10  Martin Liska  <mliska@suse.cz>

	PR lto/85248
	* lto-symtab.c (lto_symtab_merge_p): Do not check for
	TREE_VALUES of error attributes.

From-SVN: r259274
2018-04-10 13:52:23 +00:00
Paolo Carlini
b30ae8037d re PR c++/24314 (Extra "template<>" in partial specialization is compiled successfuly.)
2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/24314
	* g++.dg/parse/template29.C: New.

From-SVN: r259273
2018-04-10 13:40:35 +00:00
Bin Cheng
2377345dce re PR testsuite/85190 (gcc.dg/vect/pr81196.c FAILs)
gcc/testsuite
	PR testsuite/85190
	* gcc.dg/vect/pr81196.c: Adjust pointer for aligned access.

From-SVN: r259272
2018-04-10 13:11:40 +00:00
Jakub Jelinek
56f1cb3fb9 re PR target/85177 (wrong code with -O -fno-tree-ccp -fno-tree-sra -mavx512f)
PR target/85177
	PR target/85255
	* config/i386/sse.md
	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
	computation of the VEC_MERGE selector from mask.
	(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
	Fix decoding of the VEC_MERGE selector into mask.

	* gcc.target/i386/avx512f-pr85177.c: New test.
	* gcc.target/i386/avx512f-pr85255.c: New test.

From-SVN: r259269
2018-04-10 14:37:36 +02:00
Richard Sandiford
eb38d07163 Add missing cases to vect_get_smallest_scalar_type (PR 85286)
In this PR we used WIDEN_SUM_EXPR to vectorise:

  short i, y;
  int sum;
  [...]
  for (i = x; i > 0; i--)
    sum += y;

with 4 ints and 8 shorts per vector.  The problem was that we set
the VF based only on the ints, then calculated the number of vector
copies based on the shorts, giving 4/8.  Previously that led to
ncopies==0, but after r249897 we pick it up as an ICE.

In this particular case we could vectorise the reduction by setting
ncopies based on the output type rather than the input type, but it
doesn't seem worth adding a special "optimisation" for such a
pathological case.  I think it's really an instance of the more general
problem that we can't vectorise using combinations of (say) 64-bit and
128-bit vectors on targets that support both.

2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR tree-optimization/85286
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):

gcc/testsuite/
	PR tree-optimization/85286
	* gcc.dg/vect/pr85286.c: New test.

From-SVN: r259268
2018-04-10 10:28:33 +00:00
Richard Sandiford
02149a7890 Set insn_last_address in final_1
final_1 already sets insn_current_address for each instruction, making
it possible to use some of the address functions in final.c during
assembly generation.  This patch also sets insn_last_address, since
as the comment says, we can treat final as a shorten_branches pass that
does nothing.  It's then possible to use insn_current_reference_address
during final as well.

This is needed for the aarch64.md definitions of far_branch to work:

   (set (attr "far_branch")
	(if_then_else (and (ge (minus (match_dup 2) (pc)) (const_int -1048576))
			   (lt (minus (match_dup 2) (pc)) (const_int 1048572)))
		      (const_int 0)
		      (const_int 1)))]

This value (tested only during final) uses the difference between
the INSN_ADDRESSES of operand 2 and insn_current_reference_address
to calculate a conservatively-correct estimate of the branch distance.
It takes into account the worst-case gap due to alignment, whereas
a direct comparison of INSN_ADDRESSES would give an unreliable,
optimistic result.

2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* final.c (final_1): Set insn_last_address as well as
	insn_current_address.

From-SVN: r259267
2018-04-10 10:28:05 +00:00
Kyrylo Tkachov
5c35bc3e16 [explow] PR target/85173: validize memory before passing it on to target probe_stack
In this PR the expansion code emits an invalid memory address for the stack probe, which the backend fails to recognise.
The address is created explicitly in anti_adjust_stack_and_probe_stack_clash in explow.c and passed down to gen_probe_stack
without any validation in emit_stack_probe.

This patch fixes the ICE by calling validize_mem on the memory location before passing it down to the target.
Jakub pointed out that we also want to create valid addresses for the probe_stack_address case, so this patch
creates an expand operand and legitimizes it before passing it down to the probe_stack_address expander.

This patch passes bootstrap and testing on arm-none-linux-gnueabihf and aarch64-none-linux-gnu
and ppc64le-redhat-linux on gcc112 in the compile farm.

	PR target/85173
	* explow.c (emit_stack_probe): Call validize_mem on memory location
	before passing it to gen_probe_stack.  Create address operand and
	legitimize it for the probe_stack_address case.

	* gcc.target/arm/pr85173.c: New test.

From-SVN: r259266
2018-04-10 09:58:57 +00:00
Martin Liska
8d96e546b7 Be more carefull about DECL merging in LTO (PR lto/85248).
2018-04-10  Richard Biener  <rguenther@suse.de>
	    Martin Liska  <mliska@suse.cz>

	PR lto/85248
	* lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.
2018-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR lto/85248
	* gcc.dg/lto/pr85248_0.c: New test.
	* gcc.dg/lto/pr85248_1.c: New test.

From-SVN: r259265
2018-04-10 07:24:59 +00:00
Jan Hubicka
c1b8f25d80 re PR lto/85078 (LTO ICE: tree check: expected tree that contains 'decl minimal' structure, have 'identifier_node' in decl_mangling_context, at cp/mangle.c:878)
PR lto/85078
	* ipa-devirt.c (rebuild_type_inheritance-hash): New.
	* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
	* tree.c (free_lang_data_in_type): Fix handling of binfos;
	walk basetypes.
	(free_lang_data): Rebuild type inheritance graph.
	* g++.dg/torture/pr85078.C: New.

From-SVN: r259264
2018-04-10 06:33:38 +00:00
GCC Administrator
f518da46fb Daily bump.
From-SVN: r259263
2018-04-10 00:16:21 +00:00
Paolo Carlini
52912c9160 re PR c++/85227 (ICE with structured binding of a forward declared variable)
/cp
2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85227
	* decl.c (cp_finish_decomp): In a template, if the type is incomplete
	issue a pedwarn and defer trying to do bindings.

/testsuite
2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85227
	* g++.dg/cpp1z/decomp44.C: New.
	* g++.dg/cpp1z/decomp45.C: Likewise.

From-SVN: r259259
2018-04-09 22:33:35 +00:00
Thomas Koenig
f0caea4872 re PR fortran/83064 (DO CONCURRENT and auto-parallelization)
2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83064
	* trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
	parallell processing of DO CONCURRENT -ftree-parallelize-loops
	is set.

2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83064
	* gfortran.dg/do_concurrent_5.f90: New test.
	* gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus
	message.

From-SVN: r259258
2018-04-09 21:52:05 +00:00
Jason Merrill
06756ed901 PR c++/85279 - dump_expr doesn't understand decltype.
* error.c (dump_expr): Handle DECLTYPE_TYPE.

From-SVN: r259257
2018-04-09 17:16:05 -04:00
Thomas Koenig
06e8d82eba re PR fortran/51260 (PARAMETER array with constructor initializer: Compile-time simplify single element access)
2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/51260
	* resolve.c (resolve_variable): Simplify cases where access to a
	parameter array results in a single constant.

2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/51260
	* gfortran.dg/parameter_array_element_3.f90: New test.

From-SVN: r259256
2018-04-09 21:05:13 +00:00
Jason Merrill
17434237d3 PR c++/85262 - ICE with redundant qualification on constructor.
* call.c (build_new_method_call_1): Move make_args_non_dependent
	after A::A() handling.

From-SVN: r259255
2018-04-09 16:53:31 -04:00
Jason Merrill
e9f59cfa4a PR c++/85277 - ICE with invalid offsetof.
* semantics.c (finish_offsetof): Avoid passing non-DECL to %qD.
	Adjust -Winvalid-offsetof diagnostic to say conditionally supported.

From-SVN: r259254
2018-04-09 16:40:06 -04:00
Jason Merrill
68a8efea50 PR c++/85264 - ICE with excess template-parameter-list.
* parser.c (cp_parser_check_template_parameters): Add template_id_p
	parameter.  Don't allow an extra template header if true.
	(cp_parser_class_head): Pass template_id_p.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_alias_declaration): Likewise.
	(cp_parser_check_declarator_template_parameters): Likewise.

From-SVN: r259253
2018-04-09 15:50:03 -04:00
Jakub Jelinek
6e4f1148ce re PR c++/85194 (ICE with structured binding in broken for-loop)
PR c++/85194
	* parser.c (cp_parser_simple_declaration): For structured bindings,
	if *maybe_range_for_decl is NULL after parsing it, set it to
	error_mark_node.

	* g++.dg/cpp1z/decomp43.C: New test.

From-SVN: r259252
2018-04-09 21:48:48 +02:00
Martin Sebor
78c3f9becd invoke.texi (-finline-small-functions): Mention other optimization options.
gcc/doc/ChangeLog:

	* invoke.texi (-finline-small-functions): Mention other optimization
	options.
	(-findirect-inlining, -fpartial-inlining): Same.
	(-finline-functions-called-once): Same.
	(-freorder-blocks-and-partition): Same.

From-SVN: r259250
2018-04-09 13:01:04 -06:00
Jakub Jelinek
45d07f0608 re PR rtl-optimization/80463 (ICE with -fselective-scheduling2 and -fvar-tracking-assignments)
PR rtl-optimization/80463
	* g++.dg/pr80463.C: Add -w to dg-options.

From-SVN: r259249
2018-04-09 20:21:03 +02:00
Jan Hubicka
687d5dfe16 re PR rtl-optimization/84058 (RTl partitioning fixup should drag very small blocks back to hot partition)
PR rtl/84058
	* cfgcleanup.c (try_forward_edges): Do not give up on crossing
	jumps; choose last target that matches the criteria (i.e.
	no partition changes for non-crossing jumps).
	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
	support for redirecting crossing jumps to non-crossing.

From-SVN: r259244
2018-04-09 16:33:51 +00:00
Jason Merrill
13c60208d0 PR c++/85256 - ICE capturing pointer to VLA.
* lambda.c (add_capture): Distinguish between variable-size and
	variably-modified types.

From-SVN: r259240
2018-04-09 11:32:05 -04:00
Jason Merrill
cca538a46e * g++.dg/opt/pr85196.C: Fix for -std=c++17.
From-SVN: r259239
2018-04-09 11:31:59 -04:00
Alexey Brodkin
83b2a5f40d [ARC] Fix stack usage info for naked functions.
gcc/
2018-04-09  Alexey Brodkin <abrodkin@synopsys.com>

	* config/arc/arc.c (arc_expand_prologue): Set stack usage info
	also for naked functions.

From-SVN: r259238
2018-04-09 17:05:30 +02:00
Claudiu Zissulescu
f7ace5d5c2 [ARC] Add/update combiner patterns.
gcc/
2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (add_shift): New pattern.
	(add_shift2): Likewise.
	(sub_shift): Likewise.
	(sub_shift_cmp0_noout): Likewise.
	(compare_si_ashiftsi): Likewise.
	(xbfu_cmp0_noout): New combine pattern.
	(xbfu_cmp0"): Likewise.
	(movsi_set_cc_insn): Place the predicable variant first.
	(commutative_binary_cmp0_noout): Remove clobber.
	(commutative_binary_cmp0): New pattern.
	(noncommutative_binary_cmp0): Likewise.
	(noncommutative_binary_cmp0_noout): Likewise.
	(noncommutative_binary_comparison_result_used): Removed.
	(rsub_cmp0): New pattern.
	(rsub_cmp0_noout): Likewise.
	(extzvsi): Changed, keep only meaningful variants.
	(SQH, SEZ): New iterators.
	(SQH_postfix): New mode attribute.
	(SEZ_prefix): New code attribute.
	(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
	(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
	* config/arc/predicates.md (cc_set_register): Use CC_REG instead
	of numerical value.
	(noncommutative_operator): Check the availability of barrel
	shifter option.

From-SVN: r259237
2018-04-09 17:05:19 +02:00
Richard Biener
46e58e180d re PR tree-optimization/85284 (Loop miscompilation starting with r238367)
2018-04-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/85284
	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
	Only use the niter constraining form of simple_iv when the exit
	is always executed.

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

From-SVN: r259234
2018-04-09 13:27:33 +00:00
Tom de Vries
f04fd9038e [nvptx] Add memory_barrier insn
2018-04-09  Tom de Vries  <tom@codesourcery.com>

	PR target/84041
	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
	(define_expand "*memory_barrier"): New define_expand.
	(define_insn "memory_barrier"): New insn.

From-SVN: r259233
2018-04-09 13:22:00 +00:00
Andrey Belevantsev
6abce7391a re PR rtl-optimization/80463 (ICE with -fselective-scheduling2 and -fvar-tracking-assignments)
PR rtl-optimization/80463
       PR rtl-optimization/83972
       PR rtl-optimization/83480

       * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
       correct producer for the insn.
       (tidy_control_flow): Fixup seqnos in case of debug insns.

       * gcc.dg/pr80463.c: New test.
       * g++.dg/pr80463.C: Likewise.
       * gcc.dg/pr83972.c: Likewise.

From-SVN: r259231
2018-04-09 13:19:50 +03:00
Andrey Belevantsev
8e9a9b0142 re PR rtl-optimization/83913 (Compile time and memory hog w/ selective scheduling)
PR rtl-optimization/83913

       * sel-sched-ir.c (merge_expr_data): Choose the middle between two
       different sched-times when merging exprs.

       * gcc.dg/pr83913.c: New test.

From-SVN: r259230
2018-04-09 12:42:25 +03:00
Andrey Belevantsev
ab6dceab10 re PR rtl-optimization/83962 (ICE: verify_flow_info failed (too many outgoing branch edges from bb 8))
PR rtl-optimization/83962

       * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
       tidy_fallthru_edge and tidy_control_flow.

       * gcc.dg/pr83962.c: New test.

From-SVN: r259229
2018-04-09 12:16:34 +03:00
Andrey Belevantsev
33bacbcba5 re PR rtl-optimization/83530 (ICE in reset_sched_cycles_in_current_ebb, at sel-sched.c:7150)
PR rtl-optimization/83530

       * sel-sched.c (force_next_insn): New global variable.
       (remove_insn_for_debug): When force_next_insn is true, also leave only
       next insn in the ready list.
       (sel_sched_region): When the region wasn't scheduled, make another pass
       over it with force_next_insn set to 1.

       * gcc.dg/pr83530.c: New test.

From-SVN: r259228
2018-04-09 12:08:28 +03:00
GCC Administrator
a0873952aa Daily bump.
From-SVN: r259227
2018-04-09 00:16:27 +00:00
Martin Sebor
de8a29bd84 invoke.texi (-Wrestrict, [...]): Tweak text.
gcc/ChangeLog:

	* invoke.texi (-Wrestrict, -fprintf-return-value): Tweak text.

From-SVN: r259224
2018-04-08 10:14:31 -06:00
Monk Chiang
8b9322f0a5 [NDS32] Add intrinsic functions for interrupt control.
gcc/
	* config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
	into tm_file.
	* config/nds32/constants.md (unspec_volatile_element): Add enum values
	for interrupt control.
	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
	functions for interrupt control.
	* config/nds32/nds32-intrinsic.md: Likewise.
	* config/nds32/nds32_intrinsic.h: Likewise.
	* config/nds32/nds32.h (nds32_builtins): Likewise.

From-SVN: r259223
2018-04-08 14:28:44 +00:00
Chung-Ju Wu
5f2a98c3f5 [NDS32] Add strict_aligned_p to machine_function and implement TARGET_EXPAND_TO_RTL_HOOK.
gcc/
	* config/nds32/nds32.c (nds32_init_machine_status,
	nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
	strict_aligned_p field.
	(nds32_expand_to_rtl_hook): New function.
	(TARGET_EXPAND_TO_RTL_HOOK): Define.
	* config/nds32/nds32.h (machine_function): Add strict_aligned_p field.

From-SVN: r259222
2018-04-08 11:14:09 +00:00
Kito Cheng
63ab910dd7 [NDS32] Implement n7 pipeline.
gcc/
	* config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
	* config/nds32/nds32-n7.md: New file.
	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
	pipeline.
	* config/nds32/nds32-protos.h: More declarations for n7 pipeline.
	* config/nds32/nds32.md (pipeline_model): Add n7.
	* config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
	* config/nds32/pipelines.md: Include n7 settings.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r259221
2018-04-08 09:21:30 +00:00