Re: [PATCH 1/2] S/390: Register pass_s390_early_mach statically

2018-09-06 Thread Andreas Krebbel
gcc/ChangeLog: 2018-08-27 Ilya Leoshkevich PR target/80080 * config/s390/s390-passes.def: New file. * config/s390/s390-protos.h (class rtl_opt_pass): Add forward declaration. (make_pass_s390_early_mach): Add declaration. * config/s390/s390.c (mak

Re: [PATCH] S/390: Prohibit SYMBOL_REF in UNSPECV_CAS

2018-09-06 Thread Andreas Krebbel
On 05.09.2018 22:22, Ilya Leoshkevich wrote: > Inhibit constant propagation inlining SYMBOL_REF loads into > UNSPECV_CAS. Even though reload can later undo it, the resulting > code will be less efficient. > > gcc/ChangeLog: > > 2018-09-05 Ilya Leoshkevich > > PR target/80080 > *

Re: [PATCH] S/390: Fix conditional returns

2018-09-06 Thread Andreas Krebbel
Hi Ilya, the S/390 parts look good to me. For the rest we will need approval from a middle-end maintainer. Andreas On 05.09.2018 10:34, Ilya Leoshkevich wrote: > S/390 epilogue ends with (parallel [(return) (use %r14)]) instead of > the more usual (return) or (simple_return). This sequence is

[PATCH] S/390: Use proper rounding mode for DFP to BFD conversions

2018-09-06 Thread Andreas Krebbel
According to IEEE 754 2008 4.3 'Rounding-direction attributes' the rounding mode of the target format needs to be used. By not setting the value so far we have always used the DFP rounding mode. gcc/ChangeLog: 2018-09-06 Andreas Krebbel * config/s390/s390.md (PFPO_RN

Re: [PATCH 1/2] zEC12 pipeline

2018-09-07 Thread Andreas Krebbel
On 06.09.2018 10:41, Robin Dapp wrote: > > Hi, > > this patch increases the latency of some floating point instructions to better > match the real machine's behavior. > > Regards > Robin > > -- > > gcc/ChangeLog: > > 2018-09-06 Robin Dapp > > * config/s390/2827.md: Increase latenci

Re: [PATCH 2/2] z13 pipeline

2018-09-07 Thread Andreas Krebbel
On 06.09.2018 10:41, Robin Dapp wrote: > > Similar to zEC12, the change in latencies helps match the real machine's > behavior better. > > -- > > gcc/ChangeLog: > > 2018-09-06 Robin Dapp > > * config/s390/2964.md: Increase latencies for some FP instructions. Ok, thanks! Andreas

Re: [PATCH] PR86844: Fix for store merging

2018-09-10 Thread Andreas Krebbel
On 20.08.2018 16:30, Jeff Law wrote: > On 08/18/2018 03:20 AM, Eric Botcazou wrote: >>> Eric, didn't your patches explicitely handle this case of a non-constant >>> inbetween? >> >> Only if there is no overlap at all, otherwise you cannot do things simply. >> >>> Can you have a look / review here?

Re: [PATCH] PR86844: Fix for store merging

2018-09-11 Thread Andreas Krebbel
On 10.09.2018 19:53, Jakub Jelinek wrote: > On Mon, Sep 10, 2018 at 04:05:26PM +0200, Andreas Krebbel wrote: >> On 20.08.2018 16:30, Jeff Law wrote: >>> On 08/18/2018 03:20 AM, Eric Botcazou wrote: >>>>> Eric, didn't your patches explicitely handle this

[Committed] S/390: Implement speculation barrier

2018-09-27 Thread Andreas Krebbel
gcc/ChangeLog: 2018-09-27 Andreas Krebbel * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New constant definitions. ("tx_assist"): Replace magic number with PPA_TX_ABORT. ("*ppa"): Enable pattern also for -

[PATCH 1/2] S/390: Rename arch12 to z14

2018-10-02 Thread Andreas Krebbel
easier to read. gcc/ChangeLog: 2018-10-02 Andreas Krebbel * common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14. * config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to PF_Z14. Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14, TARGET_CPU_ARCH12_P to

[PATCH 2/2] S/390: Support IBM z14 Model ZR1 with -march=native

2018-10-02 Thread Andreas Krebbel
This adds the CPU model number of the IBM z14 Model ZR1 machine to -march=native. The patch doesn't actually change anything since we anyway default to z14 for unknown CPU model numbers. So this is just for the sake of completeness. 2018-10-02 Andreas Krebbel * config/s390/d

[PATCH] Fix ICE with single element vector

2018-04-16 Thread Andreas Krebbel
, 2, nelt); if (can_vec_perm_const_p (mode, indices)) return true; } } The patch adds a check to prevent this. Ok? -Andreas- gcc/ChangeLog: 2018-04-16 Andreas Krebbel * tree-vect-data-refs.c (vect_grouped_store_supported): Exit for singl

