Re: [PATCH 0/7] s390 improvements with r[ioxn]sbg

2012-10-09 Thread Andreas Krebbel
On 10/08/12 04:31, Richard Henderson wrote: > Only "tested" visually, by examining assembly diffs of the > runtime libraries between successive patches. All told it > would appear to be some remarkable code size improvements. > > Please test. Thanks a lot for looking into this! I'll test the pat

[Committed] S/390: Add support for the new IBM zEnterprise EC12

2012-10-09 Thread Andreas Krebbel
on is used in the sched-reorder hook to move the best instruction to the top of the list. If this turns out to work fine I'll try to migrate the z196 pipeline description as well. No testsuite regressions. Committed to mainline. Bye, -Andreas- 2012-10-10 Andreas Krebbel *

[PATCH][4.8] S/390: Transaction optimization fixes

2013-10-04 Thread Andreas Krebbel
new testcase. Bootstrapped and regtested on s390 and s390x with --with-arch=zEC12. No regressions. I'm going to apply the patch to 4.8 and mainline after waiting a few days for comments. Bye, -Andreas- 2013-10-04 Andreas Krebbel * config/s390/s390.c (s390_register_info): Mak

[Committed] S/390: Use FPRs as GPR save slots

2013-10-09 Thread Andreas Krebbel
Hi, with the attached patch we use call-clobbered floating point registers as save slots for general purpose registers in leaf functions. Bootstrapped and regtested with various options and -march levels. Committed to mainline. Bye, -Andreas- 2013-10-09 Andreas Krebbel * config

[Committed] S/390: Cleanup of s390_frame_info

2013-10-09 Thread Andreas Krebbel
Just a cleanup of the s390_frame_info function. Committed to mainline after regression test was fine. Bye, -Andreas- 2013-10-09 Andreas Krebbel * config/s390/s390.c (s390_frame_info): Restructure function. --- gcc/config/s390/s390.c | 112

[Committed] S/390: Use fix stack slots for FPRs saved due to stdarg

2013-10-09 Thread Andreas Krebbel
patch we use dedicated slots when saving FPR argument registers and are now able to get rid of unnecessary saves that way. Bootstrapped and regression tested. Committed to mainline. Bye, -Andreas- 2013-10-09 Andreas Krebbel * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove

Re: [PING] 3 patches waiting for approval/review

2013-10-10 Thread Andreas Krebbel
On 09/10/13 21:46, Jeff Law wrote: > On 08/21/13 03:21, Andreas Krebbel wrote: >> [RFC] Allow functions calling mcount before prologue to be leaf functions >> http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00993.html > I don't think this is necessarily correct for all target

Re: [PING] 3 patches waiting for approval/review

2013-10-10 Thread Andreas Krebbel
On 10/10/13 18:41, Jeff Law wrote: > On 10/10/13 04:00, Andreas Krebbel wrote: >> On 09/10/13 21:46, Jeff Law wrote: >>> On 08/21/13 03:21, Andreas Krebbel wrote: >>>> [RFC] Allow functions calling mcount before prologue to be leaf functions >>>> http://g

[PATCH] Transaction fix: New target hook special_function_flags

2013-10-11 Thread Andreas Krebbel
tm-nofloat-2.c fails with that patch. The returns-twice flag on tbegin prevents several optimizations on the cfg and basically disables the TX optimization in s390_optimize_nonescaping_tx that way. I'll try to address this with a follow-on patch. Ok for mainline and 4.8? Bye, -Andreas- 20

Re: [PING] 3 patches waiting for approval/review

2013-10-11 Thread Andreas Krebbel
On 10/10/13 18:41, Jeff Law wrote: > On 10/10/13 04:00, Andreas Krebbel wrote: >> On 09/10/13 21:46, Jeff Law wrote: >>> On 08/21/13 03:21, Andreas Krebbel wrote: >>>> [RFC] Allow functions calling mcount before prologue to be leaf functions >>>> http://g

Re: [PATCH] Transaction fix: New target hook special_function_flags

2013-10-14 Thread Andreas Krebbel
On 14/10/13 12:14, Jakub Jelinek wrote: > On Mon, Oct 14, 2013 at 12:07:00PM +0200, Richard Biener wrote: >>> htm-nofloat-2.c fails with that patch. The returns-twice flag on >>> tbegin prevents several optimizations on the cfg and basically >>> disables the TX optimization in s390_optimize_nonesc

Re: [PATCH] Transaction fix: New target hook special_function_flags

2013-10-14 Thread Andreas Krebbel
On 14/10/13 13:30, Jakub Jelinek wrote: > On Mon, Oct 14, 2013 at 01:26:25PM +0200, Richard Biener wrote: >>> I somehow couldn't get it working with the add_builtin_function parameter. >>> Perhaps because these >>> attrs are supposed to be translated into the respective tree flags >>> (DECL_IS_RE

Re: [PING] 3 patches waiting for approval/review

