[PATCH 0/4] Eliminate cc0 from m68k

2019-11-13 Thread Bernd Schmidt
This is a set of patches to convert m68k so that it no longer uses cc0. The approach is to combine cc0 setter/user pairs into cbranch and cstore patterns. It does not expose the flag register directly. Since m68k is a target that is not under active development, and probably receives very limited t

Re: [PATCH 1/4] Preliminary m68k patches

2019-11-13 Thread Bernd Schmidt
This tidies up a few spots in the m68k backend in preparation for the large patch to follow. This is purely for review purposes: this patch has not been tested independently, and will be committed together with the following one. Noteworthy changes: Some patterns and peepholes were unified throu

[PATCH 2/4] The main m68k cc0 conversion

2019-11-13 Thread Bernd Schmidt
This achieves the conversion by using combined cbranch/cstore patterns, and using a mechanism similar to the cc_status tracking to elide certain comparisons. Unlike cc_status, this is opt-in and requires a flags_valid attribute to be set for suitable instructions. Due to lack of test hardware, th

[PATCH 3/4] Set costs for jumps in combine

2019-11-13 Thread Bernd Schmidt
The combiner is somewhat strange about how it uses costs. If any of the insns involved in a comparison have a cost of 0, it does not verify that the substitution is cheaper. Also, it does not compute costs for jump insns, so they are always set to zero. As a consequence, any possible substitution i

[PATCH 4/4] Fix autoinc cbranch

2019-11-13 Thread Bernd Schmidt
After the m68k cc0 conversion, there is one code quality regression that I can see: we no longer generate autoinc addressing modes in comparisons. This is because the parts of the compiler that generate autoinc are unwilling to substitute into jumps. If you look at the code in reload, you'll see t

Re: [PATCH 0/4] Eliminate cc0 from m68k

2019-11-13 Thread Bernd Schmidt
On 11/13/19 7:16 PM, Segher Boessenkool wrote: > I tried this out with a kernel build (just the defconfig). > during RTL pass: jump2 > /home/segher/src/kernel/fs/binfmt_elf.c: In function 'elf_core_dump': > /home/segher/src/kernel/fs/binfmt_elf.c:2409:1: internal compiler error: in > patch_jump_i

Re: [PATCH] Rerun df_analyze after delete_unmarked_insns during DCE