Re: [PATCH] Fix ICE with single element vector

2018-04-20 Thread Andreas Krebbel
On 04/18/2018 10:25 AM, Richard Biener wrote: > On Mon, Apr 16, 2018 at 6:16 PM, Andreas Krebbel > wrote: >> I did run into an ICE with a single element vector triggered by >> dividing the number of elements by 2 with exact_div here: >> >> tree-vect-dat

[Committed] Fix PR85478

2018-04-24 Thread Andreas Krebbel
Bootstrapped and regression tested on x86_64, ppc64, and s390x. Pre-approved by Richard in the PR. -Andreas- gcc/ChangeLog: 2018-04-24 Andreas Krebbel PR tree-optimization/85478 * tree-vect-loop.c (vect_analyze_loop_2): Do not call vect_grouped_store_supported for

[PATCH] PR61078 S/390: Fix negdi splitter

2014-08-25 Thread Andreas Krebbel
regressions. Bye, -Andreas- 2014-08-25 Andreas Krebbel PR target/61078 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check and add a second splitter to handle the remaining cases. 2014-08-25 Andreas Krebbel PR target/61078 *

Re: [PATCH] S/390: More htm testcases plus some fixes

2013-11-19 Thread Andreas Krebbel
On 18/11/13 17:09, Peter Bergner wrote: > On Mon, 2013-11-18 at 10:05 +0100, Andreas Krebbel wrote: >> With the patch the htm-nofloat-2 testcase fails. Due to the >> "returns_twice" flag on tbegin the optimizers fail to fold the >> compare

Re: [s390] RFA: Use new rtl iterators in s390_loop_unroll_adjust

2014-10-27 Thread Andreas Krebbel
On 10/25/2014 12:10 PM, Richard Sandiford wrote: > This is part of a series to remove uses of for_each_rtx from the ports. > I think we only want to consider MEMs in patterns here, not MEMs in notes etc. > (Not sure why I "fixed" it for s390 but not for x86...) > > Tested by making sure there were

Re: [PATCH][PR66010] Don't take address of ap unless necessary

2015-05-12 Thread Andreas Krebbel
On 05/12/2015 01:45 PM, Tom de Vries wrote: > On 12-05-15 12:04, Tom de Vries wrote: >> Committed with comments below added. > > Hmm, this causes an ice for s390 in gcc.dg/tree-ssa/stdarg-2.c: > ... > gimplification failed: > &ap type type 0x7f132f46b888 __va_list_tag> >

Re: Mostly rewrite genrecog