2013-10-22 Thread Andreas Krebbel
On 16/10/13 22:25, Jeff Law wrote: > On 10/11/13 11:23, Andreas Krebbel wrote: >> On 10/10/13 18:41, Jeff Law wrote: >>> On 10/10/13 04:00, Andreas Krebbel wrote: >>>> On 09/10/13 21:46, Jeff Law wrote: >>>>> On 08/21/13 03:21, Andreas Krebbel wrote

Re: [PATCH 1/5] s390: Use proper read-only data section for literals.

2016-01-20 Thread Andreas Krebbel
On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: > Previously, .rodata was hardcoded. For C++ vague linkage functions, > this resulted in needlessly duplicated literals. With the new split > stack support, this resulted in link errors, due to .rodata containing > relocations to the discarded te

Re: [PATCH 2/5] s390: Fix missing .size directives.

2016-01-20 Thread Andreas Krebbel
On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: > It seems at some point the .size hook was hijacked to emit some > machine-specific directives, and the actual .size directive was > forgotten. This caused problems for split-stack support, since > linker couldn't scan the function body for non-s

Re: [PATCH 1/5] s390: Use proper read-only data section for literals.

2016-01-21 Thread Andreas Krebbel
On 01/21/2016 07:56 AM, Marcin Kościelnicki wrote: >>> +2016-01-02 Marcin Kościelnicki >>> + >>> + * config/s390/s390.md (pool_section_start): Use switch_to_section >>> + to select proper read-only data section instead of hardcoding .rodata. >>> + (pool_section_end): Use switch_to_section

Re: [PATCH 2/5] s390: Fix missing .size directives.

2016-01-21 Thread Andreas Krebbel
On 01/20/2016 02:16 PM, Andreas Krebbel wrote: > On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: >> It seems at some point the .size hook was hijacked to emit some >> machine-specific directives, and the actual .size directive was >> forgotten. This caused problems fo

Re: [PATCH 4/5] Don't mark targets of unconditional jumps with side effects as FALLTHRU.

2016-01-21 Thread Andreas Krebbel
On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: > When an unconditional jump with side effects targets an immediately > following label, rtl_tidy_fallthru_edge is called. Since it has side > effects, it doesn't remove the jump, but the label is still marked > as fallthru. This later causes a v

Re: [PATCH 5/5] s390: Add -fsplit-stack support

2016-01-21 Thread Andreas Krebbel
On 01/15/2016 10:08 PM, Marcin Kościelnicki wrote: > On 15/01/16 19:38, Andreas Krebbel wrote: >> Marcin, >> >> your implementation looks very good to me. Thanks! >> >> But please be aware that we deprecated the support of g5 and g6 and intend >> to remove

Re: [PATCH 4/5] Don't mark targets of unconditional jumps with side effects as FALLTHRU.

2016-01-21 Thread Andreas Krebbel
On 01/22/2016 12:10 AM, Jeff Law wrote: > On 01/21/2016 03:05 AM, Andreas Krebbel wrote: >> On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: >>> When an unconditional jump with side effects targets an immediately >>> following label, rtl_tidy_fallthru_edge is

Re: [PATCH] PR c++/69462: Provide FLT_EVAL_METHOD and DECIMAL_DIG in float.h.

2016-01-29 Thread Andreas Krebbel
On Fri, Jan 29, 2016 at 09:27:46AM +0100, Dominik Vogt wrote: > gcc/ChangeLog > > PR c++/69462 > * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG for > C++-11. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Require a hardware vector support for test to succeed.

2016-01-29 Thread Andreas Krebbel
On Wed, Jan 27, 2016 at 11:04:32AM +0100, Dominik Vogt wrote: > gcc/testsuite/ChangeLog > > * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Require a hardware vector support for > test to succeed. Applied. Thanks! -Andreas-

Re: [PATCH] PR other/69006: S/390: Fix extra newlines after diagnostics.

2016-01-29 Thread Andreas Krebbel
On Wed, Jan 27, 2016 at 12:01:26PM +0100, Dominik Vogt wrote: > gcc/ChangeLog > > PR other/69006 > * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove > trailing blank line from error message. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Use %qs in error messages.

2016-01-29 Thread Andreas Krebbel
On Fri, Jan 29, 2016 at 10:06:47AM +0100, Dominik Vogt wrote: > gcc/ChangeLog > > * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format > declaration name with %qs and print it in both error messages. Also > fix indentation. Applied. Thanks! -Andreas-

Re: [PATCH] s390: Add -fsplit-stack support