2013-08-21 Thread Bernd Schmidt
On 08/19/2013 11:05 PM, Jeff Law wrote: > On 07/20/2013 03:02 AM, Alexey Makhalov wrote: >> Hello! >> >> If delete_unmarked_insns deletes some insn, DF state might be >> out of date, and, regs_ever_live might contain unused registers till >> the end. (I can't find the original mail either in my ma

Re: [RFC] Fix for PR58201

2013-09-04 Thread Bernd Schmidt
On 09/04/2013 06:04 PM, Jan Hubicka wrote: > this is third fallout of my change to remove DECL_ARGUMENTS/DECL_RESULT for > functions w/o > bodies I did not really anticipate. [...] > I would like to basically ask if it seems to make sense to go this route and > try to get rid of those declarations

Re: [RFC] Fix for PR58201

2013-09-04 Thread Bernd Schmidt
On 09/04/2013 07:09 PM, Jan Hubicka wrote: > How do you support K&R functions here? My basic idea was that TYPE_ARG_TYPES > should give enough information about external function calling convention > anyone will ever need. I would hope that this will be sufficient for your > use, too, despite the

Fix PR54688

2012-09-28 Thread Bernd Schmidt
Index: gcc/ChangeLog === --- gcc/ChangeLog (revision 191837) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,9 @@ +2012-09-20 Bernd Schmidt + + PR bootstrap/54688 + * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take + STACK_GROWS_DOWNWARD into ac

Re: RFC: LRA for x86/x86-64 [0/9]

2012-10-01 Thread Bernd Schmidt
On 10/01/2012 12:14 PM, Jakub Jelinek wrote: > On Mon, Oct 01, 2012 at 12:01:36PM +0200, Steven Bosscher wrote: >> I would also agree if it were not for the fact that IRA is already a >> scalability bottle-neck and that has been known for a long time, too. >> I have no confidence at all that if LRA

Re: RFC: LRA for x86/x86-64 [7/9]

2012-10-02 Thread Bernd Schmidt
On 09/28/2012 12:59 AM, Vladimir Makarov wrote: > + We keep RTL code at most time in such state that the virtual > + registers can be changed by just the corresponding hard registers > + (with zero offsets) and we have the right RTL code. To achieve this > + we should add initial offs

Re: RFC: LRA for x86/x86-64 [7/9]

2012-10-02 Thread Bernd Schmidt
On 10/03/2012 12:29 AM, Vladimir Makarov wrote: > On 12-10-02 7:30 AM, Bernd Schmidt wrote: >> On 09/28/2012 12:59 AM, Vladimir Makarov wrote: >>> + We keep RTL code at most time in such state that the virtual >>> + registers can be changed by just the c

Re: Scheduler: Save state at the end of a block

2012-10-08 Thread Bernd Schmidt
On 08/13/2012 05:42 PM, Vladimir Makarov wrote: > On 08/13/2012 06:32 AM, Bernd Schmidt wrote: >> This is a small patch for sched-rgn that attempts to save DFA state at >> the end of a basic block and re-use it in successor blocks. This was a >> customer-requested optimizat

Re: Ping^2: RFA: Process '*' in '@'-output-template alternatives

2012-10-15 Thread Bernd Schmidt
On 10/15/2012 06:41 AM, Joern Rennecke wrote: > The following patch is still awaiting review: > > 2011-09-19 J"orn Rennecke > > * genoutput.c (process_template): Process '*' in '@' alternatives. > * doc/md.texi (node Output Statement): Provide example for the > above. > > http

Re: [lra] patch to revert a code from previous patch.

2012-10-17 Thread Bernd Schmidt
On 10/16/2012 04:30 AM, Vladimir Makarov wrote: > In insn: > > (define_insn_and_split "*lea_general_1" > [(set (match_operand 0 "register_operand" "=r") > (plus (plus (match_operand 1 "index_register_operand" "l") > (match_operand 2 "register_operand" "r")) > (match_ope

Fix for reloads_unique_chain_p

2013-10-15 Thread Bernd Schmidt
e using a patched gcc-4.3. I'm thinking this probably ought to go into 4.8 as well. Bernd commit 6a77b1fca11e2fe9ac20aba2a241ead5a8ebd701 Author: Bernd Schmidt Date: Tue Oct 15 12:16:07 2013 +0200 Fix a miscompilation where a reload reg is reused after it has been cl

alias fix for PR58685

2013-10-16 Thread Bernd Schmidt
The sequence of events here can be summarized as "shrink-wrapping causes the i386 backend to do something that confuses alias analysis". The miscompilation is that two instructions are swapped by the scheduler when they shouldn't be, due to an incorrect reg_base_value. The miscompiled function has

Re: [PATCH][1/3] Re-submission of Altera Nios II port, gcc parts

2013-10-17 Thread Bernd Schmidt
On 07/14/2013 09:54 AM, Chung-Lin Tang wrote: > Hi, the last ping of the Nios II patches was: > http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01416.html > > After assessing the state, we feel it would be better to post a > re-submission of the newest patches. Since this hasn't attracted attention

Re: [PATCH][2/3] Re-submission of Altera Nios II port, testsuite parts

2013-10-17 Thread Bernd Schmidt
On 07/14/2013 09:54 AM, Chung-Lin Tang wrote: > These are nios2 patches for the gcc testsuite. Some new testcases were > added since the last posting. > Index: gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c > === > --- gcc/tes

Re: [PATCH]Fix computation of offset in ivopt

2013-10-18 Thread Bernd Schmidt
On 10/18/2013 01:18 PM, Richard Biener wrote: > Index: gcc/fold-const.c > === > --- gcc/fold-const.c (revision 203267) > +++ gcc/fold-const.c (working copy) > @@ -7270,8 +7270,8 @@ fold_plusminus_mult_expr (location_t loc, enum tre >

Re: [PATCH]Fix computation of offset in ivopt

2013-10-18 Thread Bernd Schmidt
On 10/18/2013 02:10 PM, Richard Biener wrote: > On Fri, Oct 18, 2013 at 2:02 PM, Bernd Schmidt > wrote: >> On 10/18/2013 01:18 PM, Richard Biener wrote: >> >>> Index: gcc/fold-const.c >>> ==

Re: [PATCH] OpenACC use_device clause ICE fix

2016-01-20 Thread Bernd Schmidt
On 01/05/2016 02:15 PM, Chung-Lin Tang wrote: * omp-low.c (scan_sharing_clauses): Call add_local_decl() for use_device/use_device_ptr variables. It looks vaguely plausible, but if everything is part of the host function, why make a copy of the decl at all? I.e. what happens if

Fixes for PR66178

2016-01-20 Thread Bernd Schmidt
PR66178 has some testcases where we construct expressions involving additions and subtractions of label addresses, and we crash when trying to expand these. There are two different issues here, shown by various testcases in the PR: * expand_expr_real_2 can drop EXPAND_INITIALIZER and then go

Re: [PATCH v2] PR48344: Fix unrecognizable insn error when gcc

2016-01-20 Thread Bernd Schmidt
On 01/20/2016 10:49 PM, Kelvin Nilsen wrote: * toplev.c (do_compile): remove invocation of process_options () from within do_compile () (toplev::main): insert invocation of process_options () before invocation of handle_common_deferred_options (). The ChangeLog se

Re: gomp_target_fini

2016-01-21 Thread Bernd Schmidt
Thomas, I've mentioned this issue before - there is sometimes just too much irrelevant stuff to wade through in your patch submissions, and it discourages review. The discussion of the actual problem begins more than halfway through your multi-page mail. Please try to be more concise. On 12/16

Re: [PATCH] OpenACC use_device clause ICE fix

2016-01-21 Thread Bernd Schmidt
On 01/21/2016 03:22 PM, Chung-Lin Tang wrote: On 2016/1/20 09:17 PM, Bernd Schmidt wrote: On 01/05/2016 02:15 PM, Chung-Lin Tang wrote: * omp-low.c (scan_sharing_clauses): Call add_local_decl() for use_device/use_device_ptr variables. It looks vaguely plausible, but if everything

Re: [patch] Document restriction of scalar_storage_order

2016-01-21 Thread Bernd Schmidt
On 01/21/2016 05:34 PM, Eric Botcazou wrote: Tested on x86_64-suse-linux, OK for the mainline? 2016-01-21 Eric Botcazou * doc/extend.texi (scalar_storage_order type attribute): Document restriction on type punning and aliasing. Isn't this kind of implied by the already doc

Re: [PATCH] gcc/configure test for AIX DWARF

2016-01-21 Thread Bernd Schmidt
On 01/18/2016 08:30 PM, David Edelsohn wrote: Bootstrapped on powerpc-ibm-aix7.1.2.0 with and without the corrected assembler. Okay? The changes seem to be in *-*-aix blocks, so as far as I'm concerned you are the maintainer and can check this in. One question though: ;; esac

Backport PR63681 cfglayout/doloop fix to 4.9

2016-01-21 Thread Bernd Schmidt
I've bootstrapped and tested the following on 4.9-branch. It's a backport of a patch that avoids unnecessary assertion failures, both by tuning down an assert, and restricting an optimization for the case where the assert would validly trigger. Ok to commit on the branch? Bernd PR target/6

Re: [gomp4] Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-01-22 Thread Bernd Schmidt
On 01/22/2016 09:36 AM, Jakub Jelinek wrote: I think it is a bad idea to go against what the user wrote. Warning that some code might not be efficient? Perhaps (if properly guarded with some warning option one can turn off, either on a per-source file or using pragmas even more fine grained).

Re: [gomp4] Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-01-22 Thread Bernd Schmidt
On 01/22/2016 02:25 PM, Jakub Jelinek wrote: What about #pragma oacc parallel? That would never do that? It shouldn't, no (IMO). Bernd

Re: [PATCH][ARM][4/4] Adjust gcc.target/arm/wmul-[123].c tests

2016-01-22 Thread Bernd Schmidt
On 01/22/2016 10:52 AM, Kyrill Tkachov wrote: AFAICT the new sequence is better than the old one even for -mtune=cortex-a9 since it contains two fewer instructions. Just curious (I think this patch series is good but will leave it to the arm folks) - are these instructions equally expensive?

Re: Suspicious code in fold-const.c

2016-01-22 Thread Bernd Schmidt
On 01/22/2016 02:37 PM, Andrew MacLeod wrote: /* If the initializer is non-void, then it's a normal expression that will be assigned to the slot. */ (*) if (!VOID_TYPE_P (t)) (*) return RECURSE (t); I suspect this should also be if (!VOID_TYPE_P(TREE_TYPE

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-22 Thread Bernd Schmidt
On 01/22/2016 08:03 PM, Ian Lance Taylor wrote: Updated patch. I've verified that I'm changing the only relevant place in tree-ssa-loop-ivopts.c that creates a POINTER_PLUS_EXPR, so I do think that this is the only changed to fix the problem for ivopts. I don't think so. One of the problems wi

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-25 Thread Bernd Schmidt
On 01/23/2016 12:52 AM, Ian Lance Taylor wrote: 2016-01-22 Ian Lance Taylor * common.opt (fkeep-gc-roots-live): New option. * tree-ssa-loop-ivopts.c (add_candidate_1): If -fkeep-gc-roots-live, skip pointers. (add_iv_candidate_for_biv): Handle add_candidate_1 returning NULL. * doc/invoke.texi

Re: Wonly-top-basic-asm

2016-01-25 Thread Bernd Schmidt
On 01/24/2016 11:23 PM, David Wohlferd wrote: +Wonly-top-basic-asm +C ObjC ObjC++ C++ Var(warn_only_top_basic_asm) Warning +Warn on unsafe uses of basic asm. Maybe just -Wbasic-asm? +/* Warn on basic asm used inside of functions, + EXCEPT when in naked functions. Also allow asm("").

Re: [PATCH] pr 65702 - error out for invalid register asms earlier

2016-01-25 Thread Bernd Schmidt
On 01/25/2016 04:36 PM, tbsaunde+...@tbsaunde.org wrote: $subject. To avoid regressions I kept the checks when generating rtl, but I believe its impossible for those to trigger now and we can remove the checks. bootstrapped + regtested on x86_64-linux-gnu, ok? Is this still an issue? I commit

Re: [PATCH] Fix handling of ZERO_EXTRACT lhs with REG_EQUAL note in the combiner (PR target/69442)

2016-01-26 Thread Bernd Schmidt
On 01/26/2016 09:39 AM, Jakub Jelinek wrote: PR target/69442 * combine.c (combine_instructions): For REG_EQUAL note with SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST to the underlying register. * doc/rtl.texi (REG_EQUAL): Document the behavio

Re: [PATCH] PR other/69006: fix extra newlines after diagnostics (v2)

2016-01-26 Thread Bernd Schmidt
On 01/25/2016 09:13 PM, David Malcolm wrote: Here's an updated version of the patch. Thanks! Instead of testing one particular kind of output via a plugin, this version of the patch adds code to gcc-dg-prune to issue a FAIL for any testcase containing blank lines, with a new dg-allow-blank

Re: [PATCH] pr69477 - attribute aligned documentation misleading

2016-01-26 Thread Bernd Schmidt
On 01/25/2016 11:13 PM, Martin Sebor wrote: The attached patch adjusts the documentation of attribute aligned and attribute pack so as to prevent misreading the text of the former attribute as if it had read: Specifying attribute aligned for struct and union types is equivalent to specifyi

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-26 Thread Bernd Schmidt
On 01/25/2016 05:03 PM, Ian Lance Taylor wrote: On Mon, Jan 25, 2016 at 3:39 AM, Bernd Schmidt wrote: On 01/23/2016 12:52 AM, Ian Lance Taylor wrote: 2016-01-22 Ian Lance Taylor * common.opt (fkeep-gc-roots-live): New option. * tree-ssa-loop-ivopts.c (add_candidate_1): If -fkeep-gc-roots

Re: Wonly-top-basic-asm

2016-01-26 Thread Bernd Schmidt
On 01/26/2016 01:29 AM, Segher Boessenkool wrote: In my opinion we should not warn for any asm that means the same both as basic and as extended asm. The problem then becomes, what *is* the meaning of a basic asm, what does it clobber. I think this may be too hard to figure out in general wit

Re: [PATCH] Handle -fsanitize=* in lto-wrapper (PR lto/69254)

2016-01-26 Thread Bernd Schmidt
On 01/25/2016 09:30 PM, Jakub Jelinek wrote: Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? I've been staring at it for a while, and on the whole I think I can make sense of this. However - it does not have test coverage. Can this be added? Also, is this a regression?

Re: [PATCH] Handle -fsanitize=* in lto-wrapper (PR lto/69254)

2016-01-26 Thread Bernd Schmidt
On 01/26/2016 02:24 PM, Jakub Jelinek wrote: just designed to enable DEF_SANITIZER_BUILTIN (IIUC). Also, why use shift and not just sanitize=undefined? Because -fsanitize=undefined is a large collection of individual sanitizers, and at least some of them affect also post-IPA code (e.g. -fsani

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-27 Thread Bernd Schmidt
+This option is disabled by default for most languages, enabled by +default for languages that use garbage collection. This is not true as of this patch. Index: tree-ssa-loop-ivopts.c === --- tree-ssa-loop-ivopts.c (revision

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-27 Thread Bernd Schmidt
On 01/27/2016 02:59 PM, Ian Lance Taylor wrote: +This option is disabled by default for most languages, enabled by +default for languages that use garbage collection. This is not true as of this patch. Yes. As I said elsewhere, my intent is to do that as a separate patch. Then the followu

Re: Patch RFA: Add option -fcollectible-pointers, use it in ivopts

2016-01-27 Thread Bernd Schmidt
On 01/27/2016 04:18 PM, Ian Lance Taylor wrote: On Wed, Jan 27, 2016 at 7:16 AM, Bernd Schmidt wrote: Still, I feel uncomfortable about making a promise we don't really expect to fully keep yet, so I would prefer this option to be undocumented for now. I won't object if someone els

Re: RFA: Fix ICE compiling gcc.dg/lto/pr55113_0.c for x86/x86_64

2016-01-27 Thread Bernd Schmidt
On 01/08/2016 02:00 PM, Bernd Schmidt wrote: On 01/08/2016 10:41 AM, Richard Biener wrote: On Tue, Dec 22, 2015 at 10:55 AM, Nick Clifton wrote: Richard Biener wrote: I think the option should be simply removed... Tempting - but we are in stage 3... My patch at least fixes the ICE for now

Re: Is it OK for rtx_addr_can_trap_p_1 to attempt to compute the frame layout? (was Re: [PATCH] Skip re-computing the mips frame info after reload completed)

2016-01-28 Thread Bernd Schmidt
On 01/28/2016 12:36 AM, Eric Botcazou wrote: [cc-ing Eric as RTL maintainer] Sorry for the delay, the message apparently bounced] IMO the problem is that rtx_addr_can_trap_p_1 duplicates a large bit of LRA/reload logic: [...] Under the current interface macros like INITIAL_ELIMINATION_OFFSE

Fix c/69522, memory management issue in c-parser

2016-01-29 Thread Bernd Schmidt
Let's say we have struct a { int x[1]; int y[1]; } x = { 0, { 0 } }; ^ When we reach the marked brace, we call into push_init_level, where we notice that we have implicit initializers (for x[]) lying around that we should deal with now that we've seen another open brace. The probl

Fix some i386 testcases for -frename-registers

2016-01-29 Thread Bernd Schmidt
This patch corrects some tests that can fail with -frename-registers. The problems typically are of the form "xmm[0-7]+", disallowing registers 8 and 9, and "xmm[0-9]". disallowing numbers higher than 9. Most the patch was automatically generated, but there were some other cases as well. Enab

Re: Is it OK for rtx_addr_can_trap_p_1 to attempt to compute the frame layout? (was Re: [PATCH] Skip re-computing the mips frame info after reload completed)

2016-01-29 Thread Bernd Schmidt
On 01/29/2016 04:41 PM, Jakub Jelinek wrote: On Fri, Jan 29, 2016 at 02:09:25AM +0100, Bernd Schmidt wrote: I think a better approach might be to just mark accesses at known locations in the frame, or arg pushes, as MEM_NOTRAP_P, and consider accesses with non-constant or calculated offsets

Enabling -frename-registers?

2016-01-29 Thread Bernd Schmidt
So PR57193 has an example of sub-optimal code generation, with some unnecessary register moves left after LRA. These seem to be difficult to prevent, but last year Robert Suchanek made some modifications to regrename that allow it to clean up such cases. Enabling -frename-registers removes one

Re: Is it OK for rtx_addr_can_trap_p_1 to attempt to compute the frame layout? (was Re: [PATCH] Skip re-computing the mips frame info after reload completed)

2016-02-01 Thread Bernd Schmidt
On 01/29/2016 08:42 PM, Bernd Edlinger wrote: On 29.01.2016 16:47 Bernd Schmidt wrote: Yes. What is the problem with that? If we have (plus sfp const_int) at any point before reload, we can check whether that offset is inside frame_size. If it isn't or if the offset isn't known, it

Re: Is it OK for rtx_addr_can_trap_p_1 to attempt to compute the frame layout? (was Re: [PATCH] Skip re-computing the mips frame info after reload completed)

2016-02-01 Thread Bernd Schmidt
On 02/01/2016 01:49 PM, Richard Biener wrote: What prevents motion of those across a stack adjustment (thus a place they are _not_ valid?) If the address is SP-based, dependencies on the address register. If you're thinking prologue stack adjustments, ports where this could be an issue emit

Re: [PATCH] Fix compile/memory hog in the combiner (PR rtl-optimization/69592)

2016-02-01 Thread Bernd Schmidt
On 02/01/2016 09:34 PM, Jakub Jelinek wrote: On the following testcase we completely uselessly consume about 5.5GB of RAM and lots of compile time. The problem is the code to avoid exponential behavior of nonzero_bits/num_sign_bit_copies on binary arithmetics rtxes, which causes us to recurse ev

Re: [PATCH] Fix compile/memory hog in the combiner (PR rtl-optimization/69592)

2016-02-03 Thread Bernd Schmidt
On 02/02/2016 09:59 AM, Jakub Jelinek wrote: I wonder if it wouldn't be better to pass around some structure, containing for the common case fixed size cache and perhaps fall back to hash_map if there are more calls to cache than that. Plus perhaps a recursion depth, so that we avoid other path

Re: [PATCH] PR69619: Fix exponential issue in ccmp.c

2016-02-03 Thread Bernd Schmidt
On 02/03/2016 05:35 PM, Wilco Dijkstra wrote: - tmp2 = targetm.gen_ccmp_first (&prep_seq_2, &gen_seq_2, rcode1, -gimple_assign_rhs1 (gs1), -gimple_assign_rhs2 (gs1)); - It looks like after this patch tmp2 co

Re: [PATCH] gcc: invoke: delete -mno-fma4 docs

2016-02-03 Thread Bernd Schmidt
On 02/01/2016 08:13 AM, Mike Frysinger wrote: We don't document the -mno-xxx variants for other flags here, and the paragraph here specifically says "Each has a corresponding -mno- option to disable use of these instructions". Drop the -mno-fma4 line. 2016-01-31 Mike Frysinger * doc

lra-remat issues (PR68730)

2016-02-04 Thread Bernd Schmidt
In this PR, we have, at an intermediate stage during LRA (before create_cands): (insn 420 (set (reg:HI 276 [orig:132 g.2_118 ] [132]) (reg:HI 132 [ g.2_118 ])) 88 {*movhi_internal} (nil)) [] (insn 436 (set (reg/v:HI 290 [orig:87 g ] [87]) (reg/v:HI 87 [ g ])) (insn 14 (

Re: [PATCH] Fix PR69274, 435.gromacs performance regression due to RA

2016-02-05 Thread Bernd Schmidt
On 02/05/2016 01:10 PM, Richard Biener wrote: It fails FAIL: gcc.target/i386/addr-sel-1.c scan-assembler b+1 on i?86 (or x86_64 -m32) though, generating f: .LFB0: .cfi_startproc movl4(%esp), %eax leal1(%eax), %edx movsbl a+1(%eax), %eax

Re: [PATCH] Fix PR69274, 435.gromacs performance regression due to RA

2016-02-05 Thread Bernd Schmidt
On 02/05/2016 01:42 PM, Richard Biener wrote: so indeed the issue is not dx dieing in insn 10 but ax dieing in insn 8... Maybe LRA can prefer to not do that if enough free registers are available (that is, never re-use a register)? Maybe, but at this stage that will probably also have some unp

Re: Fix c/69522, memory management issue in c-parser

2016-02-05 Thread Bernd Schmidt
Ping. On 01/29/2016 12:40 PM, Bernd Schmidt wrote: Let's say we have struct a { int x[1]; int y[1]; } x = { 0, { 0 } }; ^ When we reach the marked brace, we call into push_init_level, where we notice that we have implicit initializers (for x[]) lying around that we should

Re: [PATCH] Fix valgrind reported issue during char constant lexing (PR c++/69628)

2016-02-05 Thread Bernd Schmidt
On 02/03/2016 09:05 PM, Jakub Jelinek wrote: 2016-02-03 Jakub Jelinek PR c++/69628 * charset.c (cpp_interpret_charconst): Clear *PCHARS_SEEN and *UNSIGNEDP if bailing out early due to errors. * g++.dg/parse/pr69628.C: New test. Ok. Bernd

Remove -fshort-double (PR60410)

2016-02-05 Thread Bernd Schmidt
This patch fixes PR60410 by removing -fshort-double. Nick earlier propsed a fix for the crash, but Richard B suggested removing the option entirely, and I'd agree with that. It's a pointless ABI-changing option on most targets, and if a port really needs it, it should be a -m option that tweaks

Re: [PATCH v3] PR48344: Fix unrecognizable insn error with -fstack-limit-register=r2

2016-02-08 Thread Bernd Schmidt
On 01/27/2016 07:12 PM, Kelvin Nilsen wrote: +/* During execution of handle_common_deferred_options (), the Pmode + variable cannot be used because it has not yet been initialized. + For this reason, handling of the OPT_fstack_limit_register_ and + OPT_fstack_limit_symbol_ options is deferr

Re: [PATCH] Fix PR69274, 435.gromacs performance regression due to RA

2016-02-08 Thread Bernd Schmidt
On 02/08/2016 10:09 AM, Richard Biener wrote: The gcc.target/i386/addr-sel-1.c (for PR28940) seems to just started working at some point past in time and thus it was added and the bug closed. You could say RA does a better job after the patch as it uses 1 less register but that restricts the fol

Re: Fix PR67639

2016-02-08 Thread Bernd Schmidt
On 12/21/2015 08:39 PM, Jeff Law wrote: On 12/18/2015 11:38 AM, Bernd Schmidt wrote: In an earlier fix, the following change was made in varasm.c for invalid register variables: --- trunk/gcc/varasm.c2014/08/26 14:59:59214525 +++ trunk/gcc/varasm.c2014/08/26 17:06:31214526

Re: [PATCH] PR rtl-optimization/64081: Enable RTL loop unrolling for duplicated exit blocks and back edges.

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 12:34 PM, Alexander Fomin wrote: This patch still causes bootrstrap failure on AIX when applied on top of r219827. I tried to bisect first commit eliminating AIX problem - it may be useful anyway - but my current results seem misleading. Therefore, I'll to continue the investigatio

Re: Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 12:49 PM, Thomas Schwinge wrote: Hi! Ping. I think this has to be considered after gcc-6. In general, what's the state of OpenACC these days? I'm slightly confused by the interface between offloaded code and libgomp. It looks like you're collecting avoid-offloading flags per

Re: [PATCH] Fix PR69291, RTL if-conversion bug

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 02:04 PM, Richard Biener wrote: where noce_try_store_flag_constants identifies (plus:SI (reg/v:SI 160 [ mod_tlen ]) (reg/v:SI 224 [ ])) as "common" and then tries to detect the case where setting the result would clobber that value. It doesn't seem to expect anything e

Re: [PATCH] Fix PR69291, RTL if-conversion bug

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 02:33 PM, Richard Biener wrote: But if you prefer I can instead test the following Index: gcc/ifcvt.c === --- gcc/ifcvt.c (revision 233262) +++ gcc/ifcvt.c (working copy) @@ -1274,7 +1274,7 @@ noce_try_store_flag_cons

Re: [PATCH] Fix PR69291, RTL if-conversion bug

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 02:35 PM, Richard Biener wrote: Index: gcc/ifcvt.c === --- gcc/ifcvt.c (revision 233262) +++ gcc/ifcvt.c (working copy) @@ -1274,7 +1274,8 @@ noce_try_store_flag_constants (struct no && CONST_INT_P (XEXP (a, 1)

Re: [PATCH] Fix PR69291, RTL if-conversion bug

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 02:50 PM, Richard Biener wrote: On Wed, 10 Feb 2016, Bernd Schmidt wrote: On 02/10/2016 02:35 PM, Richard Biener wrote: Index: gcc/ifcvt.c === --- gcc/ifcvt.c (revision 233262) +++ gcc/ifcvt.c (working copy

Re: Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 03:39 PM, Thomas Schwinge wrote: Yes, we need a hammer that big: we have to ensure consistency between data regions on the device and code offloading to the device, as otherwise we'll very easily run into inconsistencies, because of the non-shared memory. In the general case, it's

Re: [PATCH] PR driver/69265: improved suggestions for various misspelled options

2016-02-10 Thread Bernd Schmidt
On 02/09/2016 09:44 PM, David Malcolm wrote: This is a bug in a new feature, so it isn't a regression as such, but it's fairly visible, and I believe the fix is relatively low-risk (error-handling of typos of command-line options). This also now covers PR driver/69453 (and its duplicate PR drive

Re: Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 05:23 PM, Thomas Schwinge wrote: Why? A user of GCC has no intrinsic interest in getting OpenACC kernels constructs' code offloaded; the user wants his code to execute as fast as possible. If you consider the whole of OpenACC kernels code offloading as a compiler optimization, the

Warning location fix, PR c++/69733

2016-02-10 Thread Bernd Schmidt
This PR notes that in this warning: const.ii:5:25: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] const double value() const {return val;} ^ we are pointing at the wrong qualifier. Below I'm attaching a patch that makes it point

Fix incomplete initialization of declspecs

2016-02-10 Thread Bernd Schmidt
I've noticed that build_null_declspecs fails to clear out all location information since it's missing a multiplication with the type size. The simplest fix seems to be to just clear the entire structure. Bootstrapping & testing now on x86_64-linux, ok if that succeeds? Depending on what we do

Re: Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-02-10 Thread Bernd Schmidt
On 02/10/2016 06:37 PM, Thomas Schwinge wrote: On Wed, 10 Feb 2016 17:37:30 +0100, Bernd Schmidt wrote: IIUC it's also disabling offloading for parallels rather than just kernels, which we previously said shouldn't happen. Ah, you're talking about mixed OpenACC parallel/ker

Re: [PATCH] PR plugins/69758: add params.list to PLUGIN_HEADERS

2016-02-10 Thread Bernd Schmidt
On 02/11/2016 04:29 AM, David Malcolm wrote: gcc/ChangeLog: PR plugins/69758 * Makefile.in (PLUGIN_HEADERS): Add params.list. Ok. Bernd

Re: [PATCH, reload] PRE_INC with invalid hard reg

2016-02-11 Thread Bernd Schmidt
On 02/11/2016 10:45 AM, Alan Modra wrote: Due to uses elsewhere in vsx instructions, reload chooses to put psuedo 185 in fr31, which can't be used as a base register in the following: What code exactly makes the choice of fr31? I assume this is in reg_renumber, so it's IRA and not reload that

Re: [PATCH] Fix PR69291, RTL if-conversion bug

2016-02-11 Thread Bernd Schmidt
On 02/10/2016 03:03 PM, Richard Biener wrote: Ok, the following is in testing now. Ok? Thanks, Richard. 2016-02-10 Richard Biener PR rtl-optimization/69291 * ifcvt.c (noce_try_store_flag_constants): Do not allow subexpressions affected by changing the result. Ok

Re: AW: Wonly-top-basic-asm

2016-02-11 Thread Bernd Schmidt
On 02/11/2016 12:49 AM, David Wohlferd wrote: I believe the attached patch addresses all the other outstanding comments. Bernd Edlinger made some thorough comments; I'll just add a few more. I don't think this is a patch we're considering for gcc-6, at least not for the initial release - I im

Re: [PATCH v4] PR48344: Fix unrecognizable insn error with -fstack-limit-register=r2

2016-02-11 Thread Bernd Schmidt
On 02/11/2016 04:12 PM, Kelvin Nilsen wrote: * opts-global.c (handle_common_deferred_options): Introduce and initialize two global variables to remember command-line options specifying a stack-limiting register. * opts.h: Add extern declarations of the two new g

Re: Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading"

2016-02-11 Thread Bernd Schmidt
On 02/11/2016 11:01 AM, Thomas Schwinge wrote: The "avoid offloading" mechanism. Owed to the non-shared-memory offloading architecture, if the compiler/runtime decides to "avoid offloading", then this has to apply to *all* code offloading, for data consistency reasons. Do we agree on that? N

Re: [PATCH] Fix ICE when expanding incorrect shift counts (PR rtl-optimization/69764)

2016-02-11 Thread Bernd Schmidt
On 02/12/2016 12:26 AM, Jakub Jelinek wrote: When expanding shifts with invalid shift counts (negative or too large), the shift count on the GIMPLE level is typically an int mode INTEGER_CST, but when it is passed down through various layers up to expand_binop_directly, we only have one known mod

Fix PR69752, insn with REG_INC being removed as equiv_init insn

2016-02-11 Thread Bernd Schmidt
This seems fairly straightforward: (insn 213 455 216 6 (set (reg:SI 266) (mem/u/c:SI (post_inc:SI (reg/f:SI 267)) [4 S4 A32])) 748 {*thumb1_movsi_insn} (expr_list:REG_EQUAL (const_int -1044200508 [0xc1c2c3c4]) (expr_list:REG_INC (reg/f:SI 267) (nil

Re: [PATCH, reload] PRE_INC with invalid hard reg

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 04:27 AM, Alan Modra wrote: I don't understand this comment. If we're pushing a reload of the inner reg, then the SECONDARY_MEMORY_NEEDED code in push_reload will fire. Why then should there be any need to do anything special in find_reloads_address_1 regarding secondary memory?

Re: [PATCH] Fix PR69771, bogus CONST_INT during shift expansion

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 11:46 AM, Richard Biener wrote: On Fri, 12 Feb 2016, Jakub Jelinek wrote: On Fri, Feb 12, 2016 at 11:23:26AM +0100, Richard Biener wrote: I am testing the following patch which fixes PR69771 where the code doesn't match the comment before it. We get to expand a QImode << QImo

Re: AW: Wonly-top-basic-asm

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 08:05 AM, David Wohlferd wrote: Actually, it was my intent that this apply to v6. It's not like there is a significant change here. We're documenting long-time behavior, and adding a (disabled) warning. The doc patch (minus mentioning the warning) could go in now, but for gcc-6

Re: Fix c/69522, memory management issue in c-parser

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 02:26 PM, Marek Polacek wrote: On Fri, Feb 12, 2016 at 02:17:19PM +0100, Andreas Schwab wrote: FAIL: gcc.dg/pr69522.c (test for excess errors) Excess errors: /daten/aranym/gcc/gcc-20160212/gcc/testsuite/gcc.dg/pr69522.c:2:8: error: struct has no members [-Wpedantic] /daten/aranym/

Re: Fix PR69752, insn with REG_INC being removed as equiv_init insn

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 02:18 PM, Jiong Wang wrote: PR rtl-optimization/69752 * ira.c (update_equiv_regs): When looking for more than a single SET, also take other side effects into account. Will it be better that we don't remove the insn if it has side-effect instead of don't record the equ

Re: [PATCH] Fix PR69771, bogus CONST_INT during shift expansion

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 02:47 PM, Richard Biener wrote: Another possibility, only do the convert_modes from VOIDmode for shift_optab_p's xop1, and keep doing what we've done before otherwise. That looks like a very targeted and safe fix indeed. You two can obviously go ahead and sort this out, I'll jus

Re: [PATCH] Add testcase for ICE in assemble_integer

2016-02-12 Thread Bernd Schmidt
On 02/12/2016 03:08 PM, Marek Polacek wrote: We've got a report that GCC is crashing when building a package on i686; there was an ICE in assemble_integer. Turned out this ICE was already fixed by r233216, so I reduced it and would like to add it to the testsuite. Tested on x86_64-linux and i68

bswap PRs 69714, 67781

2016-02-12 Thread Bernd Schmidt
PR69714 is an issue where the bswap pass makes an incorrect transformation on big-endian targets. The source has a 32-bit bswap, but PA doesn't have a pattern for that. Still, we recognize that there is a 16-bit bswap involved, and generate code for that - loading the halfword at offset 2 from

Re: [PATCH] Fix PR69771, bogus CONST_INT during shift expansion

2016-02-12 Thread Bernd Schmidt
So do you prefer e.g. following? Bootstrapped/regtested on x86_64-linux and i686-linux. - mode1 = GET_MODE (xop1) != VOIDmode ? GET_MODE (xop1) : mode; + mode1 = (GET_MODE (xop1) != VOIDmode || canonicalize_op1) + ? GET_MODE (xop1) : mode; Placement of parentheses is wrong for format

Fix PR69648: lra removes set of PIC reg, then introduces new use

2016-02-12 Thread Bernd Schmidt
This is a PR where LRA creates a read from an uninitialized stack slot. That stack slot is supposed to hold the value of the PIC register. What seems to happen is that we have two passes making different choices: Choosing alt 0 in insn 143: (0) =x (1) 0 (2) r {sse2_pinsrw} [...]

Re: bswap PRs 69714, 67781

2016-02-12 Thread Bernd Schmidt
On 02/13/2016 03:36 AM, John David Anglin wrote: As far as the avcrc.c reduced testcase, it didn't trigger the original bug on hppa-unknown-linux-gnu. Odd, I see the same transformation in the dumps. Do you think you could investigate a bit so we get a useful testcase to add? Bernd

  1   2   3   4   5   6   7   8   9   10   >