13.01.2020 14:37, Jakub Jelinek wrote:
The following patch adds the descr/undescr aliases (for converting to
monotonically increasing revision numbers and back) there next to svn-rev.
Both have been changed to use basepoints/gcc-* tags instead of
branchpoints/gcc-*, the first one now supports --f
we silently
add 'assert' and 'runtime' into that set?
I haven't tried to find additional issues with related
'--enable-stage1-checking' option.
Roman
PS. I see some lines have more than 80 chars in install.texi, few of
them were added recently while cleanin
Ping with CCing Jeff and Joseph.
I think patch is rather obvious, but hopefully other items will also get
some attention.
29.01.2020 16:32, Roman Zhuykov wrote:
> Hi!
> I've investigated a bit, because some of the following confused me
> while working with some local 9.
11.02.2020 11:01, Richard Biener wrote:
> On Tue, 11 Feb 2020, Segher Boessenkool wrote:
>
>> On Tue, Feb 11, 2020 at 08:34:15AM +0100, Richard Biener wrote:
>>> On Mon, 10 Feb 2020, Segher Boessenkool wrote:
Yes, we should decide how often we want to unroll things somewhere before
ivopts
07.02.2020 20:20, Richard Sandiford writes:
> Roman Zhuykov writes:
>> Hi!
>> I've investigated a bit, because some of the following confused me while
>> working with some local 9.2-based branch.
>>
>> Documentation issues:
>> (0) See patch for install
Hello!
11.02.2020 16:40, Andrea Corallo wrote:
> Hi Richard,
>
> "Richard Earnshaw (lists)" writes:
>
>>> gcc/ChangeLog:
>>> 2020-??-?? Andrea Corallo
>>> 2020-??-?? Mihail-Calin Ionescu
>>> 2020-??-?? Iain Apreotesei
>>> * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP):
>>>
Ping. Proposed patch is docs-only (install.texi), and IMHO it's better
to push it into 8.4 and 9.3.
11.02.2020 17:46, Roman Zhuykov wrote:
> 07.02.2020 20:20, Richard Sandiford writes:
>> Roman Zhuykov writes:
>>> Hi!
>>> I've investigated a bit, because so
-10 Roman Zhuykov
* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
for history > 0 case.
gcc/testsuite/ChangeLog:
2019-12-10 Roman Zhuykov
* gcc.dg/pr92951-1.c: New test.
* gcc.dg/pr92951-2.c: New test.
diff --git a/gcc/modulo-sched.c b/gcc/m
Richard, is it OK ?
Roman
Backport from mainline
gcc/ChangeLog:
2019-12-17 Roman Zhuykov
* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
for history > 0 case.
* params.def (sms-dfa-history): Limit to 16.
gcc/testsuite/ChangeLog:
2019-12-17 Roma
This caused:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93053
--
Roman
Richard Henderson wrote 18.09.2019 04:58:
This is the libgcc part of the interface -- providing the functions.
Rationale is provided at the top of libgcc/config/aarch64/lse.S.
* config/aarch64/lse-init.c: New fil
This caused
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55081
--
Roman Zhuykov
Andrea Corallo writes:
> With this patch the first insn of the low loop overhead 'doloop_begin'
> is expanded by 'doloop_modify' in loop-doloop.c. The same does not
> happen with SMS.
That certainly works correct as in your first patch, doloop_begin
pattern also have "!flag_modulo_sched" conditi
11.02.2020 14:00, Richard Earnshaw (lists) wrote:
> +(define_insn "*doloop_end"
> + [(parallel [(set (pc)
> + (if_then_else
> + (ne (reg:SI LR_REGNUM) (const_int 1))
> + (label_ref (match_operand 0 "" ""))
> + (pc)))
>
Hi all!
22.02.2020 6:25, Sandra Loosemore wrote:
> On 2/11/20 7:46 AM, Roman Zhuykov wrote:
>> Since I have to ask again about backports, I've decided to make few more
>> steps and with Alexander's help created new patch which rewords the
>> whole option descriptio
Hi, Jakub!
Jakub Jelinek writes:
>> +When the option is not specified, the active set of checks depends on
>> context.
>> +Namely, bootstrap stage 1 defaults to @samp{--enable-checking=yes}, builds
>> +from release archives default to @samp{--enable-checking=release}, and
> Is archives the right w
Hi all!
Does anybody considered backporting this?
Given https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92410#c3
"Confirmed also with r247015 (GCC 7 branch point)."
For example, we may apply it without an assertion in release branches.
Roman
12.11.2019 12:11, Matthew Malcomson wrote:
> In schedul
Hi!
25.02.2020 13:36, Roman Zhuykov wrote:
> So, IMHO the best next step is to improve the behavior rather then docs :)
I want to add one more point into this discussion. I have recently
decided to test some stuff on old branches, e.q gcc-4.9, 5 and 6.
On modern systems there are some iss
This patch fixes bootstrap comparison failure on powerpc64le when running it
with -fmodulo-sched enabled.
When applying the schedule we have to move debug insns in the same
way as we move note insns. Also we have to discard adding debug insns
to SCCs in DDG graph.
20YY-MM-DD Roman
x27;-fabi-version=' should be a non-negative integer
When UInteger option value string is not a number, but it's first char
is a digit, integral_argument function returns -1 without setting
*err.
Proposed untested patch attached.
--
Best Regards,
Roman Zhuykov
gcc/ChangeLog:
ive integer
> $ g++-8 -fabi-version=2-O2 -c empty.cpp
> g++: error: argument to '-fabi-version=' should be a non-negative integer
>
> When UInteger option value string is not a number, but it's first char
> is a digit, integral_argument function returns -1 without s
.
This patch solves this totally preventing other instructions to be
scheduled after branch in the same row.
I’ve described patch testing in cover letter. Ok for trunk?
gcc/ChangeLog:
2019-04-09 Roman Zhuykov
PR rtl-optimization/84032
* modulo-sched.c (ps_insn_find_column
):
gcc.dg/torture/pr82762.c
gcc.c-torture/execute/20170419-1.c
I’ve described patch testing in cover letter. Ok for trunk?
gcc/ChangeLog:
2019-04-08 Roman Zhuykov
PR rtl-optimization/87979
* modulo-sched.c (sms_schedule): Start ii value "mii" should
not equal
ribed patch testing in cover letter. Ok for trunk?
gcc/ChangeLog:
2019-04-08 Roman Zhuykov
PR rtl-optimization/90001
* ddg.c (create_ddg): Init max_dist array for each node.
(free_ddg): Free max_dist array.
(create_ddg_edge): Use bool field instead of aux
p;& MEM_VOLATILE_P (extract_asm_operands
+ (PATTERN (insn
+ fprintf (dump_file, "SMS loop-with-volatile-asm\n");
else if ((NONDEBUG_INSN_P (insn) && !JUMP_P (insn)
&& !singl
Hello!
> I am pleased to announce that the GCC Steering Committee has
> appointed Roman Zhuykov as Modulo Scheduler maintainer.
Thanks to David and SC for the trust! I'm pleased to become SMS maintainer.
> Please join me in congratulating Roman on his new role.
> Roman, p
> > This issue unfortunately was not solved correctly. In that example we
> > don’t have -fmodulo-sched-allow-regmoves enabled and we should not
> > create any register moves at all.
>
> Yes, but if we do for whatever reason, we should never create register
> moves of hard registers. Because that
As a freshly appointed maintainer I’m ready to commit my own
modulo-sched patches, but decide to ask here if there are any
objections. Maybe I should ask any additional approval at this stage?
If no, I’ll start tomorrow with committing patches 1/4 and 2/4 which are
well-formed regression fixe
Hello, Jeff
> > As a freshly appointed maintainer I’m ready to commit my own
> > modulo-sched patches, but decide to ask here if there are any
> > objections. Maybe I should ask any additional approval at this stage?
> > If no, I’ll start tomorrow with committing patches 1/4 and 2/4 which are
> >
> So just an FYI. If ddg.c is only used by the modulo scheduler, then it
> falls under your maintainership and you can decide when to install this
> patch.
Yes, I understand about ddg.c and ddg.h. I also studied everything
about loop-doloop.c because it is connected. Will try to participate
in do
Hi, Segher
> > > > In pr84524.c we got a loop with an extended inline asm:
> > > > asm volatile ("" : "+r" (v))
> > > > which also gives us a “surprising” situation Alexander predicts.
> > > >
> > > > For sched-deps scanner such volatile asm is a “true barrier” and we
> > > > create dependencies t
> > > This code was added in 1997 (r14770). In 2004 the documentation was
> > > changed to clarify how things really work (r88999):
> > >
> > > "Note that even a volatile @code{asm} instruction can be moved relative to
> > > other code, including across jump instructions."
> > >
> > > (followed by
Hello
Two weeks ago I posted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90113 We have some
unnecessary torture runs for gfortran.dg tests. Full description
inside PR.
Regtested r270624 trunk on x86_64:
Unpatched:
=== gfortran tests ===
Running target unix
===
also allow regmoves
Only for bootstrap and regtest.
--
Roman Zhuykov
zhr...@ispras.ru
are some special scan-assembler techniques.
Ok for trunk with regtest?
--
Roman
Here is the whole old letter about the patch:
2011-12-29 17:04 GMT+03:00 Roman Zhuykov :
> This week I investigated modulo scheduler on IA64. Enabling SMS by default
> (-fmodulo-sched -fmodulo-sched-allow-regmoves) lead
2012/6/18 Richard Guenther :
> On Fri, 15 Jun 2012, Richard Guenther wrote:
>
>>
>> This tries to completely implement the intersect primitive for
>> VRP (what extract_range_from_assert does at its end when merging
>> new and old knowledge).
>>
>> Bootstrap and regtest pending on x86_64-unknown-lin
e x86-64 and
> ARM.
> --
> Roman Zhuykov
> zhr...@ispras.ru
>
tion before
>> extracting loop exit condition.
>>
>> 2011-07-20 Roman Zhuykov
>> * loop-doloop.c (doloop_condition_get): Correctly check
>> the form of comparison instruction.
>> ---
>> gcc/loop-doloop.c | 2 ++
>> 1 files changed, 2 i
a", PROCESSOR_NOCONA, CPU_NONE,
+ {"nocona", PROCESSOR_NOCONA, CPU_GENERIC64,
PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
| PTA_CX16 | PTA_NO_SAHF},
{"core2", PROCESSOR_CORE2_64, CPU_CORE2,
--
Roman Zhuykov
gt;> use get_simple_loop_desc>>> function which gives a structure with loop
>>>>>> characteristics, some of them helps>>> to find iteration number:>>>>>>
>>>>>> rtx niter_expr - The number of iterations of the loop;>>&
t;
>>>
>>> But we can use these expressions only after looking through some other
>>> fields
>>> of returned structure:
>>>
>>> bool simple_p - True if we are able to say anything about number of
>>> iterations
>>> of the loo
needed
>>> dependencies.>>>>> seems like an overkill to me; we didn't draw an edge
>>> between every> last use and every write, because writes are kept in order
>>> by having> output dependences between them. So should be the case w
tween them. So should be the case with
>>> clobbers.
Clobbers themselves aren't kept in order - there are no output
dependencesbetween them. They may be scheduled in any order.
> Presumably, the ddg already has all intra-iteration edges preventing> motion
> of clobbering ins
eems like an overkill to me; we didn't draw an edge between every
> last use and every write, because writes are kept in order by having
> output dependences between them. So should be the case with clobbers.
Clobbers themselves aren't kept in order - there are no output dep
er it can be renamed).
Currently, SMS simply attempts to take the RHS of the second instruction (via
single_set()), and if it's a register, SMS assumes it's a register causing the
dependency. This breaks in a following scenario:
insn1: ... (read flags)
insn2: regA = regB - re
Ping.
Ayal, could you review this patch and these two patches too.
http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00505.html
http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00506.html
Happy holidays.
2011/12/7 Roman Zhuykov :
> Apologies for the messed up previous e-mail.
>
> 2011/10/12
tp://gcc.gnu.org/ml/gcc-patches/2011-12/msg00495.html
OK for trunk or maybe 4.8?
Happy holidays!
--
Roman Zhuykov
2011-12-29 Roman Zhuykov
* modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
first stage.
---
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
?
2012-02-10 Roman Zhuykov
* config/arm/arm.c (output_move_double): In one case properly
count number of instructions that will be emitted.
---
gcc/config/arm/arm.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm
Ping.
Ayal, please review this patch and these three patches too:
http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00505.html
http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00506.html
http://gcc.gnu.org/ml/gcc-patches/2011-12/msg01800.html
--
Roman Zhuykov
zhr...@ispras.ru
needed.
> I think we'd need to handle that too before getting rid of the
> ARM doloop_end pattern.
I think all three ways are complicated enough and decide to begin with
implementing SMS without such loops support.
--
Roman Zhuykov
zhr...@ispras.ru
Hi all!
Situation from PR was already caught earlier locally. So, I've just extracted
appropriate part, it also slightly modifies loop checks related to
non-single-set instructions.
Patch (attached) was successfully bootstrapped/regtested on aarch64-linux on
all active branches (8-12) with mod
This obvious patch fixes indentation in PR90001-related code.
Committed as r10-7106.
Roman
--
gcc/ChangeLog:
* ddg.c (create_ddg): Fix intendation.
(set_recurrence_length): Likewise.
(create_ddg_all_sccs): Likewise.
diff --git a/gcc/ddg.c b/gcc/ddg.c
index aae92adf89a..ca
This patch marks find_simple_exit function as static.
Committed as r10-7107 after successful bootstrap on x86_64 and powerpc64le.
Roman
--
Function 'find_simple_exit' is used only from loop-iv.c
In 2004-2006 it was also used in predict.c, but since r118694
(992c31e62304ed5d34247dbdef2db276d08fac0
ary to scheduler itself, when building DDG graph we consider all
debug instructions and their dependencies. This may sometimes lead to a
different result in sms_order_nodes function, as it depends on SCCs in DDG. My
previous ad-hoc solution was just to remove any "debug->non-debug"
Hi,
Christophe Lyon wrote 2020-03-27 19:53:
Hi,
On Fri, 20 Mar 2020 at 11:56, Roman Zhuykov via Gcc-patches
wrote:
Hi all!
12.03.2020 6:17, Jeff Law wrote:
>> Current modulo-sched implementation is a bit faulty from -fcompile-debug
>> perspective.
>>
>> But rig
Hi all!
Same patch attached with commit message and inlined below. It was successfully
reg-strapped on aarch64-linux. Planning also to briefly check amd64 build
before push.
Pushing in a few days if no objections. Any opinion about backports?
Roman
--
modulo-sched: Carefully process loop
55 matches
Mail list logo