2016-01-29 Thread Andreas Krebbel
Hi Marcin, sorry for the late feedback. A few comments regarding the split stack implementation: The GNU coding style requires to replace every 8 leading blanks on a line with a tab. There are many lines in your patch violating this. In case you are an emacs user `whitespace-cleanup' will fix t

Re: [PATCH] s390: Add -fsplit-stack support

2016-01-29 Thread Andreas Krebbel
On 01/29/2016 04:43 PM, Marcin Kościelnicki wrote: > The testsuite with -fsplit-stack already hits all of them, and checking > them manually is rather tricky (I don't know if it could be done in > target-independent way at all), but I think it'd be reasonable to make > assembly testcases calling

Re: [PATCH 3/9] S/390: Get rid of Y constraint in rotate patterns.

2016-02-01 Thread Andreas Krebbel
On 02/01/2016 02:30 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> +; Accept single register and immediate operands usable as shift >> +; counts. >> +(define_predicate "addrreg_or_constint_operand" >> + (match_code "reg, subreg, const_

Re: [PATCH 3/9] S/390: Get rid of Y constraint in rotate patterns.

2016-02-01 Thread Andreas Krebbel
On 02/01/2016 05:58 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: >> On 02/01/2016 02:30 PM, Ulrich Weigand wrote: >>> This seems to add just a single alternative. Is that OK if it gets >>> substituted into a pattern that used multiple alternatives otherwise? &

Re: [PATCH 2/9] S/390: Add disabled insn attribute

2016-02-01 Thread Andreas Krebbel
On 02/01/2016 02:45 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> With this patch a `disabled' attribute is defined which can be used to >> explicitly disable an alternative. This comes handy when defining the >> substitutions later and while adding i

Re: [PATCH] s390: Add -fsplit-stack support

2016-02-02 Thread Andreas Krebbel
On 02/02/2016 03:52 PM, Marcin Kościelnicki wrote: > libgcc/ChangeLog: > > * config.host: Use t-stack and t-stack-s390 for s390*-*-linux. > * config/s390/morestack.S: New file. > * config/s390/t-stack-s390: New file. > * generic-morestack.c (__splitstack_find): Add s390-spe

[PATCH] S/390: Fix r6 vararg handling.

2016-02-04 Thread Andreas Krebbel
ndreas- gcc/ChangeLog: 2016-02-04 Andreas Krebbel PR target/69625 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines. (s390_register_info_gprtofpr): Use new macros above. (s390_register_info_stdarg_fpr): Adjust max_fpr to better match

Re: [PATCH] libstdc++: S/390: Add missing baseline_symbols.txt for s390x/-m31.

2016-02-05 Thread Andreas Krebbel
On 02/01/2016 05:53 PM, Dominik Vogt wrote: > The attached patch copies the existing > libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt > to .../s390x-linux-gnu/32/baseline_symbols.txt. This fixes the > abi test failure on s390x with -m31. > > The patch is gzip'ed because it's la

Re: [PATCH] S/390: Do not require -march=z13 on s390 but only on s390x.

2016-02-05 Thread Andreas Krebbel
On 02/04/2016 01:28 PM, Dominik Vogt wrote: > gcc/testsuite/ChangeLog > > * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Remove -march=z13 for s390 (only > necessary on s390x). Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Correct documentation typos.

2016-02-05 Thread Andreas Krebbel
On 02/01/2016 02:12 PM, Dominik Vogt wrote: > gcc/ChangeLog > > * doc/extend.texi: S/390: Correct some typos. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Fix r6 vararg handling.

