anna (Anna Thomas)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 30 2016, 11:13 AM (98 w, 5 d)

Recent Activity

Wed, Feb 7

anna accepted D42837: [Loop Predication] Teach LP about reverse loops with uge and sge latch conditions.

LGTM.
Btw, I actually meant separating out getLatchPredicateForGuard as NFC for just the conditions supported without this change (i.e. everything except SGE, UGE).
Then, in this change, adding support for UGE and SGE in that function and in IsUnsupportedPredicate, so that only changes related to SGE/UGE are in this patch :)

Wed, Feb 7, 4:30 AM

Tue, Feb 6

anna added inline comments to D42837: [Loop Predication] Teach LP about reverse loops with uge and sge latch conditions.
Tue, Feb 6, 2:24 PM

Fri, Feb 2

anna added a comment to D41939: [LV] Fix incorrect detection of type-promoted Phis.

I just saw on another review thread that Matt's away for a few weeks.
Max, feel free to land this change.

Fri, Feb 2, 2:12 PM

Thu, Feb 1

anna accepted D41939: [LV] Fix incorrect detection of type-promoted Phis.

LGTM. I think there maybe performance degradations in vectorization, but this is needed for a correctness fix.
Pls wait for @mssimpso if he has any comments.

Thu, Feb 1, 5:39 AM

Tue, Jan 30

anna accepted D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.

lgtm w/ comment addressed.

Tue, Jan 30, 4:35 AM
anna added a comment to D42653: [RS4GC] Handle call/invoke instructions as base defining values of vectors.

I wonder is it possible to handle this two instructions, GEPs, bitcasts, loads, and other in findBaseDefiningValue to avoid code duplication and such oversights?

Tue, Jan 30, 4:31 AM

Mon, Jan 22

anna added inline comments to D41939: [LV] Fix incorrect detection of type-promoted Phis.
Mon, Jan 22, 2:01 PM

Jan 11 2018

anna accepted D41943: [LoopDeletion] Handle users in unreachable block.

LGTM w/ comments.

Jan 11 2018, 7:25 AM

Jan 8 2018

anna accepted D41812: [CVP] Replace incoming values from unreachable blocks with undef.

LGTM w/ comments.

Jan 8 2018, 7:10 AM
anna added a comment to D41812: [CVP] Replace incoming values from unreachable blocks with undef.

What I propose here instead is keeping track of the incoming values from unreachable blocks, and replacing them with undef. This fixes this case, and it seems to be good regardless (even if we can't prove that the value is constant, as it's coming from an unreachable block, we can ignore it).

LGTM - this was also the design I went with (change incoming values from unreachable blocks to undef) when we didn't want to break the structure of the loop in loop deletion.

Jan 8 2018, 6:46 AM

Jan 2 2018

