Anthony Green [Thu, 1 Jan 2015 15:43:47 +0000 (15:43 +0000)]
Roll ChangeLog file. Limit offsets to 16 bits for moxie.
From-SVN: r219136
James Bowman [Thu, 1 Jan 2015 01:44:11 +0000 (01:44 +0000)]
pr20621-1.c: Pass if stack < 64K.
2014-12-31 James Bowman <james.bowman@ftdichip.com>
* gcc.c-torture/execute/pr20621-1.c: Pass if stack < 64K.
From-SVN: r219134
GCC Administrator [Thu, 1 Jan 2015 00:16:39 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219133
David Edelsohn [Thu, 1 Jan 2015 00:00:04 +0000 (00:00 +0000)]
target-supports.exp (add_options_for_tls): Prepend pthread link flags.
* lib/target-supports.exp (add_options_for_tls): Prepend pthread
link flags.
* gcc.c-torture/execute/eeprof-1.c: Change AIX XFAIL to run-if.
* g++.old-deja/g++.mike/p755a.C: XFAIL on AIX.
* g++.dg/gomp/tls-5.C: Same.
* g++.dg/template/linkage1.C: Same.
* g++.dg/tls/thread_local1.C: Same.
* g++.dg/tls/thread_local7.C: Same.
* g++.dg/tls/thread_local7g.C: Same.
From-SVN: r219130
Tobias Burnus [Wed, 31 Dec 2014 17:16:06 +0000 (18:16 +0100)]
match.c (gfc_match_stopcode): Permit error stop in pure procedures with F2015.
gcc/fortran/
2014-12-31 Tobias Burnus <burnus@net-b.de>
* match.c (gfc_match_stopcode): Permit error stop in pure
procedures with F2015.
gcc/testsuite/
2014-12-31 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/error_stop_3.f90: New.
* gfortran.dg/error_stop_4.f90: New.
* gfortran.dg/coarray_3.f90: Remove a dg-error.
From-SVN: r219127
Uros Bizjak [Wed, 31 Dec 2014 14:50:10 +0000 (15:50 +0100)]
trans-array.c (trans_array_bound_check): Use xasprintf instead of unchecked asprintf.
* trans-array.c (trans_array_bound_check): Use xasprintf instead
of unchecked asprintf.
(gfc_conv_array_ref): Ditto.
(gfc_conv_ss_startstride): Ditto.
(gfc_trans_dummy_array_bias): Ditto.
(gfc_conv_array_parameter): Ditto.
* trans-decl.c (gfc_generate_function_code): Ditto.
* trans-expr.c (gfc_conv_substring): Ditto.
(gfc_conv_procedure_call): Ditto.
* trans-io.c (gfc_trans_io_runtime_check): Ditto.
(set_string): Ditto.
* trans.c (trans-runtime_error_vararg): Ditto.
From-SVN: r219126
Iain Sandoe [Wed, 31 Dec 2014 13:58:16 +0000 (13:58 +0000)]
Allow Objective-c++ to recognise lambdas.
gcc/cp:
* parser.c (cp_parser_primary_expression): If parsing an
objective-c++ message expression fails, see if a lambda is present.
(cp_parser_objc_message_receiver): Don't assume that, if a message
receiver expression fails, it is a hard error.
gcc/testsuite:
* obj-c++.dg/lambda-0.mm New.
* obj-c++.dg/lambda-1.mm New.
* obj-c++.dg/syntax-error-6.mm Adjust for revised error messages.
From-SVN: r219125
Iain Sandoe [Wed, 31 Dec 2014 13:31:29 +0000 (13:31 +0000)]
fix a GTY(())-related ICE in Objective-c++ (add a testcase to try an excercise this more).
gcc/objcp:
* config-lang.in (gtfiles): Update list.
gcc/testsuite:
* obj-c++.dg/standard-headers.mm New File.
From-SVN: r219124
Uros Bizjak [Wed, 31 Dec 2014 11:35:35 +0000 (12:35 +0100)]
Add missing file to my previous commit.
From-SVN: r219123
Uros Bizjak [Wed, 31 Dec 2014 10:38:33 +0000 (11:38 +0100)]
diagnostic.c (build_message_string): Use xvasprintf.
* diagnostic.c (build_message_string): Use xvasprintf.
* final.c (output_operand_lossage): Use xvasprintf and xasprintf.
* lto-wrapper.c (merge_and_complain): Use xasprintf.
* targhooks.c (pch_option_mismatch): Ditto.
* tree-ssa-structalias.c (create_function_info_for): Ditto.
(create_variable_info_for_1): Ditto.
From-SVN: r219122
Tim Shen [Wed, 31 Dec 2014 10:27:41 +0000 (10:27 +0000)]
re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_match::matched is false)
PR libstdc++/64441
* include/bits/regex.tcc (__regex_algo_impl): s/auto/auto&/.
* include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
From-SVN: r219121
Jan Hubicka [Wed, 31 Dec 2014 08:52:44 +0000 (09:52 +0100)]
* gcc.dg/vect/slp-9.c: Disable einline.
From-SVN: r219120
GCC Administrator [Wed, 31 Dec 2014 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219119
Anthony Green [Tue, 30 Dec 2014 23:58:44 +0000 (23:58 +0000)]
Fix zero extension for moxie
From-SVN: r219116
Uros Bizjak [Tue, 30 Dec 2014 23:07:15 +0000 (00:07 +0100)]
i386.c (ix86_legitimize_address): Declare "changed" as bool.
* config/i386/i386.c (ix86_legitimize_address): Declare
"changed" as bool.
(ix86_expand_unary_operator): Declare "matching_memory" as bool.
(ix86_avoid_jump_mispredicts): Declare "isjump" as bool.
* config/i386/i386.c (ix86_reassociation_width): Remove unneeded
variable "res".
From-SVN: r219115
Jan Hubicka [Tue, 30 Dec 2014 22:03:27 +0000 (23:03 +0100)]
ipa-inline-analysis.c (estimate_function_body_sizes): Do not free node params when called late with early=true.
* ipa-inline-analysis.c (estimate_function_body_sizes): Do not
free node params when called late with early=true.
From-SVN: r219114
Oleg Endo [Tue, 30 Dec 2014 19:11:42 +0000 (19:11 +0000)]
re PR target/49263 (SH Target: underutilized "TST #imm, R0" instruction)
gcc/testsuite/
PR target/49263
* gcc.target/sh/sh.exp (check_effective_target_sh2a): New.
* gcc.target/sh/pr49263-3.c: New.
From-SVN: r219113
Oleg Endo [Tue, 30 Dec 2014 18:44:27 +0000 (18:44 +0000)]
re PR target/49263 (SH Target: underutilized "TST #imm, R0" instruction)
gcc/testsuite/
PR target/49263
* gcc.target/sh/pr49263-1.c: New.
* gcc.target/sh/pr49263-2.c: New.
From-SVN: r219111
Oleg Endo [Tue, 30 Dec 2014 17:26:18 +0000 (17:26 +0000)]
re PR target/53987 ([SH] Unnecessary zero-extensions)
gcc/testsuite/
PR target/53987
* gcc.target/sh/pr53987-1.c: New.
From-SVN: r219110
Uros Bizjak [Tue, 30 Dec 2014 14:49:18 +0000 (15:49 +0100)]
i386.c (ix86_legitimize_address): Use std::swap.
* config/i386/i386.c (ix86_legitimize_address): Use std::swap.
(ix86_split_fp_branch): Ditto.
(ix86_expand_int_movcc): Ditto.
(ix86_expand_sse_compare): Ditto.
From-SVN: r219109
Jan Hubicka [Tue, 30 Dec 2014 11:36:00 +0000 (12:36 +0100)]
ipa-inline-analysis.c (edge_set_predicate): Reset size/time when target is UNREACHABLE.
* ipa-inline-analysis.c (edge_set_predicate): Reset size/time when
target is UNREACHABLE.
(evaluate_properties_for_edge): If call statemet is available, use it
to determine compile time constants.
(estimate_function_body_sizes): Enable predicates for early inliner.
(estimate_calls_size_and_time): Speedup.
(inline_merge_summary): Evaluate properties for early inliner, too.
From-SVN: r219108
GCC Administrator [Tue, 30 Dec 2014 00:16:41 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219104
Steve Ellcey [Mon, 29 Dec 2014 16:42:26 +0000 (16:42 +0000)]
t-mti-linux (MULTILIB_EXCEPTIONS): Add exceptions for mips32[r1] and mips64[r1] with -mnan=2008.
2014-12-29 Steve Ellcey <sellcey@mips.com>
* config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Add exceptions
for mips32[r1] and mips64[r1] with -mnan=2008.
* config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
From-SVN: r219101
Janus Weil [Mon, 29 Dec 2014 10:45:21 +0000 (11:45 +0100)]
re PR fortran/60357 ([F08] structure constructor with unspecified values for allocatable components)
2014-12-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/60357
* array.c (check_constructor): Ignore empty expressions.
* expr.c (check_alloc_comp_init): Check if constructor expression
exists.
* primary.c (build_actual_constructor): Warn for absent alloc-comp
initializers in pre-2008 standards.
2014-12-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/60357
* gfortran.dg/alloc_comp_constructor_7.f90: New.
From-SVN: r219098
David Edelsohn [Mon, 29 Dec 2014 02:09:31 +0000 (02:09 +0000)]
c99_classification_macros_c.cc: Add *-*-aix* to dg-xfail-if, dg-excess-errors.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Add *-*-aix* to dg-xfail-if, dg-excess-errors.
From-SVN: r219097
Hans-Peter Nilsson [Mon, 29 Dec 2014 01:38:40 +0000 (01:38 +0000)]
pr59626_0.c (ASMNAME, [...]): Define.
* gcc.dg/lto/pr59626_0.c (ASMNAME, ASMNAME2, STRING): Define.
(__atoi): Use ASMNAME.
From-SVN: r219096
GCC Administrator [Mon, 29 Dec 2014 00:16:59 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219095
H.J. Lu [Sun, 28 Dec 2014 15:01:53 +0000 (15:01 +0000)]
Skip ms_abi attribute tests on x32
* gcc.target/i386/pr57003.c: Skip on x32.
* gcc.target/i386/pr59927.c: Likewise.
* gcc.target/i386/pr60516.c: Likewise.
From-SVN: r219090
Thomas Koenig [Sun, 28 Dec 2014 12:03:02 +0000 (12:03 +0000)]
re PR fortran/56867 (Missing temporary with string array assignment)
2014-12-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56867
* trans-array.c (gfc_conv_resolve_dependencies): Also check
dependencies when there may be substrings of character arrays.
2014-12-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56867
* gfortran.dg/dependency_45.f90: New test.
From-SVN: r219089
GCC Administrator [Sun, 28 Dec 2014 00:16:41 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219088
Janus Weil [Sat, 27 Dec 2014 22:40:21 +0000 (23:40 +0100)]
re PR fortran/54756 ([OOP] [F08] Should reject CLASS, intent(out) in PURE procedures)
2014-12-27 Janus Weil <janus@gcc.gnu.org>
PR fortran/54756
* resolve.c (resolve_formal_arglist): Reject polymorphic INTENT(OUT)
arguments of pure procedures.
2014-12-27 Janus Weil <janus@gcc.gnu.org>
PR fortran/54756
* gfortran.dg/class_array_3.f03: Fixed invalid test case.
* gfortran.dg/class_array_7.f03: Ditto.
* gfortran.dg/class_dummy_4.f03: Ditto.
* gfortran.dg/defined_assignment_3.f90: Ditto.
* gfortran.dg/defined_assignment_5.f90: Ditto.
* gfortran.dg/elemental_subroutine_10.f90: Ditto.
* gfortran.dg/typebound_operator_4.f03: Ditto.
* gfortran.dg/typebound_proc_16.f03: Ditto.
* gfortran.dg/unlimited_polymorphic_19.f90: Ditto.
* gfortran.dg/class_dummy_5.f90: New test.
From-SVN: r219085
Segher Boessenkool [Sat, 27 Dec 2014 16:36:20 +0000 (17:36 +0100)]
ubsan-dg.exp (check_effective_target_fsanitize_undefined): Check if testcases run without errors, not just if they compile.
* lib/ubsan-dg.exp (check_effective_target_fsanitize_undefined):
Check if testcases run without errors, not just if they compile.
From-SVN: r219084
H.J. Lu [Sat, 27 Dec 2014 16:14:59 +0000 (16:14 +0000)]
Issue an error for ms_abi attribute with x32
There is no counter part of x32 in MS ABI. Issue an error when ms_abi
attribute is used with x32.
gcc/
PR target/64409
* config/i386/i386.c (ix86_function_type_abi): Issue an error
when ms_abi attribute is used with x32.
gcc/testsuite/
PR target/64409
* gcc.target/i386/pr64409.c: New test.
From-SVN: r219081
Anthony Green [Sat, 27 Dec 2014 15:53:46 +0000 (15:53 +0000)]
Switch to 16-bit offsets for moxie ldo/sto instructions
From-SVN: r219080
Anthony Green [Sat, 27 Dec 2014 15:40:29 +0000 (15:40 +0000)]
Add missing ChangeLog entry that was posted with patch a couple of days ago.
From-SVN: r219078
Jan Hubicka [Sat, 27 Dec 2014 15:27:16 +0000 (15:27 +0000)]
Fix template.
From-SVN: r219077
Jan Hubicka [Sat, 27 Dec 2014 15:19:54 +0000 (15:19 +0000)]
ipa-inline.c (max_count_real, [...]): Remove.
* ipa-inline.c (max_count_real, max_relbenefit_real,
half_int_min_real): Remove.
(cgraph_freq_base_rec, percent_rec): New.
(compute_uninlined_call_time, compute_inlined_call_time,
big_speedup_p, relative_time_benefit, edge_badness): Use sreals.
(update_edge_key): Update dumping.
(inline_small_functions): Speedup maintainance of the heap.
(ipa_inline): Initialize cgraph_freq_base_rec and
percent_rec.
From-SVN: r219076
Jan Hubicka [Sat, 27 Dec 2014 15:18:05 +0000 (15:18 +0000)]
* sreal.h (sreal::shift): Fix sanity check.
From-SVN: r219075
Uros Bizjak [Sat, 27 Dec 2014 12:49:54 +0000 (13:49 +0100)]
mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
* config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
Emit movshdup for SSE3 and shufps otherwise.
(*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
Emit pshufd for SSE2 and shufps otherwise.
From-SVN: r219074
GCC Administrator [Sat, 27 Dec 2014 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219073
GCC Administrator [Fri, 26 Dec 2014 00:16:42 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219070
Jason Merrill [Thu, 25 Dec 2014 07:28:01 +0000 (02:28 -0500)]
pt.c (check_default_tmpl_args): Uses the parameter source location in the diagnostic.
* pt.c (check_default_tmpl_args): Uses the parameter source
location in the diagnostic.
(convert_template_argument): Just return if parm is error_mark_node.
From-SVN: r219067
Jason Merrill [Thu, 25 Dec 2014 07:27:54 +0000 (02:27 -0500)]
re PR c++/63522 (ICE: unexpected expression 'ElementIndices' of kind template_parm_index)
PR c++/63522
* parser.c (cp_parser_type_parameter): Call
check_for_bare_parameter_packs on default argument.
From-SVN: r219066
GCC Administrator [Thu, 25 Dec 2014 00:16:34 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219065
Oleg Endo [Wed, 24 Dec 2014 21:55:59 +0000 (21:55 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
gcc/
PR target/51244
* config/sh/sh.md (*mov_t_msb_neg): Convert split into insn_and_split.
From-SVN: r219062
Segher Boessenkool [Wed, 24 Dec 2014 18:26:49 +0000 (19:26 +0100)]
405-dlmzb-strlen-1.c: Explicitly align arg.
* gcc.target/powerpc/405-dlmzb-strlen-1.c: Explicitly align arg.
* gcc.target/powerpc/440-dlmzb-strlen-1.c: Ditto.
From-SVN: r219061
Uros Bizjak [Wed, 24 Dec 2014 16:22:51 +0000 (17:22 +0100)]
xasprintf.c: New file.
libiberty/ChangeLog:
* xasprintf.c: New file.
* Makefile.in (CFILES): Add xasprintf.c.
(REQUIRED_OFILES): Add xasprintf.$(objext).
(xasprintf.$(objext)): New target.
* functions.texi: Regenerate.
include/ChangeLog:
* libiberty.h (xasprintf): Declare.
gcc/ChangeLog:
* gengtype.h (xasprintf): Remove declaration.
* gengtype.c (xasprintf): Remove.
Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r219060
Andrew Stubbs [Wed, 24 Dec 2014 14:27:06 +0000 (14:27 +0000)]
Fix undefined-loop-2.c test case.
2014-12-24 Andrew Stubbs <ams@codesourcery.com>
PR testsuite/64032
* gcc.dg/undefined-loop-2.c: Don't allow GCC to optimize away the
loop exits too early.
From-SVN: r219059
Nick Clifton [Wed, 24 Dec 2014 13:36:29 +0000 (13:36 +0000)]
re PR target/64160 (msp430 code generation error adding 32-bit integers)
PR target/64160
* config/msp430/msp430.md (addsi splitter): Do not split when the
destination partially overlaps the source.
From-SVN: r219058
Anthony Green [Wed, 24 Dec 2014 13:20:37 +0000 (13:20 +0000)]
Add mul.x support for moxie
From-SVN: r219056
Paolo Carlini [Wed, 24 Dec 2014 09:07:23 +0000 (09:07 +0000)]
re PR c++/63985 (Accepts invalid range-based for declaration)
/cp
2014-12-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63985
* parser.c (cp_parser_for_init_statement): Reject invalid declarations
in range-based for loops.
/testsuite
2014-12-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63985
* g++.dg/cpp0x/range-for29.C: New.
From-SVN: r219054
GCC Administrator [Wed, 24 Dec 2014 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219053
Jonathan Wakely [Tue, 23 Dec 2014 23:30:33 +0000 (23:30 +0000)]
Compile locale-inst.cc and wlocale-inst.cc as C++11.
PR libstdc++/64389
* src/c++11/Makefile.am: Add locale-inst.cc and wlocale-inst.cc.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/locale-inst.cc: Move from src/c++98/.
* src/c++11/wlocale-inst.cc: Likewise.
* src/c++11/cxx11-locale-inst.cc: Adjust path to locale-inst.cc.
* src/c++11/string-inst.cc: Remove time_get instantiations.
* src/c++98/Makefile.am: Remove locale-inst.cc and wlocale-inst.cc.
* src/c++98/Makefile.in: Regenerate.
* src/c++98/locale-inst.cc: Move to src/c++11/.
* src/c++98/wlocale-inst.cc: Likewise.
From-SVN: r219050
Ian Lance Taylor [Tue, 23 Dec 2014 20:33:53 +0000 (20:33 +0000)]
runtime: Remove undefined references to runtime_race*.
From-SVN: r219049
Zhouyi Zhou [Tue, 23 Dec 2014 19:02:46 +0000 (19:02 +0000)]
ira-build.c (ira_flattening): Add the current object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
* ira-build.c (ira_flattening): Add the current
object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
From-SVN: r219046
Ian Lance Taylor [Tue, 23 Dec 2014 18:39:19 +0000 (18:39 +0000)]
compiler: Evaluate array range expression once before iteration.
Fixes issue 34.
From-SVN: r219045
Martin Liska [Tue, 23 Dec 2014 09:30:20 +0000 (10:30 +0100)]
Fix for PR ipa/63851 and ipa/63852.
PR ipa/63851
PR ipa/63852
* ipa-icf.c (sem_function::merge): Ignore merge operation
for a thunk created from static chain.
* ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that
types have same restrict flag.
From-SVN: r219042
GCC Administrator [Tue, 23 Dec 2014 00:16:48 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219041
John David Anglin [Mon, 22 Dec 2014 23:10:18 +0000 (23:10 +0000)]
re PR target/55023 (hppa: wrong code generated with tail call optimisation)
PR target/55023
* dse.c (scan_insn): Treat sibling call as though it does a wild read.
* testsuite/gcc.dg/pr55023.c: New file.
From-SVN: r219037
Francois-Xavier Coudert [Mon, 22 Dec 2014 21:57:45 +0000 (21:57 +0000)]
* lib/ubsan-dg.exp: Add library path for libstdc++.
From-SVN: r219035
Tobias Burnus [Mon, 22 Dec 2014 21:53:53 +0000 (22:53 +0100)]
trans-intrinsic.c (gfc_conv_intrinsic_caf_get, [...]): Fix vector handling.
2014-12-22 Tobias Burnus <burnus@net-b.de>
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get, conv_caf_send):
Fix vector handling.
From-SVN: r219034
Paolo Carlini [Mon, 22 Dec 2014 18:58:44 +0000 (18:58 +0000)]
basic_string.h: Fix _S_local_capacity for large sizeof(_CharT).
2014-12-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/basic_string.h: Fix _S_local_capacity for
large sizeof(_CharT).
From-SVN: r219031
Oleg Endo [Mon, 22 Dec 2014 18:53:44 +0000 (18:53 +0000)]
re PR target/58314 (SH4 error: 'asm' operand requires impossible reload)
gcc/testsuite/
PR target/58314
* gcc.target/sh/torture/pr58314-2.c: New.
* gcc.target/sh/torture/pr58314.c: Don't set -Os option.
From-SVN: r219030
Janus Weil [Mon, 22 Dec 2014 18:15:08 +0000 (19:15 +0100)]
re PR fortran/63363 (No diagnostic for passing function as actual argument to KIND)
2014-12-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/63363
* check.c (gfc_check_kind): Reject polymorphic and non-data arguments.
2014-12-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/63363
* gfortran.dg/kind_1.f90: New.
From-SVN: r219027
Jonathan Wakely [Mon, 22 Dec 2014 16:41:39 +0000 (16:41 +0000)]
re PR libstdc++/37522 (Incorrect vswprintf prototype breaks __to_xstring)
PR libstdc++/37522
* include/bits/basic_string.h (stod, stof, stoi, stol, stold, stoll,
stoul, stoull, to_string): Only use _GLIBCXX_HAVE_BROKEN_VSWPRINTF
to guard definition of to_wstring.
* testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
Do not use dg-require-string-conversions.
* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/
stoull.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string.cc: Likewise.
From-SVN: r219019
Oleg Endo [Mon, 22 Dec 2014 16:19:11 +0000 (16:19 +0000)]
re PR target/52933 (SH Target: Use div0s for integer sign comparisons)
gcc/testsuite/
PR target/52933
* gcc.target/sh/sh/pr52933-3.c: New.
From-SVN: r219017
Ville Voutilainen [Mon, 22 Dec 2014 16:00:16 +0000 (18:00 +0200)]
re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use std::max_element)
2014-12-22 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/60271
C++14 constexpr min, max, minmax, min_element, max_element
and minmax_element. Also constexpr for 20.9.5-20.9.9,
aka various library functors.
* include/bits/c++config: Add _GLIBCXX14_CONSTEXPR.
* include/bits/algorithmfwd.h (min, max, minmax, min_element,
max_element): Use it.
* include/bits/predefined_ops.h (_Iter_less_iter, __iter_less_iter,
_Iter_comp_iter, __iter_comp_iter): Likewise.
* include/bits/stl_algo.h (minmax, __minmax_element, minmax_element,
min, max, __min_element, min_element, __max_element, max_element)
Likewise.
* include/bits/stl_algobase.h (min, max): Likewise.
* include/bits/stl_function.h (plus, minus, multiplies, divides,
modulus, negate, equal_to, not_equal_to, greater, less, greater_equal,
less_equal, logical_and, logical_or, logical_not, bit_and, bit_or,
bit_xor, bit_not, unary_negate, not1, binary_negate, not2): Likewise.
* testsuite/20_util/function_objects/constexpr.cc: New.
* testsuite/25_algorithms/max/constexpr.cc: Likewise.
* testsuite/25_algorithms/max_element/constexpr.cc: Likewise.
* testsuite/25_algorithms/min/constexpr.cc: Likewise.
* testsuite/25_algorithms/min_element/constexpr.cc: Likewise.
* testsuite/25_algorithms/minmax/constexpr.cc: Likewise.
* testsuite/25_algorithms/minmax_element/constexpr.cc: Likewise.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
From-SVN: r219015
Jonathan Wakely [Mon, 22 Dec 2014 14:49:09 +0000 (14:49 +0000)]
status_cxx2011.xml: Update.
* doc/xml/manual/status_cxx2011.xml: Update.
* doc/html/manual/status.html: Regenerate.
From-SVN: r219014
Rüdiger Sonderfeld [Mon, 22 Dec 2014 13:45:52 +0000 (13:45 +0000)]
re PR libstdc++/54354 (TODO extended iomanip manipulators std::get_time and std::put_time (C++11, section 27.7.5))
2014-12-22 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
PR libstdc++/54354
* include/std/iomanip (_Get_time): New struct.
(get_time): New manipulator.
(operator<<): New overloaded function.
* testsuite/27_io/manipulators/extended/get_time/char/1.cc: New.
* testsuite/27_io/manipulators/extended/get_time/char/2.cc: New.
* testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc: New.
* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: New.
From-SVN: r219013
Rüdiger Sonderfeld [Mon, 22 Dec 2014 13:45:44 +0000 (13:45 +0000)]
re PR libstdc++/60396 (Missing time_get<>::get() functions)
2014-12-22 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/60396
* config/abi/pre/gnu.ver: Add new exports.
* include/bits/locale_facets_nonio.h (time_get::get): New overloads.
(time_get::do_get): New virtual function.
* include/bits/locale_facets_nonio.tcc (time_get::get): Define.
(time_get::do_get): Define.
* src/c++11/string-inst.cc (time_get::get, time_get::do_get): Add
C++11-only instantiations.
* testsuite/22_locale/time_get/get/char/1.cc: New.
* testsuite/22_locale/time_get/get/char/2.cc: New.
* testsuite/22_locale/time_get/get/wchar_t/1.cc: New.
* testsuite/22_locale/time_get/get/wchar_t/2.cc: New.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r219012
Eric Botcazou [Mon, 22 Dec 2014 11:05:18 +0000 (11:05 +0000)]
* gnat.dg/nan_max.adb: New test.
From-SVN: r219011
Eric Botcazou [Mon, 22 Dec 2014 11:04:42 +0000 (11:04 +0000)]
trans.c (Attribute_to_gnu): If the type is a floating-point type...
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_{Min,Max}>: If the
type is a floating-point type, implement the semantics of the C99
f{min,max} routines with regard to NaNs.
(gnat_to_gnu): Call builtin_decl_implicit.
* gcc-interface/utils2.c (compare_arrays): Adjust comments.
From-SVN: r219010
Eric Botcazou [Mon, 22 Dec 2014 10:35:11 +0000 (10:35 +0000)]
decl.c (gnat_to_gnu_field): Post the error message for parent overlapping on the position instead of on the...
* gcc-interface/decl.c (gnat_to_gnu_field): Post the error message
for parent overlapping on the position instead of on the first bit.
For a field that needs strict alignment, issue the error for the
position first and, for the size, issue an error if it is too large
only for the atomic and aliased cases. Issue a specific error if
the size is not a multiple of a byte in the volatile and the stric
alignment cases.
From-SVN: r219009
Bin Cheng [Mon, 22 Dec 2014 10:25:10 +0000 (10:25 +0000)]
re PR rtl-optimization/62151 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR rtl-optimization/62151
* combine.c (try_combine): New local variables local_elim_i1
and local_elim_i0. Set elim_i1 and elim_i0 using the local
version variables. Distribute notes from i0notes or i1notes
using the local variables.
gcc/testsuite/ChangeLog
PR rtl-optimization/62151
* gcc.c-torture/execute/pr62151.c: New test.
From-SVN: r219008
Eric Botcazou [Mon, 22 Dec 2014 10:12:05 +0000 (10:12 +0000)]
decl.c (check_ok_for_atomic): Rename into...
* gcc-interface/decl.c (check_ok_for_atomic): Rename into...
(check_ok_for_atomic_type): ...this. When checking the mode, also
check that the type is sufficient aligned. Remove useless code and
tidy up implementation.
(gnat_to_gnu_entity): Adjust to above renaming.
(gnat_to_gnu_component_type): Likewise.
(gnat_to_gnu_field): Likewise.
From-SVN: r219007
Martin Liska [Mon, 22 Dec 2014 09:33:05 +0000 (10:33 +0100)]
symbol_summary is used for inline_summary.
* lto-partition.c (add_symbol_to_partition_1): New inline_summaries
is used.
(undo_partition): Likewise.
(lto_balanced_map): Likewise.
* cgraphunit.c (symbol_table::process_new_functions): New inline_summaries
is used.
* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
(devirtualization_time_bonus): Likewise.
(estimate_local_effects): Likewise.
(ipcp_propagate_stage): Likewise.
* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Likewise.
(evaluate_properties_for_edge): Likewise.
(inline_summary_alloc): Likewise.
(reset_inline_summary): New inline_summary argument is introduced.
(inline_summary_t::remove): New function.
(inline_summary_t::duplicate): Likewise.
(dump_inline_edge_summary): New inline_summaries is used.
(dump_inline_summary): Likewise.
(estimate_function_body_sizes): Likewise.
(compute_inline_parameters): Likewise.
(estimate_edge_devirt_benefit): Likewise.
(estimate_node_size_and_time): Likewise.
(inline_update_callee_summaries): Likewise.
(inline_merge_summary): Likewise.
(inline_update_overall_summary): Likewise.
(simple_edge_hints): Likewise.
(do_estimate_edge_time): Likewise.
(estimate_time_after_inlining): Likewise.
(estimate_size_after_inlining): Likewise.
(do_estimate_growth): Likewise.
(growth_likely_positive): Likewise.
(inline_generate_summary): Likewise.
(inline_read_section): Likewise.
(inline_read_summary): Likewise.
(inline_write_summary): Likewise.
(inline_free_summary): Likewise.
* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
(inline_call): Likewise.
* ipa-inline.c (caller_growth_limits): Likewise.
(can_inline_edge_p): Likewise.
(want_early_inline_function_p): Likewise.
(compute_uninlined_call_time): Likewise.
(compute_inlined_call_time): Likewise.
(big_speedup_p): Likewise.
(want_inline_small_function_p): Likewise.
(edge_badness): Likewise.
(update_caller_keys): Likewise.
(update_callee_keys): Likewise.
(recursive_inlining): Likewise.
(inline_small_functions): Likewise.
(inline_to_all_callers): Likewise.
(dump_overall_stats): Likewise.
(early_inline_small_functions): Likewise.
* ipa-inline.h: New class inline_summary_t replaces
vec<inline_summary_t>.
* ipa-split.c (execute_split_functions): New inline_summaries is used.
* ipa.c (walk_polymorphic_call_targets): Likewise.
* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
From-SVN: r219006
Martin Liska [Mon, 22 Dec 2014 09:19:09 +0000 (10:19 +0100)]
ipa-prop uses symbol_summary class.
* lto-partition.c: Include of symbol-summary.h is added.
* lto-symtab.c: Likewise.
* lto.c: Likewise.
* auto-profile.c: Include of symbol-summary.h is added.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-inline-analysis.c (evaluate_properties_for_edge): New
ipa_node_params_sum data structure is used.
(inline_node_duplication_hook): Likewise.
(estimate_function_body_sizes): Likewise.
(remap_edge_change_prob): Likewise.
(inline_merge_summary): Likewise.
* ipa-inline-transform.c: Include of symbol-summary.h is added.
* ipa-inline.c (early_inliner): New ipa_node_params_sum data structure
is used.
* ipa-polymorphic-call.c: Include of symbol-summary.h is added.
* ipa-profile.c: Include of symbol-summary.h is added.
* ipa-prop.c (ipa_propagate_indirect_call_infos): New ipa_node_params_sum
data structure is used.
(ipa_node_params::~ipa_node_params): New function.
(ipa_free_all_node_params): Destruction is simplified.
(ipa_node_removal_hook): Removed.
(ipa_add_new_function): Renamed from ipa_node_duplication_hook.
(ipa_node_params_t::duplicate): New function.
(ipa_register_cgraph_hooks): Few hooks are removed.
(ipa_unregister_cgraph_hooks): Likewise.
(ipa_prop_write_jump_functions): New ipa_node_params_sum is used.
* ipa-prop.h (struct ipa_node_params): Destructor introduced for
the structure.
(ipa_check_create_node_params): Vector for ipa_node_params is replaced
with function_summary.
* ipa-split.c: Include of symbol-summary.h is added.
* ipa-utils.c: Include of symbol-summary.h is added.
* ipa.c: Include of symbol-summary.h is added.
* omp-low.c: Include of symbol-summary.h is added.
* tree-inline.c: Include of symbol-summary.h is added.
* tree-sra.c: Include of symbol-summary.h is added.
* tree-ssa-pre.c: Include of symbol-summary.h is added.
From-SVN: r219005
Martin Liska [Mon, 22 Dec 2014 08:54:19 +0000 (09:54 +0100)]
New symbol_summary class introduced.
* cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID
is filled up.
* symbol-summary.h: New file.
* gengtype.c (open_base_files): Add symbol-summary.h.
* toplev.c (general_init): Call constructor of symbol_table.
From-SVN: r219004
Sebastian Huber [Mon, 22 Dec 2014 06:09:21 +0000 (06:09 +0000)]
Add myself to RTEMS Ports maintainers.
ChangeLog
* MAINTAINERS (RTEMS Ports): Add myself.
From-SVN: r219003
GCC Administrator [Mon, 22 Dec 2014 00:16:53 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219002
Oleg Endo [Sun, 21 Dec 2014 23:37:42 +0000 (23:37 +0000)]
re PR target/55212 ([SH] Switch to LRA)
gcc/
PR target/55212
* config/sh/sh.md (*addsi3_compact): Add parentheses around &&
condition. Add comments.
From-SVN: r218999
Oleg Endo [Sun, 21 Dec 2014 22:36:33 +0000 (22:36 +0000)]
re PR target/17280 (-mrelax and -O cause .uses directives in assembler to refer to non-existent local labels)
gcc/testsuite/
PR target/17280
* gcc.target/sh/torture/pr17280.c: New.
From-SVN: r218998
Jonathan Wakely [Sun, 21 Dec 2014 15:16:08 +0000 (15:16 +0000)]
re PR libstdc++/64367 (g++-v5/stdexcept:52:28: error: invalid use of non-static data member '_M_p')
PR libstdc++/64367
* include/std/stdexcept: Don't use non-static member in sizeof.
From-SVN: r218997
Jason Merrill [Sun, 21 Dec 2014 05:00:43 +0000 (00:00 -0500)]
re PR c++/64359 (alias_template_specialization_p & template_args_equal show up high in profile)
PR c++/64359
* pt.c (iterative_hash_template_arg): Hash alias specializations
differently from their TYPE_CANONICAL.
(alias_template_specialization_p): Optimize.
(template_args_equal): Optimize alias handling.
(dependent_alias_template_spec_p): Only check innermost args.
From-SVN: r218995
GCC Administrator [Sun, 21 Dec 2014 00:16:36 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218994
François Dumont [Sat, 20 Dec 2014 19:16:03 +0000 (19:16 +0000)]
vector (std::__debug::vector<>::clear()): Do not reset guaranteed capacity.
2014-12-20 François Dumont <fdumont@gcc.gnu.org>
* include/debug/vector (std::__debug::vector<>::clear()): Do not reset
guaranteed capacity.
* testsuite/23_containers/vector/bool/allocator/swap.cc: Move
propagating_allocator equality and inequality operators to __gnu_test
namespace.
From-SVN: r218991
François Dumont [Sat, 20 Dec 2014 16:09:45 +0000 (16:09 +0000)]
mutex_extensions_neg.cc: Adjust dg-error.
2014-12-20 François Dumont <fdumont@gcc.gnu.org>
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
From-SVN: r218990
Segher Boessenkool [Sat, 20 Dec 2014 15:37:06 +0000 (16:37 +0100)]
re PR target/64358 (Wrong code for __int128 operations in powerpc64le)
PR target/64358
* config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
input operands if only the second is inverted.
* config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
rs6000_split_logical.
(*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
From-SVN: r218989
François Dumont [Sat, 20 Dec 2014 08:37:02 +0000 (08:37 +0000)]
c++config: inline __cxx11 namespace within namespace __cxx1998.
2014-12-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/c++config: inline __cxx11 namespace within namespace
__cxx1998.
From-SVN: r218988
Jason Merrill [Sat, 20 Dec 2014 01:42:51 +0000 (20:42 -0500)]
* g++.dg/cpp1y/lambda-generic-variadic2.C: Fix.
From-SVN: r218987
Edward Smith-Rowland [Sat, 20 Dec 2014 01:21:15 +0000 (01:21 +0000)]
c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
c-family/
2014-12-20 Edward Smith-Rowland <3dw4rd@verizon.net>
* c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
Control macro with flag_sized_deallocation.
testsuite/
2014-12-20 Edward Smith-Rowland <3dw4rd@verizon.net>
* g++.dg/cpp1y/feat-cxx98-neg.C: Enable __cpp_sized_deallocation test.
* g++.dg/cpp1y/feat-cxx14.C: Ditto.
* g++.dg/cpp1y/feat-cxx11-neg.C: Ditto and move tests for consistent
order.
* g++.dg/cpp1y/feat-sized-dealloc-neg.C: New.
* g++.dg/cpp1y/feat-sized-dealloc.C: New.
From-SVN: r218986
Martin Uecker [Sat, 20 Dec 2014 00:29:16 +0000 (16:29 -0800)]
invoke.texi: Document -Wdiscarded-array-qualifiers.
2014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
* doc/invoke.texi: Document -Wdiscarded-array-qualifiers.
* doc/extend.texi: Document new behavior for pointers to arrays
with qualifiers.
c/
* c-typeck.c: New behavious for pointers to arrays with qualifiers
(common-pointer-type): For pointers to arrays take qualifiers from
element type.
(build_conditional_expr): Add warnings for lost qualifiers.
(comp-target-types): Allow pointers to arrays with different qualifiers.
(convert-for-assignment): Adapt warnings for discarded qualifiers. Add
WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
to PEDWARN_FOR_QUALIFIERS.
c-family/
* c.opt (Wdiscarded-array-qualifiers): New option.
testsuite/
* gcc.dg/Wwrite-strings-1.c: Change dg-warning.
* gcc.dg/array-quals-1.c: Use -Wno-discarded-array-qualifiers.
* gcc.dg/array-quals-2.c: Change dg-options, dg-warning.
* gcc.dg/pointer-array-atomic.c: New test.
* gcc.dg/pointer-array-quals-1.c: New test.
* gcc.dg/pointer-array-quals-2.c: New test (-pedantic-errors).
* gcc.dg/qual-component-1.c: Change dg-options, dg-warnings.
From-SVN: r218985
Jonathan Wakely [Sat, 20 Dec 2014 00:19:40 +0000 (00:19 +0000)]
Fix duplicate symbol errors in Darwin bootstrap.
* src/c++98/locale-inst.cc (__add_grouping, __pad, __int_to_char):
Only compile for old ABI.
From-SVN: r218984
GCC Administrator [Sat, 20 Dec 2014 00:16:48 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218983
Ian Lance Taylor [Fri, 19 Dec 2014 22:21:01 +0000 (22:21 +0000)]
compiler: Add temporaries required in cases of interface conversion.
From-SVN: r218979
David Malcolm [Fri, 19 Dec 2014 20:34:39 +0000 (20:34 +0000)]
Fix casting non-"int" to bool.
gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::build_cast): In
case BOOLEAN_TYPE, don't assume that the source expression is
of type "int".
gcc/testsuite/ChangeLog:
* jit.dg/test-expressions.c (make_tests_of_casts): Add tests of
casting between "long" and "bool".
(verify_casts): Verify these new test cases.
From-SVN: r218977
Jan Hubicka [Fri, 19 Dec 2014 20:27:53 +0000 (21:27 +0100)]
hash-table.h (struct pointer_hash): Fix formating.
* hash-table.h (struct pointer_hash): Fix formating.
(hash_table_higher_prime_index): Declare pure.
(hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
assume that uint64_t always exists.
(hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
(hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
(hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
Use checking assert.
* hash-table.c: Remove #if 0 code.
(hash_table_higher_prime_index): Use gcc_assert.
(mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h
From-SVN: r218976
Matthew Fortune [Fri, 19 Dec 2014 20:18:08 +0000 (20:18 +0000)]
MIPSR6: mips-img-elf mips-img-linux-gnu triplets and vendor updates
gcc/
* config.gcc: Support mips*-img-linux* and mips*-img-elf*.
* config/mips/mti-linux.h: Support mips32r6 as being the default arch.
* config/mips/t-img-elf: New.
* config/mips/t-img-linux: New.
gcc/testsuite/
* gcc.target/mips/pr37362.c: Skip for mips-img-elf.
From-SVN: r218975
Chris Manghane [Fri, 19 Dec 2014 20:17:42 +0000 (20:17 +0000)]
go-gcc.cc (array_constructor_expression): Don't construct arrays of zero-sized values.
* go-gcc.cc (array_constructor_expression): Don't construct arrays
of zero-sized values.
From-SVN: r218974
Matthew Fortune [Fri, 19 Dec 2014 20:17:36 +0000 (20:17 +0000)]
MIPS32R6 and MIPS64R6 support
gcc/
* config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
* config/mips/constraints.md (ZD): Add r6 restrictions.
* config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
* config/mips/loongson.md
(<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
* config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
* config/mips/mips-modes.def (CCF): New mode.
* config/mips/mips-protos.h
(mips_9bit_offset_address_p): New prototype.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
(mips_rtx_cost_data): Add pseudo-processors W32 and W64.
(mips_9bit_offset_address_p): New function.
(mips_rtx_costs): Account for R6 multiply and FMA instructions.
(mips_emit_compare): Implement R6 FPU comparisons.
(mips_expand_conditional_move): Implement R6 selects.
(mips_expand_conditional_trap): Account for removed trap immediate.
(mips_expand_block_move): Disable inline move when LWL/LWR are removed.
(mips_print_float_branch_condition): Update for R6 FPU branches.
(mips_print_operand): Handle CCF mode compares.
(mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
MD_REGS for R6.
(mips_hard_regno_mode_ok_p): Support CCF mode.
(mips_mode_ok_for_mov_fmt_p): Likewise.
(mips_secondary_reload_class): CCFmode can be loaded directly.
(mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
(mips_option_override): Ensure R6 is used with fp64. Set default
mips_nan modes. Check for mips_nan support. Prevent DSP with R6.
(mips_conditional_register_usage): Disable MD_REGS for R6. Disable
FPSW for R6.
(mips_mulsidi3_gen_fn): Support R6 multiply instructions.
* config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
(TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
(ISA_HAS_JR): New macro.
(ISA_HAS_HILO): New macro.
(ISA_HAS_R6MUL): Likewise.
(ISA_HAS_R6DMUL): Likewise.
(ISA_HAS_R6DIV): Likewise.
(ISA_HAS_R6DDIV): Likewise.
(ISA_HAS_CCF): Likewise.
(ISA_HAS_SEL): Likewise.
(ISA_HAS_COND_TRAPI): Likewise.
(ISA_HAS_FP_MADDF_MSUBF): Likewise.
(ISA_HAS_LWL_LWR): Likewise.
(ISA_HAS_IEEE_754_LEGACY): Likewise.
(ISA_HAS_IEEE_754_2008): Likewise.
(ISA_HAS_PREFETCH_9BIT): Likewise.
(MIPSR6_9BIT_OFFSET_P): New macro.
(BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
(DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
(MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
(MIPS_ISA_LEVEL_SPEC): Likewise.
(MIPS_ISA_SYNCI_SPEC): Likewise.
(ISA_HAS_64BIT_REGS): Likewise.
(ISA_HAS_BRANCHLIKELY): Likewise.
(ISA_HAS_MUL3): Likewise.
(ISA_HAS_DMULT): Likewise.
(ISA_HAS_DDIV): Likewise.
(ISA_HAS_DIV): Likewise.
(ISA_HAS_MULT): Likewise.
(ISA_HAS_FP_CONDMOVE): Likewise.
(ISA_HAS_8CC): Likewise.
(ISA_HAS_FP4): Likewise.
(ISA_HAS_PAIRED_SINGLE): Likewise.
(ISA_HAS_MADD_MSUB): Likewise.
(ISA_HAS_FP_RECIP_RSQRT): Likewise.
* config/mips/mips.md (processor): Add w32 and w64.
(FPCC): New mode iterator.
(reg): Add CCF mode.
(fpcmp): New mode attribute.
(fcond): Add ordered, ltgt and ne codes.
(fcond): Update code attribute.
(sel): New code attribute.
(selinv): Likewise.
(ctrap<mode>4): Update condition.
(*conditional_trap_reg<mode>): New define_insn.
(*conditional_trap<mode>): Update condition.
(mul<mode>3): Expand R6 multiply instructions.
(<su>mulsi3_highpart): Likewise.
(<su>muldi3_highpart): Likewise.
(mul<mode>3_mul3_loongson): Rename...
(mul<mode>3_mul3_hilo): To this. Add R6 mul instruction.
(<u>mulsidi3_32bit_r6): New expander.
(<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
(<u>mulsidi3_32bit_r4000): Likewise.
(<u>mulsidi3_64bit): Likewise.
(<su>mulsi3_highpart_internal): Likewise.
(mulsidi3_64bit_r6dmul): New instruction.
(<su>mulsi3_highpart_r6): Likewise.
(<su>muldi3_highpart_r6): Likewise.
(fma<mode>4): Likewise.
(movccf): Likewise.
(*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
(*sel<mode>): Likewise.
(<u>div<mode>3): Moved from loongson.md. Add R6 instructions.
(<u>mod<mode>3): Likewise.
(extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
(extzvmisalign<mode>): Likewise.
(insvmisalign<mode>): Likewise.
(mips_cache): Account for R6 displacement field sizes.
(*branch_fp): Rename...
(*branch_fp_<mode>): To this. Add CCFmode support.
(*branch_fp_inverted): Rename...
(*branch_fp_inverted_<mode>): To this. Add CCFmode support.
(s<code>_<mode>): Rename...
(s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this. Add FCCmode
condition support.
(s<code>_<mode> swapped): Rename...
(s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
CCFmode condition support.
(mov<mode>cc GPR): Expand R6 selects.
(mov<mode>cc FPR): Expand R6 selects.
(*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
* config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
mips.h.
(ASM_SPEC): Add mips32r6, mips64r6.
* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
for mips32r6/mips64r6.
* doc/invoke.texi: Document -mips32r6,-mips64r6.
* doc/md.texi: Update comment for ZD constraint.
libgcc/
* config.host: Support mipsisa32r6 and mipsisa64r6.
* config/mips/mips16.S: Do not build for R6.
gcc/testsuite/
* gcc.dg/torture/mips-hilo-2.c: Unconditionally pass for R6 onwards.
* gcc.dg/torture/pr19683-1.c: Likewise.
* gcc.target/mips/branch-cost-2.c: Require MOVN.
* gcc.target/mips/movcc-1.c: Likewise.
* gcc.target/mips/movcc-2.c: Likewise.
* gcc.target/mips/movcc-3.c: Likewise.
* gcc.target/mips/call-saved-4.c: Require LDC.
* gcc.target/mips/dmult-1.c: Require R5 or earlier.
* gcc.target/mips/fpcmp-1.c: Likewise.
* gcc.target/mips/fpcmp-2.c: Likewise.
* gcc.target/mips/neg-abs-2.c: Likewise.
* gcc.target/mips/timode-1.c: Likewise.
* gcc.target/mips/unaligned-1.c: Likewise.
* gcc.target/mips/madd-3.c: Require MADD.
* gcc.target/mips/madd-9.c: Likewise.
* gcc.target/mips/maddu-3.c: Likewise.
* gcc.target/mips/msub-3.c: Likewise.
* gcc.target/mips/msubu-3.c: Likewise.
* gcc.target/mips/mult-1.c: Require INS and not DMUL.
* gcc.target/mips/mips-ps-type-2.c: Require MADD.PS.
* gcc.target/mips/mips.exp (mips_option_groups): Add ins, dmul, ldc,
movn, madd, maddps.
(mips-dg-options): INS available from R2. LDC available from MIPS II,
DMUL is present in octeon. Describe all features removed from R6.
Co-Authored-By: Steve Ellcey <sellcey@imgtec.com>
From-SVN: r218973