2015-05-15 Thread Andreas Krebbel
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 definitions only differ in the mode and predicate of the shift count operand. (define_insn "lshr3" [(set (match_operand:VI 0 "register_op

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

2015-05-18 Thread Andreas Krebbel
The new version also changes the type for the alternative_mask to unsigned HOST_WIDE_INT. Bootstrapped without regressions on x86-64. Ok to apply? Bye, -Andreas- gcc/ * recog.h: Increase MAX_RECOG_ALTERNATIVES. --- gcc/recog.h |4 ++-- 1 file changed, 2 insertions(+), 2 deletions

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

2015-05-19 Thread Andreas Krebbel
On 05/18/2015 04:19 PM, Richard Biener wrote: > On Mon, May 18, 2015 at 3:41 PM, Andreas Krebbel > wrote: >> The new version also changes the type for the alternative_mask to unsigned >> HOST_WIDE_INT. >> >> Bootstrapped without regressions on x86-64. >> >

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

2015-05-19 Thread Andreas Krebbel
On 05/18/2015 07:35 PM, Richard Henderson wrote: > On 05/11/2015 06:23 AM, Andreas Krebbel wrote: >> @@ -6784,14 +6784,18 @@ expand_vec_perm (machine_mode mode, rtx v0, rtx v1, >> rtx sel, rtx target) >> { >>/* Multiply each element by its byte size.

[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

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

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

2015-05-05 Thread Andreas Krebbel
On 05/05/2015 08:52 PM, Jakub Jelinek wrote: > Hi! > > http://gcc.gnu.org/ml/gcc-patches/2015-04/msg01432.html > - this got approved for arm and aarch64, but not for s390{,x} > Ok for trunk? Yes. Thanks! -Andreas-

[PATCH 03/13] S/390 Fix secondary reload issue with store/load relative operands.

2015-05-11 Thread Andreas Krebbel
We need a scratch register for loading from or storing to a symbolic memory reference where we cannot use the load/store relative instructions for. However, the check currently fails to handle floating point modes in GPRs correctly. gcc/ * config/s390/s390.c (s390_secondary_reload): Fix c

[PATCH 01/13] recog: Increased max number of alternatives.

2015-05-11 Thread Andreas Krebbel
With the vector facility support z13 mov patterns have more than 30 alternatives. gcc/ * recog.h: Increase MAX_RECOG_ALTERNATIVES. --- gcc/recog.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/recog.h b/gcc/recog.h index 8a38b26..4d8ca0c 100644 --- a/gcc/recog

[PATCH 00/13] S/390 Implement support for IBM z13

2015-05-11 Thread Andreas Krebbel
instructions - scalar vector instructions (allowing to have more floating point registers for scalar operations) - vector string instructions I would like to commit this patchset also to GCC 5 branch in order to enable distros to pick it up more easily. Andreas Krebbel (13): recog: Increased max

[PATCH 04/13] S/390 Add -march/-mtune=z13 option.

2015-05-11 Thread Andreas Krebbel
gcc/ * common/config/s390/s390-common.c (processor_flags_table): Add z13. * config.gcc: Add z13. * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_2964_Z13. * config/s390/s390.c (s390_adjust_priority): Check for PROCESSOR_2964_Z13

[PATCH 07/13] S/390 Add vector scalar instruction support.

2015-05-11 Thread Andreas Krebbel
With this patch GCC makes use of the vector instruction which are available in single element mode. By using these instructions scalar double operations can use 32 registers. gcc/ * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and CCVFHE. * config/s390/s390.c (s

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

2015-05-11 Thread Andreas Krebbel
The current implementation re-uses the location of the selection pattern to generate a new one. This fails if the pattern resides in a read-only location. With the patch a new temporary register is allocated for that purpose. gcc/ * optabs.c (expand_vec_perm): Allocate a temp reg for the

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

2015-05-11 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 10/13] Testsuite These testcases require disabling hardware vector support on S/390.

2015-05-11 Thread Andreas Krebbel
gcc/testsuite/ * gcc.dg/tree-ssa/gen-vect-11b.c: Disable vector instructions on s390*. * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise. --- gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c |1 + gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c |1 + 2 files changed, 2 insertio

[PATCH 11/13] Testsuite S/390 vector types are only 8 byte aligned.

2015-05-11 Thread Andreas Krebbel
gcc/testsuite/ * lib/target-supports.exp: Vector do not always have natural alignment on s390*. --- gcc/testsuite/lib/target-supports.exp |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-sup

[PATCH 13/13] S/390 Invalid vector binary ops

2015-05-11 Thread Andreas Krebbel
This is a first try to implement at least some of the requirements regarding the vector bool type documented for IBM XLC. With this patch error messages will be issued for invalid uses of vector bool types in binary operators. vector bool types are being marked opaque in order to prevent the fron

[PATCH 09/13] S/390 Add zvector testcases.

2015-05-11 Thread Andreas Krebbel
gcc/testsuite/ * gcc.target/s390/zvector/vec-dbl-math-compile-1.c: New test. * gcc.target/s390/zvector/vec-genbytemask-1.c: New test. * gcc.target/s390/zvector/vec-genmask-1.c: New test. * gcc.target/s390/zvector/vec-lcbb-1.c: New test. * gcc.target/s390/zvec

[PATCH 06/13] Vector base support - testcases

2015-05-11 Thread Andreas Krebbel
gcc/testsuite/ * gcc.target/s390/s390.exp (check_effective_target_vector): New check. * gcc.target/s390/vector/vec-abi-1.c: New test. * gcc.target/s390/vector/vec-abi-2.c: New test. * gcc.target/s390/vector/vec-abi-3.c: New test. * gcc.target/s390/vec

[PATCH 05/13] S/390 Vector base support.

2015-05-11 Thread Andreas Krebbel
gcc/ * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New constraints. * config/s390/predicates.md (const0_operand, constm1_operand) (constable_operand): Accept vector operands. * config/s390/s390-modes.def: Add supported vector modes. * config/s

[PATCH 08/13] S/390 zvector builtin support.

2015-05-11 Thread Andreas Krebbel
With this patch GCC implements an Altivec style set of builtins to make use of vector instructions in C/C++ code. This is provided for compatibility with the IBM XL compiler. gcc/ * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to c_target_objs and cxx_target_objs.

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

2015-05-11 Thread Andreas Krebbel
On 05/11/2015 04:01 PM, Segher Boessenkool wrote: > On Mon, May 11, 2015 at 03:23:29PM +0200, Andreas Krebbel wrote: >> With the vector facility support z13 mov patterns have more than 30 >> alternatives. > > Wow, that is a lot! > >> --- a/gcc/recog.h >>

[PATCH 1/3] S/390: Implement TARGET_BUILTIN_DECL

2015-02-24 Thread Andreas Krebbel
Hi, the attached patch defines the TARGET_BUILTIN_DECL macro for S/390 in order to make our target specific builtins to work with lto. I'll commit this to mainline after waiting few days for comments. Bye, -Andreas- 2015-02-24 Andreas Krebbel * config/s390/s390.c:

[PATCH 2/3] S/390: Implement two new builtins for efpc and sfpc

2015-02-24 Thread Andreas Krebbel
Hi, this patch defines two new S/390 target specific macros: __builtin_s390_efpc __builtin_s390_sfpc for extracting and setting the floating point control register. I'll commit this to mainline after waiting a few days for comments. Bye, -Andreas- 2015-02-24 Andreas Kr

[PATCH 3/3] S/390: Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV

2015-02-24 Thread Andreas Krebbel
Hi, the attached patch implements the TARGET_ATOMIC_ASSIGN_EXPAND_FENV for S/390 fixing the c11-atomic-exec-5.c testsuite fails. I'll commit this to mainline after waiting a few days for comments. Bye, -Andreas- 2015-02-24 Andreas Krebbel * config/s390/s

[Committed] S/390: Remove -m64/-m31 from target specific testcases

2015-02-27 Thread Andreas Krebbel
Hi, the attached patch gets rid of -m64/-m31 uses in our target specific testcases in order to make "make check RUNTESTFLAGS='--target_board=unix\{-m31,-m64\}'" runs work fine again. Committed to mainline. Bye, -Andreas- 2015-02-27 Andreas Krebbel * gcc.targ

[Committed] S/390: Fix check for builtins valid with -mhtm

2015-03-04 Thread Andreas Krebbel
Committed to mainline. 2015-03-04 Andreas Krebbel * gcc/config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins from checking for -mhtm option. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 1924f2a..593c0cc 100644 --- a/gcc/config/s390/s390.c

[Committed] S/390: var-expand1 use default values for peel/unroll limits

2015-03-05 Thread Andreas Krebbel
Andreas Krebbel * gcc.dg/var-expand1.c: Force max-completely-peel-times and max-unroll-times back to defaults for s390. diff --git a/gcc/testsuite/gcc.dg/var-expand1.c b/gcc/testsuite/gcc.dg/var-expand1.c index 7de4cfb..fb039d3 100644 --- a/gcc/testsuite/gcc.dg/var-expand1.c

[Committed] S/390: xfail ssa-dom-cse-2

2015-03-05 Thread Andreas Krebbel
Hi, the initializer value in that testcase ends up in literal pool. As described in the testcase the optimization does currently not work in that situation. Committed to mainline. Bye, -Andreas- 2015-03-05 Andreas Krebbel * gcc.dg/tree-ssa/ssa-dom-cse-2.c: diff --git a/gcc

[PATCH] Run DCE after if conversion

2015-03-10 Thread Andreas Krebbel
loop is always left with all df solutions being clean. However, dce is only run once, before the first iteration. The attached patch fixes the builtin-bswap-7.c testcase for s390x (-march=z196) but is probably helpful in other situations as well. Ok? Bye, -Andreas- 2015-03-10 Andreas Krebbel

Re: [PATCH] Run DCE after if conversion

2015-03-10 Thread Andreas Krebbel
On 03/10/2015 10:12 AM, Steven Bosscher wrote: > On Tue, Mar 10, 2015 at 8:57 AM, Andreas Krebbel wrote: >> >> * gcc/ifcvt.c (if_convert): >> > > ...yes...? Damn. mklog is still not able to do the complete job for me ;) > Tiny nail, huge hammer. This trigge

Re: [PATCH] Run DCE after if conversion

2015-03-10 Thread Andreas Krebbel
On 03/10/2015 11:27 AM, Richard Biener wrote: > Is this fixing a regression in some way? Not really. The optimization supposed to fold the bswap in that case is not that old: https://gcc.gnu.org/ml/gcc-patches/2013-05/msg01378.html The underlying problem however is probably visible in one wa

Re: [PATCH] Run DCE after if conversion

2015-03-17 Thread Andreas Krebbel
On 03/10/2015 11:27 AM, Richard Biener wrote: > On Tue, Mar 10, 2015 at 10:19 AM, Andreas Krebbel > wrote: >> On 03/10/2015 10:12 AM, Steven Bosscher wrote: >>> On Tue, Mar 10, 2015 at 8:57 AM, Andreas Krebbel wrote: >>>> >>>> * gcc/ifcvt.c (if

Re: [PATCH] Run DCE after if conversion

2015-03-20 Thread Andreas Krebbel
On 03/18/2015 12:04 PM, Richard Biener wrote: > On Tue, Mar 17, 2015 at 7:29 PM, Jeff Law wrote: >> On 03/17/2015 02:17 AM, Andreas Krebbel wrote: >>> >>> >>> Just to have some numbers I did run a -j1 GCC bootstrap twice with and >>> without the p

Re: [PATCH] S390: Hotpatching fixes.

2015-03-27 Thread Andreas Krebbel
On 03/26/2015 09:56 PM, Jakub Jelinek wrote: > Hi! > > On Mon, Mar 09, 2015 at 01:19:38PM +0100, Dominik Vogt wrote: >> @@ -11368,6 +11349,7 @@ static void >> s390_reorg (void) >> { >>bool pool_overflow = false; >> + int hw_before, hw_after; >> >>/* Make sure all splits have been perf

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

[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

[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

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

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

[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

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

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, >> >

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

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

[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

[Committed] S/390: Fix typo in atomic code iterator

2015-01-22 Thread Andreas Krebbel
Hi, I've committed the following bugfix which fixes an obvious typo in the atomic code attribute. Due to this the load and or instructions was not used. Committed to 4.9 branch and mainline. Bye, -Andreas- 2015-01-22 Andreas Krebbel * config/s390/s390.md (atomic code attr

[Committed] S/390: Increase register move costs for FPR->GPR moves

2015-01-27 Thread Andreas Krebbel
Hi, I've committed the attached patch which fixes a 4.8 vs 4.9/5.0 performance regression introduced with the aggressive use of FPRs as spill slots. Committed to mainline and 4.9 branch. Bye, -Andreas- 2015-01-27 Andreas Krebbel * config/s390/s390.c (s390_register_move

[Committed] S/390: Increase memory access costs

2015-01-27 Thread Andreas Krebbel
Hi, I've committed the attached patch which fixes a 4.8 vs 4.9/5.0 performance regression introduced with the aggressive use of FPRs as spill slots. Committed to mainline and 4.9 branch. Bye, -Andreas- 2015-01-27 Andreas Krebbel * config/s390/s390.c (s390_memory_move

[PATCH] PR64979: S/390: Fix setup of overflow area pointer in va_start

2015-02-09 Thread Andreas Krebbel
Hi, the attached patch fixes a critical problem in the va_start expansion code in the S/390 backend. The problem exists since GCC 4.0. Ok to commit to 4.9 branch and mainline? Bye, -Andreas- 2015-02-09 Andreas Krebbel PR target/64979 * config/s390/s390.c (s390_va_start

Re: [PATCH] PR64979: S/390: Fix setup of overflow area pointer in va_start

2015-02-09 Thread Andreas Krebbel
On 02/09/2015 12:29 PM, Jakub Jelinek wrote: > On Mon, Feb 09, 2015 at 10:50:34AM +0100, Andreas Krebbel wrote: >> Hi, >> >> the attached patch fixes a critical problem in the va_start expansion >> code in the S/390 backend. The problem exists since GCC 4.0. >>

Re: [PATCH] PR64979: S/390: Fix setup of overflow area pointer in va_start

2015-02-09 Thread Andreas Krebbel
On 02/09/2015 01:05 PM, Jakub Jelinek wrote: > On Mon, Feb 09, 2015 at 12:40:05PM +0100, Andreas Krebbel wrote: >> On 02/09/2015 12:29 PM, Jakub Jelinek wrote: >>> On Mon, Feb 09, 2015 at 10:50:34AM +0100, Andreas Krebbel wrote: >>>> Hi, >>>> >>>&

Re: [PATCH] PR64979: S/390: Fix setup of overflow area pointer in va_start

2015-02-09 Thread Andreas Krebbel
On 02/09/2015 01:17 PM, Jakub Jelinek wrote: > On Mon, Feb 09, 2015 at 01:05:23PM +0100, Jakub Jelinek wrote: >> As you can see, the updated testcase fails even on x86_64-linux. > > Here is an updated patch that succeeds even on i686-linux. Your patch fixes my testcase on s390x. Thanks! -Andreas

[PATCH] S/390: Cleanup for the hotpatch testcases

2015-02-19 Thread Andreas Krebbel
Hi, the attached patch fixes some minor issues with the recently applied hotpatch testcases. Bye, -Andreas- 2015-02-19 Andreas Krebbel * gcc.target/s390/hotpatch-8.c: Add -march=g5. * gcc.target/s390/hotpatch-9.c: Add -march=g5. * gcc.target/s390/hotpatch-compile-1

[PATCH] S/390: Remove --save-temps from testcases not requiring it

2015-02-19 Thread Andreas Krebbel
Hi, the attached patch does some cleanup in the S/390 specific testcases. - The scan-assembler testcases do not need --save-temps. - One of them needs it so with the patch we make sure to cleanup the files. Bye, -Andreas- 2015-02-19 Andreas Krebbel * hotpatch-1.c: Remove --save

[PATCH] S/390: Suppress implicit function declaration warning in some testcases

2015-02-19 Thread Andreas Krebbel
Hi, the attached patch add the -Wno-implicit-function-declaration option to the S/390 specific testcases which require it. Bye, -Andreas- 2015-02-19 Andreas Krebbel * gcc.target/s390/20090223-1.c: Add -Wno-implicit-function-declaration option. * gcc.target/s390

[PATCH] Fix hoist-register-pressure testcases for -m31 on s390x

2015-02-19 Thread Andreas Krebbel
Hi, the attached patch makes the hoist-register-pressure testcases to work with -m31 on 64 bit. Ok to apply? Bye, -Andreas- 2015-02-19 Andreas Krebbel * gcc.dg/hoist-register-pressure-1.c: Make S/390 target check work with -m31 on 64 bit. * gcc.dg/hoist-register

Re: [PATCH] S/390: Add support for section anchors

2018-12-03 Thread Andreas Krebbel
On 29.11.18 13:47, Ilya Leoshkevich wrote: > Bootstrapped and regtested on s390x-redhat-linux and > x86_64-redhat-linux. > > gcc/ChangeLog: > > 2018-09-12 Ilya Leoshkevich > > * common/config/s390/s390-common.c (s390_option_init_struct): > Use section anchors by default. > *

[RFC] Handle LHS zero_extracts in DSE

2018-12-07 Thread Andreas Krebbel
Hi, debugging a problem with an older GCC (4.6). I've seen RTXs using ZERO_EXTRACT LHS operands on MEMs as in: (insn 7 6 0 (set (zero_extract:DI (mem/s/c:QI (plus:DI (reg/f:DI 39 virtual-stack-vars) (const_int -5 [0xfffb])) [0+0 S1 A8]) (const_int 24

[Committed 2/2] S/390: Fix zvector vec_double builtin

2018-12-13 Thread Andreas Krebbel
intermediate expander. The expanders were already there but unfortunately not wired up correctly to the builtin. gcc/ChangeLog: 2018-12-13 Andreas Krebbel * config/s390/s390-builtins.def (s390_vec_double_s64): Map to s390_vec_double_s64 instead of s390_vcdgb

[Committed 1/2] S/390: Use VEC_INEXACT/VEC_NOINEXACT instead of magic numbers.

2018-12-13 Thread Andreas Krebbel
2018-12-13 Andreas Krebbel * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. -

Re: [PATCH] Fix unwind info in x86 interrupt functions (PR debug/83728)

2018-12-20 Thread Andreas Krebbel
On 1/19/18 12:28 AM, Jakub Jelinek wrote: +#ifndef DEFAULT_INCOMING_FRAME_SP_OFFSET +#define DEFAULT_INCOMING_FRAME_SP_OFFSET INCOMING_FRAME_SP_OFFSET +#endif ... + /* If the current function starts with a non-standard incoming frame + sp offset, emit a note before the first instruction. */ +

[Committed] S/390: Add support for double<->long vector converts

2018-12-21 Thread Andreas Krebbel
Bootstrapped and regression tested on s390x (IBM z14). Committed to mainline gcc/ChangeLog: 2018-12-21 Andreas Krebbel * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"

Re: [PATCH] S/390: Fix failing RTL check in s390_canonicalize_comparison

2019-09-02 Thread Andreas Krebbel
On 02.09.19 16:46, Ilya Leoshkevich wrote: > Bootstrap and regtest running on s390x-redhat-linux. > > The new sigfpe-eh.c fails with > > internal compiler error: RTL check: expected elt 0 type 'e' or 'u', have > 'w' (rtx const_int) > > This is most likely due to a typo: XEXP (*op1, 0) was u

PR88751: Backport to GCC 8 and 9 branches?

2019-09-06 Thread Andreas Krebbel
d3dc20418aad41af83fe45ccba527deb0b334983 Author: krebbel Date: Thu Jun 6 11:35:04 2019 + Fix PR88751 This patch implements a small improvement for the heuristic in lra which decides when it has to activate the simpler register allocation algorithm. gcc/ChangeLog: 2019-06-06 Andreas Krebbel

Re: PR88751: Backport to GCC 8 and 9 branches?

2019-09-20 Thread Andreas Krebbel
On 06.09.19 12:48, Richard Biener wrote: > On Fri, Sep 6, 2019 at 10:11 AM Andreas Krebbel wrote: >> >> Hi, >> >> since this caused a critical performance regression in the OpenJ9 byte code >> interpreter after >> migrating from GCC 4.8 to GCC 7 I wo

[Committed] S/390: Fix problem with vec_init expander

2018-10-15 Thread Andreas Krebbel
gcc/ChangeLog: 2018-10-15 Andreas Krebbel * config/s390/s390.c (s390_expand_vec_init): Force vector element into reg if it isn't a general operand. gcc/testsuite/ChangeLog: 2018-10-15 Andreas Krebbel * g++.dg/vec-init-1.C: New test. --- gcc/config/s390/s

Re: [PATCH] S/390: Make "b" constraint match literal pool references

2018-10-22 Thread Andreas Krebbel
On 19.10.18 10:39, Ilya Leoshkevich wrote: > gcc/ChangeLog: > > 2018-10-18 Ilya Leoshkevich > > * config/s390/s390.c (s390_loadrelative_operand_p): Accept > literal pool references. > (s390_check_qrst_address): Adapt to the new behavior of > s390_loadrelative_operand_p

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