User Details
- User Since
- Jul 18 2017, 7:08 AM (333 w, 3 d)
Nov 19 2019
Nov 5 2019
DestSourcePair was not is_trivially_copyable with MSVC toolchain so I've updated its members to be pointers instead of references.
Oct 30 2019
Oct 29 2019
Is this good to go now?
Oct 27 2019
Oct 25 2019
@ -> \c
Oct 22 2019
Oct 17 2019
-Rebase
-Move register identity transformation check to DwarfDebug::collectCallSiteParameters()
LGTM! Handling each instruction separately is indeed more safer! Too bad that we can't relay much on MI generic flags such as this one.
Oct 14 2019
Thanks for useful comments @dstenb!
Any additional comments?
Oct 9 2019
-Update addImmediate() commet.
-Add source code producer for test case.
Oct 8 2019
-Include Destination operand in isAddImmediate()
-Exclude description of add immediate instructions where source and destination registers are the same.
Oct 7 2019
Sep 20 2019
-Update lldb test.
Sep 19 2019
Sep 18 2019
Rebase:
-AArch64ISEL part is changed in order do avoid tracking cases when two or more parameters can be in same register.
Adjust comments in MachineFunction.h
Sep 17 2019
-Remove redundant comment.
-Remove unnecessary MIR test elements.
@dstenb you are right! I've tried this example and it is as you expected. We should avoid dereferencing memory locations. I will address those issues in separate patch.
-Address spelling issues.
-Dispatch memory loading instruction descriptions.
Split call site updating functions on move, copy and erase functions.
Sep 13 2019
Thanks for the comment @efriedma! I've looked more carefully this optimization. It turns out that after CopyAndPredicateBlock it is not guaranteed that copied instruction block will be deleted. The deletion of critical call instruction happens after If-conversion during the BranchFolding cleaning when some block does not have predecessors.
Sep 11 2019
Ping.
Should we look for another reviewer or this is good to go?
Sep 6 2019
This looks good! I'm happy to see that implicit operands can be removed from the work-list this efficiently.
LGTM!
Sep 2 2019
Addressing comments.
Thanks for suggestions!
Aug 30 2019
Replacing hard-coded test case values with regex.
Aug 29 2019
From my point of view this is good to go. 'insertAfterBundle' could go as NFC I suppose.
Aug 19 2019
Actually it is not fixed. Bug is related to "-O2" linker optimizations. More precisely to stringpool optimization of merge-able sections. I've located bug in the linker but I didn't have time to get into the details. Here you can find binaries https://sourceware.org/bugzilla/show_bug.cgi?id=16794.
Jul 25 2019
This patch is reverted. Bug in gold compiler is not solved after all. We tested this functionality without optimizations enabled. With the "-O2" flag bug is still present.
Jul 22 2019
Jul 15 2019
The reason why I think it's hard to see that call site information has been removed is that, as far as I can tell there is no way to print the function attributes when doing something like -print-{before,after}-all, so it can be hard to to see where in the pass pipeline the callSites information was dropped. You could of course analyze the MIR and see where the information is likely to have been dropped, but I guess that can be difficult/annoying for larger programs.
Oh, I thought r364506 (D61061) implemented MIR printer support for call site metadata. If not, it's probably worth adding.
This dumps the CallSitesInfo when we producing a ".mir" file. The CallSitesInfo describes an internal state of the MF like the fixedStack, frameInfo etc. I'm not sure how we could make it recognizable in -print-{before,after}-all. Maybe like some metadata extension of call instruction. However, it should be part of another patch.
Jul 11 2019
@dstenb The patch looks good! LGTM! Thanks for working on this!
Jul 10 2019
@MaskRay Thanks for the heads up and review!
Jul 8 2019
Jun 14 2019
Ping. Do we need to explain our concern more precisely?
Jun 13 2019
Jun 12 2019
Jun 10 2019
Thanks for the review and patience!
Jun 6 2019
Jun 5 2019
Thanks for clarification!
before
real 46m29,670s
user 325m27,488s
sys 6m17,255s
Jun 3 2019
Have you tested the performance when compiling Clang with ASAN enabled to make sure we're not accidentally regressing because of the more thorough single-location check?
- Rebase.
May 29 2019
May 28 2019
May 27 2019
- Updated comment (single instruction -> single location)
Is this ready to land now?
May 24 2019
- Update comments.
- Represent DbgVariable's single value representation by DebugLocEntry::Value insted of representing it with MachineInstr. Such representation will allow us to produce fragment single value representation (for now it is not supported).
- Update DwarfDebug::buildLocationList to check if produced list has single entry that is valid throughout whole variable's scope.
- Address comments for test labels.
- Perform conditional copy for new OutLocs set.