Re: [00/32] Support multiple ABIs in the same translation unit

2019-09-12 Thread Steven Bosscher
On Wednesday, September 11, 2019, Richard Sandiford < richard.sandif...@arm.com> wrote:. > > > Sorry for the long write-up. > > Richard > *thanks* for the long write-up! Ciao! Steven

Re: [PATCH] rs6000: Make CSE'ing __tls_get_addr calls possible

2019-03-24 Thread Steven Bosscher
On Sun, Mar 24, 2019 at 12:46 AM Segher Boessenkool wrote: > > CSE does not consider calls, not even const calls. This patch puts a > REG_EQUAL note on the pseudo we assign the __tls_get_addr result to, > so that those pseudos can be CSE'd and the extra calls deleted as dead > code. Hi Segher, T

Re: [PATCH] Fix PR89150, GC of tree-form bitmaps

2019-02-04 Thread Steven Bosscher
On Mon, Feb 4, 2019 at 2:16 PM Richard Biener wrote: > When I introduced tree-form bitmaps I forgot to think about GC. > The following drops the chain_prev annotation to make the marker > work for trees. I don't understand this patch. How are the nodes in a bitmap tree now to be found for marking

Re: [PATCH] Remove a barrier when EDGE_CROSSING is remoed (PR lto/88858).

