Re: [PATCH 0/2] S/390 test case fixes.

2016-01-15 Thread Andreas Krebbel
> gcc/testsuite/ChangeLog > > * g++.dg/Wframe-address.C: Test requires -mbackchain for s390*-*-* > * g++.dg/Wno-frame-address.C: Ditto. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Better help text for -mmvcle.

2016-01-15 Thread Andreas Krebbel
> gcc/ChangeLog > > * config/s390/s390.opt (mmvcle): More verbose help text. Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Add missin full stop in option description.

2016-01-15 Thread Andreas Krebbel
> gcc/ChangeLog > > * config/s390/s390.opt (mtune): Add full stop. Applied. Thanks! -Andreas-

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/s390.md ("*di3_31", "*3") ("*di3_31_and", "*3_and"): Merg

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

2016-01-14 Thread Andreas Krebbel
2016-01-14 Andreas Krebbel * config/s390/predicates.md ("const_int_8bitset_operand"): New predicate. * config/s390/s390.md ("*setmem_long", "*setmem_long_and") ("*setmem_long_31z", "*setmem_long_and_31z"): Mer

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

2016-01-14 Thread Andreas Krebbel
2016-01-14 Andreas Krebbel * config/s390/predicates.md ("const_int_8bitset_operand"): New predicate. * config/s390/s390.md ("*setmem_long", "*setmem_long_and") ("*setmem_long_31z", "*setmem_long_and_31z"): Mer

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/s390.md ("*di3_31", "*3") ("*di3_31_and", "*3_and"): Merg

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

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

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

