- User Since
- Feb 20 2015, 10:57 AM (130 w, 2 d)
Thu, Aug 10
I limit the bitfield separation in the last update to only happen at the beginning of a run so no bitfield combine will be blocked.
Don't separate bitfield in the middle of a run because it is possible to hinder bitfields accesses combine. Only separate bitfield at the beginning of a run.
Wed, Aug 9
Tue, Aug 8
Mon, Aug 7
Thu, Aug 3
Mon, Jul 31
Fri, Jul 28
Tue, Jul 25
Mon, Jul 24
Jul 20 2017
I think we can find many similar problems.
Jul 11 2017
Jul 6 2017
Jun 30 2017
Cleanup and reduce the testcase.
Jun 29 2017
Address Sanjoy's comments.
Jun 28 2017
For the example below, findTargetRecurrence starts from r2 and r3 to search a def reg equals to r1. There are a lot of possibilities to explore. That is where the complexity of findTargetRecurrence comes from.
Jun 26 2017
Jun 23 2017
Jun 22 2017
Jun 21 2017
Thanks for helping on fixing the bug!
Jun 16 2017
Jun 10 2017
Sorry for the delay. The rewrite based on SSA looks much cleaner now. About the algorithm, IIUC it tries to find loop based on define-use of tied operand or operand commutable with tied operand. However, I still have concern that the method can increase redundent copy sometimes.
Jun 7 2017
One comment about simplifying the test. Other than that, LGTM.
Jun 5 2017
May 31 2017
LGTM. Only a minor comment.
May 30 2017
I have no other comments. See whether Davide has further comments.
May 28 2017
May 26 2017
May 25 2017
No more comments seen so prepare to commit the patch. Thanks for the review!
May 19 2017
Initialize commutative in Expression's constructor.
Fix a bug related with commutative: need to swap cmp predicate at the same time when we swap the operands.
May 18 2017
May 16 2017
Discussed with Chandler offline, and we decided to split the patch and tried to commit the store shrinking first.
May 14 2017
Overall looks good. Some minor comments inlined.
May 11 2017
May 10 2017
Chandler, Thanks for the comments. They are very helpful. I will address them in the next revision. I only replied some comments which I had questions or concerns.
May 9 2017
I change the DenseMap numberingExpression (mapping from value numbering to GVN::Expression) to std::vector. Although there is still some minor increase but better than before.
May 5 2017
Forgot to update the patch.
May 2 2017
May 1 2017
+ Andy, for the history on pre-RA-sched and misched.
Apr 28 2017
Address Eli, Matt and Chandler's comments.
Apr 26 2017
Some minor comments.
Apr 25 2017
Thanks for drafting the comments. It is apparently more descriptive and clearer, and I like the varnames -- (LargeVal and SmallVal), which are much better than what I used -- (OrigVal, MaskedVal). I will rewrite the comments based on your draft.
Apr 21 2017
Thanks for bearing with my poor English. I will fix the terminologies and comments according to your suggestions.
Apr 20 2017
I am thinking of another two issues:
- Is it possible that some of the BBs on the chain may be very big and we don't want to partial inline them?
- The existing pattern handles if (a || b || c ...) case, but it may not be easy to extend for cases like (a && b && c) and ((a && b) || c). Basically, we want to find a collection of bbs with small sizes starting from entry. The bb collection only have two exits. one of them is ReturnBlock and the other is NonReturnBlock. The edges inside of the collection can be of any pattern.
Apr 19 2017
Daniel, thanks for the comments.
Apr 18 2017
Apr 17 2017
Haicheng, the testcase LGTM. Thanks for working on it!
Sanjoy, thanks for all the helpful comments.
Apr 13 2017
Remove some code from the test that doesn't impact it.