2016-02-05 Thread Andreas Krebbel
On 02/04/2016 05:58 PM, Andreas Krebbel wrote: > +static void > +s390_register_info_set_ranges () > +{ > + int i, j; > + > + /* Find the first and the last save slot supposed to use the stack > + to set the restore range. > + Vararg regs might be marked as sa

Re: [PATCH] S/390: Fix r6 vararg handling.

2016-02-05 Thread Andreas Krebbel
On 02/05/2016 12:50 PM, Jakub Jelinek wrote: > On Fri, Feb 05, 2016 at 12:43:38PM +0100, Andreas Krebbel wrote: >> Dominik just made me aware of this stupid copy and paste bug which made me >> ending up with the very >> same loops twice :( >> I've committe

[Committed] S/390: Fix 64 bit sibcall

2016-02-05 Thread Andreas Krebbel
This fixes a problem revealed during the split-stack work: https://gcc.gnu.org/ml/gcc-patches/2016-02/msg00322.html Bootstrapped on s390x. No regressions. Committed to mainline. Needs to be committed to 4.9.x and 5.x as well. Bye, -Andreas- gcc/ChangeLog: 2016-02-05 Andreas Krebbel

Re: [PATCH] s390: Add -fsplit-stack support

2016-02-15 Thread Andreas Krebbel
On 02/14/2016 05:01 PM, Marcin Kościelnicki wrote: > libgcc/ChangeLog: > > * config.host: Use t-stack and t-stack-s390 for s390*-*-linux. > * config/s390/morestack.S: New file. > * config/s390/t-stack-s390: New file. > * generic-morestack.c (__splitstack_find): Add s390-spe

Re: [PATCH] s390: New mcount call sequence for z900+ CPUs in 31-bit mode.

2016-02-15 Thread Andreas Krebbel
On 01/21/2016 02:03 PM, Marcin Kościelnicki wrote: > gcc/ChangeLog: > > * config/s390/s390.c (s390_function_profiler): Add a new sequence > for z900+ CPUs in 31-bit mode. Applied. Thanks! -Andreas-

[PATCH 4/9] S/390: Adjust movstr-1.c testcase to work with the z13 stpcpy implementation.

2016-02-17 Thread Andreas Krebbel
2016-02-17 Andreas Krebbel * gcc.target/s390/md/movstr-1.c: Allow also the z13 strings instruction pattern name to prevent the testcase from failing with -march=z13. --- gcc/testsuite/gcc.target/s390/md/movstr-1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion

[PATCH 2/9] S/390: z13 lcbb fix address operand.

2016-02-17 Thread Andreas Krebbel
gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/s390.md: Add missing output modifier for operand 1 to print it as address properly. --- gcc/config/s390/s390.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/s390/s390.md b/gcc/config

[PATCH 3/9] S/390: z13 inline stpcpy implementation.

2016-02-17 Thread Andreas Krebbel
A handwritten loop for stpcpy using the new z13 vector instructions appears to be much faster than the millicoded instruction. However, the implementation is much longer and therefore will only be enabled when optimization for speed. gcc/testsuite/ChangeLog: 2016-02-17 Andreas Krebbel

[PATCH 6/9] S/390: Add vec_sub_u128 to vecintrin.h

2016-02-17 Thread Andreas Krebbel
This adds a missing macro to the vecintrin.h header file. gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/vecintrin.h (vec_sub_u128): Define missing macro. --- gcc/config/s390/vecintrin.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/config/s390/vecintrin.h b/gcc

[PATCH 8/9] S/390: Add single element vector types to iterators.

2016-02-17 Thread Andreas Krebbel
gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/vector.md (VI, VI_QHS): Add single element vector types to mode iterators. (vec_double): ... and mode attribute. * config/s390/vx-builtins.md (non_vec_int): Likewise. --- gcc/config/s390/vector.md

[PATCH 5/9] S/390: z13 fix mode in vcond expansion

2016-02-17 Thread Andreas Krebbel
For floating point vector compares the target mode is an integer mode which accidently was used as register mode when forcing the compare operands into regs. gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/s390.c (s390_expand_vcond): Use the compare operand mode. gcc

[PATCH 7/9] S/390: z13 Change predicates of 128 bit add sub.

2016-02-17 Thread Andreas Krebbel
So far usage of 128 bit add/sub instruction was rejected if the second operand was a constant because the predicate rejected this. gcc/testsuite/ChangeLog: 2016-02-17 Andreas Krebbel * gcc.target/s390/vector/int128-1.c: New test. gcc/ChangeLog: 2016-02-17 Andreas Krebbel

[PATCH 0/9] S/390: z13 pipeline description, stpcpy + bugfixes

2016-02-17 Thread Andreas Krebbel
risk to cause regressions for other cpu levels is small (hopefully). * It is required to get rid of some nasty performance regressions which can be observed with -march=z13 otherwise. Any objections? Bye, -Andreas- Andreas Krebbel (9): S/390: Add IBM z13 pipeline description S/390: z13 l

[PATCH 1/9] S/390: Add IBM z13 pipeline description

2016-02-17 Thread Andreas Krebbel
to allow the hardware to exploit the different units. gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*. * config/s390/2964.md: New file. * config/s390/s390.c (s390_get_sched_attrmask): Use the right set of

[PATCH 9/9] S/390: z13 Add missing commutative operand markers.

2016-02-17 Thread Andreas Krebbel
gcc/ChangeLog: 2016-02-17 Andreas Krebbel * config/s390/vector.md: Add missing commutative operand markers to the patterns which qualify for one. * config/s390/vx-builtins.md: Likewise. --- gcc/config/s390/vector.md | 44

Re: [PATCH] testsuite/s390: Add __morestack test.

2016-02-19 Thread Andreas Krebbel
On 02/07/2016 01:22 PM, Marcin Kościelnicki wrote: > gcc/testsuite/ChangeLog: > > * gcc.target/s390/morestack.c: New test. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: PR 69625: Add test case

2016-02-19 Thread Andreas Krebbel
On 02/09/2016 02:18 PM, Dominik Vogt wrote: > On Fri, Feb 05, 2016 at 05:07:57PM +0100, Dominik Vogt wrote: >> The attached patch adds a testcase for PR 69625. > > Version 2 also runs with -m31. Applied. Thanks! -Andreas-

[Committed 2/3] S/390: Move movstr-2.c into vector subdir.

2016-02-23 Thread Andreas Krebbel
gcc/testsuite/ChangeLog: * gcc.target/s390/md/movstr-2.c: Move and rename to ... * gcc.target/s390/vector/stpcpy-1.c: ... this one. --- gcc/testsuite/gcc.target/s390/md/movstr-2.c | 98 --- gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c | 100

[Committed 3/3] S/390: Move vcond-shift.c to vector subdir.

2016-02-23 Thread Andreas Krebbel
gcc/testsuite/ChangeLog: * gcc.target/s390/vcond-shift.c: Move to ... * gcc.target/s390/vector/vcond-shift.c: ... here. --- gcc/testsuite/gcc.target/s390/vcond-shift.c| 61 -- gcc/testsuite/gcc.target/s390/vector/vcond-shift.c | 61 +

[Committed 0/3] S/390: Move recently added testcases to correct subdirs

2016-02-23 Thread Andreas Krebbel
Andreas Krebbel (3): S/390: Turn movstr-1.c into compile only test. S/390: Move movstr-2.c into vector subdir. S/390: Move vcond-shift.c to vector subdir. gcc/testsuite/gcc.target/s390/md/movstr-1.c| 16 +--- gcc/testsuite/gcc.target/s390/md/movstr-2.c| 98

[Committed 1/3] S/390: Turn movstr-1.c into compile only test.

2016-02-23 Thread Andreas Krebbel
gcc/testsuite/ChangeLog: * gcc.target/s390/md/movstr-1.c: Turn into compile test. --- gcc/testsuite/gcc.target/s390/md/movstr-1.c | 16 ++-- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/gcc/testsuite/gcc.target/s390/md/movstr-1.c b/gcc/testsuite/gcc.target/s

Re: [PATCH 5/9] S/390: Get rid of Y constraint in arithmetic right shift patterns.

2016-02-23 Thread Andreas Krebbel
On 02/01/2016 02:35 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> +; This is like the addr_style_op substitution above but with a CC clobber. >> +(define_subst "addr_style_op_cc_subst" > >> +; This is like the masked_op substitution but

Re: [PATCH 6/9] S/390: Get rid of Y constraint in tabort.

2016-02-23 Thread Andreas Krebbel
On 02/01/2016 02:36 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> (define_insn "*tabort_1" >> - [(unspec_volatile [(match_operand:SI 0 "shift_count_or_setmem_operand" >> "Y")] >> + [(unspec_volatile

[PATCH 2/9] S/390: Use enabled attribute overrides to disable alternatives.

2016-02-23 Thread Andreas Krebbel
So far whenever we wanted to disable an alternative we have used mode attributes emitting constraints matching an earlier alternative assuming that due to this the later alternative will never be chosen. With this patch the `enabled' attribute, which so far is only set from `cpu_facility', is over

[PATCH 6/9] S/390: Get rid of Y constraint in tabort.

2016-02-23 Thread Andreas Krebbel
This removes the Y constraint from the tabort pattern definition. In this case it is easier without using substitutions. gcc/ChangeLog: * config/s390/s390.md ("*tabort_1"): Change predicate to nonmemory_operand. Add a second alternative to cover register as well as const

[PATCH 1/9] gensupport: Fix define_subst operand renumbering.

2016-02-23 Thread Andreas Krebbel
When processing substitutions the operands are renumbered. To find a free operand number the array used_operands_numbers is used. Currently this array is used to assign new numbers before all the RTXes in the vector have been processed. I did run into problems with this for insns where a match_du

[PATCH 0/9] S/390 rework shift count handling - v2

2016-02-23 Thread Andreas Krebbel
This is an updated version of the shift count rework in the S/390 backend. I think I've addressed most of the feedback from Ulrich and Bernd (gensupport patch). https://gcc.gnu.org/ml/gcc-patches/2016-01/msg00940.html Andreas Krebbel (9): gensupport: Fix define_subst operand renumbering

[PATCH 8/9] S/390: Use define_subst for the setmem patterns.

2016-02-23 Thread Andreas Krebbel
While trying to get rid of the Y constraint in the setmem patterns I noticed that for these patterns it isn't even a problem since these always only use the constraint with a Pmode match_operand. But while being at it I've tried to fold some of the patterns a bit. gcc/ChangeLog: * config

[PATCH 4/9] S/390: Get rid of Y constraint in left and logical right shift patterns.

2016-02-23 Thread Andreas Krebbel
With this patch the substitution patterns added earlier are used for the logical right shift and all the left shift patterns. * config/s390/s390.md ("3"): Change predicate of op2 to nonmemory_operand. ("*di3_31", "*di3_31_and"): Merge into single pattern definition

[PATCH 5/9] S/390: Get rid of Y constraint in arithmetic right shift patterns.

2016-02-23 Thread Andreas Krebbel
The arithmetic shift patterns set also the condition code. This adds more substitution potential. Depending on whether the actual result or the CC output will be used 3 different variants of each of these patterns are needed. This multiplied with the PLUS and the AND operands from the earlier su

[PATCH 9/9] S/390: Disallow SImode in s390_decompose_address

2016-02-23 Thread Andreas Krebbel
After Y is never used anymore with SImode operands we can finally disallow SImode (if != Pmode) in s390_decompose_address. In fact that was the whole point of the patch series. gcc/ChangeLog: * config/s390/s390.c (s390_decompose_address): Don't accept SImode anymore. --- gcc/con

[PATCH 3/9] S/390: Get rid of Y constraint in rotate patterns.

2016-02-23 Thread Andreas Krebbel
erand:GPR 1 "register_operand" "d,d") + (match_operand:SI 2 "nonmemory_operand" "a,n")))] + "TARGET_CPU_ZARCH" + "@ + rll\t%0,%1,(%2) + rll\t%0,%1,%Y2" [(set_attr "op_type" "RSE") (set_at

[PATCH 7/9] S/390: Get rid of Y constraint in vector.md.

2016-02-23 Thread Andreas Krebbel
This finally removes the Y constraint from the vector patterns while folding some of them using a code iterator. gcc/ChangeLog: * config/s390/subst.md (SUBST mode iterator): Add ashiftrt. (DSI_VI): New mode iterator. ("addr_style_op_subst"): Use DSI_VI instead of DSI.

[PATCH] S/390: PR69709 Fix risbg splitter

2016-02-26 Thread Andreas Krebbel
the target rtx matches the source of the left shift. gcc/testsuite/ChangeLog: 2016-02-26 Andreas Krebbel PR target/69709 * gcc.target/s390/pr69709.c: New test. --- gcc/config/s390/s390.md | 24 gcc/testsuite/gcc.target/s390/pr69709.c

[PATCH 3/9] S/390: Get rid of Y constraint in rotate patterns.

2016-02-29 Thread Andreas Krebbel
This patch introduces substitution patterns to add PLUS const_int, and AND operands to patterns and uses this to rewrite the existing rotate pattern. gcc/ChangeLog: 2016-02-29 Andreas Krebbel * config/s390/predicates.md (const_int_6bitset_operand): New predicates

[PATCH 1/9] gensupport: Fix define_subst operand renumbering.

2016-02-29 Thread Andreas Krebbel
s390x, and x86_64. Ok for mainline? Bye, -Andreas- gcc/ChangeLog: 2016-02-29 Andreas Krebbel * gensupport.c (process_substs_on_one_elem): Split loop to complete mark_operands_used_in_match_dup on all expressions in the vector first. (adjust_operands_numbers): I

[PATCH 6/9] S/390: Get rid of Y constraint in tabort.

2016-02-29 Thread Andreas Krebbel
This removes the Y constraint from the tabort pattern definition. In this case it is easier without using substitutions. gcc/ChangeLog: 2016-02-29 Andreas Krebbel * config/s390/s390.md ("*tabort_1"): Change predicate to nonmemory_operand. Add a second alternativ

[PATCH 0/9] S/390 rework shift count handling - v3

2016-02-29 Thread Andreas Krebbel
constraints (jm6 and jm8) equivalent to the const_int_6bitset_operand and const_int_8bitset_operand predicates. Andreas Krebbel (9): gensupport: Fix define_subst operand renumbering. S/390: Use enabled attribute overrides to disable alternatives. S/390: Get rid of Y constraint in rotate patterns

[PATCH 4/9] S/390: Get rid of Y constraint in left and logical right shift patterns.

2016-02-29 Thread Andreas Krebbel
With this patch the substitution patterns added earlier are used for the logical right shift and all the left shift patterns. 2016-02-29 Andreas Krebbel * config/s390/s390.md ("3"): Change predicate of op2 to nonmemory_operand. ("*di3_31", "*di

[PATCH 2/9] S/390: Use enabled attribute overrides to disable alternatives.

2016-02-29 Thread Andreas Krebbel
', is overridden to 0 to disable certain alternatives. This comes handy when defining the substitutions later and while adding it anyway I've used it for the existing cases as well. gcc/ChangeLog: 2016-02-29 Andreas Krebbel * config/s390/s390.md ("op_type", &qu

[PATCH 8/9] S/390: Use define_subst for the setmem patterns.

2016-02-29 Thread Andreas Krebbel
2016-02-29 Andreas Krebbel * config/s390/constraints.md ("jm8"): New constraint. * config/s390/predicates.md ("const_int_8bitset_operand"): New predicate. * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge

[PATCH 7/9] S/390: Get rid of Y constraint in vector.md.

2016-02-29 Thread Andreas Krebbel
This finally removes the Y constraint from the vector patterns while folding some of them using a code iterator. gcc/ChangeLog: 2016-02-29 Andreas Krebbel * config/s390/subst.md (DSI_VI): New mode iterator. ("addr_style_op_subst"): Use DSI_VI instead of DSI.

[PATCH 9/9] S/390: Disallow SImode in s390_decompose_address

2016-02-29 Thread Andreas Krebbel
After Y is never used anymore with SImode operands we can finally disallow SImode (if != Pmode) in s390_decompose_address. In fact that was the whole point of the patch series. gcc/ChangeLog: 2016-02-29 Andreas Krebbel * config/s390/s390.c (s390_decompose_address): Don't a

[PATCH 5/9] S/390: Get rid of Y constraint in arithmetic right shift patterns.

2016-02-29 Thread Andreas Krebbel
substitutions enables a lot of folding. 2016-02-29 Andreas Krebbel * config/s390/s390.md ("*ashrdi3_cc_31") ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and") ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", &

Re: [PATCH 0/9] S/390 rework shift count handling - v3

2016-03-01 Thread Andreas Krebbel
On 02/29/2016 03:58 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> S/390: Use enabled attribute overrides to disable alternatives. >> S/390: Get rid of Y constraint in rotate patterns. >> S/390: Get rid of Y constraint in left and logical right shift >

Re: [PATCH 1/9] gensupport: Fix define_subst operand renumbering.

2016-03-01 Thread Andreas Krebbel
On 02/29/2016 02:36 PM, Bernd Schmidt wrote: > On 02/29/2016 09:46 AM, Andreas Krebbel wrote: >> Ok for mainline? >> >> * gensupport.c (process_substs_on_one_elem): Split loop to >> complete mark_operands_used_in_match_dup on all expressions

Re: [PATCH 1/9] gensupport: Fix define_subst operand renumbering.

2016-03-01 Thread Andreas Krebbel
On 03/01/2016 01:15 PM, James Greenhalgh wrote: > On Tue, Mar 01, 2016 at 10:29:28AM +0100, Andreas Krebbel wrote: >> On 02/29/2016 02:36 PM, Bernd Schmidt wrote: >>> On 02/29/2016 09:46 AM, Andreas Krebbel wrote: >>>> Ok for mainline? >>>> >>

Re: [PATCH 1/9] gensupport: Fix define_subst operand renumbering.

2016-03-01 Thread Andreas Krebbel
On 03/01/2016 02:38 PM, James Greenhalgh wrote: > On Tue, Mar 01, 2016 at 01:35:18PM +0100, Andreas Krebbel wrote: >> On 03/01/2016 01:15 PM, James Greenhalgh wrote: >>> On Tue, Mar 01, 2016 at 10:29:28AM +0100, Andreas Krebbel wrote: >>>> On 02/29/2016 02:36 PM, Be

Re: [PATCH 7/9] S/390: Get rid of Y constraint in vector.md.

2016-03-01 Thread Andreas Krebbel
On 03/01/2016 04:11 PM, Ulrich Weigand wrote: > I wrote: >> Andreas Krebbel wrote: >> >>> +; vec_set is supposed to *modify* an existing vector so operand 0 is >>> +; duplicated as input operand. >>> +(define_expand "vec_set" >>> +

Re: [PATCH] S/390: Reduce accuracy of bessel_6.f90.

2016-03-01 Thread Andreas Krebbel
On 01/11/2016 03:40 PM, Dominik Vogt wrote: > gcc/testsuite/ChangeLog > > * gfortran.dg/bessel_6.f90: Reduce accuracy for S/390. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Ada: Enable Stack_Check_Probes.

2016-03-01 Thread Andreas Krebbel
On 03/01/2016 01:01 PM, Dominik Vogt wrote: > gcc/ada/ChangeLog > > * system-linux-s390.adsx: Enable Stack_Check_Probes. > * system-linux-s390.ads: Likewise. Applied. Thanks! -Andreas-

Re: [PATCH] libitm: Introduce target macro TARGET_BEGIN_TRANSACTION_ATTRIBUTE.

2016-03-03 Thread Andreas Krebbel
On 02/01/2016 02:18 PM, Dominik Vogt wrote: > The attached patch adds the a target specific attribute via the > new target macro TARGET_BEGIN_TRANSACTION_ATTRIBUTE to the > function begin_transaction(). S/390 uses this to set the > soft-float target attribute which is needed to fix a crash with >

Re: [PATCH] S/390: Set GOARCH to the current target when testing multiarch.

2016-03-03 Thread Andreas Krebbel
On 03/02/2016 02:05 PM, Dominik Vogt wrote: > gcc/testsuite/ChangeLog > > * go.test/go-test.exp: S/390: Set GOARCH to the current target when > testing multiarch. Applied. Thanks! -Andreas-

Re: [PING] 3 patches waiting for approval/review

2013-12-04 Thread Andreas Krebbel
body is what comes between the function prologue and the epilogue. Hence calling mcount *before* the function prologue does not speak against the "leafness" of a function. What do you think? Bye, -Andreas- On 22/10/13 21:28, Andreas Krebbel wrote: > On 16/10/13 22:25, Jeff Law wr

Re: [PATCH] Fix mips64-linux and s390x-linux builds

2013-12-10 Thread Andreas Krebbel
On 09/12/13 13:07, Maxim Kuvyrkov wrote: > On 9/12/2013, at 8:21 am, Maxim Kuvyrkov wrote: > >> On 9/12/2013, at 3:24 am, Jan-Benedict Glaw wrote: >> >>> Hi Maxim! >>> >>> One of your recent libc<->android clean-up patches broke the >>> mips64-linux target as a side-effect, see eg. >>> http://to

[Committed] S/390: expand_tbegin remove jump over cc extraction

2014-01-10 Thread Andreas Krebbel
fixes the following testsuite fails: < FAIL: gcc.target/s390/htm-nofloat-2.c scan-assembler-not \\tstd\\t < FAIL: gcc.target/s390/htm-nofloat-2.c scan-assembler-not \\tld\\t Bootstrapped and regtested on s390 and s390x. Committed to mainline and 4.8 branch. Bye, -Andreas- 2014-01-10

[Committed] S/390: Fix BZ 59803.

2014-01-15 Thread Andreas Krebbel
Hi, fix for BZ59803. For more details please see the comment in the patch. Bootstrapped and regtested on s390x with 4.8 and mainline. Committed to 4.8 and mainline. Bye, -Andreas- 2014-01-15 Andreas Krebbel * config/s390/s390.c (s390_preferred_reload_class): Don't r

[PATCH] S/390: Improve risbg usage

2015-07-22 Thread Andreas Krebbel
ndbitsleft"): New pattern definitions. New splitters. gcc/testsuite/ChangeLog: 2015-07-22 Andreas Krebbel * gcc.target/s390/insv-1.c: New test. * gcc.target/s390/insv-2.c: New test. * gcc.target/s390/insv-3.c: New test. diff --git a/gcc/config/s390/s390.c

[PATCH] S/390: Fix cfi for GPR 2 FPR saves

2015-07-22 Thread Andreas Krebbel
tst-cancelx4 and tst-cancelx5. I'll commit the patch after waiting a few days for review comments. Bootstrapped on s390x. No regressions. Bye, -Andreas- gcc/ChangeLog: 2015-07-22 Andreas Krebbel * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER reg no

Re: [PATCH 0/4] S390 -march=native related fixes

2015-07-24 Thread Andreas Krebbel
On 07/17/2015 06:00 PM, Dominik Vogt wrote: > The following series of patches contains fixes, and cleanup work > related to -march=native (and -mtune=native) for S390. > > * 0001 Fix cross compilation for S390 targets that was broken with >the original -march=native aptch. > > * 0002 Fix

Re: [PATCH] Honour DriverOnly for enum values in error messages.

2015-07-27 Thread Andreas Krebbel
On 07/27/2015 01:45 PM, Dominik Vogt wrote: /gcc/ChangeLog * opts-common.c (read_cmdline_option): List DriverOnly enum values as valid only in the error message of the driver, not in the messages of the language compilers. Applied. Thanks! -Andreas-

[Committed] S/390: Fix dwarf reg size table for -m31 -mzarch

2015-08-06 Thread Andreas Krebbel
for the call-clobbered GPRs. The call-saved GPRs are marked as partially clobbered and the default implementation of the dwarf_frame_reg_mode hook did the right thing. Committed to mainline. Bye, -Andreas- gcc/ChangeLog: 2015-08-06 Andreas Krebbel * config/s390/s390.c

[Committed] S/390: Add missing doc for -mhtm, -mvx, and -mzvector

2015-08-06 Thread Andreas Krebbel
Hi, the attached patch adds documentation for three options. Committed to mainline. Bye, -Andreas- gcc/ChangeLog: 2015-08-06 Andreas Krebbel * config/s390/s390.opt: Clarify description for -mzvector * doc/invoke.texi: Add documentation for -mhtm, -mvx, and

[Committed] S/390: Clobber VRs in __builtin_tbegin

2015-08-06 Thread Andreas Krebbel
: 2015-08-06 Andreas Krebbel * config/s390/s390.c (s390_expand_tbegin): Expand either tbegin_1_z13 or tbegin_1 depending on VX flag. * config/s390/s390.md ("tbegin_1_z13"): New expander. gcc/testsuite/ChangeLog: 2015-08-06 Andreas Krebbel * gcc.targe

[PATCH] S/390: Disallow SImode addresses in 64 bit

2015-08-06 Thread Andreas Krebbel
levels with 31 and 64 bit. Bye, -Andreas- gcc/ChangeLog: 2015-08-06 Andreas Krebbel * config/s390/predicates.md: New predicate shift_count_or_setmem_operand_expand. * config/s390/s390-protos.h: Add prototype s390_expand_masked_address_operand. *

Re: s390: SImode pointers vs LR

2015-08-06 Thread Andreas Krebbel
On Tue, Jun 02, 2015 at 05:32:02PM +0200, Andreas Krebbel wrote: ... > +(define_insn "*3_imm" > + [(set (match_operand:GPR 0 "register_operand" "=d") > +(SHIFT:GPR (match_operand:GPR 1 "register_operand" "") > +

<    1   2   3   4   5   6   7   8   9   10   >