2019-02-04 Thread Steven Bosscher
On Mon, Feb 4, 2019 at 9:10 AM Martin Liška wrote: > > @Honza: PING^1 > >>> + else > >>> + { > >>> + if (PREV_INSN (insn)) > >>> + SET_NEXT_INSN (PREV_INSN (insn)) = NEXT_INSN (insn); > >>> + if (NEXT_INSN (insn)) > >>> + SET_PREV_INSN (NEXT_INSN (insn)

Re: [PATCH] sched-ebb.c: avoid moving table jumps (PR rtl-optimization/88423)

2019-01-22 Thread Steven Bosscher
On Fri, Jan 18, 2019 at 5:43 PM David Malcolm wrote: > (1) What does GCC mean by "ebb" in this context? In this context, the EBB is what Muchnick would call a trace. Ciao! Steven

Re: [PATCH] Add splay-tree "view" for bitmap

2018-10-19 Thread Steven Bosscher
On Fri, Oct 19, 2018 at 8:46 AM Richard Biener <> wrote: > Yeah. I also noticed some 'obvious' shortcomings in the heuristics... > I guess in the end well predicted branches in the out of line code are > important... What also would help is to put bitmaps on their own obstack to improve cache loc

Re: [PATCH][RFC] Fix PR63155 (some more)

2018-09-19 Thread Steven Bosscher
On Wed, Sep 19, 2018 at 3:06 PM Richard Biener wrote: > If we'd only had a O(log n) search sparse bitmap implementation ... > (Steven posted patches to switch bitmap from/to such one but IIRC > that at least lacked bitmap_first_set_bit). But bitmap_first_set_bit would be easy to implement. Just ta

Re: [PATCH] Remove verify_no_unreachable_blocks

2018-08-23 Thread Steven Bosscher
On Thu, Aug 23, 2018 at 1:18 PM Richard Biener <> wrote: > -/* Verify that there are no unreachable blocks in the current function. */ > - > -void > -verify_no_unreachable_blocks (void) > -{ > - find_unreachable_blocks (); > - > - basic_block bb; > - FOR_EACH_BB_FN (bb, cfun) > -gcc_assert

Re: [PATCH 4/4] rs6000: Delete old add+cmp patterns

2018-08-17 Thread Steven Bosscher
On Thu, Aug 16, 2018 at 7:14 PM, Segher Boessenkool <> wrote: > There are some patterns that recognise the parallel of an add and a > compare, and split it back to the same two insns. This apparently > helped RIOS machines before RTL scheduling existed? Either way, it > isn't helpful anymore, and

Re: [PATCH 2/4] Switch other switch expansion methods into classes.

2018-06-20 Thread Steven Bosscher
On Tue, Jun 12, 2018 at 10:44 PM, Jeff Law wrote: > On 06/05/2018 01:15 AM, marxin wrote: >> >> + The definition of "much bigger" depends on whether we are >> + optimizing for size or for speed. If the former, the maximum >> + ratio range/count = 3, because this was found to be the opt

Re: [PATCH][RFC] Make expansion of balanced binary trees of switches on tree level.

2017-08-03 Thread Steven Bosscher
On Thu, Aug 3, 2017 at 2:56 PM, Richard Biener wrote: > I think the main reason for not doing it early is the benefit is small > (unless it is GIMPLE optimizations triggering) Agree. > and we can't get rid of > switches completely because we eventually have to support casei RTL expansion. > (and

Re: [PATCH][RFC] Make expansion of balanced binary trees of switches on tree level.

2017-08-03 Thread Steven Bosscher
On Wed, Aug 2, 2017 at 1:20 PM, Martin Liška wrote: > Hello. > > After some discussions with Honza, I've decided to convert current code in > stmt.c that > is responsible for switch expansion. More precisely, I would like to convert > the code > to expand gswitch statements on tree level. Current

Re: [PATCH][RFC] Make expansion of balanced binary trees of switches on tree level.

2017-08-03 Thread Steven Bosscher
On Wed, Aug 2, 2017 at 1:51 PM, Richard Biener wrote: > On Wed, Aug 2, 2017 at 1:20 PM, Martin Liška wrote: >> Hello. >> >> After some discussions with Honza, I've decided to convert current code in >> stmt.c that >> is responsible for switch expansion. More precisely, I would like to convert >>

Re: [PATCH] Fix PR middle-end/81564: ICE in group_case_labels_stmt()

2017-07-27 Thread Steven Bosscher
On Wed, Jul 26, 2017 at 9:35 PM, Peter Bergner wrote: > The test case for PR81564 exposes an issue where the case labels for a > switch statement point to blocks that have already been removed by an > earlier call to cleanup_tree_cfg(). In that case, the code in > group_case_labels_stmt() that doe

Re: [PATCH][PR 59521] Respect probabilities when expanding switch statement

2017-07-20 Thread Steven Bosscher
On Tue, Jul 18, 2017 at 9:04 AM, Yuri Gribov wrote: > Hi all, > > Currently all cases in switch statement are treated as having equal > probabilities which causes suboptimal code as demonstrated in > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59521 . This patch > modifies expander to select pivot

Re: [PATCH] Improve RTL ifcvt for empty else_bb (PR rtl-optimization/80491)

2017-04-29 Thread Steven Bosscher
On Wed, Apr 26, 2017 at 1:25 PM, Jakub Jelinek wrote: > Or shall we just: > --- gcc/alias.c 2017-04-25 15:51:31.072923325 +0200 > +++ gcc/alias.c 2017-04-26 13:23:55.595048464 +0200 > @@ -3221,6 +3221,8 @@ memory_modified_in_insn_p (const_rtx mem > { >if (!INSN_P (insn)) > return false; >

Re: [PATCH] Reenable RTL sharing verification

2016-11-30 Thread Steven Bosscher
On Wed, Nov 30, 2016 at 1:08 PM, Jakub Jelinek wrote: > Hi! > > The http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01055.html > change broke all RTL sharing verification, even with --enable-checking=rtl > we don't verify anything for the last 3.5 years. Eh, I guess "oops!" doesn't quite cover that e

Re: [PATCH] bb-reorder: Improve compgotos pass (PR71785)

2016-11-02 Thread Steven Bosscher
On Wed, Nov 2, 2016 at 10:02 AM, Richard Biener wrote: > On Mon, Oct 31, 2016 at 4:35 PM, Segher Boessenkool wrote: >> On Mon, Oct 31, 2016 at 04:09:48PM +0100, Steven Bosscher wrote: >>> On Sun, Oct 30, 2016 at 8:10 PM, Segher Boessenkool wrote: >>> > + cfg

Re: [PATCH] bb-reorder: Improve compgotos pass (PR71785)

2016-10-31 Thread Steven Bosscher
On Sun, Oct 30, 2016 at 8:10 PM, Segher Boessenkool wrote: > This patch solves this problem by simply running the duplicate_computed_gotos > pass again, as long as it does any work. The patch looks much bigger than > it is, because I factored out two routines to simplify the control flow. It's ma

Re: [PATCH, libfortran] PR 48587 Newunit allocator

2016-10-18 Thread Steven Bosscher
On Thu, Oct 13, 2016 at 5:16 PM, Janne Blomqvist wrote: > +static bool *newunits; You could make this a bitmap (like sbitmap). A bit more code but makes a potentially quadratic search (when opening many units) less time consuming. Ciao! Steven

Re: [PATCH] df: Keep return address register undefined until epilogue_completed

2016-08-29 Thread Steven Bosscher
On Mon, Aug 29, 2016 at 6:50 PM, Segher Boessenkool wrote: > This patch changes that so that that def is only added after > epilogue_completed. ... > Does this work on all other targets? Guessing: not for targets where INCOMING_RETURN_ADDR_RTX is the stack register? That'd be at least h8300, rl78,

Re: Init df for split pass since some target use REG_NOTE in split pattern

2016-08-09 Thread Steven Bosscher
On Mon, Aug 8, 2016 at 9:45 PM, Jeff Law wrote: > > I'm pretty sure we do _not_ want it for split_all_insns_noflow since that's > used when the CFG is not necessarily correct and thus I don't see how we can > reliably have death/unused notes. Actually, trying to initializing DF without a valid CF

Re: [PATCH] Add code-hoisting to GIMPLE

2016-07-04 Thread Steven Bosscher
On Mon, Jul 4, 2016 at 1:26 PM, Richard Biener wrote: > > The following patch is Stevens code-hoisting based on PRE forward-ported > and fixed for bootstrap plus the case of hoisting code across loops > which we generally do not want (expressions in the loop exit target block > are antic-in through

Re: [PATCH 1/3] cfgcleanup: Bugfix in try_simplify_condjump

2016-05-03 Thread Steven Bosscher
On Tue, May 3, 2016 at 8:59 AM, Segher Boessenkool wrote: > If the jump_block here contains just a return, we will crash later > in invert_jump. Don't allow that case. But if jump_block contains a return, then it isn't the EXIT_BLOCK for the function. Is the conditional jump a conditional return

[patch] cleanups for vtable-verify

2016-05-01 Thread Steven Bosscher
Hello, This patch is random cleanups on the vtable-verify code. OK for trunk? Ciao! Steven gcc/ * vtable-verify.h (verify_vtbl_ptr_fndecl): Add GTY markers. (num_vtable_map_nodes): Remove extern declaration. (vtbl_mangled_name_types, vtbl_mangled_name_ids): Likewise. * vt

Re: [PATCH] Ensure noce_convert_multiple_sets handles only multiple sets (PR rtl-optimization/69570)

2016-02-01 Thread Steven Bosscher
On Mon, Feb 1, 2016 at 9:32 AM, Jakub Jelinek wrote: > Bootstrapped/regtested on > {x86_64,i686,ppc64,ppc64le,s390,s390x,aarch64}-linux, > ok for trunk? OK. Browny points for opting out of the loop over all insns in the basic block when count > limit. Ciao! Steven

Re: Try to update dominance info in tree-call-cdce.c

2015-10-31 Thread Steven Bosscher
On Fri, Oct 30, 2015 at 2:11 PM, Richard Sandiford wrote: > Is the split_block change really so bad? IMHO: Yes. split_block just splits some basic block B into two blocks B1/B2 somewhere in the middle of B. The dominance relations between B1 and B2 are obvious and intuitive. The new flag to spli

Re: [PATCH 2/4] bb-reorder: Add the "simple" algorithm

2015-09-24 Thread Steven Bosscher
On Thu, Sep 24, 2015 at 12:06 AM, Segher Boessenkool wrote: > + /* First, collect all edges that can be optimized by reordering blocks: > + simple jumps and conditional jumps, as well as the function entry edge. > */ > + > + int n = 0; > + edges[n++] = EDGE_SUCC (ENTRY_BLOCK_PTR_FOR_FN (cf

Re: [PATCH 1/4] bb-reorder: Split out STC

2015-09-24 Thread Steven Bosscher
On Thu, Sep 24, 2015 at 12:06 AM, Segher Boessenkool wrote: > This first patch simply factors code a little bit. > > > 2015-09-23 Segher Boessenkool > > * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New > function, factored out from ... > (reorder_basic_blo

Re: [PATCH][RTL-ifcvt] Make non-conditional execution if-conversion more aggressive

2015-08-09 Thread Steven Bosscher
On Fri, Jul 31, 2015 at 7:26 PM, Jeff Law wrote: > > So there's a tight relationship between the implementation of > bbs_ok_for_cmove_arith and insn_valid_noce_process_p. If there wasn't, then > we'd probably be looking to use note_stores and note_uses. Perhaps I'm missing something, but what is

Re: [PATCH] Fix PR66168: ICE due to incorrect invariant register info

2015-05-19 Thread Steven Bosscher
On Tue, May 19, 2015 at 12:17 PM, Thomas Preud'homme wrote: > 2015-05-18 Thomas Preud'homme > > PR rtl-optimization/66168 > * loop-invariant.c (move_invariant_reg): Set inv->reg to destination > of inv->insn when moving an invariant without introducing a temporary >

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Steven Bosscher
On Thu, Apr 16, 2015 at 10:43 AM, Thomas Preud'homme wrote: > 2015-04-15 Thomas Preud'homme > Steven Bosscher > > * cprop.c (cprop_reg_p): New. > (hash_scan_set): Use above function to check if register ca

Re: [PR65768] Check rtx_cost when propagating constant

2015-04-15 Thread Steven Bosscher
On Wed, Apr 15, 2015 at 9:53 AM, Kugan wrote: > 2015-04-15 Kugan Vivekanandarajah < > > Zhenqiang Chen <> > > PR target/65768 > * cprop.c (try_replace_reg): Check cost of constants before > propagating. > + > + /* For CONSTANT_P (to), loop2_invariant pass might ho

Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting

2015-04-14 Thread Steven Bosscher
On Tue, Apr 14, 2015 at 5:06 PM, Jiong Wang wrote: > but, after some investigation I found gcc actually generate difference > code when debug info enabled because > DEBUG_INSN will affect data flow analysis. It should not, so that's a bug. > So I think this stage2/3 binary difference is acceptab

Re: [PATCH] Fix rtl_split_edge (PR rtl-optimization/65761)

2015-04-14 Thread Steven Bosscher
On Tue, Apr 14, 2015 at 2:58 PM, Jakub Jelinek wrote: > PR rtl-optimization/65761 > * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use > get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)). > > --- gcc/cfgrtl.c.jj 2015-04-12 21:50:18.0 +0200 > +

Re: breakage with "[PATCH] combine: Disregard clobbers in another test for two SETs (PR65693)"

2015-04-09 Thread Steven Bosscher
On Thu, Apr 9, 2015 at 2:41 PM, Segher Boessenkool wrote: > It would be nice if there would be some cc0 target in the compile farm, > since cc0 isn't going away any time soon :-( In this case it would be enough to replace the "#ifndef/#ifdef HAVE_cc0" code with "if (HAVE_cc0)". That's the simples

Re: [PATCH] Disable ppc/spu context sensitive macros for CLK_ASM preprocessing (PR preprocessor/61977)

2015-04-01 Thread Steven Bosscher
On Wed, Apr 1, 2015 at 10:40 AM, Jakub Jelinek wrote: > Hi! > > The context sensitive macros are inherently C/C++ specific, so trying to > expand them into anything when preprocessing assembler doesn't make any > sense to me. Why are the -c.c cpp builtins defined at all when preprocessing assembly

Re: [PR64164] drop copyrename, integrate into expand

2015-03-30 Thread Steven Bosscher
On Sat, Mar 28, 2015 at 8:21 PM, Alexandre Oliva wrote: > Regstrapped on x86_64-linux-gnu native and on i686-pc-linux-gnu native > on x86_64, so without lto plugin. The only regression is in > gcc.dg/guality/pr54200.c, that explicitly disables VTA. What about memory footprint? IIRC this pass was

Re: [PATCH 3/3] Fix dbr_schedule for -freorder-blocks-and-partition

2015-03-24 Thread Steven Bosscher
On Tue, Jan 27, 2015 at 12:52 AM, Kaz Kojima wrote: > This patch is to fix 2 issues found in dbr_schedule when trying to > fix PR target/64761. The first is relax_delay_slots removes > the jump insn in the insns like below: > > (jump_insn/j 74 58 59 (set (pc) (label_ref:SI 29)) ...) > (barrier 59

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-23 Thread Steven Bosscher
On Mon, Mar 23, 2015 at 12:01 PM, Thomas Preud'homme wrote: > What about the cprop_reg_p that needs to be negated? Did I miss something > that makes it ok? You didn't miss anything. I sent the wrong patch. The one I tested on ppc64 also has the condition reversed: @@ -1328,9 +1329,8 @@ implicit_

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Steven Bosscher
On Fri, Mar 20, 2015 at 11:27 AM, Thomas Preud'homme wrote: > Sorry, I missed the parenthesis. REG_P needs indeed to be kept. I'd be > tempted to use !HARD_REGISTER_P instead since REG_P is already > checked but I don't mind either way. I put the cprop_reg_p check there instead of !HARD_REGISTER_P

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Steven Bosscher
On Tue, Feb 17, 2015 at 3:51 AM, Thomas Preud'homme wrote: >> > - else if (REG_P (src) >> > - && REGNO (src) >= FIRST_PSEUDO_REGISTER >> > - && REGNO (src) != regno) >> > - { >> > - if (try_replace_reg (reg_used, src, insn)) >> > + else if (src_r

Re: [PATCH][gcse] Use emit_move_insn rather than creating SET rtx and emitting that

2015-03-19 Thread Steven Bosscher
On Thu, Mar 19, 2015 at 2:45 PM, Kyrill Tkachov wrote: > As pointed out by James Greenhalgh offline the correct thing would have been > to do an > emit_move_insn to let the backend expanders do the right thing (especially > in the concerned > testcase gcc.c-torture/execute/pr65427.c that uses 256-b

Re: [PATCH] Run DCE after if conversion

2015-03-10 Thread Steven Bosscher
On Tue, Mar 10, 2015 at 8:57 AM, Andreas Krebbel wrote: > > * gcc/ifcvt.c (if_convert): > ...yes...? > diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c > index a3e3e5c..d2040af 100644 > --- a/gcc/ifcvt.c > +++ b/gcc/ifcvt.c > @@ -4626,6 +4626,13 @@ if_convert (bool after_combine) >

Re: [PATCH] Improve PR44563

2015-03-09 Thread Steven Bosscher
On Mon, Mar 9, 2015 at 4:12 PM, Richard Biener wrote: > ! /* This is a really poor hash function, but it is what the current code > uses, > ! so I am reusing it to avoid an additional axis in testing. */ This is a bit silly as a comment, because after your patch the "current" code is the

Re: [PATCH, stage1] Move insns without introducing new temporaries in loop2_invariant

2015-03-09 Thread Steven Bosscher
On Thu, Mar 5, 2015 at 10:53 AM, Thomas Preud'homme wrote: > diff --git a/gcc/dominance.c b/gcc/dominance.c > index 33d4ae4..09c8c90 100644 > --- a/gcc/dominance.c > +++ b/gcc/dominance.c > @@ -982,7 +982,7 @@ nearest_common_dominator_for_set (enum cdi_direction dir, > bitmap blocks) > > A_Dom

Re: [PATCH] [RTL] Relax CSE check to set REG_EQUAL notes.

2015-03-09 Thread Steven Bosscher
On Wed, Mar 4, 2015 at 12:09 PM, Alex Velenko wrote: > For example, in arm testcase pr43920-2.c, CSE previously decided not to put > an "obvious" note on insn 9, as set value was the same as note value. > At the same time, other insns set up as -1 were set up through a register > and did get a note

Re: [patch, avr] Take 2: Fix PR64331: insn output and insn length computation rely on REG_DEAD notes.

2015-03-02 Thread Steven Bosscher
On Sat, Feb 28, 2015 at 5:38 PM, Georg-Johann Lay wrote: > Am 02/26/2015 um 11:45 PM schrieb Steven Bosscher: >> >> On Thu, Feb 26, 2015 at 8:35 PM, Georg-Johann Lay wrote: >>> >>> Take #2 introduces a new, avr-specific rtl pass whose sole purpose is to >>

Re: [patch, avr] Take 2: Fix PR64331: insn output and insn length computation rely on REG_DEAD notes.

2015-02-26 Thread Steven Bosscher
On Thu, Feb 26, 2015 at 8:35 PM, Georg-Johann Lay wrote: > Take #2 introduces a new, avr-specific rtl pass whose sole purpose is to > rectify notes. The pass is scheduled right before cfg does down (right > before .*free_cfg) so that cfg and hence df machinery is available. > > Regression tests lo

Re: [PATCH] gcc/reload.c: Initialize several arrays before use them in find_reloads()

2015-02-23 Thread Steven Bosscher
On Mon, Feb 23, 2015 at 11:26 PM, Jeff Law wrote: > On 02/22/15 02:02, Chen Gang S wrote: >> >> It is for Bug65117, after this fix, ".i" file can be passed compiling. >> >>- 'this_alternative_win' is not initialized before use it: for the >> first looping 0, it initializes 'this_alternativ

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Steven Bosscher
On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme wrote: > /* Subroutine of cprop_insn that tries to propagate constants into > @@ -1044,40 +1042,41 @@ cprop_insn (rtx_insn *insn) > - /* Constant propagation. */ > - if (cprop_constant_p (src)) > - { > - if (constprop

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Steven Bosscher
On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme wrote: > Hi, > > The RTL cprop pass in GCC operates by doing a local constant/copy propagation > first and then a global one. In the local one, if a constant cannot be > propagated (eg. due to constraints of the destination instruction) a copy

Re: [PATCH] Update BBs in cleanup_barriers pass (PR rtl-optimization/61058)

2015-01-26 Thread Steven Bosscher
On Mon, Jan 26, 2015 at 10:11 AM, Jakub Jelinek wrote: > On Mon, Jan 26, 2015 at 10:06:05AM +0100, Eric Botcazou wrote: >> > While the cleanup_barriers runs after cleaning up BLOCK_FOR_INSNs, >> > some targets like i?86/x86_64 choose to populate it again during machine >> > reorg and some target do

Re: Housekeeping work in backends.html

2015-01-20 Thread Steven Bosscher
On Wed, Jan 7, 2015 at 9:42 AM, Eric Botcazou wrote: >> the attached patch removes obsolete ports (c4x, m68hc11 and ms1), toggles >> the 'p' letter and adjust accordingly (only avr, fr30, m68k, mcore, rs6000 >> and sh still use define_peephole) and removes trailing spaces. > > Same treatment for th

Re: [PATCH 1/2] PR debug/63239 Add DWARF representation for C++11 deleted member function.

2014-10-06 Thread Steven Bosscher
On Mon, Oct 6, 2014 at 9:54 AM, Mark Wielaard wrote: > Just removing the # prefix (but keeping the space) from > scan-assembler-times should work for both our cases. I just don't know > why our .s outputs look different. Wild guess: different comment marker in the target's assembly language? Ciao

Re: [PATCH] PR63404, gcc 5 miscompiles linux block layer

2014-09-30 Thread Steven Bosscher
On Tue, Sep 30, 2014 at 6:51 PM, Richard Earnshaw wrote: > It's not just clobbers; it ignores patterns like > > (parallel > [(set (a) (...) > (set (b) (...)]) > [(reg_note (reg_unused(b))] > > Which is probably fine before register allocation but definitely > something you have to think about af

Re: [PATCH] Fix signed integer overflow in gcc/data-streamer.c

2014-09-28 Thread Steven Bosscher
On Sun, Sep 28, 2014 at 2:22 PM, Markus Trippelsdorf wrote: > Running the testsuite with a -fsanitize=undefined instrumented compiler > shows: > % gcc -O2 -flto -fno-use-linker-plugin -flto-partition=none > testsuite/gcc.dg/torture/pr28045.c > gcc/data-streamer.c:113:45: runtime error: negation o

Re: [PATCH] Put all MAINTAINERS email addresses into <...>

2014-09-26 Thread Steven Bosscher
On Fri, Sep 26, 2014 at 3:09 PM, Segher Boessenkool wrote: > On Thu, Sep 25, 2014 at 11:10:00PM +0200, Jan-Benedict Glaw wrote: >> Resending this email. Seems some spam filter ate it due to the many >> email addresses... > > Will now all/most/many further patches to MAINTAINERS hit spam filters > a

Re: [Patch 1/4] Hookize MOVE_BY_PIECES_P, remove most uses of MOVE_RATIO

2014-09-25 Thread Steven Bosscher
On Thu, Sep 25, 2014 at 4:57 PM, James Greenhalgh wrote: > * doc/tm.texi.in (MOVE_BY_PIECES_P): Reduce documentation to a stub > describing that this macro is deprecated. Remove it entirely and poison it in system.h? It takes changes to only a few targets: mips, arc, s390, and sh.

Re: [PATCH] Do not remove labels with LABEL_PRESERVE_P

2014-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2014 at 2:51 PM, Ilya Enkovich wrote: > 2014-09-24 16:47 GMT+04:00 Steven Bosscher : > It is not a control flow instruction. It copies value of instruction > pointer into a general purpose register. Therefore REG_LABEL_OPERAND > seems to be correct. OK - sorry for

Re: [PATCH] Do not remove labels with LABEL_PRESERVE_P

2014-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2014 at 2:30 PM, Ilya Enkovich wrote: > I didn't generate references separately from label. Now I found an > old patch and a test where this problem appeared. In this patch I > moved set_rip generation currently performed in ix86_expand_prologue > into expand pass. And I got foll

Re: [PATCH] Do not remove labels with LABEL_PRESERVE_P

2014-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2014 at 11:57 AM, Ilya Enkovich wrote: > 2014-09-24 13:30 GMT+04:00 Steven Bosscher : >>> Description of LABEL_PRESERVE_P says label that should always be >>> considered to be needed. >> >> It's more specific than that, really: >> >&

Re: [PATCH] Do not remove labels with LABEL_PRESERVE_P

2014-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2014 at 8:41 AM, Ilya Enkovich wrote: > 2014-09-23 20:06 GMT+04:00 Jeff Law: >> On 09/23/14 10:01, Steven Bosscher wrote: >>> Are you sure this patch is necessary, and is not just papering over >>> another problem? In the past, all cases I've se

Re: [PATCH] Do not remove labels with LABEL_PRESERVE_P

2014-09-23 Thread Steven Bosscher
On Fri, Sep 19, 2014 at 10:03 PM, Jeff Law wrote: > On 09/19/14 13:36, Ilya Enkovich wrote: >> >> Hi, >> >> During my work on enabling pseudo PIC register I've found that cfg cleaunp >> may remove lables with LABEL_PRESERVE_P set to 1. In my case I generated >> SET_RIP during expand pass and cfg

Re: ptx preliminary rtl patches [3/4]

2014-09-11 Thread Steven Bosscher
On Thu, Sep 11, 2014 at 6:19 PM, Bernd Schmidt wrote: >>> What do you expect that function to do different? It returns the correct >>> value. >>> >> >> No different. Just that if you want to check whether DECL is a global >> variable then we have a predicate for it. So why use TREE_STATIC >> instea

Re: ptx preliminary rtl patches [3/4]

2014-09-11 Thread Steven Bosscher
On Thu, Sep 11, 2014 at 6:06 PM, Bernd Schmidt wrote: > On 09/11/2014 05:55 PM, Steven Bosscher wrote: >> >> On Thu, Sep 11, 2014 at 3:26 PM, Bernd Schmidt wrote: >>> >>> nvptx will be the first port to use BImode and have STORE_FLAG_VALUE==-1. >>> That

Re: ptx preliminary rtl patches [4/4]

2014-09-11 Thread Steven Bosscher
On Thu, Sep 11, 2014 at 3:27 PM, Bernd Schmidt wrote: > It turns out that we're calling eliminate_regs for global variables which > can't possibly have eliminable regs in their decl. At that point, > reg_eliminate can be NULL. This patch avoids unnecessary work, and allows us > to add an assert to

Re: ptx preliminary rtl patches [3/4]

2014-09-11 Thread Steven Bosscher
On Thu, Sep 11, 2014 at 3:26 PM, Bernd Schmidt wrote: > nvptx will be the first port to use BImode and have STORE_FLAG_VALUE==-1. > That has exposed a bug in combine where we can end up calling > num_sign_bit_copies for a BImode value. However, the return value is always > 1 in that case, so it doe

Re: ptx preliminary rtl patches [2/4]

2014-09-11 Thread Steven Bosscher
On Thu, Sep 11, 2014 at 3:25 PM, Bernd Schmidt wrote: > Bootstrapped and tested on x86_64-linux, together with the other patches. > Ok? This is OK. Ciao! Steven

Re: [PATCH] Force rtl templates to be inlined

2014-09-02 Thread Steven Bosscher
On Tue, Sep 2, 2014 at 9:22 AM, Andrew Pinski wrote: > On Tue, Sep 2, 2014 at 12:20 AM, Andi Kleen wrote: >> >>> there have been bugs in the past in the area of always_inline too. >> >> You're arguing for my patch. It would find those bugs. > > > No I am arguing against it since the older versions

Re: [FORTRAN PATCH] Quash two -Wlogical-not-parentheses warnings

2014-09-01 Thread Steven Bosscher
On Mon, Sep 1, 2014 at 3:23 PM, Marek Polacek wrote: > diff --git gcc/fortran/interface.c gcc/fortran/interface.c > index b210d18..68d8545 100644 > --- gcc/fortran/interface.c > +++ gcc/fortran/interface.c > @@ -2014,7 +2014,7 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, >if (fo

Re: [patch] Why xstrdup cgraph node names for dumpfiles?

2014-08-26 Thread Steven Bosscher
On Tue, Aug 26, 2014 at 10:52 PM, Uros Bizjak wrote: > Hello! > >> I noticed most of the cgraph and IPA files use xstrdup for cgraph node >> names when printing to dump_file. Very leaky... >> >> What is the reason for all those xstrdups? I couldn't think of any. > > Please see [1] and [2]. > > [1]

[patch] Why xstrdup cgraph node names for dumpfiles?

2014-08-26 Thread Steven Bosscher
Hello Martin, Honza, I noticed most of the cgraph and IPA files use xstrdup for cgraph node names when printing to dump_file. Very leaky... What is the reason for all those xstrdups? I couldn't think of any. Thoughts? Ciao! Steven * cgraph.c (cgraph_node::get_create): Don't xstrdup cgr

Re: [BUILDROBOT][PATCH] frv-linux fallout (was: [PATCH 009/236] Replace BB_HEAD et al macros with functions)

2014-08-25 Thread Steven Bosscher
On Mon, Aug 25, 2014 at 9:29 PM, Mike Stump wrote: > On Aug 25, 2014, at 7:08 AM, David Malcolm wrote: >> It's too late now to switch to this approach, so in the meantime I've >> been working on ways to make my bootstraps as fast as possible. > > -j64 works wonders. :-) Though, it is annoying wat

[patch] PR fortran/61669

2014-08-23 Thread Steven Bosscher
Hello, This bug is an error recovery issue. A data declaration is parsed and accepted, and added to gfc_current_ns->data, but the statement is rejected. The rejected data decl is not rolled back, causing memory corruption later on. Proposed fix is to roll back DATA for rejected statements. Boots

[patch] PR fortran/62135

2014-08-21 Thread Steven Bosscher
Hello, Low-hanging fruit, almost embarassing to fix. But then again I caused this bug -- in 1999 or so :-) Will commit after testing. Ciao! Steven fortran/ * resolve.c (resolve_select): Fix list traversal in case the last element of the CASE list was dropped as unreachable code

Re: [RFC, PATCH][LRA, MIPS] ICE: in decompose_normal_address, at rtlanal.c:5817

2014-08-15 Thread Steven Bosscher
On Fri, Aug 15, 2014 at 5:45 PM, Robert Suchanek wrote: > gcc/ > * rtlanal.c (get_base_term): Accept HIGH as the base term. > > > diff --git gcc/rtlanal.c gcc/rtlanal.c > index 82cfc1bf..2bea2ca 100644 > --- gcc/rtlanal.c > +++ gcc/rtlanal.c > @@ -5624,6 +5624,7 @@ get_base_term (rtx *inner

Re: [PATCH] Add target macro to override DWARF2 frame register size

2014-08-01 Thread Steven Bosscher
On Fri, Aug 1, 2014 at 3:31 PM, Matthew Fortune wrote: > This patch adds a target macro Please don't add target macros. Add a hook if you must, but we're supposed to remove target macros, not add new ones :-) Ciao! Steven

Re: [PATCH] Fix INSN_TICK heuristic for SCHED_PRESSURE

2014-07-14 Thread Steven Bosscher
On Mon, Jul 14, 2014 at 10:09 AM, Maxim Kuvyrkov wrote: > On Jul 14, 2014, at 8:05 PM, Steven Bosscher wrote: > >> On Mon, Jul 14, 2014 at 6:12 AM, Maxim Kuvyrkov wrote: >>> Hi, >>> >>> This patch fixes 2 of the [several] problems in rank_for_schedule

Re: [PATCH] Fix INSN_TICK heuristic for SCHED_PRESSURE

2014-07-14 Thread Steven Bosscher
On Mon, Jul 14, 2014 at 6:12 AM, Maxim Kuvyrkov wrote: > Hi, > > This patch fixes 2 of the [several] problems in rank_for_schedule heuristics > for SCHED_PRESSURE_MODEL. SCHED_PRESSURE_MODEL is used for first scheduling > pass in ARM backend by default. > > The first one is when INSN_TICK of bot

Re: Fix PR61772: ifcvt removing asm volatile gotos

2014-07-11 Thread Steven Bosscher
On Fri, Jul 11, 2014 at 2:34 PM, Michael Matz wrote: > PR rtl-optimization/61772 > * ifcvt.c (dead_or_predicable): Check jump to be free of side > effects. This is OK. Ciao! Steven

Re: Instructions vs Expressions in the backend (was Re: RFA: Rework FOR_BB_INSNS iterators)

2014-06-25 Thread Steven Bosscher
On Wed, Jun 25, 2014 at 10:46 PM, Jeff Law wrote: > On 06/25/14 02:54, Richard Sandiford wrote: >> >> SEQUENCE is just weird though :-) It would be good to have an alternative >> representation, but that'd be a lot of work on reorg. > > Yea. And I don't think anyone is keen on rewriting reorg. R

Re: breakage with "[PATCH 1/6] Add FOR_EACH_INSN{_INFO}_{DEFS,USES,EQ_USES}"

2014-06-16 Thread Steven Bosscher
On Mon, Jun 16, 2014 at 12:36 AM, Hans-Peter Nilsson wrote: > On Sun, 15 Jun 2014, Steven Bosscher wrote: >> On Sun, Jun 15, 2014 at 1:27 PM, Hans-Peter Nilsson wrote: >> > /tmp/hpautotest-gcc0/gcc/gcc/auto-inc-dec.c: In function 'void >> > merge_in_block(in

Re: breakage with "[PATCH 1/6] Add FOR_EACH_INSN{_INFO}_{DEFS,USES,EQ_USES}"

2014-06-15 Thread Steven Bosscher
On Sun, Jun 15, 2014 at 1:27 PM, Hans-Peter Nilsson wrote: > On Sat, 14 Jun 2014, Richard Sandiford wrote: > >> To make the final representation change easier, this patch introduces >> macros for iterating over lists of defs, uses and eq_uses. At the >> moment there are three possible keys when ac

Re: [PATCH 0/6] Make df_ref representation more efficient

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:36 PM, Richard Sandiford wrote: > Using a linked list gives a consistent 2% compile-time improvement for > fold-const.ii -O0 and ~1% for various -O2 compiles I tried. The df > routines do still show up high on the profile though. Can you explain a bit more about what sho

Re: Remove some unnecessary null checks in df.h

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 10:02 PM, Richard Sandiford wrote: > DF_REF_REG_USE_P and DF_MWS_REG_USE_P checked for null arguments > but the def equivalents didn't. There doesn't seem to be any > need for this difference. Right, looking at the users (one user for each) of these macros, I don't think R

Re: [PATCH 6/6] Use a linked list for insn defs and uses

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:53 PM, Richard Sandiford wrote: > gcc/ > * df.h (df_mw_hardreg, df_base_ref): Add a link pointer. > (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked > lists. > (df_scan_bb_info): Likewise artificial_defs and artificial_us

Re: [PATCH 5/6] Remove dead code

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:48 PM, Richard Sandiford wrote: > This patch removes some dead code that would otherwise need to be > changed in the final patch. These functions were intended to allow passes to update DF info manually. That never was a very practical idea, apparently. > gcc/ >

Re: [PATCH 4/6] Add df_single_{def,use} helper functions

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:47 PM, Richard Sandiford wrote: > IRA wants to know whether a particular insn has a single def or use. > That seems worth putting in a utility function, again to hide the > underlying representation a bit. I would have sworn we already had functions for this, but apparent

Re: [PATCH 3/6] Add FOR_EACH_INSN_INFO_MW

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:45 PM, Richard Sandiford wrote: > gcc/ > * df.h (FOR_EACH_INSN_INFO_MW): New macro. > * df-problems.c (df_note_bb_compute): Use it. > * regstat.c (regstat_bb_compute_ri): Likewise. OK. Ciao! Steven

Re: [PATCH 2/6] FOR_EACH_ARTIFICIAL_{DEF,USE}

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:44 PM, Richard Sandiford wrote: > gcc/ > * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros. > * cse.c (cse_extended_basic_block): Use them. > * dce.c (mark_artificial_use): Likewise. > * df-problems.c (df_rd_simulate_arti

Re: [PATCH 1/6] Add FOR_EACH_INSN{_INFO}_{DEFS,USES,EQ_USES}

2014-06-14 Thread Steven Bosscher
On Sat, Jun 14, 2014 at 9:43 PM, Richard Sandiford wrote: > gcc/ > * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros. > (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise. > (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): > Likewise. >

Re: [patch i386]: Combine memory and indirect jump

2014-06-11 Thread Steven Bosscher
On Wed, Jun 11, 2014 at 10:32 AM, Kai Tietz wrote: > this patch adds simple combining of indirect-jumps on memory-address. > This patch is pretty similar to sibcall-combing. > ChangeLog > > 2014-06-11 Kai Tietz > > * config/i386/i386.md (peehole2): To combine > indirect jump with memory.

Re: [PATCH, loop2_invariant, 2/2] Change heuristics for identical invariants

2014-06-10 Thread Steven Bosscher
On Tue, Jun 10, 2014 at 11:23 AM, Zhenqiang Chen wrote: > * loop-invariant.c (struct invariant): Add a new member: eqno; > (find_identical_invariants): Update eqno; > (create_new_invariant): Init eqno; > (get_inv_cost): Compute comp_cost wiht eqno; > (gain_fo

Re: [PATCH, loop2_invariant, 1/2] Check only one register class

2014-06-10 Thread Steven Bosscher
On Tue, Jun 10, 2014 at 11:22 AM, Zhenqiang Chen wrote: > Hi, > > For loop2-invariant pass, when flag_ira_loop_pressure is enabled, > function gain_for_invariant checks the pressures of all register > classes. This does not make sense since one invariant might impact > only one register class. > >

Re: [PATCH, loop2_invariant] Skip inv (marked as move) from depends_on

2014-06-10 Thread Steven Bosscher
On Tue, Jun 10, 2014 at 11:32 AM, Zhenqiang Chen wrote: > > * loop-invariant.c (get_inv_cost): Skip invariants, which are marked > as "move", from depends_on. > This is OK. Ciao! Steven

Re: [PATCH, loop2_invariant] Pre-check invariants

2014-06-10 Thread Steven Bosscher
On Tue, Jun 10, 2014 at 11:55 AM, Zhenqiang Chen wrote: > > * loop-invariant.c (find_invariant_insn): Skip invariants, which > can not make a valid insn during replacement in move_invariant_reg. > > --- a/gcc/loop-invariant.c > +++ b/gcc/loop-invariant.c > @@ -881,6 +881,35 @@ find_

Re: RFA: Rework FOR_BB_INSNS iterators

2014-06-07 Thread Steven Bosscher
On Sat, Jun 7, 2014 at 7:54 PM, Richard Sandiford wrote: > The two parts of the loop condition are really handling two different > kinds of block: ones like entry and exit that are completely empty > and normal ones that have at least a block note. There's no real > need to check for null INSNs in

Re: [PATCH] Trust TREE_ADDRESSABLE

2014-06-07 Thread Steven Bosscher
On Sat, Jun 7, 2014 at 12:59 PM, Eric Botcazou wrote: >> >In Ada we don't mark (external) variables as addressable if we don't >> >see their address taken. >> >> You have to (now). The testing was of course to detect this... > > Well, you need to define what TREE_ADDRESSABLE means now, because acc

Re: [PATCH] Updates merged bb count

2014-05-30 Thread Steven Bosscher
On Fri, May 30, 2014 at 11:43 PM, Dehao Chen wrote: > Index: gcc/testsuite/gcc.dg/tree-prof/merge_block.c > === > --- gcc/testsuite/gcc.dg/tree-prof/merge_block.c (revision 0) > +++ gcc/testsuite/gcc.dg/tree-prof/merge_block.c (revisio

  1   2   3   4   5   6   7   8   9   10   >