Re: [patch,testsuite] Support dg-require-effective-target label_offsets.

2016-10-26 Thread Bernd Schmidt
On 10/26/2016 04:46 PM, Georg-Johann Lay wrote: +if { [istarget avr-*-*] } { + # If the value of a label does not fit into 16 bits, the linker + # will generate a stub (containing a direct jump) and we end up + # with the address of the stub instead of the address of the

Re: [PATCH] Introduce class rtx_writer

2016-10-26 Thread Bernd Schmidt
On 10/26/2016 04:10 PM, David Malcolm wrote: The following patch moves various global state in print-rtl.c into a new "rtx_writer" class, giving us a place to stash additional state relating to dumping (and the possibility of putting extra setup/cleanup in ctor/dtor). I didn't bother renaming

Re: [PATCH] sched: Do not reorder RTX_FRAME_RELATED_P insns (PR78029)

2016-10-26 Thread Bernd Schmidt
On 10/26/2016 03:05 PM, Segher Boessenkool wrote: 2) We do not necessarily have all notes yet, if the port lets dwarf2cfi create notes by itself. Most (or even all?) ports do. Hmm. Are you recording the insns in prologue_contains etc.? You could add dependencies for a prologue insn following

Re: [PATCH] sched: Do not reorder RTX_FRAME_RELATED_P insns (PR78029)

