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
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
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
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)
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
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
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
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
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
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
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
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
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
>>
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
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
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;
>
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
>
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
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
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
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
> +
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
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
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
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
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_
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
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
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
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)
>
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
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
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
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
>>
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
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
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
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
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
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
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
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
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
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
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.
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
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
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:
>>
>&
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
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
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
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
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
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
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
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
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
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]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
>
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
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
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
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.
>
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.
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
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.
>
>
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
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_
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
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
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 - 100 of 1067 matches
Mail list logo