Daniel Cederman [Mon, 28 Sep 2015 05:46:04 +0000 (05:46 +0000)]
Make muser-mode the default for LEON3
2015-09-28 Daniel Cederman <cederman@gaisler.com>
Make muser-mode the default for LEON3
The muser-mode flag causes the CASA instruction for LEON3 to use the
user mode ASI. This is the correct behavior for almost all LEON3 targets.
For this reason it makes sense to make user mode the default.
gcc/
* config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
and make it inverse to change default
* config/sparc/sync.md: Only use supervisor ASI for CASA when in
supervisor mode
* doc/invoke.texi: Document change of default
Daniel Cederman [Mon, 28 Sep 2015 05:43:53 +0000 (05:43 +0000)]
Do not use floating point registers when compiling with -msoft-float for SPARC
2015-09-28 Daniel Cederman <cederman@gaisler.com>
Do not use floating point registers when compiling with -msoft-float for SPARC
__builtin_apply* and __builtin_return accesses the floating point registers on
SPARC even when compiling with -msoft-float.
gcc/
* config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
true on %f0 for a target without FPU.
* config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
without FPU.
(untyped_return): Do not load %f0 for a target without FPU.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Reorder error checks.
(__sync_fetch_and_##OP##_##WIDTH): Change result to match type of
__kernel_cmpxchg2.
(__sync_##OP##_and_fetch_##WIDTH): Likewise.
(__sync_val_compare_and_swap_##WIDTH): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Likewise.
(__sync_lock_test_and_set_##WIDTH): Likewise.
(__sync_lock_release_##WIDTH): Likewise.
(__sync_fetch_and_##OP##_4): Change result to match type of
__kernel_cmpxchg.
(__sync_##OP##_and_fetch_4): Likewise.
(__sync_val_compare_and_swap_4): Likewise.
(__sync_bool_compare_and_swap_4): likewise.
(__sync_lock_test_and_set_4): Likewise.
(__sync_lock_release_4): Likewise.
(FETCH_AND_OP_2): Add long long variants.
(OP_AND_FETCH_2): Likewise.
(COMPARE_AND_SWAP_2 ): Likewise.
(SYNC_LOCK_TEST_AND_SET_2): Likewise.
(SYNC_LOCK_RELEASE_2): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Correct return.
Alan Modra [Wed, 9 Sep 2015 06:07:14 +0000 (15:37 +0930)]
Fix PowerPC ICE due to secondary_reload ignoring reload replacements
The reason for this PR is that insns emitted by secondary reload
patterns are being generated without taking into account other reloads
that may have occurred. We run into this problem when an insn has a
pseudo that doesn't get a hard reg, and the pseudo is used in a way
that requires a secondary reload. In this case the secondary reload
is needed due to gcc generating a 64-bit gpr load from memory insn
with an address offset not a multiple of 4.
Alan Modra [Tue, 1 Sep 2015 23:25:48 +0000 (08:55 +0930)]
[RS6000] Weak functions may not be file local
A weak symbol defined in the current object file may not turn out to
be the definition used at link time, if other copies of the symbol
exist. This means they can't be considered file local.
Tim Shen [Fri, 28 Aug 2015 03:39:53 +0000 (03:39 +0000)]
backport: re PR libstdc++/67362 (std::regex("((.)", std::regex_constants::basic) throws)
Backport from mainline
2015-08-28 Tim Shen <timshen@google.com>
PR libstdc++/67362
* include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal):
Always returns ordinary char token if the char isn't
considered a special char.
* testsuite/28_regex/regression.cc: New test file for collecting
regression testcases from, typically, bugzilla.
Michael Meissner [Mon, 24 Aug 2015 20:36:35 +0000 (20:36 +0000)]
re PR target/67211 (ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu)
[gcc]
2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/67211
* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
-mefficient-unaligned-vsx on ISA 2.7.
* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
option to a masked option.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
logic for -mefficient-unaligned-vsx so that it is set via an arch
ISA option, instead of being set if -mtune=power8 is set. Move
-mefficient-unaligned-vsx and -mallow-movmisalign handling to be
near other default option handling.
[gcc/testsuite]
2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
Mikael Morin [Fri, 7 Aug 2015 09:55:36 +0000 (09:55 +0000)]
Fix elemental wrong-code
PR fortran/66929
gcc/fortran/
* trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
symbol if available.
gcc/testsuite/
* gfortran.dg/generic_30.f90: New.
* gfortran.dg/generic_31.f90: New.
Tim Shen [Wed, 5 Aug 2015 04:39:23 +0000 (04:39 +0000)]
backport: re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
Backported from mainline
2015-07-29 Tim Shen <timshen@google.com>
PR libstdc++/67015
* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
_BracketMatcher<>::_M_add_collating_element): Change signature
to make checking the and of bracket expression easier.
* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
Treat '-' as a valid literal if it's at the end of bracket expression.
* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
New testcases.
Tom de Vries [Sat, 25 Jul 2015 20:33:33 +0000 (20:33 +0000)]
Don't allow unsafe reductions in graphite
2015-07-24 Tom de Vries <tom@codesourcery.com>
backport from trunk:
2015-07-25 Tom de Vries <tom@codesourcery.com>
* gcc.dg/graphite/graphite.exp: Include uns-*.c files in
interchange_files and block_files variables.
* gcc.dg/graphite/uns-block-1.c (main): Change signed into unsigned
arithmetic.
* gcc.dg/graphite/uns-interchange-12.c: Same.
* gcc.dg/graphite/uns-interchange-14.c: Same.
* gcc.dg/graphite/uns-interchange-15.c: Same.
* gcc.dg/graphite/uns-interchange-9.c (foo): Same.
* gcc.dg/graphite/uns-interchange-mvt.c: Same.
2015-07-24 Tom de Vries <tom@codesourcery.com>
* graphite-sese-to-poly.c (is_reduction_operation_p): Limit
flag_associative_math to FLOAT_TYPE_P. Honour
TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
* gcc.dg/graphite/block-1.c: Xfail scan.
* gcc.dg/graphite/interchange-12.c: Same.
* gcc.dg/graphite/interchange-14.c: Same.
* gcc.dg/graphite/interchange-15.c: Same.
* gcc.dg/graphite/interchange-9.c: Same.
* gcc.dg/graphite/interchange-mvt.c: Same.
* gcc.dg/graphite/uns-block-1.c: New test.
* gcc.dg/graphite/uns-interchange-12.c: New test.
* gcc.dg/graphite/uns-interchange-14.c: New test.
* gcc.dg/graphite/uns-interchange-15.c: New test.
* gcc.dg/graphite/uns-interchange-9.c: New test.
* gcc.dg/graphite/uns-interchange-mvt.c: New test.