2016-10-26 Thread Bernd Schmidt
On 10/26/2016 01:19 PM, Segher Boessenkool wrote: Separate shrink-wrapping creates this not-all-that-smart code because the profile is quite messed up, and spread_components isn't super smart to begin with. I'll have a patch for that soon, but even with it (and also without separate

Re: [PATCH] sched: Do not reorder RTX_FRAME_RELATED_P insns (PR78029)

2016-10-26 Thread Bernd Schmidt
On 10/25/2016 06:57 PM, Segher Boessenkool wrote: This patch makes scheduling not reorder any RTX_FRAME_RELATED_P insns (relative to each other), to fix PR78029. I originally was a bit worried that this would degrade code quality, but it seems to even improve it: more other insns are scheduled

Re: [PATCH] print_rtx: implement support for reuse IDs

2016-10-25 Thread Bernd Schmidt
On 10/21/2016 10:27 PM, David Malcolm wrote: Thanks. I attemped to use those fields of recog_data, but it doesn't seem to be exactly what's needed here. Yeah, I may have been confused. I'm not sure that just looking at SCRATCHes is the right thing either, but I think you're on the right

Re: [PATCH][check_GNU_style.sh] More aggressively ignore dg-xxx directives

2016-10-24 Thread Bernd Schmidt
On 10/21/2016 10:59 PM, Mike Stump wrote: On Oct 21, 2016, at 12:47 PM, Martin Sebor wrote: The latest patch works as expected for me, both with an operand and with stdin. But since I'm not empowered to approve it one of the others reviewers will need to give it their

Re: [Patch, rtl] PR middle-end/78016, keep REG_NOTE order during insn copy

2016-10-21 Thread Bernd Schmidt
On 10/21/2016 02:04 PM, Jiong Wang wrote: + /* Locate the end of existing REG_NOTES in NEW_RTX. */ + rtx *ptail = _NOTES (new_rtx); + while (*ptail != NULL_RTX) +ptail = (*ptail, 1); I was thinking along the lines of something like this (untested, emit-rtl.c part omitted). Eric can

Re: [PATCH] Change ranges_table and ranges_by_label arrays into vec<*, va_gc> *

2016-10-21 Thread Bernd Schmidt
On 10/20/2016 08:30 PM, Jakub Jelinek wrote: This patch changes these two manually maintained arrays into normal vec.h vectors. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? Looks good. For safety, could you make a before/after comparison on one large sourcefile to make

Re: [Patch, reload, tentative, PR 71627] Tweak conditions in find_valid_class_1

2016-10-21 Thread Bernd Schmidt
On 10/21/2016 12:46 PM, Senthil Kumar Selvaraj wrote: How does this look? Looks good, thanks. Bernd

Re: [Patch, rtl] PR middle-end/78016, keep REG_NOTE order during insn copy

2016-10-21 Thread Bernd Schmidt
On 10/21/2016 09:43 AM, Eric Botcazou wrote: I disagree: there are currently n ways of copying NOTEs in the RTL middle-end, with different properties each time. We need only one primitive in rtlanal.c. I feel the fact that they have different properties means we shouldn't try to unify them:

Re: [PATCH] Start adding selftests for print_rtx

2016-10-21 Thread Bernd Schmidt
On 10/21/2016 02:36 AM, David Malcolm wrote: + /* Test dumping of hard regs. This is inherently target-specific due + to the name. */ +#ifdef I386_OPTS_H + ASSERT_RTL_DUMP_EQ ("(reg:SI ax)", gen_raw_REG (SImode, 0)); +#endif Generally putting in target dependencies like this isn't

Re: RTL frontend, insn recognition, and pointer equality

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 04:51 PM, David Malcolm wrote: (0|scratch:DI) with the insn as a whole looking like: (cinsn (set (mem/v:BLK (0|scratch:DI) [0 A8]) (unspec:BLK [ (mem/v:BLK (reuse_rtx 0) [0 A8]) ]

Re: [Patch, rtl] PR middle-end/78016, keep REG_NOTE order during insn copy

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 05:28 PM, Jiong Wang wrote: This patch makes EXPR_LIST/INST_LIST/INT_LIST insertion bi-directional, the new node can be inserted to either the start or the end of the given list. I can't help but feel that this is somewhat more complicated than it needs to be. One thing to

Re: INSN_UIDs again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 03:55 PM, David Malcolm wrote: Currently the jump insn in question looks like this: (cjump_insn (set (pc) (label_ref 20)) (nil)) With explicit INSN_UIDs it would look like this: (cjump_insn 13 (set (pc)

Re: INSN_UIDs again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 04:20 PM, David Malcolm wrote: What kind of comparison would it do? Use read-rtl to read the "after" representation and compare it on the fly to what we actually have after running the pass under test. Bernd

Re: RTL frontend, insn recognition, and pointer equality

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 11:22 AM, Bernd Schmidt wrote: On 10/20/2016 01:49 AM, David Malcolm wrote: (b) for all codes for which rtx_equal_p requires pointer equality, add some kind of extra ID to the dump, allowing the loader to reconstruct the graph. This could be the pointer itself: (scratch:DI

Re: RTL frontend, insn recognition, and pointer equality

2016-10-20 Thread Bernd Schmidt
On 10/20/2016 01:49 AM, David Malcolm wrote: (b) for all codes for which rtx_equal_p requires pointer equality, add some kind of extra ID to the dump, allowing the loader to reconstruct the graph. This could be the pointer itself: (scratch:DI [0x719ee150]) (scratch:DI

Re: RTL frontend input format again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-19 Thread Bernd Schmidt
On 10/19/2016 07:19 PM, David Malcolm wrote: I already dropped LABEL_NUSES in compact mode in r241120; I think it's possible to regenerate that information. But how would we go about recreating the JUMP_LABEL data? As far as I can tell, it can be set up by reorg.c:make_return_insns via

Re: [PATCH 09/16] Split class rtx_reader into base_rtx_reader vs rtx_reader

2016-10-19 Thread Bernd Schmidt
On 10/18/2016 10:30 PM, David Malcolm wrote: I'm not in love with the names I chose in this patch. It does seem odd having an "rtx_reader" class that can't actually read hierarchical rtx. How about "md_reader" as the base class (with responsibility for the things in read-md.o), and

Re: RTL frontend input format again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-19 Thread Bernd Schmidt
On 10/19/2016 04:35 PM, David Malcolm wrote: In r241120 I dropped all dumping of the JUMP_LABEL when adding the "compact" mode. I'm now running into an issue with this as I update the __RTL in cc1 tests to use the new format, since various passes require the JUMP_INSNs to have JUMP_LABEL data.

Re: [PATCH 0/8] NVPTX offloading to NVPTX: backend patches

2016-10-19 Thread Bernd Schmidt
On 10/18/2016 06:58 PM, Alexander Monakov wrote: The currently published OpenMP version of LULESH simply doesn't use openmp-simd anywhere. This should make it obvious that it won't be anywhere near any reasonable CUDA implementation, and also bound to be below host performance. Besides, it's

Re: [PATCH 3/7] use rtx_insn * more

2016-10-18 Thread Bernd Schmidt
On 10/18/2016 03:54 PM, Trevor Saunders wrote: I do really prefer reading code where variables are declared at first use In general, so do I, but in this case it's one variable out of a whole bunch, which makes the entire thing look a little inconsistent. Bernd

Re: [Patch, reload, tentative, PR 71627] Tweak conditions in find_valid_class_1

2016-10-18 Thread Bernd Schmidt
On 10/18/2016 02:15 PM, Senthil Kumar Selvaraj wrote: Will do both the changes and re-run the reg tests. Ok for trunk if the tests pass for x86_64-pc-linux and avr? Probably but let's see the patch first. Bernd

Re: [PATCH 7/7] make targetm.gen_ccmp{first,next} take rtx_insn **

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: From: Trevor Saunders gcc/ChangeLog: 2016-10-17 Trevor Saunders * ccmp.c (expand_ccmp_expr_1): Adjust. (expand_ccmp_expr): Likewise. (expand_ccmp_next):

Re: [PATCH 5/7] remove cast in delete_insn_chain

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: From: Trevor Saunders gcc/ChangeLog: 2016-10-17 Trevor Saunders * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn * and adjust for that. *

Re: [PATCH 6/7] remove cast from prev_nonnote_insn_bb

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: From: Trevor Saunders gcc/ChangeLog: 2016-10-17 Trevor Saunders * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to rtx_insn *. * rtl.h

Re: [PATCH 4/7] remove cast to rtx_insn * in remove_note

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: 2016-10-17 Trevor Saunders * config/rl78/rl78.c (gen-and_emit_move): Change argument type to rtx_insn *. (transcode_memory_rtx): Likewise. (move_to_acc): Likewise.

Re: [PATCH 3/7] use rtx_insn * more

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: { - rtx r0, r16, eqv, tga, tp, insn, dest, seq; + rtx r0, r16, eqv, tga, tp, dest, seq; + rtx_insn *insn; switch (tls_symbolic_operand_type (x)) { @@ -1025,66 +1026,70 @@ alpha_legitimize_address_1 (rtx

Re: [PATCH 0/8] NVPTX offloading to NVPTX: backend patches

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 07:06 PM, Alexander Monakov wrote: I've just pushed two commits to the branch to fix this issue. Before those, the last commit left the branch in a state where an incremental build seemed ok (because libgcc/libgomp weren't rebuilt with the new cc1), but a from-scratch build was

Re: [Patch, reload, tentative, PR 71627] Tweak conditions in find_valid_class_1

2016-10-18 Thread Bernd Schmidt
On 10/13/2016 08:57 AM, Senthil Kumar Selvaraj wrote: 2016-10-13 Senthil Kumar Selvaraj * reload.c (find_valid_class_1): Allow regclass if atleast one regno in class is ok. Compute and use rclass size based on actually available

Re: [PATCH 2/7] make tablejump_p return the label as a rtx_insn *

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust. (outgoing_edges_match): Likewise. (try_crossjump_to_edge): Likewise. * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.

Re: [PATCH 1/7] make LABEL_REF_LABEL a rtx_insn *

2016-10-18 Thread Bernd Schmidt
On 10/17/2016 09:46 PM, tbsaunde+...@tbsaunde.org wrote: +static inline void +set_label_ref_label (rtx ref, rtx_insn *label) +{ + XCEXP (ref, 0, LABEL_REF) = label; +} I guess I have to ask for a brief function comment for this. Otherwise OK. Bernd

Re: [PATCH 0/8] NVPTX offloading to NVPTX: backend patches

2016-10-17 Thread Bernd Schmidt
On 10/14/2016 06:39 PM, Alexander Monakov wrote: I'm resending the patch series with backend prerequisites for OpenMP offloading to the NVIDIA PTX ISA. The patches are rebased on trunk. What's the status of the branch? Is it expected to work? I'm trying to compile the OpenMP version of these

Re: [PATCH] read-md.c: Move various state to within class rtx_reader

2016-10-17 Thread Bernd Schmidt
On 10/14/2016 08:16 PM, David Malcolm wrote: In this version of the patch, I've moved the global variables to be fields of class rtx_reader, moving their setup to the constructor. The patch adds matching cleanups to the destructor, along with a cleanup of m_base_dir. Doing so requires updating

Re: [PATCH] (v2) Tweaks to print_rtx_function

2016-10-14 Thread Bernd Schmidt
On 10/14/2016 10:12 PM, David Malcolm wrote: gcc/ChangeLog: * print-rtl-function.c (print_edge): Omit "(flags)" when none are set. (print_rtx_function): Update example in comment for... * print-rtl.c (print_rtx_operand_code_r): In compact mode, print

Re: [PATCH] Add "__RTL" to cc1 (v2)

2016-10-14 Thread Bernd Schmidt
On 10/14/2016 09:25 PM, David Malcolm wrote: The behavior probably should be that it runs the remainder of the RTL passes from some specified point, and generates valid assembler (so that we can have dg-do DejaGnu tests). Actually I had imagined that tests would specify before and after RTL

Re: New option -flimit-function-alignment

2016-10-14 Thread Bernd Schmidt
On 10/12/2016 09:27 PM, Denys Vlasenko wrote: Yes, something like "if max_skip >= func_size, temporarily lower max_skip to func_size-1" (because otherwise we can create padding bigger-or-equal to the entire function in size, which is stupid - it's better to just put the function in that space).

Re: [PATCH] Test cases for PR77937

2016-10-14 Thread Bernd Schmidt
On 10/14/2016 01:33 PM, Markus Trippelsdorf wrote: Thanks. ChangeLog entries for the testsuite are not mandatory. They are actually. Bernd

Re: [PATCH] Add "__RTL" to cc1 (v2)

2016-10-14 Thread Bernd Schmidt
On 10/14/2016 11:33 AM, Richard Biener wrote: Ok, so at least for the GIMPLE FE side I thought it's useful to allow a correctness verification with something simpler than pattern matching on the pass output. By means of doing runtime verification of an expected result (this necessarily

Re: basic_block flags, BB_VISITED

2016-10-14 Thread Bernd Schmidt
On 10/14/2016 10:01 AM, Thomas Schwinge wrote: After the "Add Early VRP" GCC trunk commit r240291 (Kugan CC for your information), I've been observing all kinds of OpenACC offloading failures. I now figured out what's going on. The "evrp" pass uses basic_block's BB_VISITED flag. It first

Re: [PATCH] Fix -Wimplicit-fallthrough ICE (PR c/77946)

2016-10-14 Thread Bernd Schmidt
On 10/13/2016 12:27 PM, Bernd Schmidt wrote: On 10/13/2016 12:20 PM, Jakub Jelinek wrote: both relied on TREE_PUBLIC be actually false for LABEL_DECLs, because otherwise they have code later on that can't handle LABE_DECLs (plus callers also not expecting LABEL_DECLs might not bind locally

Re: [PATCH] Remove a few -Wno-error from Makefile.in

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 08:09 PM, Marek Polacek wrote: I thought I had already done this, but apparently not. I added these because of -Wimplicit-fallthrough, but they're no longer needed, so remove it to not suppress any possible useful warnings. Bootstrapped/regtested on x86_64-linux, ppc64-linux

Re: [ping * 2] remove optab functions for [us]divmod_optab in optabs.def

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 07:18 PM, Prathamesh Kulkarni wrote: On 13 October 2016 at 16:56, Bernd Schmidt <bschm...@redhat.com> wrote: On 10/06/2016 07:43 AM, Prathamesh Kulkarni wrote: Pinging patch: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg01038.html If I understand correctly this is a

Re: [PATCH] Omit INSN_LOCATION from compact dumps

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 05:52 PM, David Malcolm wrote: Alternatively, it seems that we might want an additional flag for this. Probably - I imagine most testcases won't care (it's obviously easier to read without locations) but some will. The writing side is maybe less interesting than the reading

Re: [PATCH] Tweaks to print_rtx_function

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 04:08 PM, David Malcolm wrote: I thought it might be useful to brainstorm [1] some ideas on this, so here are various possible ways it could be printed for this use-case: * Offset by LAST_VIRTUAL_REGISTER + 1 (as in the patch), and printed just as a number, giving: (reg:SI 3)

Re: [PATCH] Add "__RTL" to cc1 (v2)

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 03:49 PM, Richard Biener wrote: Does it really run a single pass only? Thus you can't do a { dg-do run } test with __RTL? I think that's really not the intended use-case. To my mind this is for unit-testing: ensuring that a given rtl pass performs the expected transformation

Re: [ping * 2] remove optab functions for [us]divmod_optab in optabs.def

2016-10-13 Thread Bernd Schmidt
On 10/06/2016 07:43 AM, Prathamesh Kulkarni wrote: Pinging patch: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg01038.html If I understand correctly this is a latent issue where nonexistant libfunc names are stored (but not currently used). If that's correct, then OK. Bernd

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

2016-10-13 Thread Bernd Schmidt
On 09/30/2016 10:02 PM, Andreas Schwab wrote: On Feb 11 2016, 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

Re: [PATCH] Fix -Wimplicit-fallthrough ICE (PR c/77946)

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 12:20 PM, Jakub Jelinek wrote: both relied on TREE_PUBLIC be actually false for LABEL_DECLs, because otherwise they have code later on that can't handle LABE_DECLs (plus callers also not expecting LABEL_DECLs might not bind locally or might not bind to the current def. Ok,

Re: [PATCH] Tweaks to print_rtx_function

2016-10-13 Thread Bernd Schmidt
On 10/12/2016 11:04 PM, David Malcolm wrote: This patch implements: * the renumbering of non-virtual pseudos, using LAST_VIRTUAL_REGISTER + 1 as a base. * omitting the edge "(flags)" directive if there aren't any Bootstrap & regrtest in progress. OK for trunk if they pass? I tend to think

Re: [PATCH] (v2) Add a "compact" mode to print_rtx_function

2016-10-13 Thread Bernd Schmidt
On 10/12/2016 10:37 PM, David Malcolm wrote: It didn't pass, due to this change: (print_rtx_operand_code_i): When printing source locations, wrap xloc.file in quotes. [...snip...] [...] The following is a revised version of the patch which updates this test case. Also ok. This

Re: [PATCH] Fix -Wimplicit-fallthrough ICE (PR c/77946)

2016-10-13 Thread Bernd Schmidt
On 10/13/2016 01:25 AM, Jakub Jelinek wrote: Seems 2 functions in varasm.c just use TREE_PUBLIC on LABEL_DECLs together with other kinds of decls, but as TREE_PUBLIC on LABEL_DECLs means now something different, it breaks badly. Which functions are these? PR c/77946 * tree.h

Re: [PATCH] Add a "compact" mode to print_rtx_function

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 07:48 PM, David Malcolm wrote: This patch implements a "compact" mode for print_rtx_function, implementing most of the ideas above. Example of output can be seen here: https://dmalcolm.fedorapeople.org/gcc/2016-10-12/test-switch-compact.rtl which can be contrasted with the

Re: Move OVERRIDE/FINAL from gcc/coretypes.h to include/ansidecl.h

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 04:09 PM, Pedro Alves wrote: Thanks. Here's a follow up patch that I was just testing. Need this if building with "g++ -std=gnu++11", with gcc < 4.7. Lovely. That's ok too if the other one goes in. Bernd

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 01:04 PM, Markus Trippelsdorf wrote: I'm more concerned about the first impression that people will get from this warning. If the fist couple of samples they will look at are clearly bogus (as with the example comments above) they will very quickly disable the warning. And if a

Re: Move OVERRIDE/FINAL from gcc/coretypes.h to include/ansidecl.h

2016-10-12 Thread Bernd Schmidt
On 10/10/2016 09:32 PM, Pedro Alves wrote: From: Pedro Alves Date: 2016-10-10 19:25:47 +0100 Move OVERRIDE/FINAL from gcc/coretypes.h to include/ansidecl.h So that GDB and other projects that share the top level can use them. Seems reasonable. OK unless someone objects by

Re: [PATCH] Implement new hook for max_align_t_align

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 02:43 PM, Richard Biener wrote: I'd say what applies to PA should apply equally well to the pdp11 and the alpha port ... But usually the question is just whether the port has a maintainer and/or whether it is a maintainance burden to keep it (say, last user of obsolete feature X).

Re: [PATCH] Implement new hook for max_align_t_align

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 02:12 PM, John David Anglin wrote: On 2016-10-12, at 4:02 AM, Jakub Jelinek wrote: Since this is PA-RISC, which is essentially dead (neither HPE nor Debian ship it anymore), I stand by my suggestion to bump the fundamental alignment Or just drop support for a dead arch?

Re: Questionable code in gcov-io.c

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 02:10 PM, Marek Polacek wrote: While implementing a warning I noticed this in gcov-io.c: 187 else if (mode == 0) 188 { 189 struct stat st; 190 191 if (fstat (fd, ) < 0) 192 { 193 fclose (gcov_var.file); 194 gcov_var.file = 0;

Re: [patch] Comment in rtl.h how rtx flags are dumped in rtl dumps.

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 01:59 PM, Georg-Johann Lay wrote: This is a no-op change that just adds comments how the various RTX flags will appear in RTL dumps. Ok. Bernd

Re: [PATCH] print_rtx_function: integrate dumping of the CFG into the insn chain

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 01:15 PM, David Malcolm wrote: +/* Determine if INSN is of a kind that can have a basic block. */ + +static bool +can_have_basic_block_p (const rtx_insn *insn) +{ + return GET_RTX_FORMAT (GET_CODE (insn))[2] == 'B'; +} Oof. I suppose they're all at least that long, but still -

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 12:36 PM, Markus Trippelsdorf wrote: Here are some examples: /* Don't break */ /* drop through */ //very popular /* fall though */ /* pass through... */ /* break intentionally omitted */ /* fallthough */ /* Don't break, this is a failed frame! */ /* leave break out

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 12:26 PM, Jakub Jelinek wrote: What do you mean at most? level 0 is the warning disabled, that is the default except for -Wextra. I think level 0 has to be on the table for -Wextra as well, depending on the signal-to-noise ratio of level 1. Collapsing 3-5 levels is a bad

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 12:08 PM, Markus Trippelsdorf wrote: Actually looking more closely it appears that all of the 136 additional warnings for level 2 are bogus, too. Here is an example: switch (class) { case ATA_DEV_SEMB: class = ATA_DEV_ATA;/* some hard drives

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-12 Thread Bernd Schmidt
On 10/12/2016 11:31 AM, Markus Trippelsdorf wrote: On 2016.10.12 at 00:34 +0200, Bernd Schmidt wrote: It's a discussion we should have, but I agree it should be done incrementally. I would argue for =1 as the default. Here are some numbers for an allmodconfig Linux kernel on pcc64le

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-11 Thread Bernd Schmidt
On 10/12/2016 01:12 AM, Jakub Jelinek wrote: What I perhaps should try is removing the Common keyword from the Wimplicit-fallthrough and Wimplicit-fallthrough= entries, e.g. similarly to how Wnonnull-compare is defined just as Var(...) Warning in common.opt (so that it can be used in the

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-11 Thread Bernd Schmidt
On 10/12/2016 12:34 AM, Bernd Schmidt wrote: * c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option. (Wimplicit-fallthrough=): Enable for these languages by -Wextra. This bit looks like it does a bit more magic than is immediately obvious. Could you elaborate how this works? Ok, so

Re: [PATCH] Introduce -Wimplicit-fallthrough={0,1,2,3,4,5}

2016-10-11 Thread Bernd Schmidt
On 10/11/2016 11:52 PM, Jakub Jelinek wrote: The following patch introduces difference warning levels for -Wimplicit-fallthrough warning, so projects can choose if they want to honor only attributes (-Wimplicit-fallthrough=5), or what kind of comments. =4 is very picky and accepts only very

Re: New option -flimit-function-alignment

2016-10-11 Thread Bernd Schmidt
On 10/11/2016 04:23 PM, Denys Vlasenko wrote: This is better than current behavior, but this is not what I want. 15-byte function does not need to be aligned to 16 bytes on a machine with 128-byte L1I cachelines. It needs to be aligned to 128 bytes if there are less than 15 bytes remaining; if

Re: [PATCH 09/16] Split class rtx_reader into base_rtx_reader vs rtx_reader

2016-10-11 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: - rtx_reader_ptr->get_top_level_filename ()); + base_rtx_reader_ptr->get_top_level_filename ()); I wonder if the number of changes could be minimized by retaining the name rtx_reader for the base class, and using something more

Re: [PATCH] Split print_rtx into subroutines

2016-10-11 Thread Bernd Schmidt
On 10/11/2016 05:34 PM, David Malcolm wrote: +static void print_rtx_operand (const_rtx in_rtx, int idx); +static void print_rtx_operand_code_0 (const_rtx in_rtx, int idx); +static void print_rtx_operand_code_e (const_rtx in_rtx, int idx); +static void print_rtx_operand_codes_E_and_V (const_rtx

New option -flimit-function-alignment

2016-10-11 Thread Bernd Schmidt
Denys has submitted some patches to add more capabilities to the -falign-* options, but these still have some issues, and the original ideas seems to have been to allow for large alignments without over-aligning small functions. The following patch implements that idea by taking into account

Re: [PATCH][check_GNU_style.sh] More aggressively ignore dg-xxx directives

2016-10-11 Thread Bernd Schmidt
On 10/11/2016 12:56 PM, Jakub Jelinek wrote: On Tue, Oct 11, 2016 at 11:47:21AM +0100, Kyrill Tkachov wrote: check_GNU_style.sh complains a lot about dg-* directives in the testsuite and in particular about line lengths. There's nothing we can do about the directives and sometimes they're

Re: Fix invalid doloop setup on ia64 (PR target/77738)

2016-10-10 Thread Bernd Schmidt
On 10/10/2016 12:51 PM, Andreas Schwab wrote: On ia64 the doloop pattern can only work with DImode, so it should reject any other mode. Bootstrapped and regtested on ia64-suse-linux. Andreas. PR target/77738 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop

Re: [PATCH][simplify-rtx] Zero-initialise local array in simplify_immed_subreg

2016-10-07 Thread Bernd Schmidt
On 10/07/2016 04:08 PM, Kyrill Tkachov wrote: * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array before merging in bytes to pass down to real_from_target. Ok. Bernd

Re: RTL frontend input format again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-07 Thread Bernd Schmidt
On 10/07/2016 03:26 PM, David Malcolm wrote: We could simply print the INSN_UID for CODE_LABELs; something like this (see the "(code_label 16" below): I think that should work. You appear to have trimmed the idea of enclosing the insns with (basic-block) directives without commenting on it.

Re: C, C++: Fix PR 69733 (bad location for ignored qualifiers warning)

2016-10-07 Thread Bernd Schmidt
On 07/21/2016 08:39 PM, Jeff Law wrote: On 07/15/2016 07:04 AM, Bernd Schmidt wrote: c/ PR c++/69733 * c-decl.c (smallest_type_quals_location): New static function. (grokdeclarator): Try to find the correct location for an ignored qualifier. cp/ PR c++/69733 * decl.c

Fix PR77880

2016-10-07 Thread Bernd Schmidt
eLog === --- gcc/ChangeLog (revision 240861) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,9 @@ +2016-10-07 Bernd Schmidt <bschm...@redhat.com> + + PR tree-optimization/77880 + * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where + necessary. + 2016-10

Re: [PATCH] Assert on invalid bitmap iterations

2016-10-07 Thread Bernd Schmidt
On 10/07/2016 01:07 PM, Richard Biener wrote: On Fri, 7 Oct 2016, Bernd Schmidt wrote: Here, if necessary I'd prefer we create a to_clear bitmap and perform an and_compl operation after the loop. But that's way more expensive -- you allocate memory and perform an additional loop over

Re: [PATCH] Assert on invalid bitmap iterations

2016-10-07 Thread Bernd Schmidt
On 10/07/2016 01:19 PM, Richard Biener wrote: On Fri, 7 Oct 2016, Richard Biener wrote: I think the main issue is that it is not documented what is safe to do (and what are the results) when you modify a bitmap while you are iterating over it. Does the following look ok? Sure. Bernd

Re: [PATCH] Assert on invalid bitmap iterations

2016-10-07 Thread Bernd Schmidt
On 10/07/2016 09:20 AM, Richard Biener wrote: Index: gcc/sched-deps.c === --- gcc/sched-deps.c(revision 240829) +++ gcc/sched-deps.c(working copy) @@ -3992,8 +3992,14 @@ remove_from_deps (struct deps_desc *deps removed =

Re: RTL frontend input format again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

2016-10-07 Thread Bernd Schmidt
On 10/06/2016 09:53 PM, David Malcolm wrote: A benefit of keeping the INSN_UIDs is that if you've spent half an hour single-stepping through RTL modification and know that INSN_UID 1045 is the one that gets corrupted, you can have that insn have UID 1045 in the testcase. Otherwise the UIDs get

Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader

2016-10-06 Thread Bernd Schmidt
Let me just make a first pass over this for minor/obvious issues. +we have little control of the input to that specific pass. We "control over" maybe? +The testsuite is below @file{gcc/testsuite/rtl.dg}. Not sure this needs to be in the manual (I have similar doubts about the entire

Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader

2016-10-06 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: +;; MEM[(struct isl_obj *)] = _obj_map_vtable; +(insn 1045 0 1046 2 (set (reg:SI 480) +(high:SI (symbol_ref:SI ("isl_obj_map_vtable") +[flags 0xc0] +))) + y.c:12702 -1 + (nil)) +(insn 1046 1045

Re: [PATCH 3/3] Extend -falign-FOO=N to N[,M[,N2[,M2]]]

2016-10-06 Thread Bernd Schmidt
On 09/30/2016 07:54 PM, Denys Vlasenko wrote: +struct target_flag_state { + /* Each falign-foo can generate up to two levels of alignment: + -falign-foo=N,M[,N2,M2] */ + struct align_flags x_align_loops[2]; + struct align_flags x_align_jumps[2]; + struct align_flags x_align_labels[2]; +

Re: [PATCH] Fix -fsanitize=undefined with PCH, part #2 (PR sanitizer/66343)

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:51 PM, Marek Polacek wrote: On Wed, Oct 05, 2016 at 05:29:49PM +0200, Jakub Jelinek wrote: Hi! When writing test for this PR, I've noticed ICE if the header is compiled without -fsanitize=undefined, but source is compiled with it. We had various issues like this in the past,

Re: [PATCH 08/16] (partially-approved): Introduce selftest::locate_file

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: selftest: s-selftest s-selftest: $(GCC_PASSES) cc1$(exeext) stmp-int-hdrs - $(GCC_FOR_TARGET) -xc -S -c /dev/null -fself-test + $(GCC_FOR_TARGET) -xc -S -c /dev/null -fself-test=$(srcdir) $(STAMP) $@ I suspect the Makefile

Re: [PATCH 10/16] Introduce class function_reader (v3)

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: * errors.c: Use consistent pattern for bconfig.h vs config.h includes. (progname): Wrap with #ifdef GENERATOR_FILE. (error): Likewise. Add "error: " to message. (fatal): Likewise. (internal_error):

Re: [PATCH 01/16] read-md.c: Add various cleanups to ~rtx_reader

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:14 PM, David Malcolm wrote: The selftests for the RTL frontend require supporting multiple reader instances being alive one after another in-process, so this lack of cleanup would become a leak. + /* Initialize global data. */ + obstack_init (_obstack); + ptr_locs =

Re: [PATCH 07/16] read-md: add some helper functions

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: +void require_char (char expected) > +void require_word_ws (const char *expected) Function name goes on a new line. Otherwise ok. Bernd

Re: [PATCH 06/16] Introduce emit_status::ensure_regno_capacity

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: - regno_reg_rtx = ggc_vec_alloc (crtl->emit.regno_pointer_align_length); + regno_reg_rtx = +ggc_cleared_vec_alloc (crtl->emit.regno_pointer_align_length); Oops, also: formatting, operators go first on a newline. Bernd

Re: [PATCH 06/16] Introduce emit_status::ensure_regno_capacity

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:15 PM, David Malcolm wrote: - /* Make sure regno_pointer_align, and regno_reg_rtx are large - enough to have an element for this pseudo reg number. */ + int cur_size = crtl->emit.regno_pointer_align_length; + if (reg_rtx_no == cur_size) +

Re: [PATCH 05/16] Introduce rtl_data::init_stack_alignment

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 06:14 PM, David Malcolm wrote: Move this part of "expand"'s initialization of crtl into its own method so that it can used by the RTL frontend when postprocessing RTL dumps. gcc/ChangeLog: * cfgexpand.c (pass_expand::execute): Move stack initializations to

Re: [BUILDROBOT] Selftest failed for i686-wrs-vxworks

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 04:14 PM, David Malcolm wrote: Thanks. I'm not able to formally approve these changes, but FWIW these patches look good to me (assuming usual testing). LGTM too, so OK. Bernd

Re: [PATCH][fold-const] Fix native_encode_real for HFmode constants

2016-10-05 Thread Bernd Schmidt
On 10/05/2016 04:06 PM, Kyrill Tkachov wrote: The fix in this patch makes the logic in native_encode_real match the logic in native_interpret_real, I just copied the logic across. Looks reasonable to me. Ok. Bernd

Re: [PATCH] add uClibc target hook (PR bootstrap/77819)

2016-10-05 Thread Bernd Schmidt
On 10/04/2016 10:25 PM, Martin Sebor wrote: Sounds good. Attached is an updated patch reflecting these changes. Restested by building the powerpc64-linux and tic6x-uclinux cross toolchains. (Sharing the Glibc and uClibc implementation of the target hook and defining it in targhooks.c also

Re: [PATCH] add uClibc target hook (PR bootstrap/77819)

2016-10-04 Thread Bernd Schmidt
On 10/04/2016 04:34 PM, Martin Sebor wrote: I copied the conditional from config/linux.h but I admit I don't fully understand when the macro is defined. AFAICT it's done in config.gcc, for a limited set of targets. Should I still remove it from targhooks.c? That is compiled for all

Re: [PATCH] read-md.c: track column numbers

2016-10-04 Thread Bernd Schmidt
On 09/30/2016 05:41 AM, David Malcolm wrote: This patch adds rudimentary column-number tracking to read-md.c, to give more precise locations for messages for problems in .md files (and in the RTL frontend I'm working on): ../../src/gcc/config/i386/i386.md:1204:22: error: unknown rtx code

Re: [PATCH] add uClibc target hook (PR bootstrap/77819)

2016-10-04 Thread Bernd Schmidt
On 10/03/2016 12:02 AM, Martin Sebor wrote: I couldn't find a good uclibc-only file where to put the new definition of the hook so I conditionally added it to targethooks.c. diff --git a/gcc/targhooks.c b/gcc/targhooks.c index d75650f..77b4a18 100644 --- a/gcc/targhooks.c +++

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