1. 07 Dec, 2015 7 commits
  2. 06 Dec, 2015 9 commits
    • re PR ada/60164 (Missing parenthesis in the documentation) · 8b1cbdab
      	PR ada/60164
      	* doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo.
      
      From-SVN: r231342
      Piotr Trojanek committed
    • re PR ada/50048 ("cc1: note: obsolete option -I- used, please use -iquote… · e4b2093f
      re PR ada/50048 ("cc1: note: obsolete option -I- used, please use -iquote instead" during bootstrap)
      
      gnattools/
      	PR ada/50048
      	* Makefile.in (ftop_srcdir): New variable.
      	(INCLUDES_FOR_SUBDIR): Use -iquote and $(ftop_srcdir).
      gcc/ada/
      	PR ada/50048
      	* gcc-interface/Makefile.in (INCLUDES): Use -iquote.
      
      From-SVN: r231341
      Eric Botcazou committed
    • support for AMD clzero isa. · 62e56a0d
      gcc/ChangeLog
      2015-12-06  Victoria Stepanyan  <victoria.stepanyan@amd.com>
      
              * common/config/i386/i386-common.c
              (OPTION_MASK_ISA_CLZERO_SET): New.
              (ix86_handle_option): Handle clzero.
              * config.gcc (i[34567]86-*-*): Add clzerointrin.h,
              (x86_64-*-*): Likewise.
              * config/i386/clzerointrin.h: New header.
              * config/i386/cpuid.h (bit_CLZERO):  Define.
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect
              CLZERO support.
              * config/i386/i386.opt (clzero): New.
              * config/i386/i386-c.c: Define __CLZERO__ if needed.
              * config/i386/i386.c (ix86_target_string): Define -mclzero option.
              (PTA_CLZERO): New.
              (ix86_option_override_internal): Handle new option.
              (processor_alias_table): Added PTA_CLZERO.
              (ix86_valid_target_attribute_inner_p): Add OPT_mclzero.
              (ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO.
              (ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and
              IX86_BUILTIN_CLZERO  built-ins.
              * config/i386/i386.h (TARGET_CLZERO):  New.
              * config/i386/i386.md (unspecv): Add UNSPEC_CLZERO.
              (clzero):  New pattern.
              (clzero_<mode>): New pattern.
              * config/i386/x86intrin.h: Include clzerointrin.h.
              * doc/extend.texi: Document clzero builtins.
              * doc/invoke.texi: Document -mclzero option.
      
      gcc/testsuite/ChangeLog
      2015-12-06  Victoria Stepanyan  <victoria.stepanyan@amd.com>
      
              * gcc.target/i386/clzero.c: New.
              * gcc.target/i386/sse-12.c: Add -mclzero.
              * gcc.target/i386/sse-13.c: Ditto.
              * gcc.target/i386/sse-14.c: Ditto.
              * gcc.target/i386/sse-22.c: Ditto.
              * gcc.target/i386/sse-23.c: Ditto.
              * g++.dg/other/i386-2.C: Ditto.
              * g++.dg/other/i386-3.C: Ditto.
      
      From-SVN: r231340
      Victoria Stepanyan committed
    • re PR ada/56274 (libada bootstrap failure on kfreebsd ("pthread_rwlock_t" not… · 2097a890
      re PR ada/56274 (libada bootstrap failure on kfreebsd ("pthread_rwlock_t" not declared in "OS_Interface"))
      
      	PR ada/56274
      	* s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype.
      	(pthread_rwlockattr_t): Likewise.
      
      From-SVN: r231337
      Eric Botcazou committed
    • re PR ada/49944 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with… · 928b5b52
      re PR ada/49944 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb:856:10: "pthread_attr_setaffinity_np" is undefined (more references follow)")
      
      	PR ada/49944
      	* s-osinte-freebsd.ads: Minor reformatting.
      	(Stack_Base_Available): Correct comments.
      	* s-osinte-kfreebsd-gnu.ads (Time_Slice_Supported, nanosleep,
      	clock_id_t, clock_gettime, Stack_Base_Available, Get_Page_Size,
      	mprotect, pthread_mutexattr_setprotocol,pthread_mutexattr_getprotocol
      	pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling,
      	pthread_attr_setscope, pthread_attr_getscope,
      	pthread_attr_setinheritsched, pthread_attr_getinheritsched,
      	Time_Slice_Supported): Copy from s-osinte-freebsd.ads.
      	* gcc-interface/Makefile.in (x86/kfreebsd): Use the POSIX version of
      	the System.Task_Primitives.Operations package.
      
      From-SVN: r231333
      Ludovic Brenta committed
    • re PR ada/49940 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with… · f1b76208
      re PR ada/49940 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb:717:32: "lwp_self" is undefined")
      
      	PR ada/49940
      	* s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function.
      
      From-SVN: r231330
      Ludovic Brenta committed
    • download_prerequisites: Download ISL 0.15 instead of 0.14. · f78590bb
      2015-12-06  Tobias Burnus  <burnus@net-b.de>
      
              * download_prerequisites: Download ISL 0.15 instead of 0.14.
      
      From-SVN: r231329
      Tobias Burnus committed
    • Daily bump. · c7eea75b
      From-SVN: r231326
      GCC Administrator committed
  3. 05 Dec, 2015 5 commits
  4. 04 Dec, 2015 19 commits
    • check that all the scev applied ops have are dominated by their defs · e7b9f153
      2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
      	    Sebastian Pop  <s.pop@samsung.com>
      
              * gcc.dg/graphite/id-29.c: New test.
      
      gcc/ChangeLog:
      
      2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
      	    Sebastian Pop  <s.pop@samsung.com>
      
              * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Improve debug.
              (get_rename_from_scev): Check that all the ops in an expression have their uses dominated by corresponding defs.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231310
      Aditya Kumar committed
    • fix PR68693: Check for loop structure when extending the SCoP · 15256e28
      The check for dominance while extending the scop assumed that
      multiple successors meant a loop which is not true in case of
      conditionals around the loop.
      
      Improved pretty printers for better debugging.
      
      	PR tree-optimization/68693
              * graphite-scop-detection.c (dot_all_sese): New
              (dot_all_scops_1): Renamed to dot_all_sese.
              (dot_all_scops): Removed.
              (dot_sese): New.
              (dot_cfg): New.
              (scop_detection::get_nearest_dom_with_single_entry): Check that preds are from different loop levels.
              (scop_detection::get_nearest_pdom_with_single_exit): Check that succs are from different loop levels.
              (scop_detection::print_sese): Inlined.
              (scop_detection::print_edge): New.
              (scop_detection::merge_sese): Added dumps.
              * graphite.h: Add declarations.
      
      gcc/testsuite/ChangeLog:
      
              * gfortran.dg/graphite/pr68693.f90: New test.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231309
      Aditya Kumar committed
    • [AArch64] Add register constraints to add<mode>3_pluslong · bdf58480
      gcc/
      
      2015-12-04  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* config/aarch64/aarch64.md (add<mode>3_pluslong): Add register
      	constraints.
      
      gcc/testsuite/
      
      2015-12-04  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* gcc.c-torture/compile/20151204.c: New.
      
      From-SVN: r231304
      James Greenhalgh committed
    • * gcc.dg/vla-24.c: Requires alloca. · 2331aa00
      From-SVN: r231303
      Nathan Sidwell committed
    • re PR rtl-optimization/68349 (ice in decompose_normal_address with -O2 at rtlanal.c:6086) · 18c8f1a8
      2015-12-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/68349
      	* lra-eliminations.c (move_plus_up): New function.
      	(lra_eliminate_regs_1): Use the function.
      
      2015-12-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/68349
      	* gcc.target/i386/pr68349.c: New test.
      
      From-SVN: r231300
      Vladimir Makarov committed
    • nvptx.c (nvptx_assemble_decl_begin): New, replacing ... · 4ff3145a
      	gcc/
      	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New,
      	replacing ...
      	(init_output_initializer): ... this.
      	(nvptx_output_aligned_decl, nvptx_asm_declare_constant_name,
      	nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use
      	nvptx_assemble_decl_begin.
      
      	gcc/testsuite/
      	* gcc.target/nvptx/ary-init.c: New.
      
      From-SVN: r231298
      Nathan Sidwell committed
    • Add fuzzing coverage support · 95e7bbb8
      	* sancov.c: New file.
      	* Makefile.in (OBJS): Add sancov.o.
      	* invoke.texi (-fsanitize-coverage=trace-pc): Describe.
      	* passes.def (sancov_pass): Add.
      	* tree-pass.h  (sancov_pass): Add.
      	* common.opt (-fsanitize-coverage=trace-pc): Add.
      	* sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add.
      	* builtins.def (DEF_SANITIZER_BUILTIN): Enable for
      	flag_sanitize_coverage.
      
      From-SVN: r231296
      Dmitry Vyukov committed
    • re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking) · f58101cf
      	PR middle-end/65958
      	* config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
      	(unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
      	* config/arm/arm.md (probe_stack_range): Adjust.
      	* config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
      	(unspecv): Add UNSPECV_PROBE_STACK_RANGE.
      	(probe_stack_range_<PTR:mode>): Adjust.
      
      From-SVN: r231295
      Eric Botcazou committed
    • re PR c++/68645 (FAIL: c-c++-common/attr-simd-3.c -std=gnu++11 (test for excess errors)) · f0a7c00b
      	PR c++/68645
      	* parser.c (cp_parser_direct_declarator)
      	(cp_parser_late_return_type_opt): Put Cilk+ attributes on
      	declarator->attributes, not std_attributes.
      
      From-SVN: r231294
      Jason Merrill committed
    • C++ FE: expression ranges · e87eed2a
      gcc/ChangeLog:
      	* convert.c (convert_to_real_1): When converting from a
      	REAL_TYPE, preserve the location of EXPR in the result.
      	* tree.c (get_pure_location): Make non-static.
      	(set_source_range): Return the resulting location_t.
      	(make_location): New function.
      	* tree.h (get_pure_location): New decl.
      	(get_finish): New inline function.
      	(set_source_range): Convert return type from void to location_t.
      	(make_location): New decl.
      
      gcc/cp/ChangeLog:
      	* cp-tree.h (class cp_expr): New class.
      	(finish_parenthesized_expr): Convert return type and param to
      	cp_expr.
      	(perform_koenig_lookup): Convert return type and param from tree
      	to cp_expr.
      	(finish_increment_expr): Likewise.
      	(finish_unary_op_expr): Likewise.
      	(finish_id_expression): Likewise for return type.
      	(build_class_member_access_expr): Likewise for param.
      	(finish_class_member_access_expr): Likewise.
      	(build_x_unary_op): Likewise.
      	(build_c_cast): New decl.
      	(build_x_modify_expr): Convert return type from tree to cp_expr.
      	* cvt.c (cp_convert_and_check): When warning about conversions,
      	attempt to use the location of "expr" if available, otherwise
      	falling back to the old behavior of using input_location.
      	* name-lookup.c (lookup_arg_dependent_1): Convert return type from
      	tree to cp_expr.
      	(lookup_arg_dependent): Likewise; also for local "ret".
      	* name-lookup.h (lookup_arg_dependent): Likewise for return type.
      	* parser.c (cp_lexer_previous_token): Skip past purged tokens.
      	(struct cp_parser_expression_stack_entry): Convert field "lhs" to
      	cp_expr.
      	(cp_parser_identifier): Likewise for return type.  Use cp_expr
      	ctor to preserve the token's location.
      	(cp_parser_string_literal): Likewise, building up a meaningful
      	location for the case where a compound string literal is built by
      	concatentation.
      	(cp_parser_userdef_char_literal): Likewise for return type.
      	(cp_parser_userdef_numeric_literal): Likewise.
      	(cp_parser_statement_expr): Convert return type to cp_expr.
      	Generate a suitable location for the expr and return it via the
      	cp_expr ctor.
      	(cp_parser_fold_expression): Convert return type to cp_expr.
      	(cp_parser_primary_expression): Likewise, and for locals "expr",
      	"lam", "id_expression", "decl".
      	Use cp_expr ctor when parsing literals, to preserve the spelling
      	location of the token.  Preserve the locations of parentheses.
      	Preserve location when calling objc_lookup_ivar.
      	Preserve the location for "this" tokens.  Generate suitable
      	locations for "__builtin_va_arg" constructs and for
      	Objective C 2.0 dot-syntax.  Set the location for the result of
      	finish_id_expression.
      	(cp_parser_primary_expression): Convert return type from tree to
      	cp_expr.
      	(cp_parser_id_expression): Likewise.
      	(cp_parser_unqualified_id): Likewise.  Also for local "id".
      	(cp_parser_postfix_expression): Likewise, also for local
      	"postfix_expression".  Generate suitable locations for
      	C++-style casts, "_Cilk_spawn" constructs.  Convert local
      	"initializer" to cp_expr and use it to preserve the location of
      	compound literals.  Capture the location of the closing
      	parenthesis of a call site via
      	cp_parser_parenthesized_expression_list, and use it to build
      	a source range for a call.  Use cp_expr in ternary expression.
      	(cp_parser_postfix_dot_deref_expression): Convert param from tree to
      	cp_expr.  Generate and set a location.
      	(cp_parser_parenthesized_expression_list): Add "close_paren_loc"
      	out-param, and write back to it.
      	(cp_parser_unary_expression): Convert return type from tree to
      	cp_expr.  Also for locals "cast_expression" and "expression".
      	Generate and use suitable locations for addresses of
      	labels and for cast expressions.  Call cp_expr::set_location where
      	necessary.  Preserve the locations of negated numeric literals.
      	(cp_parser_new_expression): Generate meaningful locations/ranges.
      	(cp_parser_cast_expression): Convert return type from tree to
      	cp_expr; also for local "expr".  Use the paren location to generate a
      	meaningful range for the expression.
      	(cp_parser_binary_expression): Convert return type from tree to
      	cp_expr; also for local "rhs".  Generate a meaningful location
      	for the expression, and use it.  Replace call to
      	protected_set_expr_location by converting a build2 to a build2_loc
      	and using the location in the call to build_x_binary_op, adding a
      	cp_expr::set_location to the latter case.
      	(cp_parser_question_colon_clause): Convert param from tree to
      	cp_expr; also for local "assignment_expr".  Set the spelling range
      	of the expression.
      	(cp_parser_assignment_expression): Likewise for return type and
      	locals "expr" and "rhs".  Build a meaningful spelling range for
      	the expression.  Remove saving of input_location in favor of a
      	call to cp_expr::set_location.
      	(cp_parser_expression): Convert return type and locals
      	"expression" and "assignment_expression" to cp_expr.  Build a
      	meaningful spelling range for assignment expressions.
      	(cp_parser_constant_expression): Likewise for return type and
      	local "expression".
      	(cp_parser_builtin_offsetof): Convert return type and local "expr"
      	to cp_expr.  Generate suitable locations.
      	(cp_parser_lambda_expression): Convert return return type to
      	cp_expr.
      	(cp_parser_operator_function_id): Likewise.
      	(cp_parser_operator): Likewise.  Generate a meaningful range,
      	using cp_expr's ctor to return it.
      	(cp_parser_template_id): When converting a token to
      	CPP_TEMPLATE_ID, update the location.
      	(cp_parser_initializer_clause): Convert return type and local
      	"initializer" to cp_expr.
      	(cp_parser_braced_list): Likewise for return type.  Generate
      	suitable locations.
      	(cp_parser_lookup_name): Likewise for return type.  Use cp_expr's
      	ctor to preserve the location_t of the name.
      	(cp_parser_simple_cast_expression): Likewise for return type.
      	(cp_parser_functional_cast): Convert return type and local "cast"
      	to cp_expr.  Generate suitable locations.
      	(cp_parser_objc_expression): Convert return type to cp_expr.k  Generate
      	(cp_parser_objc_message_expression): Generate suitable locations.
      	(cp_parser_objc_encode_expression): Convert return type to
      	cp_expr.  Generate suitable locations.
      	(cp_parser_objc_protocol_expression): Generate suitable locations.
      	(cp_parser_objc_selector_expression): Generate suitable locations.
      	(cp_parser_omp_for_cond): Attempt to use the location
      	of "cond" for the binary op.
      	(cp_parser_transaction_expression): Issue the tm-not-enabled error
      	at the location of the __transaction_foo token, rather than at
      	input_location.
      	* semantics.c (finish_parenthesized_expr): Convert return type and
      	param to cp_expr.  Preserve location.
      	(perform_koenig_lookup): Likewise for return type
      	and param.
      	(finish_increment_expr): Likewise.  Generate suitable locations.
      	(finish_unary_op_expr): Likewise for return type and local "result".
      	Generate suitable locations.
      	(finish_id_expression): Convert return type to cp_expr and use
      	cp_expr ctor to preserve location information.
      	* typeck.c (build_class_member_access_expr): Convert param to
      	cp_expr.
      	(finish_class_member_access_expr): Likewise.
      	(cp_build_binary_op): Convert a build2 to a build2_loc.
      	(build_x_unary_op): Convert param from tree to cp_expr.
      	(build_nop): Preserve the location of EXPR.
      	(build_c_cast): Provide an overloaded variant that takes a cp_expr
      	and returns a cp_expr.
      	(build_x_modify_expr): Convert return type from tree to cp_expr.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/cpp0x/nsdmi-template14.C: Move dg-error directive.
      	* g++.dg/gomp/loop-1.C: Update dg-error locations.
      	* g++.dg/plugin/diagnostic-test-expressions-1.C: New file, adapted
      	from gcc.dg/plugin/diagnostic-test-expressions-1.c.
      	* g++.dg/plugin/plugin.exp (plugin_test_list): Add the above.
      	* g++.dg/template/crash55.C: Update dg-error directives.
      	* g++.dg/template/pseudodtor3.C: Update column numbers in dg-error
      	directives.
      	* g++.dg/template/pr64100.C: Update location of dg-error
      	directive.
      	* g++.dg/template/ref3.C: Add XFAIL (PR c++/68699).
      	* g++.dg/ubsan/pr63956.C: Update dg directives to reflect
      	improved location information.
      	* g++.dg/warn/pr35635.C (func3): Update location of a
      	dg-warning.
      	* g++.dg/warn/Wconversion-real-integer2.C: Update location of
      	dg-warning; add a dg-message.
      	* obj-c++.dg/plugin/diagnostic-test-expressions-1.mm: New file,
      	based on objc.dg/plugin/diagnostic-test-expressions-1.m.
      	* obj-c++.dg/plugin/plugin.exp: New file, based on
      	objc.dg/plugin/plugin.exp.
      
      From-SVN: r231293
      David Malcolm committed
    • re PR middle-end/68656 (warning about disabled var-tracking uses odd location info) · b3d5bc62
      	PR c/68656
      	* toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of
      	input_location to inform.
      	(process_options): Use warning_at (UNKNOWN_LOCATION instead of
      	warning ( and error_at (UNKNOWN_LOCATION instead of error (.
      	Pass UNKNOWN_LOCATION instead of input_location to fatal_error.
      
      	* gcc.target/i386/pr65044.c: Expect error on line 0 rather than
      	line 1.
      	* g++.dg/opt/pr34036.C: Expect warning on line 0 rather than line 1.
      	* gcc.dg/tree-ssa/pr23109.c: Likewise.
      	* gcc.dg/tree-ssa/recip-5.c: Likewise.
      	* gcc.dg/pr33007.c: Likewise.
      
      From-SVN: r231292
      Jakub Jelinek committed
    • * ipa-inline.c (can_inline_edge_p) Use merged_comdat. · 88636b62
      	* cgraphclones.c (cgraph_node::create_clone): Use merged_comdat.
      	* cgraph.c (cgraph_node::dump): Dump merged_comdat.
      	* ipa-icf.c (sem_function::merge): Drop merged_comdat when merging
      	comdat and non-comdat.
      	* cgraph.h (cgraph_node): Rename merged to merged_comdat.
      	* ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat
      	and icf_merged.
      
      	* lto-symtab.c (lto_cgraph_replace_node): Update code computing
      	merged_comdat.
      
      From-SVN: r231291
      Jan Hubicka committed
    • c-common.c (maybe_warn_shift_overflow): Warn on all overflows if shifting 1 out of the sign bit. · c5404f1c
      gcc:
      2015-12-04  Paolo Bonzini  <bonzini@gnu.org>
      
      	* c-family/c-common.c (maybe_warn_shift_overflow): Warn on all
      	overflows if shifting 1 out of the sign bit.
      
      gcc/testsuite:
      2015-12-04  Paolo Bonzini  <bonzini@gnu.org>
      
      	* c-c++-common/Wshift-overflow-1.c: Test shifting 1 out of the sign bit.
      	* c-c++-common/Wshift-overflow-2.c: Test shifting 1 out of the sign bit.
      	* c-c++-common/Wshift-overflow-3.c: Test shifting 1 out of the sign bit.
      	* c-c++-common/Wshift-overflow-4.c: Test shifting 1 out of the sign bit.
      	* c-c++-common/Wshift-overflow-6.c: Test shifting 1 out of the sign bit.
      	* c-c++-common/Wshift-overflow-7.c: Test shifting 1 out of the sign bit.
      
      From-SVN: r231290
      Paolo Bonzini committed
    • PR libstdc++/57060 cope with invalid thread IDs · 755be51d
      	PR libstdc++/57060
      	* include/std/thread (operator==(thread::id, thread::id)): Do not use
      	__gthread_equal.
      	(operator<(thread::id, thread::id)): Add comment.
      	(this_thread::get_id()): Do not use __gthread_self for single-threaded
      	programs using glibc.
      	* testsuite/30_threads/this_thread/57060.cc: New.
      
      From-SVN: r231289
      Jonathan Wakely committed
    • rs6000: Clean up the cstore code a bit · 586cdac8
      "register_operand" was a bit confusing.  Also some other minor cleanups.
      
      
      	* (cstore<mode>4_unsigned): Use gpc_reg_operand instead of
      	register_operand.  Remove empty constraints.  Use std::swap.
      	(cstore_si_as_di, cstore<mode>4_signed_imm,
      	cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use
      	gpc_reg_operand instead of register_operand.
      	(cstore<mode>4 for FP): Use gpc_reg_operand instead of
      	register_operand.  Remove empty constraints.
      
      From-SVN: r231287
      Segher Boessenkool committed
    • gcc * config.gcc (extra_gcc_objs): Define for MSP430. · 04a9ae28
              * common/config/msp430/msp430-common.c (msp430_handle_option):
      	Pass both -mmcu and -mcpu on to the back end if they are both
      	defined.
      	* config/msp430/msp430.c (hwmult_name): New function.
              (msp430_option_override): If an unrecognised MCU name is
      	detected only warn if the user has not provided suitable
              -mhwmult and -mcpu options.  Use msp430_warn_mcu to control
      	warning messages.  Generate warnings about conflicts between
      	-mmcu and -mcpu and -mhwmult options. 
      	If neither -mcpu nor -mmcu have been specified but -mhwmult=
      	f5series has the select the 430X isa.
      	(msp430_no_hwmult): If -mmcu has not been specified and
      	msp430_hwmult_type is AUTO then return true.
      	* config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define.
      	(LIB_SPEC): Add hardware multiply library selection.
      	* config/msp430/t-msp430: Delete hardware multiply multilibs.
      	Add rule to build driver-msp430.o
      	* config/msp430/driver-msp430.c: New file.
      	* config/msp430/msp430.opt (warn-mcu): New option.
      	* doc/invoke.texi: Update description of -mhwmult=auto.
              Document -mwarn-mcu option.
      
      tests	* gcc.target/msp430/msp_abi_div_funcs.c: New test.
      	* gcc.target/msp430/mul_main.h: New test support file.
      	* gcc.target/msp430/mul_none.c: New test.
      	* gcc.target/msp430/mul_16bit.c: New test.
      	* gcc.target/msp430/mul_32bit.c: New test.
      	* gcc.target/msp430/mul_f5.c: New test.
      
      libgcc	* config/msp430/mpy.c (__mulhi3): Use a faster algorithm.
      	Allow for the second argument being negative.
      	* config.host (extra_parts): Define for MSP430.  Create separate
      	libraries for each of the hardware multiply formats.
      	* config/msp430/lib2hw_mul.S: Build only the multiply routines
      	that are needed.
      	* config/msp430/lib2mul.c: Likewise.
      	* config/msp430/t-msp430 (LIB2ADD): Remove lib2hw_mul.S.
      	Add rules to build hardware multiply libraries.
      	* config/msp430/lib2divSI.c: (__mspabi_divlu): Alias for
      	__mspabi_divul function.
      	(__mspabi_divllu): New stub function.
      
      From-SVN: r231286
      Nick Clifton committed
    • I really do hate this keyboard. · 4b5d538b
      From-SVN: r231285
      Segher Boessenkool committed
    • rs6000: Implement cstore for signed Pmode register compares · 2f74c72b
      This implements cstore for the last case we do not yet handle, using
      the superopt algo from the venerable CWG.  The only integer cases we
      do still not handle after this are for -m32 -mpowerpc64.
      
      
      	* (cstore<mode>4_signed): New expander.
      	(cstore<mode>4): Call it.
      
      From-SVN: r231284
      Segher Boessenkool committed
    • * tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs. · 5c246896
      From-SVN: r231282
      Jakub Jelinek committed