linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: Dibyendu Majumdar <mobile@majumdar.org.uk>
Cc: Christopher Li <sparse@chrisli.org>,
	Linux-Sparse <linux-sparse@vger.kernel.org>,
	Ramsay Jones <ramsay@ramsayjones.plus.com>,
	Lance Richardson <lrichard@redhat.com>,
	Michael Stefaniuc <mstefani@mykolab.com>
Subject: Re: Sparse 0.5.1 RC5 released.
Date: Sun, 13 Aug 2017 18:40:07 +0200	[thread overview]
Message-ID: <CAMHZB6G5jG+HzOZOvbdJ6e125RTB5o58mGvecnE4BCvDxx9Abg@mail.gmail.com> (raw)
In-Reply-To: <CAExDi1R_6W3wysxR5bNPZ5PYDhgwo+Q=tJdL1QaV9dOXwyM27w@mail.gmail.com>

Another interesting thing is that even without removing the single-store
shortcut when using test-linearize we have an "instruction buffer overflow".
In other words, an instruction (a phi-node for sure) can't be displayed
in a 4096 bytes buffer  (because it as so much phi-sources).

This is something I have already seen before when trying to understand
the origin of some quadratic behaviour I had seen.
In this case it was clearly a problem related to SSA construction which
kinda wrongly accumulated phi-sources from parents.

In the current case we have a phi-node with:
- 241 sources
- 550 VOIDs (sources that have been removed during simplification)
- its BB has a single parent (thus should never have a phi-node).

With the shortcut removed, we then have hundreds and hundreds
of phi-nodes with hundreds of sources which fully exp^lain the
excessive time needed to process them. And it's very much
something possible with the removal of the shortcut since its
goal was to avoid to create phi-nodes when possible.

So this clearly points to the problem of the SSA construction
wich not only create misplaced phi-nodes but also, in some case,
create lots of them while there was no need for them.
The shortcut was very good at hiding this.

-- Luc

  parent reply	other threads:[~2017-08-13 16:40 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-12 14:15 Sparse 0.5.1 RC5 released Christopher Li
2017-08-12 20:26 ` Michael Stefaniuc
2017-08-12 20:51   ` Luc Van Oostenryck
2017-08-12 21:36 ` Ramsay Jones
2017-08-12 21:41   ` Christopher Li
2017-08-13 12:56 ` Dibyendu Majumdar
2017-08-13 13:10   ` Luc Van Oostenryck
2017-08-13 13:18     ` Dibyendu Majumdar
2017-08-13 13:54       ` Dibyendu Majumdar
2017-08-13 14:24         ` Dibyendu Majumdar
2017-08-13 14:18       ` Luc Van Oostenryck
2017-08-13 14:25         ` Luc Van Oostenryck
2017-08-13 14:26           ` Dibyendu Majumdar
2017-08-13 15:07             ` Luc Van Oostenryck
2017-08-13 15:12               ` Dibyendu Majumdar
2017-08-13 16:40           ` Luc Van Oostenryck [this message]
2017-08-13 14:44         ` Dibyendu Majumdar
2017-08-13 15:00           ` Dibyendu Majumdar
2017-08-13 15:13             ` Luc Van Oostenryck
2017-08-13 19:03   ` Christopher Li
2017-08-13 19:10     ` Dibyendu Majumdar
2017-08-13 19:20       ` Christopher Li
2017-08-13 19:56         ` Dibyendu Majumdar
2017-08-13 20:09       ` Luc Van Oostenryck
2017-08-13 20:20         ` Dibyendu Majumdar
2017-08-13 21:16           ` Luc Van Oostenryck
2017-08-13 22:12             ` Dibyendu Majumdar
2017-08-13 22:36               ` Luc Van Oostenryck
2017-08-13 22:50                 ` Dibyendu Majumdar
2017-08-13 23:03                   ` Luc Van Oostenryck
2017-08-13 22:55                 ` Dibyendu Majumdar
2017-08-13 23:10                   ` Luc Van Oostenryck
2017-08-13 23:17                     ` Dibyendu Majumdar
2017-08-13 23:20                       ` Dibyendu Majumdar
2017-08-13 23:28                         ` Luc Van Oostenryck
2017-08-13 23:35                           ` Dibyendu Majumdar
2017-08-13 23:40                             ` Luc Van Oostenryck
2017-08-13 23:44                               ` Dibyendu Majumdar
2017-08-13 23:22                       ` Luc Van Oostenryck
2017-08-13 23:25                         ` Dibyendu Majumdar
2017-08-13 23:35                           ` Luc Van Oostenryck
2017-08-13 23:42                             ` Dibyendu Majumdar
2017-08-13 23:47                               ` Luc Van Oostenryck
2017-08-13 23:58                                 ` Luc Van Oostenryck
2017-08-14  0:30                                   ` Luc Van Oostenryck
2017-08-14  0:30               ` Christopher Li
2017-08-14  0:34                 ` Luc Van Oostenryck
2017-08-14  0:36                   ` Christopher Li
2017-08-14 18:48                 ` Dibyendu Majumdar
2017-08-14 18:52                   ` Christopher Li
2017-08-14 18:56                     ` Christopher Li
2017-08-14 18:58                     ` Dibyendu Majumdar
2017-08-14 19:23                       ` Christopher Li
2017-08-14 19:47                         ` Christopher Li
2017-08-14 20:30                           ` Christopher Li
2017-08-14 16:15           ` Luc Van Oostenryck
2017-08-14 16:17             ` Dibyendu Majumdar
2017-08-14 16:25               ` Luc Van Oostenryck
2017-08-14 16:29                 ` Dibyendu Majumdar
2017-08-14 16:44                   ` Luc Van Oostenryck
2017-08-14 16:54                     ` Dibyendu Majumdar
2017-08-14 18:51                       ` Luc Van Oostenryck
2017-08-14 18:24     ` Christopher Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMHZB6G5jG+HzOZOvbdJ6e125RTB5o58mGvecnE4BCvDxx9Abg@mail.gmail.com \
    --to=luc.vanoostenryck@gmail.com \
    --cc=linux-sparse@vger.kernel.org \
    --cc=lrichard@redhat.com \
    --cc=mobile@majumdar.org.uk \
    --cc=mstefani@mykolab.com \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=sparse@chrisli.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).