https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #75 from Ivo Raisr ---
And thank you, Julian, for your guidance.
Unfortunately I won't be able to finish the VEX enhancement/rework residing in
(I think) vex-jit-hacks-2 branch. Perhaps some brave soul will be able to
continue...
--
You ar
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #74 from Julian Seward ---
Ivo, just to say, thank you for doing all this reg-alloc work.
I know it was a lot of work. The results are good!
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Resolution|--- |FIXED
Status|ASSIGNED
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #73 from Ivo Raisr ---
https://sourceware.org/git/?p=valgrind.git;a=commit;h=efa1e5ef8d257e3b20facf6f04350d29578ae9e4
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #71 from Ivo Raisr ---
I am going to integrate patch 014 next week unless I hear otherwise.
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #107068|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #69 from Petar Jovanovic ---
(In reply to Ivo Raisr from comment #68)
> If I understand your comment correctly, you are saying that MIPS front end
> misuses DivModU128to64 for something which is not intended.
Yes, instead of using (nonexist
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #68 from Ivo Raisr ---
(In reply to Petar Jovanovic from comment #67)
> This seems to be related to the way how MIPS port uses and handles
> DivModU128to64 and some other Iops.
> The issue comes from tricks done due to the lack of appropria
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #67 from Petar Jovanovic ---
(In reply to Ivo Raisr from comment #65)
> (In reply to Petar Jovanovic from comment #63)
>
> > The latest patch (lucky 13) seems to work fine on one MIPS variant I
> > have tested. Thanks for the extra work.
>
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #66 from Ivo Raisr ---
Pending no other problems arise, I would like to land new VEX register
allocator v3 after SVN->GIT migration is completed and the dust settles. That
is in 2-3 weeks from now.
The new version v3 will be the default; it
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #65 from Ivo Raisr ---
(In reply to Petar Jovanovic from comment #63)
> The latest patch (lucky 13) seems to work fine on one MIPS variant I
> have tested. Thanks for the extra work.
> I will test other MIPS variants early next week.
Petar
https://bugs.kde.org/show_bug.cgi?id=381553
Rhys Kidd changed:
What|Removed |Added
CC||rhysk...@gmail.com
--- Comment #64 from Rhys Kidd
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #63 from Petar Jovanovic ---
(In reply to Ivo Raisr from comment #62)
> Petar, please could you test please?
>
The latest patch (lucky 13) seems to work fine on one MIPS variant I
have tested. Thanks for the extra work.
I will test other MI
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #62 from Ivo Raisr ---
Patches 013 should fix the assertion hit on MIPS platform
when doing MOV coalescing and the destination vreg is becoming dead.
Petar, please could you test please?
Also I think that this scenario happened because MIP
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #107036|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #107037|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #59 from Ivo Raisr ---
Thank you, Petar. I was able to download the file and decipher it. The root
cause is now known and I have to find an elegant way how to fix it.
--
You are receiving this mail because:
You are watching all bug changes
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #58 from Petar Jovanovic ---
Ivo, here is a new log.
https://transfer.pcloud.com/download.html?code=5ZbBWcZMexCPcqqmR4ZFfeRZT410zHsBPVS9h74eABPRb4ByVQIX
I could not attach it as it is too big, even after compression.
--
You are receiving
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #57 from Ivo Raisr ---
Petar, thank you again for testing patches 012!
Please could you set to 1 the following #define's at the beginning of
host_generic_reg_alloc3.c:
#define DEBUG_REGALLOC 1
#define SANITY_CHECKS_EVERY_INSTR 1
recompile
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #56 from Petar Jovanovic ---
Situation is better, yet not ideal. Majority of the programs pass, but some
crash.
E.g.
~/radni/valgrind/trunk$ ./vg-in-place -q --track-origins=yes
--vex-regalloc-version=3 ./memcheck/tests/atomic_incs
vex: p
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #55 from Ivo Raisr ---
Patches 012 should fix the assertion hit on MIPS platform in function
find_free_rreg().
Petar, please could you test please?
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #107009|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #107008|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #52 from Ivo Raisr ---
Petar, thank you for the detailed output. Now the root cause is clear and I
need to fix slightly the algorithm in find_free_rreg().
I'll prepare a new set of patches...
--
You are receiving this mail because:
You are
https://bugs.kde.org/show_bug.cgi?id=381553
Petar Jovanovic changed:
What|Removed |Added
Attachment #107010|0 |1
is obsolete|
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #50 from Ivo Raisr ---
Petar,
Thank you for the debugging output. Unfortunately it is not sufficient
to infer what went wrong.
Please could you set to 1 the following #define's at the beginning of
host_generic_reg_alloc3.c:
#define DEBUG_R
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #49 from Petar Jovanovic ---
(In reply to Ivo Raisr from comment #43)
> Petar, thank you for testing the patches.
> Please could you test again with the latest patch called
> "patch 010 - VEX part + some debugging for MIPS crashes".
> It sho
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #48 from Petar Jovanovic ---
Created attachment 107010
--> https://bugs.kde.org/attachment.cgi?id=107010&action=edit
log of MIPS execution
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #47 from Ivo Raisr ---
Patches 011 (re-)introduce command line option --vex-regalloc-version=2|3 which
allows to switch between register allocator implementations. Note that version
3 (new implementation) is now the default.
They also fix l
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106877|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106876|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #44 from Julian Seward ---
010 works OK on arm64-linux. On arm(32)-linux, it fails at startup
verifying sanity of the register set, due to a small error in the
definition of getRRegUniverse_ARM: the first allocable_end[] is
indexed at HRcIn
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #43 from Ivo Raisr ---
(In reply to Petar Jovanovic from comment #41)
> With the changes (patch 010 Valgrind/VEX) applied, Memcheck is crashing on
> MIPS32/MIPS64.
Petar, thank you for testing the patches.
Please could you test again with t
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #42 from Ivo Raisr ---
Created attachment 107004
--> https://bugs.kde.org/attachment.cgi?id=107004&action=edit
patch 010 - VEX part + some debugging for MIPS crashes
This patch adds some debugging statements in find_free_rreg() where MIPS
https://bugs.kde.org/show_bug.cgi?id=381553
Petar Jovanovic changed:
What|Removed |Added
CC||mips3...@gmail.com
--- Comment #41 from Petar
https://bugs.kde.org/show_bug.cgi?id=381553
Christian Borntraeger changed:
What|Removed |Added
CC||borntrae...@de.ibm.com
--- Comment #40
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #39 from Ivo Raisr ---
Patches 010 implement the necessary changes for supporting the register
allocator v3 to all architectures supported by VEX.
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106802|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106801|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #36 from Ivo Raisr ---
Some performance comparison...
Number of instructions executed either in function
doRegisterAllocation() [Valgrind baseline, v2] or
doRegisterAllocation_v3 [new VEX register allocator, v3]:
--- memcheck on /bin/date
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #35 from Ivo Raisr ---
The final set of patches implementing new VEX register allocator version 3
for AMD64 and X86 architectures.
All regression tests pass successfully, Firefox runs ok.
--
You are receiving this mail because:
You are wat
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106688|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106687|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #32 from Ivo Raisr ---
Patches 008 implement direct reload optimization.
Now the only remaining TODO is the following one:
/* TODO-JIT: Contrary to what the algorithm overview above
says, we simplify i
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106596|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106595|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #29 from Ivo Raisr ---
I tried to do performance comparison of reg_alloc v3 implementation as it
progresses in terms of patches. However the performance tests are not reliable
- I could not get consistent results out of them on my amd64/Linu
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #28 from Ivo Raisr ---
The attached patches 007 implement groups of real registers in RRegUniverse.
They help to efficiently answer questions such as "Find me a free register of
the given class".
--
You are receiving this mail because:
You
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106549|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106550|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #25 from Ivo Raisr ---
Right now the only remaining TODOs from patches 006 are:
/* TODO-JIT: To solve more efficiently questions such as "Find me a free
register of the given class" it would help if registers in the RRegUniverse
were
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106377|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106378|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #22 from Ivo Raisr ---
Memcheck "--stats=yes" results running on Firefox under amd64/Linux (Ubuntu):
v2:
716,447 (19,412,410 -> 331,710,658; ratio 17.1) [213,213 scs] avg tce size 462
v3 (patches 006):
685,657 (18,614,387 -> 318,876,497; r
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #21 from Ivo Raisr ---
I am currently on vacations so won't probably make any progress until the end
of July...
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #20 from Julian Seward ---
For the actual cost of doing register allocation, for /usr/bin/date on
Memcheck,
I have the following profile results from Callgrind. These numbers are for
doRegisterAllocation_{v2,v3} and all of their callees.
v
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #19 from Julian Seward ---
Actual numbers:
r2
2,773 (60,618 -> 979,296; ratio 16.2) [0 scs] avg tce size 353
r3-before
2,767 (60,481 -> 1,047,119; ratio 17.3) [0 scs] avg tce size 378
r3-after
2,767 (60,481 -> 985,570; ratio 16.3) [0 scs]
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #18 from Julian Seward ---
Created attachment 106492
--> https://bugs.kde.org/attachment.cgi?id=106492&action=edit
Use callee-saved registers in preference to caller-saved registers, if possible
This small change applies on top of "106378
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #17 from Ivo Raisr ---
Thank you for pointers where to focus next.
Indeed, that critical functionality is not implemented yet:
line 873 of host_generic_reg_alloc3.c:
/* Find a free rreg of the correct class.
TODO
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #16 from Julian Seward ---
(In reply to Julian Seward from comment #15)
> loop beginning at host_generic_reg_alloc2.c:1367 (after applying the patch).
Sorry, line 1367 in the unpatched sources.
--
You are receiving this mail because:
You
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #15 from Julian Seward ---
I think it's done (in a stupid way) using the has_hlrs hint boolean and the
loop beginning at host_generic_reg_alloc2.c:1367 (after applying the patch).
If the code contains any calls at all then the caller-save re
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #14 from Julian Seward ---
(In reply to Ivo Raisr from comment #13)
> Patches 005 implement function find_vreg_to_spill().
That's excellent. With this in place, I can start and quit Firefox on
Memcheck, which requires processing more than
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #13 from Ivo Raisr ---
Patches 005 implement function find_vreg_to_spill().
With these patches, the register allocator v3 is able to produce correct
results for all tests in the Valgrind regression test suite.
Therefore the implementation is
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106324|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106323|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #10 from Ivo Raisr ---
The attached patches for register allocator v3 are able to drive simple
programs (such as /bin/true and /bin/date) successfully through.
There is still some functionality to be implemented, though.
--
You are receiv
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106260|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106259|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Julian Seward changed:
What|Removed |Added
CC||jsew...@acm.org
--- Comment #7 from Julian Sewa
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #6 from Ivo Raisr ---
It turns out the current version has a design flaw because it does not track
rreg live ranges. This manifests for example in this vcode:
82 movq $0x14,%rdi
83 movq %vR12,%rsi
84 movq $0x0,%rdx
85 movq 0xA8(
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106255|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Attachment #106254|0 |1
is obsolete||
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #3 from Ivo Raisr ---
New VEX register allocator is activated with command line option
--vex-regalloc-version=3, for example:
$ ./vg-in-place --tool=none --vex-regalloc-version=3 --trace-flags=0110 \
--trace-notbelow=0 /bin/true
--
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #2 from Ivo Raisr ---
Created attachment 106255
--> https://bugs.kde.org/attachment.cgi?id=106255&action=edit
patch 002 - VEX part
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #1 from Ivo Raisr ---
Created attachment 106254
--> https://bugs.kde.org/attachment.cgi?id=106254&action=edit
patch 002 - Valgrind part
--
You are receiving this mail because:
You are watching all bug changes.
https://bugs.kde.org/show_bug.cgi?id=381553
Ivo Raisr changed:
What|Removed |Added
Assignee|jsew...@acm.org |iv...@ivosh.net
Status|UNCONFIRMED
76 matches
Mail list logo