anna added a comment to D41519: [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation.

LGTM, thanks Anna. (sorry for the delay, I was in Europe for the end of the year).

Jan 2 2018, 6:26 AM
anna added a comment to D41519: [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation.

ping

Jan 2 2018, 6:14 AM

Dec 22 2017

anna added a comment to D41519: [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation.

I think this is on the right track, but, can you please simplify the test case so I can read it better :) ?

Dec 22 2017, 4:59 AM
anna updated the diff for D41519: [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation.

Simplified the testcase to make the issue clearer.

Dec 22 2017, 4:48 AM

Dec 21 2017

anna created D41519: [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation.
Dec 21 2017, 2:31 PM
anna added inline comments to D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.
Dec 21 2017, 9:53 AM
anna accepted D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.

lgtm w/ comment addressed.

Dec 21 2017, 9:50 AM
anna requested changes to D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.

Logic looks right, some comments inline.

Dec 21 2017, 9:09 AM

Dec 18 2017

anna added a comment to D40347: [JumpThreading] Restrict PRE across instructions that don't pass control to successors.

This looks simple enough and similar to how we handle other optimizations in presence of guards (there were previous issues with JT around guards that were fixed with isGuaranteedToTransferExecutionToSuccessor as well).

Dec 18 2017, 6:13 AM
anna accepted D40347: [JumpThreading] Restrict PRE across instructions that don't pass control to successors.

lgtm.

Dec 18 2017, 6:09 AM

Dec 15 2017

anna added inline comments to D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.
Dec 15 2017, 7:11 PM
anna requested changes to D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.

Comments inline.

Dec 15 2017, 9:33 AM
anna added inline comments to D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes.
Dec 15 2017, 7:18 AM

Dec 14 2017

anna resigned from D41077: [analyser] different.CallArgsOrder checker implementation.

Perhaps added me incorrectly as reviewer?

Dec 14 2017, 6:13 PM · Restricted Project
anna accepted D41162: [PM] port Rewrite Statepoints For GC to the new pass manager..

lgtm modulo nit

Dec 14 2017, 4:13 PM
anna accepted D40886: [LVI] Support for ashr in LVI.

lgtm.

Dec 14 2017, 1:54 PM
anna requested changes to D41162: [PM] port Rewrite Statepoints For GC to the new pass manager..

comments inline. Changes look almost good to go.

Dec 14 2017, 11:07 AM
anna accepted D38030: Fix APFloat from string conversion for Inf.

just for information of folks following along - we had caught this as a heap-use-after-free error using an ASAN build. I think this may have manifested as the Windows failure that caused the revert originally.

Dec 14 2017, 6:46 AM

Dec 8 2017

anna created D41026: [InstComineLoadStoreAlloca] Optimize stores to GEP off null base.
Dec 8 2017, 10:40 AM
anna accepted D41002: [NFC][SafepointIRVerifier] Add alias for set of available values.

LGTM.

Dec 8 2017, 6:32 AM

Dec 6 2017

anna added reviewers for D40881: [ConstantRange] Support for ashr in ConstantRange computation: mkazantsev, spatel.
Dec 6 2017, 5:50 AM

Dec 1 2017

anna accepted D40613: [LoopIdiom] Recognize unordered atomic memset.

LGTM

Dec 1 2017, 11:50 AM
anna added inline comments to D40613: [LoopIdiom] Recognize unordered atomic memset.
Dec 1 2017, 11:21 AM
anna accepted D40289: [SafepointIRVerifier] Allow deriving pointers from unrelocated base.

thanks for making the changes. lgtm with a minor comment.

Dec 1 2017, 9:42 AM
anna added inline comments to D40289: [SafepointIRVerifier] Allow deriving pointers from unrelocated base.
Dec 1 2017, 8:24 AM
anna added inline comments to D40613: [LoopIdiom] Recognize unordered atomic memset.
Dec 1 2017, 7:06 AM
anna requested changes to D40289: [SafepointIRVerifier] Allow deriving pointers from unrelocated base.

Some refactoring comments in place. I think the code structuring can be made much simpler. Pls see inline comments.

Dec 1 2017, 6:42 AM

Nov 28 2017

anna added inline comments to D40353: [Loop Predication] Teach LP about reverse loops.
Nov 28 2017, 11:29 AM

Nov 22 2017

anna accepted D40289: [SafepointIRVerifier] Allow deriving pointers from unrelocated base.

Thanks for addressing the comments in the downstream version (and Max's comments here). This LGTM.

Nov 22 2017, 6:55 AM
anna created D40353: [Loop Predication] Teach LP about reverse loops.
Nov 22 2017, 6:33 AM

Nov 17 2017

anna accepted D39954: [IRCE] Smart range intersection.

LGTM. thanks for the comments and clarification.

Nov 17 2017, 10:33 AM
anna accepted D40168: [IRCE][NFC] Add no wrap flags to no-wrapping SCEV calculation.

lgtm

Nov 17 2017, 10:32 AM

Nov 16 2017

anna added inline comments to D39954: [IRCE] Smart range intersection.
Nov 16 2017, 6:24 AM

Nov 15 2017

anna added inline comments to D39954: [IRCE] Smart range intersection.
Nov 15 2017, 6:37 AM

Nov 14 2017

anna added a comment to D39954: [IRCE] Smart range intersection.

Max, the patch explanation and logic of using SCEV subtraction LGTM. I'll need to take a closer look at your rules and the calculation in subtraction lambda.

Nov 14 2017, 11:38 AM
anna added inline comments to D39954: [IRCE] Smart range intersection.
Nov 14 2017, 11:15 AM

Nov 3 2017

anna abandoned D39598: [LoopPredication] NFC: Refactored code to separate out functions being reused.

Was using this just to verify the diff on phab.

Nov 3 2017, 7:23 AM
anna created D39598: [LoopPredication] NFC: Refactored code to separate out functions being reused.
Nov 3 2017, 7:21 AM

Nov 2 2017

anna added inline comments to D39500: [LoopPredication] Enable predication when latchCheckIV is wider than rangeCheck.
Nov 2 2017, 2:26 PM
anna updated the diff for D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

Updated function names per review comment. NFC wrt previous diff.

Nov 2 2017, 7:45 AM

Nov 1 2017

anna created D39500: [LoopPredication] Enable predication when latchCheckIV is wider than rangeCheck.
Nov 1 2017, 12:03 PM
anna added inline comments to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.
Nov 1 2017, 10:40 AM
anna added a comment to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

just a note: We haven't yet added support to forward loads/stores across calls when the calls are dominated by invariant.start. However, that's a perfectly legal transform, and this patch makes sure we don't miscompile when the transformation is supported.

Nov 1 2017, 9:29 AM

Oct 31 2017

anna updated the diff for D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

addressed review comments.

Oct 31 2017, 9:39 AM
anna added a comment to D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.

Is is possible to also remove the corresponding invariant.end calls to the removed invariant.start calls? This patch will leave orphaned calls to invariant.end sitting around in the IR that have no corresponding start.

Oct 31 2017, 9:02 AM

Oct 27 2017

anna created D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant.
Oct 27 2017, 2:05 PM
anna accepted D39097: [LoopPredication] Handle the case when the guard and the latch IV have different offsets.

LGTM.

Oct 27 2017, 5:47 AM

Oct 24 2017

anna requested changes to D39097: [LoopPredication] Handle the case when the guard and the latch IV have different offsets.

Artur, before this patch, we were checking whether RangeCheckIV's postIncExpr is latchCheckIV.

Oct 24 2017, 7:17 AM

Oct 23 2017

anna accepted D39082: [IRCE] Smarter detection of empty ranges using SCEV.

LGTM.

Oct 23 2017, 9:34 AM
anna accepted D38581: [IRCE] Fix intersection between signed and unsigned ranges.

LGTM . Since context is not here but the actual logic was correct and unchanged wrt the previous review, I went by that.

Oct 23 2017, 9:29 AM

Oct 19 2017

anna added a comment to D39097: [LoopPredication] Handle the case when the guard and the latch IV have different offsets.

@apilipenko please add patch with full context.

Oct 19 2017, 10:16 AM
anna requested changes to D38581: [IRCE] Fix intersection between signed and unsigned ranges.

Some clarification questions and comments inline.

Oct 19 2017, 8:10 AM
anna added inline comments to D39082: [IRCE] Smarter detection of empty ranges using SCEV.
Oct 19 2017, 7:48 AM

Oct 16 2017

anna added a comment to rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

@jdoerfert @grosser
Could we please add as an XFAIL for now, so that it doesn't keep failing the polly buildbots?

I'm actually not working on Polly anymore that's why I tried to get @bollu and @Meinersbur involved.

Oct 16 2017, 8:16 AM
anna added a comment to rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

My local Polly does not pass this test anyway, but I guess Tobias can help you out or maybe @Meinersbur or @bollu. In any case it doesn't seem to be a "loop bounds test" so it should be possible to change it a little bit and keep it around.

Oct 16 2017, 4:52 AM

Oct 13 2017

anna added a comment to rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

What this patch does is, we calculate the MaxBETakenCount for loop with LT terminating condition, when the end bound of loop is varying. We can never know the exact BE Taken count, but the MaxBETakenCount can be computed for loops of form: {Start,+,Stride} LT End.

Oct 13 2017, 2:42 PM
anna added a comment to rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

Thanks @mgrang for pointing the failure. I do see the polly test case and this would kick in because the end bound of the outer loop is variant (bb7 is the latch of outer loop).

Oct 13 2017, 1:34 PM
anna added inline comments to D38825: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.
Oct 13 2017, 10:23 AM
anna accepted D38849: [RS4GC] Look through vector bitcasts when looking for base pointer.

LGTM.

Oct 13 2017, 8:04 AM

Oct 12 2017

anna added inline comments to D38849: [RS4GC] Look through vector bitcasts when looking for base pointer.
Oct 12 2017, 5:02 PM
anna added a comment to D38766: [CVP] Process binary operations even when def is local.

Did you measure the compile time impact somehow?

Oct 12 2017, 2:09 PM
anna updated the diff for D38825: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

Addressed reviewer comments: added more tests regarding overflow, stride negative, stride unknown.
Updated a failing test where we now have more granular max BECount taken
value (This test update was missed in the original diff).

Oct 12 2017, 6:03 AM
anna added inline comments to D38825: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.
Oct 12 2017, 5:17 AM

Oct 11 2017

anna created D38825: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.
Oct 11 2017, 2:43 PM
anna edited reviewers for D38766: [CVP] Process binary operations even when def is local, added: reames; removed: philip.
Oct 11 2017, 4:54 AM

Oct 10 2017

anna created D38766: [CVP] Process binary operations even when def is local.
Oct 10 2017, 2:56 PM
anna added inline comments to D38581: [IRCE] Fix intersection between signed and unsigned ranges.
Oct 10 2017, 7:38 AM
anna accepted D38577: [IRCE] Do not process empty safe ranges.

LGTM!

Oct 10 2017, 6:35 AM

Oct 4 2017

anna accepted D38465: Move deleteDeadLoop to LoopUtils. NFC.

LGTM with nits.

Oct 4 2017, 9:31 AM
anna added inline comments to D38465: Move deleteDeadLoop to LoopUtils. NFC.
Oct 4 2017, 7:31 AM

Oct 3 2017

anna added inline comments to D38465: Move deleteDeadLoop to LoopUtils. NFC.
Oct 3 2017, 12:25 PM

Sep 14 2017

anna updated the summary of D35380: [RuntimeUnroll] Add heuristic for unrolling multi-exit loop.
Sep 14 2017, 7:34 AM

Sep 13 2017

anna added a comment to D17080: [LAA] Allow more run-time alias checks by coercing pointer expressions to AddRecExprs.

Hi Silviu,

We only need to convert to an AddRec if we need to emit the runtime checks (see the comment above the original logic for computing NeedRTCheck).

One example would be if we only have reads in the loop. If we convert in hasComputableBounds we end up having unnecessary versioning (at least with regards to the dependence analysis).

Thanks for the clarification. makes sense.

Would the current solution also work in your internal benchmark? If not it might be because something else would need the expression to be an AddRec?

Yes, I tried your patch and it works. I was just curious why we needed all the extra code rather than always checking if we could convert to an AddRec.

Sep 13 2017, 8:03 AM
anna added a comment to D17080: [LAA] Allow more run-time alias checks by coercing pointer expressions to AddRecExprs.

Hi Silviu,
I came across the similar gap, but I aggressively tried converting the PtrSCEV to AddRec in hasComputableBounds, which worked on our internal benchmark. Could you please clarify why you have the Assume to be false in the first call, i.e. how do we know that it's not useful to try and convert PtrSCEV to AddRec?

Sep 13 2017, 7:02 AM

Sep 12 2017

anna updated the diff for D37702: [LV] Clamp the VF to the trip count.

minor review comment: removed unnecessary CHECK.

Sep 12 2017, 7:36 AM
anna added a comment to D37702: [LV] Clamp the VF to the trip count.

@Ayal, any other comments or does this look good to go? Thanks.

Sep 12 2017, 7:26 AM
anna updated the diff for D37702: [LV] Clamp the VF to the trip count.

updated previous diff to CHECK for the correct VF in the first test.

Sep 12 2017, 6:18 AM
anna updated the diff for D37702: [LV] Clamp the VF to the trip count.

Addressed review comments - no longer need the default argument,
updated test to reuse the existing RUN.

Sep 12 2017, 5:01 AM
anna added inline comments to D37702: [LV] Clamp the VF to the trip count.
Sep 12 2017, 4:56 AM

Sep 11 2017

anna created D37702: [LV] Clamp the VF to the trip count.
Sep 11 2017, 11:28 AM
anna added inline comments to D37425: LoopVectorize: MaxVF should not be larger than the loop trip count.
Sep 11 2017, 10:09 AM

Aug 30 2017

anna accepted D36215: [IRCE] Return "Identify loops with latch comparison against current IV value".

LGTM

Aug 30 2017, 6:27 AM

Aug 25 2017

anna added a comment to D36215: [IRCE] Return "Identify loops with latch comparison against current IV value".

Max, could you please update the patch with full context?

Aug 25 2017, 6:18 AM

Aug 18 2017

anna accepted D36873: [IRCE] Fix buggy behavior in Clamp.

LGTM w/comment.

Aug 18 2017, 6:13 AM

Aug 17 2017

anna requested changes to D36215: [IRCE] Return "Identify loops with latch comparison against current IV value".

Comments inline.

Aug 17 2017, 6:42 AM

Aug 9 2017

anna accepted D36509: [IRCE][NFC] Rename IndVarNext to IndVarBase.

LGTM. FWIW, these sort of changes can be checked in without precommit approval.

Aug 9 2017, 12:12 PM

Aug 8 2017

anna updated the diff for D36244: [LoopVectorize] Fix assertion failure in Fcmp vectorization.

Addressed review comments.

Aug 8 2017, 7:46 AM
anna added inline comments to D36244: [LoopVectorize] Fix assertion failure in Fcmp vectorization.
Aug 8 2017, 7:46 AM

Aug 4 2017

anna added inline comments to D36244: [LoopVectorize] Fix assertion failure in Fcmp vectorization.
Aug 4 2017, 6:13 AM

Aug 3 2017

anna accepted D35302: [IRCE] Recognize loops with unsigned latch conditions.

LGTM.

Aug 3 2017, 7:15 AM