From: Jeff Law <law@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: Ajit Kumar Agarwal <ajit.kumar.agarwal@xilinx.com>,
GCC Patches <gcc-patches@gcc.gnu.org>,
Vinod Kathail <vinodk@xilinx.com>,
Shail Aditya Gupta <shailadi@xilinx.com>,
Vidhumouli Hunsigida <vidhum@xilinx.com>,
Nagaraju Mekala <nmekala@xilinx.com>
Subject: Re: [Patch,tree-optimization]: Add new path Splitting pass on tree ssa representation
Date: Fri, 13 Nov 2015 16:26:00 -0000 [thread overview]
Message-ID: <56460F19.5010009@redhat.com> (raw)
In-Reply-To: <CAFiYyc06=_w4+B0C1d8y0rgCmNCy7vvsFfdvCqstnh6t5zsqbA@mail.gmail.com>
On 11/13/2015 03:13 AM, Richard Biener wrote:
>> diff --git a/gcc/Makefile.in b/gcc/Makefile.in
>> index 34d2356..6613e83 100644
>> --- a/gcc/Makefile.in
>> +++ b/gcc/Makefile.in
>> @@ -1474,6 +1474,7 @@ OBJS = \
>> tree-ssa-loop.o \
>> tree-ssa-math-opts.o \
>> tree-ssa-operands.o \
>> + tree-ssa-path-split.o \
>
> gimple-ssa-path-split please.
Agreed. I'll make that change for Ajit.
>
>> tree-ssa-phionlycprop.o \
>> tree-ssa-phiopt.o \
>> tree-ssa-phiprop.o \
>> diff --git a/gcc/common.opt b/gcc/common.opt
>> index 757ce85..3e946ca 100644
>> --- a/gcc/common.opt
>> +++ b/gcc/common.opt
>> @@ -2403,6 +2403,10 @@ ftree-vrp
>> Common Report Var(flag_tree_vrp) Init(0) Optimization
>> Perform Value Range Propagation on trees.
>>
>> +ftree-path-split
>
> fsplit-paths
And this plus related variable name fixes and such.
>>
>> +@item -ftree-path-split
>> +@opindex ftree-path-split
>> +Perform Path Splitting on trees. When the two execution paths of a
>> +if-then-else merge at the loop latch node, try to duplicate the
>> +merge node into two paths. This is enabled by default at @option{-O2}
>> +and above.
>> +
>
> I think if we go into the detail of the transform we should mention the
> effective result (creating a loop nest with disambiguation figuring out
> which is the "better" inner loop).
It no longer creates a loop nest. The overall shape of the CFG is
maintained. ie, we still have a single simple latch for the loop. The
blocks we create are internal to the loop.
I always struggle with the right level at which to document these
options. I'll take a look at this for Ajit.
BTW Do we have an API for indicating that new blocks have been added to
a loop? If so, then we can likely drop the LOOPS_NEED_FIXUP.
>
>> @item -fsplit-ivs-in-unroller
>> @opindex fsplit-ivs-in-unroller
>> Enables expression of values of induction variables in later iterations
>> diff --git a/gcc/opts.c b/gcc/opts.c
>> index 9a3fbb3..9a0b27c 100644
>> --- a/gcc/opts.c
>> +++ b/gcc/opts.c
>> @@ -509,6 +509,7 @@ static const struct default_options
>> default_options_table[] =
>> { OPT_LEVELS_2_PLUS, OPT_fisolate_erroneous_paths_dereference, NULL, 1
>> },
>> { OPT_LEVELS_2_PLUS, OPT_fipa_ra, NULL, 1 },
>> { OPT_LEVELS_2_PLUS, OPT_flra_remat, NULL, 1 },
>> + { OPT_LEVELS_2_PLUS, OPT_ftree_path_split, NULL, 1 },
>
> Is this transform a good idea for -Os?
In general, no because of the block duplication.
jeff
next prev parent reply other threads:[~2015-11-13 16:26 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-30 8:34 Ajit Kumar Agarwal
2015-06-30 10:38 ` Bernhard Reutner-Fischer
2015-06-30 10:43 ` Ajit Kumar Agarwal
2015-06-30 10:51 ` Bernhard Reutner-Fischer
2015-06-30 11:39 ` Richard Biener
2015-06-30 12:07 ` Ajit Kumar Agarwal
2015-07-04 12:40 ` Ajit Kumar Agarwal
2015-07-07 8:50 ` Richard Biener
2015-07-07 13:22 ` Ajit Kumar Agarwal
2015-07-16 11:20 ` Richard Biener
2015-07-29 7:44 ` Ajit Kumar Agarwal
2015-08-15 23:13 ` Ajit Kumar Agarwal
2015-08-19 19:47 ` Jeff Law
2015-08-20 15:40 ` Ajit Kumar Agarwal
2015-08-20 15:49 ` Jeff Law
2015-08-27 6:00 ` Ajit Kumar Agarwal
2015-09-09 21:45 ` Jeff Law
2015-09-12 12:05 ` Ajit Kumar Agarwal
2015-10-20 16:05 ` Ajit Kumar Agarwal
2015-11-11 7:01 ` Jeff Law
2015-08-19 21:53 ` Jeff Law
2015-08-20 15:41 ` Ajit Kumar Agarwal
2015-09-04 18:07 ` Ajit Kumar Agarwal
2015-11-11 20:38 ` Jeff Law
2015-11-12 10:58 ` Richard Biener
2015-11-12 17:05 ` Jeff Law
2015-11-12 18:33 ` Jeff Law
2015-11-12 19:40 ` Richard Biener
2015-11-12 19:52 ` Jeff Law
2015-11-12 21:58 ` Jeff Law
2015-11-13 10:13 ` Richard Biener
2015-11-13 16:26 ` Jeff Law [this message]
2015-11-13 18:09 ` Richard Biener
2015-11-13 20:23 ` Jeff Law
2015-11-13 23:36 ` Jeff Law
2015-11-18 7:44 ` Tom de Vries
2015-11-18 14:24 ` Ajit Kumar Agarwal
2015-12-03 14:38 ` Richard Biener
2015-12-03 14:45 ` Richard Biener
2015-12-10 20:12 ` Jeff Law
2015-12-03 15:46 ` Jeff Law
2015-12-10 20:08 ` Jeff Law
2015-12-11 9:11 ` Ajit Kumar Agarwal
2015-12-23 6:36 ` Jeff Law
2015-12-25 8:40 ` Ajit Kumar Agarwal
2016-01-02 7:32 ` Jeff Law
2016-01-04 14:32 ` Ajit Kumar Agarwal
2016-01-13 8:10 ` Jeff Law
[not found] ` <56976289.3080203@redhat.com! >
2016-01-14 8:55 ` Jeff Law
2016-01-15 23:02 ` Jeff Law
2016-01-18 18:27 ` Ajit Kumar Agarwal
2016-01-27 7:17 ` Jeff Law
2016-01-27 17:21 ` Ajit Kumar Agarwal
2016-01-15 22:38 ` Jeff Law
2016-01-16 6:32 ` Jeff Law
2016-01-18 9:13 ` Ajit Kumar Agarwal
2016-01-27 7:13 ` Jeff Law
2016-01-27 9:35 ` Ajit Kumar Agarwal
2016-02-04 8:57 ` Jeff Law
2015-12-11 10:06 ` Richard Biener
2015-12-15 23:50 ` Jeff Law
2015-12-16 7:44 ` Ajit Kumar Agarwal
2015-12-16 9:57 ` Richard Biener
2015-12-16 10:13 ` Ajit Kumar Agarwal
2015-12-17 10:38 ` Ajit Kumar Agarwal
2015-12-17 23:41 ` Jeff Law
2015-12-18 15:43 ` Zamyatin, Igor
2015-11-13 13:19 ` Ajit Kumar Agarwal
2015-06-30 12:39 ` Ajit Kumar Agarwal
2015-06-30 22:18 ` Joseph Myers
2015-07-02 3:52 ` Ajit Kumar Agarwal
2015-07-06 20:08 ` Jeff Law
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=56460F19.5010009@redhat.com \
--to=law@redhat.com \
--cc=ajit.kumar.agarwal@xilinx.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=nmekala@xilinx.com \
--cc=richard.guenther@gmail.com \
--cc=shailadi@xilinx.com \
--cc=vidhum@xilinx.com \
--cc=vinodk@xilinx.com \
/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 read-only IMAP folder(s) and NNTP newsgroup(s).