2016-01-14 Thread Andreas Krebbel
ew numbers. Bootstrapped and regtested on s390, s390x, and x86_64. Ok for mainline? Bye, -Andreas- gcc/ChangeLog: 2016-01-14 Andreas Krebbel * gensupport.c (process_substs_on_one_elem): Split loop to complete mark_operands_used_in_match_dup on all expressions in the ve

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/s390.c (s390_decompose_address): Don't a

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/subst.md (SUBST mode iterator): Add ashiftrt. (DSI_VI): New mode iterator. ("addr_style_op_

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/s390.md ("*tabort_1"): Change predicate to addrreg_or_constint_operand. Add a second a

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

2016-01-14 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-01-14 Andreas Krebbel * config/s390/predicates.md (addrreg_or_constint_operand) (const_int_6bitset_operand

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

2016-01-14 Thread Andreas Krebbel
le an alternative. 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-01-14 Andreas Krebbel * config/s390/s390.md ("op_type", "atype", "length" attribute

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

2016-01-14 Thread Andreas Krebbel
approval for patch 1 comments regarding the other patches are welcome as well. Ok to apply? Bye, -Andreas- Andreas Krebbel (9): gensupport: Fix define_subst operand renumbering. S/390: Add disabled insn attribute S/390: Get rid of Y constraint in rotate patterns. S/390: Get rid of Y

[Committed] S/390: PR69247: Fix bswap hi splitter

2016-01-13 Thread Andreas Krebbel
Hi, r231152 added a splitter which might invoke gen_reg_rtx after reload. Fixed with the attached patch. Bootstrapped and regtested on s390 and s390x. Committed to mainline. Bye, -Andreas- gcc/ChangeLog: 2016-01-13 Andreas Krebbel PR target/69247 * config/s390/s390.md

Re: [RFC][PATCH] Fix broken handling of LABEL_REF in genrecog + genpreds.

2015-12-23 Thread Andreas Krebbel
On 12/22/2015 12:12 PM, Dominik Vogt wrote: > All right, in the mean time the patch has passed the test suite on > x86_64, s390x and s390. See attached version 2 of the patch > (added just an additional comment in genpreds.c). Applied. Thanks! -Andreas-

Re: [PATCH] S/390: Allow to use r2 to r4 as literal pool base.

2015-12-18 Thread Andreas Krebbel
On 12/18/2015 11:21 AM, Dominik Vogt wrote: > Latest patch for r2 to r4, including a test case. gcc/ChangeLog * config/s390/s390.c (s390_init_frame_layout): Try r4 to r2 for the literal pool pointer. gcc/testsuite/ChangeLog * gcc.target/s390/litpool-r3-1.c: New test. Appl

Re: [Patch] S/390: Simplify vector conditionals

2015-12-18 Thread Andreas Krebbel
On 12/17/2015 10:51 AM, Robin Dapp wrote: > 2015-12-15 Robin Dapp > > * config/s390/predicates.md: Change and rename > constm1_operand to all_ones_operand > * config/s390/s390.c (s390_expand_vcond): Use all_ones_operand > * config/s390/vector.md: Likewise Applied. Thanks

Re: [Patch] S/390: Simplify vector conditionals

2015-12-18 Thread Andreas Krebbel
On 12/15/2015 10:53 AM, Robin Dapp wrote: > gcc/ChangeLog: > > 2015-12-15 Robin Dapp > > * config/s390/s390.c (s390_expand_vcond): Convert vector > conditional into shift. > * config/s390/vector.md: Change operand predicate. > > gcc/testsuite/ChangeLog: > > 2015-12-15

[Committed] S/390: Deprecate g5 and g6 CPU levels.

2015-12-18 Thread Andreas Krebbel
y we still have that problem with the inline asms which needs to be addressed first ... Committed to mainline. Bye, -Andreas- gcc/ChangeLog: 2015-12-18 Andreas Krebbel * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick z900 -march -mtune even on g5 and g

[PATCH] IRA: Fix % constraint modifier handling on disabled alternatives.

2015-12-14 Thread Andreas Krebbel
tives. Fixed with the attached patch by moving the % check to the first loop which walks unconditionally over all the constraints. Ok for mainline? Bye, -Andreas- gcc/ChangeLog: 2015-12-14 Andreas Krebbel * ira.c (ira_setup_alts): Move the scan for commutative modifier to the

Re: [PATCH] S/390: Wide int support.

2015-12-11 Thread Andreas Krebbel
On 12/11/2015 03:20 PM, Dominik Vogt wrote: > The attached patch introduces wide int support to S/390 in order > to resolve a test case failure in gcc.dg/pr68129_1.c that is > caused by an assertion in > simplify-rtx.c:simplify_const_binary_operation(). Applied with the change suggested by Uli. T

Re: [PATCH] S/390: Fix warning in "*movstr" pattern.

2015-12-11 Thread Andreas Krebbel
On 12/04/2015 06:12 PM, Dominik Vogt wrote: > Version 6 with another fix. This should work now. Applied. Thanks! -Andreas-

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-12-11 Thread Andreas Krebbel
On 12/04/2015 06:15 PM, Dominik Vogt wrote: > Version 5 with the latest requested changes. Seems to work now. > I've dropped the extra patch and rather marked the failing tests > as "xfail". > > Ciao > > Dominik ^_^ ^_^ > Patch applied with minor changes: > + ; Convert Pmode to BLKmode > +

Re: [PATCH] S/390: Add -mbackchain options to fix test failure.

2015-12-04 Thread Andreas Krebbel
On 12/04/2015 02:23 AM, Dominik Vogt wrote: gcc/testsuite/ChangeLog * gcc.dg/Wframe-address.c: S/390 requires the -mbackchain option to access arbitrary stack frames. * gcc.dg/Wno-frame-address.c: Likewise. Applied. Thanks! -Andreas-

Re: [PATCH 2/2] s/390: Implement "target" attribute.

2015-12-04 Thread Andreas Krebbel
On 09/25/2015 04:02 PM, Dominik Vogt wrote: > On Fri, Sep 25, 2015 at 02:59:41PM +0100, Dominik Vogt wrote: >> The following set of two patches implements the function >> __attribute__ ((target("..."))) and the corresponding #pragma GCC >> target("...") on S/390. It comes with certain limitations:

Re: [PATCH 1/2] s/390: Implement "target" attribute.

2015-12-04 Thread Andreas Krebbel
On 12/04/2015 03:14 PM, Dominik Vogt wrote: > Next version of the patch with the changes discussed internally. > (Sorry for the version number; I now use my internam branch > numbers for sake of clarity.) Applied. Thanks! -Andreas-

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-12-02 Thread Andreas Krebbel
On 12/02/2015 02:11 PM, Andreas Krebbel wrote: > On 12/02/2015 01:51 PM, Ulrich Weigand wrote: >> Andreas Krebbel wrote: >>> On 12/02/2015 11:12 AM, Dominik Vogt wrote: >>>> Hopefully, this is correct now; it does pass the functional test case >>>> th

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-12-02 Thread Andreas Krebbel
On 12/02/2015 01:51 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: >> On 12/02/2015 11:12 AM, Dominik Vogt wrote: >>> Hopefully, this is correct now; it does pass the functional test case >>> that's part of the patch. Unfortunately the define_insn patters >

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-12-02 Thread Andreas Krebbel
On 12/02/2015 11:12 AM, Dominik Vogt wrote: > Hopefully, this is correct now; it does pass the functional test case > that's part of the patch. Unfortunately the define_insn patters > had to be duplicated because of the new subreg offsets. The number of patterns could possibly be reduced using

Re: [PATCH] S/390: Fix warning in "*movstr" pattern.

2015-12-02 Thread Andreas Krebbel
On 11/30/2015 03:45 PM, Dominik Vogt wrote: > On Mon, Nov 09, 2015 at 01:33:23PM +0100, Andreas Krebbel wrote: >> On 11/04/2015 02:39 AM, Dominik Vogt wrote: >>> On Tue, Nov 03, 2015 at 06:47:28PM +0100, Ulrich Weigand wrote: >>>> Dominik Vogt wrote: +++ b/gcc/testsui

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-11-30 Thread Andreas Krebbel
On 11/30/2015 06:11 PM, Ulrich Weigand wrote: ... > However, I agree that UNSPEC_P_TO_BLK really should also get the length > as input, to make it have precisely defined semantics. Also, I'd rather > use a more descriptive name, like UNSPEC_REPLICATE_BYTE or the like. > > What would you think abo

Re: S/390: Fix warnings in "*setmem_long..." patterns.

2015-11-30 Thread Andreas Krebbel
On 11/30/2015 04:11 PM, Dominik Vogt wrote: > The attached patch fixes some warnings generated by the setmem... > patterns in s390.md during build and add test cases for the > patterns. The patch is to be added on to p of the movstr patch: > https://gcc.gnu.org/ml/gcc-patches/2015-11/msg03485.html

[PATCH 4/7] S/390: Sort builtin types - cleanup only.

2015-11-27 Thread Andreas Krebbel
This patch sorts the builtin type definitions in the s390-builtin-types.def file properly. The file is script-generated from s390-builtins.def and this hopefully makes future patches smaller. 2015-11-27 Andreas Krebbel * config/s390/s390-builtin-types.def: Sort builtin types

[PATCH 5/7] S/390: Fix vec_splat_* builtins.

2015-11-27 Thread Andreas Krebbel
This enables the vec_splat_* builtins to make use of vrepi for constant operands. gcc/testsuite/ChangeLog: 2015-11-27 Andreas Krebbel * gcc.target/s390/zvector/vec-splat-2.c: New test. gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/s390-builtin-types.def: New

[PATCH 6/7] S/390: vec_set mode DI->SI for shift_count

2015-11-27 Thread Andreas Krebbel
gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/vector.md ("*vec_set"): Change shift count mode from DI to SI. --- gcc/config/s390/vector.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vecto

[PATCH 2/7] S/390: Enable vrepi constants.

2015-11-27 Thread Andreas Krebbel
This enables vrepi to be used on more situations. gcc/testsuite/ChangeLog: 2015-11-27 Andreas Krebbel * gcc.target/s390/vector/vec-vrepi-1.c: New test. gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/constraints.md ("jKK"): New constraint. * c

[PATCH 7/7] S/390: Make constant checking more strict

2015-11-27 Thread Andreas Krebbel
This makes the predicates and constraints on constant integer operands more strict in order to catch more problems at compile-time. gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/predicates.md (const_mask_operand): New predicate. * config/s390/s390-builtins.def: Set

[PATCH 3/7] S/390: Fix RT flag in vstrc instruction.

2015-11-27 Thread Andreas Krebbel
gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/s390-c.c (s390_get_vstring_flags): Invert the condition for the RT flag. --- gcc/config/s390/s390-c.c | 24 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/gcc/config/s390/s390-c.c

[PATCH 0/7] S/390: Minor fixes and improvements for the vector builtins.

2015-11-27 Thread Andreas Krebbel
The patchset has been tested as a whole on current mainline on s390 and s390x. I'll wait a couple of days for comments before committing them. Bye, -Andreas- Andreas Krebbel (7): S/390: Fix vrepi constraint letter. S/390: Enable vrepi constants. S/390: Fix RT flag in vstrc instru

[PATCH 1/7] S/390: Fix vrepi constraint letter.

2015-11-27 Thread Andreas Krebbel
gcc/ChangeLog: 2015-11-27 Andreas Krebbel * config/s390/vector.md ("*vec_splats"): Fix constraint latter I->K. gcc/testsuite/ChangeLog: 2015-11-27 Andreas Krebbel * gcc.target/s390/zvector/vec-splat-1.c: New test. --- gcc/config/s

[PATCH] S/390: bswap64 testcases require -mzarch.

2015-11-25 Thread Andreas Krebbel
We have 64 bit bswap patterns in 32 bit code as long as we use -mzarch. gcc/testsuite/ChangeLog: 2015-11-25 Andreas Krebbel * gcc.dg/optimize-bswapdi-1.c: Force using -mzarch on s390 and s390x to enable 64 bit bswap patterns. * gcc.dg/optimize-bswapdi-2.c: Likewise

[PATCH] S/390: Further bswap enhancements.

2015-11-25 Thread Andreas Krebbel
This adds support for the store reverse instructions. It also implements a splitter making use of 32 bit load reverse register to implement bswaphi reg-reg. gcc/ChangeLog: 2015-11-25 Andreas Krebbel * config/s390/s390.md ("bswap2"): Add support for strv and

[PATCH] S/390: Enable 64 bit atomic tests with -m31 -mzarch.

2015-11-25 Thread Andreas Krebbel
gcc/testsuite/ChangeLog: 2015-11-25 Andreas Krebbel * lib/target-supports.exp: Add s390 and s390x to the list of long long atomic targets. --- gcc/testsuite/lib/target-supports.exp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/testsuite/lib/target-supports.exp b

[PATCH] S/390: bswap testcases require -march=z900 to work with -m31.

2015-11-25 Thread Andreas Krebbel
These testcase currently fail being run on s390x with -m31. gcc/testsuite/ChangeLog: 2015-11-25 Andreas Krebbel * gcc.dg/builtin-bswap-6a.c: Add -march=z900 for s390 and s390x in order to make -m31 work. * gcc.dg/optimize-bswapsi-1.c: Likewise. * gcc.dg

Re: [Patch] S/390: Fix symbol ref alignment

2015-11-23 Thread Andreas Krebbel
On 10/23/2015 02:12 PM, Robin Dapp wrote: > gcc/testsuite/ChangeLog: > > 2015-10-23 Robin Dapp > > * gcc.target/s390/load-relative-check.c: New test to check > generation of load relative instructions. > > > gcc/ChangeLog: > > 2015-10-23 Robin Dapp > > * config/s

Re: [Committed] S/390: Add bswaphi2 pattern

2015-11-20 Thread Andreas Krebbel
On 11/20/2015 01:23 PM, Richard Henderson wrote: > On 11/20/2015 12:52 PM, Andreas Krebbel wrote: >> +(define_insn "bswaphi2" >> + [(set (match_operand:HI 0 "register_operand" "=d") >> +(bswap:HI (match_operand:HI 1 "memory_op

[Committed] S/390: Add bswaphi2 pattern

2015-11-20 Thread Andreas Krebbel
Hi, the 16 bit bswap instruction support was missing in the back-end so far. Added with the attached patch. Bootstrapped on s390 and s390x. No regressions. Bye, -Andreas- gcc/testsuite/ChangeLog: 2015-11-20 Andreas Krebbel * gcc.target/s390/bswap-1.c: New test. gcc/ChangeLog

Re: [PATCH] S/390: Clobber r1 in patterns resulting in pfpo instruction.

2015-11-19 Thread Andreas Krebbel
On 11/18/2015 03:35 PM, Dominik Vogt wrote: > The attached patch fixes the S/390 patterns using the "pfpo" > instruction in s390.md. The instructions clobber r1, but the > patterns did not reflect that. Good catch! Your testcase requires -mzarch in the options to enable pfpo with -m31 as well.

Re: [PATCH v3 2/2] [PR debug/67192] Further fix C loops' back-jump location

2015-11-09 Thread Andreas Krebbel
On 11/04/2015 05:18 PM, Andreas Arnez wrote: > After parsing an unconditional "while"- or "for"-loop, the C front-end > generates a backward-goto statement and implicitly sets its location to > the current input_location. But in some cases the parser peeks ahead > first, such that input_location a

Re: [PATCH v3 1/2] [PR debug/67192] Fix C loops' back-jump location

2015-11-09 Thread Andreas Krebbel
On 11/04/2015 05:17 PM, Andreas Arnez wrote: > Since r223098 ("Implement -Wmisleading-indentation") the backward-jump > generated for a C while- or for-loop can get the wrong line number. > This is because the check for misleading indentation peeks ahead one > token, advancing input_location to aft

Re: [PATCH 1/2] s/390: Implement "target" attribute.

2015-11-09 Thread Andreas Krebbel
On 11/02/2015 09:44 AM, Dominik Vogt wrote: > (@Uli: I'd like to hear your opinion on this issue. > Original message: > https://gcc.gnu.org/ml/gcc-patches/2015-10/msg03403.html). > > On Fri, Oct 30, 2015 at 03:09:39PM +0100, Andreas Krebbel wrote: >> Why do we need

Re: [PATCH] S/390: Fix warning in "*movstr" pattern.

2015-11-09 Thread Andreas Krebbel
On 11/04/2015 02:39 AM, Dominik Vogt wrote: > On Tue, Nov 03, 2015 at 06:47:28PM +0100, Ulrich Weigand wrote: >> Dominik Vogt wrote: >> >>> @@ -2936,7 +2936,7 @@ >>> (set (mem:BLK (match_operand:P 1 "register_operand" "0")) >>> (mem:BLK (match_operand:P 3 "register_operand" "2"))) >>> (

Re: [PATCH 1/2] s/390: Implement "target" attribute.

2015-11-08 Thread Andreas Krebbel
On 10/31/2015 06:58 PM, Dominik Vogt wrote: > But what the heck is this "exact power of 2" limitation good for > in the first place? Why is a stack size of 1, 2 or > 36028797018963968 valid, but not 800? Shouldn't the stack size > (and the size of the stack guard) just be multiples of the stack >

Re: [PATCH 1/2] s/390: Implement "target" attribute.

2015-10-30 Thread Andreas Krebbel
Hi Dominik, on-top of the discussions we had off-list I only have a few additional comments/questions. Apart from that the patch looks good to me. Thanks! Bye, -Andreas- > diff --git a/gcc/common/config/s390/s390-common.c > b/gcc/common/config/s390/s390-common.c > index 43459c8..4cf0df7 10064

[Committed] S/390: PR68015 Fix ICE in s390_emit_compare

2015-10-22 Thread Andreas Krebbel
Committed to head and GCC 5 branch gcc/ChangeLog: 2015-10-22 Andreas Krebbel PR target/68015 * config/s390/s390.md (movcc): Emit compare only if we don't already have a comparison result. gcc/testsuite/ChangeLog: 2015-10-22 Andreas Krebbel PR t

Re: C PATCH for c/65345 (file-scope _Atomic expansion with floats)

2015-10-08 Thread Andreas Krebbel
e following patch for s390. Bye, -Andreas- gcc/ChangeLog: 2015-10-08 Andreas Krebbel PR c/65345 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use create_tmp_var_raw instead of create_tmp_var. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c in

Re: [PATCH] Fix default_binds_local_p_2 for extern protected data

2015-09-30 Thread Andreas Krebbel
On 09/30/2015 06:21 PM, Szabolcs Nagy wrote: > On 30/09/15 14:47, Bernd Schmidt wrote: >> On 09/17/2015 11:15 AM, Szabolcs Nagy wrote: >>> ping 2. >>> >>> this patch is needed for working visibility ("protected") >>> attribute for extern data on targets using default_binds_local_p_2. >>> https://gc

[Committed] S/390: Add missing brackets

2015-09-15 Thread Andreas Krebbel
gcc/ChangeLog: 2015-09-15 Andreas Krebbel * config/s390/s390.c (s390_const_operand_ok): Add missing brackets. Index: gcc/config/s390/s390.c === --- gcc/config/s390/s390.c (revision 227779) +++ gcc/config

[Committed] S/390: Fix mode iterators vmal, vmah, and vmalh.

2015-09-10 Thread Andreas Krebbel
gcc/ChangeLog: 2015-09-10 Andreas Krebbel * config/s390/vx-builtins.md ("vec_vmal", "vec_vmah") ("vec_vmalh"): Change mode iterator from VI_HW to VI_HW_QHS. --- gcc/config/s390/vx-builtins.md | 30 +++--- 1 file changed,

[Committed] S/390: Add V1TImode to constant pool modes.

2015-09-10 Thread Andreas Krebbel
gcc/ChangeLog: 2015-09-10 Andreas Krebbel * config/s390/s390.c: Add V1TImode to constant pool modes. --- gcc/config/s390/s390.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index cbfc800..a664443 100644 --- a

[Committed] S/390: Don't use vgm for v1ti and v1tf.

2015-09-10 Thread Andreas Krebbel
gcc/ChangeLog: 2015-09-10 Andreas Krebbel * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if the vector element is bigger than 64 bit. gcc/testsuite/ChangeLog: 2015-09-10 Andreas Krebbel * gcc.target/s390/vector/vec-genbytemask-1.c: Add check for

Re: [PATCH] s390: Add emit_barrier() after trap.

2015-08-27 Thread Andreas Krebbel
On 08/26/2015 04:03 PM, Dominik Vogt wrote: > This patch fixes an ICE on S390 when a trap is generated because > the given -mstack-size is to small. A barrier was missing after > the trap, so on higher optimization levels a NULL pointer fron an > uninitialized basic block was used. The patch also

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" "") > +

[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. *

[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

[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: 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

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-

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

[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

[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

[Committed] S/390: Remove assertion in s390_init_frame_layout

2015-07-08 Thread Andreas Krebbel
triggered and currently breaks bootstrap on S/390. With the attached patch s390_init_frame_layout just becomes a NOP when invoked after reload is completed. Committed to mainline. Bye, -Andreas- gcc/ChangeLog: 2015-07-08 Andreas Krebbel * config/s390/s390.c

Re: [PATCH 01/13] recog: Increased max number of alternatives - v2

2015-07-02 Thread Andreas Krebbel
On Mon, Jun 08, 2015 at 03:38:03PM +0200, Jakub Jelinek wrote: > On Mon, Jun 08, 2015 at 03:32:50PM +0200, Andreas Krebbel wrote: > > On 06/01/2015 10:22 AM, Jakub Jelinek wrote: > > > On Fri, May 22, 2015 at 09:54:00AM +0200, Andreas Krebbel wrote: > > >> On Tue, Ma

[PING] PR33661 Fix problem with register asm in templates

2015-06-25 Thread Andreas Krebbel
On 06/12/2015 10:52 AM, Andreas Krebbel wrote: > Yes that's better. I've adjusted the testcase as you proposed and > have tested it on x86_64, ppc, and s390x with -m32(-m31) and -m64. > > Bye, > > -Andreas- > > gcc/cp/ > > 2015-06-12 Andreas Krebbel

Re: [PATCH 1/8] S/390 Vector ABI GNU Attribute.

2015-06-24 Thread Andreas Krebbel
On 06/24/2015 12:14 PM, Richard Biener wrote: > On Wed, Jun 24, 2015 at 8:57 AM, Andreas Krebbel >> Ideas about how to improve the implementation without creating too >> many false postives are welcome. > > I'd be more conservative and instead hook into > targetm.vect

Re: [PATCH 4.8] PR66306 Fix reload problem with commutative operands

2015-06-24 Thread Andreas Krebbel
On 06/16/2015 07:40 PM, Ulrich Weigand wrote: > Andreas Krebbel wrote: > >> this fixes a reload problem with match_dup's on commutative operands. >> >> Bootstrapped and regtested on x86-64, ppc64, and s390x. >> >> Ok? >> >> Bye, >> >

[PATCH 7/8] S/390: Add proper comments to vpopct builtins for automated testsuite generation.

2015-06-23 Thread Andreas Krebbel
This is a comment only change which is supposed to be used by the autogenerated tests I run for the builtins. gcc/ChangeLog: * config/s390/s390-builtins.def: Fix vpopct instruction comments. --- gcc/config/s390/s390-builtins.def | 26 +- 1 file changed, 13 inser

[PATCH 4/8] S/390: Fix s390_secondary_reload register class check.

2015-06-23 Thread Andreas Krebbel
The current check does not work as expected with mixed register classes and also does not handle NO_REGS correctly. gcc/ChangeLog: * config/s390/s390.c (s390_secondary_reload): Fix check for GENERAL_REGS register class. --- gcc/config/s390/s390.c |2 +- 1 file changed, 1 inse

[PATCH 1/8] S/390 Vector ABI GNU Attribute.

2015-06-23 Thread Andreas Krebbel
With this patch .gnu_attribute is used to mark binaries with a vector ABI tag. This is required since the z13 vector support breaks the ABI of existing vector_size attribute generated vector types: 1. vector_size(16) and bigger vectors are aligned to 8 byte boundaries (formerly vectors were alway

[PATCH 0/8] S/390: z13 support fixes and improvements

2015-06-23 Thread Andreas Krebbel
I didn't commit until now. They have been tested on head with --with-arch=z13 without regressions. Committed to mainline. Bye, -Andreas- Andreas Krebbel (8): S/390 Vector ABI GNU Attribute. S/390: Limit legitimate_constant_p changes to TARGET_VX. S/390: Disable effe

[PATCH 8/8] S/390: Switch mode attribute to bhfgq for vec scatter patterns.

2015-06-23 Thread Andreas Krebbel
This fixes the mode attribute used in the vec scatter insn definitions. vec_scatter_element_ and vec_scatter_element_SI were using gf mode attribute which does not support vector modes. gcc/ChangeLog: * config/s390/vx-builtins.md ("vec_scatter_element_") ("vec_scatter_ele

[PATCH 5/8] S/390: Remove internal builtins from vecintrin.h.

2015-06-23 Thread Andreas Krebbel
This patch removes a couple for builtin definitions from the vecintrin.h file which are supposed to be used only internally. gcc/ChangeLog: * config/s390/vecintrin.h: Remove internal builtins. --- gcc/config/s390/vecintrin.h | 35 --- 1 file changed, 35

[PATCH 3/8] S/390: Disable effect of support_vector_misalignment hook for non-z13 targets.

2015-06-23 Thread Andreas Krebbel
gcc/ChangeLog: * config/s390/s390.c (s390_support_vector_misalignment): Call default implementation for !TARGET_VX. --- gcc/config/s390/s390.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 859ed68.

[PATCH 2/8] S/390: Limit legitimate_constant_p changes to TARGET_VX.

2015-06-23 Thread Andreas Krebbel
gcc/ChangeLog: * config/s390/s390.c (s390_legitimate_constant_p): Add TARGET_VX check. --- gcc/config/s390/s390.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 934f7c0..859ed68 100644 --- a/gcc/config

Re: [PATCH 4.8] PR66306 Fix reload problem with commutative operands

2015-06-18 Thread Andreas Krebbel
On 06/16/2015 07:40 PM, Ulrich Weigand wrote: > However, I'm not clear why this should be a 4.8 only patch ... the > same problem seems to be still there on mainline, right? Yes. But 4.8 appears to be the last where reload was really stable on these targets. When disabling LRA on mainline x86_64

Re: [PATCH] PR33661 Fix problem with register asm in templates

2015-06-12 Thread Andreas Krebbel
On 06/12/2015 11:24 AM, Jakub Jelinek wrote: > Looks mostly good, just wonder about the powerpc scan-assembler. > Shouldn't that be "reg: (%r)?8" instead? I think powerpc has -mregnames > option, dunno if some target doesn't even use it by default. Good catch. I'll change that. -Andreas-

Re: [PATCH] PR33661 Fix problem with register asm in templates

2015-06-12 Thread Andreas Krebbel
Yes that's better. I've adjusted the testcase as you proposed and have tested it on x86_64, ppc, and s390x with -m32(-m31) and -m64. Bye, -Andreas- gcc/cp/ 2015-06-12 Andreas Krebbel PR c++/33661 * decl.c (cp_finish_decl): Set assembler name for register

[PATCH] PR33661 Fix problem with register asm in templates

2015-06-11 Thread Andreas Krebbel
n the assembler_name is zeroed out. Bootstrapped and regtested on x86_64 and s390x. Ok? Bye, -Andreas- 2015-06-11 Andreas Krebbel PR C++/33661 * gcc/cp/decl.c (cp_finish_decl): Set assembler name for register asm constructs. * gcc/cp/pt.c (tsubst_decl): Do not zero ou

[PATCH 4.8] PR66306 Fix reload problem with commutative operands

2015-06-11 Thread Andreas Krebbel
Hi, this fixes a reload problem with match_dup's on commutative operands. Bootstrapped and regtested on x86-64, ppc64, and s390x. Ok? Bye, -Andreas- 2015-06-11 Andreas Krebbel PR rtl-optimization/66306 * reload.c (find_reloads): Swap the match_dup inf

[PING] Vector ABI attribute

2015-06-10 Thread Andreas Krebbel
Hi, any ideas how this could be improved: https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00924.html Bye, -Andreas-

Re: [BUILDROBOT]

2015-06-08 Thread Andreas Krebbel
On 06/05/2015 01:04 AM, Jan-Benedict Glaw wrote: > Hi Andreas, > > On Mon, 2015-05-11 15:23:33 +0200, Andreas Krebbel > wrote: >> gcc/ >> * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New >> constraints. >> * config/s390/predicates

Re: [PATCH 01/13] recog: Increased max number of alternatives - v2

2015-06-08 Thread Andreas Krebbel
On 06/01/2015 10:22 AM, Jakub Jelinek wrote: > On Fri, May 22, 2015 at 09:54:00AM +0200, Andreas Krebbel wrote: >> On Tue, May 19, 2015 at 10:40:26AM +0200, Andreas Krebbel wrote: >>> On 05/18/2015 04:19 PM, Richard Biener wrote: >>>> Please use uint64_t instead. >

Re: [PATCH] Fix misuse of always_inline attribute in 3 hotpatch tests

2015-06-01 Thread Andreas Krebbel
On 06/01/2015 10:39 AM, Jakub Jelinek wrote: > Hi! > > always_inline attribute is meaningful only for functions declared > inline, and the compiler even warns about this, so it is unclear > to me why the tests are attempting to use that. > > 2015-06-01 Jakub Jelinek > > * gcc.target/s39

Re: [PATCH] PR 66215: S390: Fix placement of post-label NOPs with -mhotpatch

2015-05-29 Thread Andreas Krebbel
On 05/29/2015 04:14 PM, Dominik Vogt wrote: > No bother, new versions attached. Applied to mainline. Thanks! -Andreas-

Re: Mostly rewrite genrecog

2015-05-22 Thread Andreas Krebbel
On 05/17/2015 11:12 PM, Richard Sandiford wrote: > Andreas Krebbel writes: >> Hi Richard, >> >> I see regressions with the current IBM z13 vector patchset which appear to >> be related to the new >> genrecog. >> >> The following two insn definit

Re: [PATCH 01/13] recog: Increased max number of alternatives - v2

2015-05-22 Thread Andreas Krebbel
On Tue, May 19, 2015 at 10:40:26AM +0200, Andreas Krebbel wrote: > On 05/18/2015 04:19 PM, Richard Biener wrote: > > Please use uint64_t instead. > > Done. Ok with that change? I've applied the following patch. Bye, -Andreas- gcc/ * recog.h: Increase MA

Re: [PATCH 02/13] optabs: Fix vec_perm -> V16QI middle end lowering.

2015-05-22 Thread Andreas Krebbel
On Tue, May 19, 2015 at 07:48:29AM -0700, Richard Henderson wrote: > > Ok to apply with that change? > > Yes, thanks. I've applied the following. Bye, -Andreas- gcc/ * optabs.c (expand_vec_perm): Don't re-use SEL as target operand. --- gcc/optabs.c |4 ++-- 1 file changed, 2 inser

[PING] [RFC 12/13] S/390 Vector ABI GNU Attribute.

2015-05-19 Thread Andreas Krebbel
On 05/11/2015 03:23 PM, Andreas Krebbel wrote: > With this patch .gnu_attribute is used to mark binaries with a vector > ABI tag. This is required since the z13 vector support breaks the ABI > of existing vector_size attribute generated vector types: > > 1. vector_size(16) and big

<    3   4   5   6   7   8   9   10   11   >