Page MenuHomePhabricator

reames (Philip Reames)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 23 2013, 6:32 PM (312 w, 4 d)

Recent Activity

Yesterday

reames requested changes to D66012: [AArch64][Statepoints] Statepoint support for AArch64..
Sun, Oct 20, 6:32 PM · Restricted Project
reames accepted D69203: [CVP] Deduce no-wrap on `mul`.

LGTM

Sun, Oct 20, 6:05 PM · Restricted Project
reames committed rGe884843d7839: [IndVars] Add a todo to reflect a further oppurtunity identified in D69009 (authored by reames).
[IndVars] Add a todo to reflect a further oppurtunity identified in D69009
Sun, Oct 20, 4:43 PM
reames committed rG8cbcd2f484a2: [IndVars] Eliminate loop exits with equivalent exit counts (authored by reames).
[IndVars] Eliminate loop exits with equivalent exit counts
Sun, Oct 20, 4:43 PM
reames committed rL375380: [IndVars] Add a todo to reflect a further oppurtunity identified in D69009.
[IndVars] Add a todo to reflect a further oppurtunity identified in D69009
Sun, Oct 20, 4:43 PM
reames closed D69009: [IndVars] Eliminate loop exits with equivalent exit counts.
Sun, Oct 20, 4:43 PM · Restricted Project
reames committed rL375379: [IndVars] Eliminate loop exits with equivalent exit counts.
[IndVars] Eliminate loop exits with equivalent exit counts
Sun, Oct 20, 4:35 PM
reames created D69227: [LICM] Support hosting of dynamic allocas out of loops.
Sun, Oct 20, 4:25 PM · Restricted Project
reames abandoned D60783: [LoopPred] Implement a version of the profitability heuristic w/o BPI.
Sun, Oct 20, 4:16 PM · Restricted Project

Sat, Oct 19

reames abandoned D60111: [POC] Loop predication w/o guards.

This has been subsumed by work which has landed in IndVarSimplify and is about to be enabled by default.

Sat, Oct 19, 3:23 PM
reames created D69219: [SelectionDAG] Enable lowering unordered atomics loads w/LoadSDNode (and stores w/StoreSDNode) by default.
Sat, Oct 19, 2:46 PM · Restricted Project
reames requested review of D60783: [LoopPred] Implement a version of the profitability heuristic w/o BPI.

No longer actively working on this, may return to it in the future.

Sat, Oct 19, 2:46 PM · Restricted Project
reames abandoned D62860: Aggressively hoist guards out of loops (to provide a target for widening).

No longer actively working on this, we've moved to widenable conditions by default anyway.

Sat, Oct 19, 2:46 PM · Restricted Project
reames abandoned D44288: [WIP][LICM] Extend must execute to path taken on first iteration.

No longer actively working on this, may return to it in the future.

Sat, Oct 19, 2:46 PM
reames abandoned D51907: [WIP][LICM] Hoist argmemonly calls which can write through some arguments.

No longer actively working on this, may return to it in the future.

Sat, Oct 19, 2:46 PM
reames abandoned D51895: Fix issues required to remove memset/memcpy/memmove special casing from AliasSetTracker.

No longer actively working on this, may return to it in the future.

Sat, Oct 19, 2:46 PM · Restricted Project
reames abandoned D51458: [WIP] Support merging common destinations checks w/uses outside of block.

No longer actively working on this, may return to it in the future.

Sat, Oct 19, 2:46 PM
reames abandoned D68417: [MachineVerify] Verify property of atomic G_LOAD/STORE variants.

It turns out the MachineMemOperand constructor already asserts on a zero alignment. The vector check is potentially useful, but given this doesn't cover SelectionDAG anyway (where I'm currently focused), I'm deferring it until a future point.

Sat, Oct 19, 2:18 PM · Restricted Project
reames committed rG1d509201e2d2: [SCEV] Simplify umin/max of zext and sext of the same value (authored by reames).
[SCEV] Simplify umin/max of zext and sext of the same value
Sat, Oct 19, 10:25 AM
reames closed D69006: [SCEV] Simplify umin/max of zext and sext of the same value.
Sat, Oct 19, 10:24 AM · Restricted Project
reames committed rL375349: [SCEV] Simplify umin/max of zext and sext of the same value.
[SCEV] Simplify umin/max of zext and sext of the same value
Sat, Oct 19, 10:24 AM
reames added inline comments to D69009: [IndVars] Eliminate loop exits with equivalent exit counts.
Sat, Oct 19, 10:06 AM · Restricted Project

Thu, Oct 17

reames updated the diff for D69009: [IndVars] Eliminate loop exits with equivalent exit counts.

Rebase on requested refactor.

Thu, Oct 17, 4:51 PM · Restricted Project
reames committed rG8eaa5b9abab3: [IndVars] Factor out some common code into a utility function (authored by reames).
[IndVars] Factor out some common code into a utility function
Thu, Oct 17, 4:50 PM
reames committed rL375191: [IndVars] Factor out some common code into a utility function.
[IndVars] Factor out some common code into a utility function
Thu, Oct 17, 4:49 PM
reames updated the diff for D69006: [SCEV] Simplify umin/max of zext and sext of the same value.

Address review comments.

Thu, Oct 17, 4:40 PM · Restricted Project
reames committed rG3266eac7142c: [Test] Precommit test for D69006 (authored by reames).
[Test] Precommit test for D69006
Thu, Oct 17, 4:31 PM
reames committed rL375190: [Test] Precommit test for D69006.
[Test] Precommit test for D69006
Thu, Oct 17, 4:31 PM
reames added inline comments to D69009: [IndVars] Eliminate loop exits with equivalent exit counts.
Thu, Oct 17, 3:06 PM · Restricted Project
reames added inline comments to D69009: [IndVars] Eliminate loop exits with equivalent exit counts.
Thu, Oct 17, 10:52 AM · Restricted Project
reames updated the diff for D69009: [IndVars] Eliminate loop exits with equivalent exit counts.

Rebase over landed loop pred change, and some refactoring to address a few concerns brought up in the review.

Thu, Oct 17, 10:42 AM · Restricted Project
reames committed rGe51d57d64a4d: [IndVars] Split loop predication out of optimizeLoopExits [NFC] (authored by reames).
[IndVars] Split loop predication out of optimizeLoopExits [NFC]
Thu, Oct 17, 10:34 AM
reames committed rL375138: [IndVars] Split loop predication out of optimizeLoopExits [NFC].
[IndVars] Split loop predication out of optimizeLoopExits [NFC]
Thu, Oct 17, 10:33 AM
reames committed rG918d779d901c: [IndVars] Factor out a helper function for readability [NFC] (authored by reames).
[IndVars] Factor out a helper function for readability [NFC]
Thu, Oct 17, 9:56 AM
reames committed rL375133: [IndVars] Factor out a helper function for readability [NFC].
[IndVars] Factor out a helper function for readability [NFC]
Thu, Oct 17, 9:56 AM
reames updated the diff for D69006: [SCEV] Simplify umin/max of zext and sext of the same value.

Incorporate review comment.

Thu, Oct 17, 9:37 AM · Restricted Project
reames closed D68956: [IndVars] Fix a miscompile in off-by-default loop predication implementation.

This was landed in rL375038. Looks like I got the tagging slightly wrong so the review didn't get auto-closed.

Thu, Oct 17, 9:18 AM · Restricted Project

Wed, Oct 16

reames committed rGac77947315c5: Remove a stale comment, noted in post commit review for rL375038 (authored by reames).
Remove a stale comment, noted in post commit review for rL375038
Wed, Oct 16, 1:29 PM
reames committed rL375040: Remove a stale comment, noted in post commit review for rL375038.
Remove a stale comment, noted in post commit review for rL375038
Wed, Oct 16, 1:29 PM
reames added inline comments to rGd4346584fa35: [IndVars] Fix a miscompile in off-by-default loop predication implementation.
Wed, Oct 16, 1:28 PM
reames committed rGd4346584fa35: [IndVars] Fix a miscompile in off-by-default loop predication implementation (authored by reames).
[IndVars] Fix a miscompile in off-by-default loop predication implementation
Wed, Oct 16, 1:00 PM
reames committed rL375038: [IndVars] Fix a miscompile in off-by-default loop predication implementation.
[IndVars] Fix a miscompile in off-by-default loop predication implementation
Wed, Oct 16, 1:00 PM

Tue, Oct 15

reames created D69009: [IndVars] Eliminate loop exits with equivalent exit counts.
Tue, Oct 15, 3:00 PM · Restricted Project
reames created D69006: [SCEV] Simplify umin/max of zext and sext of the same value.
Tue, Oct 15, 2:23 PM · Restricted Project
reames added inline comments to D68956: [IndVars] Fix a miscompile in off-by-default loop predication implementation.
Tue, Oct 15, 10:58 AM · Restricted Project
reames updated the diff for D68956: [IndVars] Fix a miscompile in off-by-default loop predication implementation.

Address review comments

Tue, Oct 15, 10:58 AM · Restricted Project

Mon, Oct 14

reames committed rGa40162d47530: [Tests] Add a SCEV analysis test for llvm.widenable.condition (authored by reames).
[Tests] Add a SCEV analysis test for llvm.widenable.condition
Mon, Oct 14, 3:46 PM
reames committed rL374835: [Tests] Add a SCEV analysis test for llvm.widenable.condition.
[Tests] Add a SCEV analysis test for llvm.widenable.condition
Mon, Oct 14, 3:41 PM
reames created D68956: [IndVars] Fix a miscompile in off-by-default loop predication implementation.
Mon, Oct 14, 3:21 PM · Restricted Project
reames committed rG2b161cd0a4f7: [Tests] Add a test demonstrating a miscompile in the off-by-default loop-pred… (authored by reames).
[Tests] Add a test demonstrating a miscompile in the off-by-default loop-pred…
Mon, Oct 14, 12:56 PM
reames committed rL374812: [Tests] Add a test demonstrating a miscompile in the off-by-default loop-pred….
[Tests] Add a test demonstrating a miscompile in the off-by-default loop-pred…
Mon, Oct 14, 12:47 PM
reames added a comment to D68844: [SCEV] Compute exit count for simple floating point IVs.

I'm wondering if we can't extend Float2Int to convert these to operations on integers. I'm assuming it currently doesn't due to a FIXME: Handle select and phi nodes.

I'd really rather not continue extending a dedicated transform pass specifically for floats when we have a generic framework it fits naturally within which drives a number of existing optimizations. That feels like a much cleaner factoring.

Mon, Oct 14, 12:37 PM · Restricted Project
reames created D68954: [IndVars] Convert (fcmp (sitofp x), sitofp(int-con)) to equivelent icmp where possible.
Mon, Oct 14, 12:37 PM · Restricted Project
reames committed rG02945107f8d6: [Tests] Add a few more tests for idioms with FP induction variables (authored by reames).
[Tests] Add a few more tests for idioms with FP induction variables
Mon, Oct 14, 12:18 PM
reames committed rL374807: [Tests] Add a few more tests for idioms with FP induction variables.
[Tests] Add a few more tests for idioms with FP induction variables
Mon, Oct 14, 12:09 PM

Thu, Oct 10

reames committed rG2d5820cd7225: [CVP] Remove a masking operation if range information implies it's a noop (authored by reames).
[CVP] Remove a masking operation if range information implies it's a noop
Thu, Oct 10, 8:50 PM
reames closed D68811: [CVP] Remove a masking operation if range information implies it's a noop.
Thu, Oct 10, 8:49 PM · Restricted Project
reames committed rL374506: [CVP] Remove a masking operation if range information implies it's a noop.
[CVP] Remove a masking operation if range information implies it's a noop
Thu, Oct 10, 8:49 PM
reames created D68844: [SCEV] Compute exit count for simple floating point IVs.
Thu, Oct 10, 5:40 PM · Restricted Project
reames added inline comments to D68811: [CVP] Remove a masking operation if range information implies it's a noop.
Thu, Oct 10, 4:35 PM · Restricted Project
reames added inline comments to D68811: [CVP] Remove a masking operation if range information implies it's a noop.
Thu, Oct 10, 12:46 PM · Restricted Project
reames added inline comments to D68811: [CVP] Remove a masking operation if range information implies it's a noop.
Thu, Oct 10, 12:37 PM · Restricted Project
reames updated the diff for D68811: [CVP] Remove a masking operation if range information implies it's a noop.

Add statistic, and update a couple other tests which should have been in initial patch.

Thu, Oct 10, 12:30 PM · Restricted Project
reames created D68811: [CVP] Remove a masking operation if range information implies it's a noop.
Thu, Oct 10, 9:45 AM · Restricted Project

Wed, Oct 9

reames closed D68419: Conservatively add volatility and atomic checks in a few places.
Wed, Oct 9, 4:50 PM · Restricted Project
reames committed rG931120846e5f: Conservatively add volatility and atomic checks in a few places (authored by reames).
Conservatively add volatility and atomic checks in a few places
Wed, Oct 9, 4:50 PM
reames committed rL374261: Conservatively add volatility and atomic checks in a few places.
Conservatively add volatility and atomic checks in a few places
Wed, Oct 9, 4:49 PM

Fri, Oct 4

reames committed rGd5a4dad2061c: Fix a *nasty* miscompile in experimental unordered atomic lowering (authored by reames).
Fix a *nasty* miscompile in experimental unordered atomic lowering
Fri, Oct 4, 5:33 PM
reames committed rL373814: Fix a *nasty* miscompile in experimental unordered atomic lowering.
Fix a *nasty* miscompile in experimental unordered atomic lowering
Fri, Oct 4, 5:30 PM
reames committed rG9fe5d730c707: [Test] Add a test case fo a missed oppurtunity in implicit null checking (authored by reames).
[Test] Add a test case fo a missed oppurtunity in implicit null checking
Fri, Oct 4, 4:46 PM
reames committed rL373813: [Test] Add a test case fo a missed oppurtunity in implicit null checking.
[Test] Add a test case fo a missed oppurtunity in implicit null checking
Fri, Oct 4, 4:46 PM

Thu, Oct 3

reames accepted D68081: Allow update_test_checks.py to not scrub names.

Well, that's pretty much the opposite of what the script says:

I stand corrected. Given that, the patch looks reasonable.

Thu, Oct 3, 4:17 PM · Restricted Project
reames planned changes to D68417: [MachineVerify] Verify property of atomic G_LOAD/STORE variants.

Pending refresh w/suggested changes.

Thu, Oct 3, 3:18 PM · Restricted Project
reames created D68419: Conservatively add volatility and atomic checks in a few places.
Thu, Oct 3, 1:46 PM · Restricted Project
reames committed rG82cb5bc30267: [Tests] Add a unordered atomic load combine test (authored by reames).
[Tests] Add a unordered atomic load combine test
Thu, Oct 3, 1:31 PM
reames committed rL373659: [Tests] Add a unordered atomic load combine test.
[Tests] Add a unordered atomic load combine test
Thu, Oct 3, 1:27 PM
reames committed rG65d63ac05a2a: [Test] Fix inconsistency in alignment in test case (authored by reames).
[Test] Fix inconsistency in alignment in test case
Thu, Oct 3, 1:23 PM
reames committed rL373658: [Test] Fix inconsistency in alignment in test case.
[Test] Fix inconsistency in alignment in test case
Thu, Oct 3, 1:23 PM
reames created D68417: [MachineVerify] Verify property of atomic G_LOAD/STORE variants.
Thu, Oct 3, 1:11 PM · Restricted Project

Tue, Oct 1

reames committed rG0200626f0bfe: [IndVars] An implementation of loop predication without a need for speculation (authored by reames).
[IndVars] An implementation of loop predication without a need for speculation
Tue, Oct 1, 10:03 AM
reames committed rL373351: [IndVars] An implementation of loop predication without a need for speculation.
[IndVars] An implementation of loop predication without a need for speculation
Tue, Oct 1, 10:03 AM
reames closed D67408: [IndVars] An implementation of loop predication without a need for speculation.
Tue, Oct 1, 10:02 AM · Restricted Project

Fri, Sep 27

reames added a comment to D68081: Allow update_test_checks.py to not scrub names.

I also don't see the value in this. With autogenerated checks, the name of the instructions shouldn't be required to tell if the test is getting the correct behaviour and preserving the names makes test checks much more fragile.

So here's the situation I ran into. I have hundreds of tests to update. I don't want to match all of the IR, just selected instructions. The current behavior of rewriting the operands with FileCheck variable names makes it difficult to delete parts of the IR. Maintaining the original names makes it easy to delete IR.

This is not what an autogenerated test is. An auto-generated test includes the final state, and updating it is simply running the update script. We do not want to encourage customization of the output or manual workflows.

Fri, Sep 27, 1:24 PM · Restricted Project

Thu, Sep 26

reames accepted D68107: [LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of hasDedicatedExits.

LGTM

Thu, Sep 26, 4:21 PM · Restricted Project
reames requested changes to D68107: [LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of hasDedicatedExits.
Thu, Sep 26, 4:05 PM · Restricted Project
reames added a comment to D67948: [LV] Interleaving should not exceed estimated loop trip count..

This looks reasonable to me, but I'm not a qualified reviewer in this area.

Thu, Sep 26, 4:03 PM · Restricted Project
reames resigned from D67721: [InstSimplify] fold fma/fmuladd with a NaN operand.
Thu, Sep 26, 3:59 PM · Restricted Project
reames added a comment to D68081: Allow update_test_checks.py to not scrub names.

I'm not sure this is a good idea.

I also don't see the value in this. With autogenerated checks, the name of the instructions shouldn't be required to tell if the test is getting the correct behaviour and preserving the names makes test checks much more fragile.

Thu, Sep 26, 2:25 PM · Restricted Project

Wed, Sep 25

reames added a comment to D67977: [InstCombine] Use m_Zero instead of isNullValue() when checking if a GEP index is all zeroes to prevent an infinite loop..

I'm fine with this landing as a workaround, but it really feels like the right fix is on the other transform. <0, undef> is effectively a zero index (or can be chosen as such), and our transforms should be aware of that.

Wed, Sep 25, 8:59 AM · Restricted Project
reames added a comment to D67552: [LangRef] Clarify absence of rounding guarantees for fmuladd..

LGTM (though I think we're waiting for @reames).

Thanks!. From the previous comments my understanding is that the re-phrasing looks good to him, but I'll wait for a few more days, in case there are additional concerns.

No need to wait.

Wed, Sep 25, 8:59 AM · Restricted Project

Tue, Sep 24

reames committed rGd9629b88ff72: [GCRelocate] Add a peephole to canonicalize base pointer relocation (authored by reames).
[GCRelocate] Add a peephole to canonicalize base pointer relocation
Tue, Sep 24, 10:24 AM
reames committed rL372771: [GCRelocate] Add a peephole to canonicalize base pointer relocation.
[GCRelocate] Add a peephole to canonicalize base pointer relocation
Tue, Sep 24, 10:23 AM

Mon, Sep 23

reames added a comment to D67870: DSE miscompile when store is clobbered across loop iterations.

The problem occurs when it visits the loop block through a backedge. It asks the AA about aliasing between stores (1) and (2). BasicAA sees that two stores access addresses which are distincs offsets from the same base and concludes that they don't alias. This is true for accesses within one loop iteration, but this is not true across iterations.

Mon, Sep 23, 2:20 PM

Sep 13 2019

reames added a comment to D67178: [SCEV] Use loop guard info when computing the max BE taken count in howFarToZero..

SCEV already has support for isLoopEntryGuardedByCond which should be a super set of the added code. Have you explored why the distance expression isn't be canonicalized at construction?

Sep 13 2019, 9:25 PM · Restricted Project
reames added inline comments to D67552: [LangRef] Clarify absence of rounding guarantees for fmuladd..
Sep 13 2019, 6:28 PM · Restricted Project
reames added inline comments to D67553: [InstSimplify] Match 1.0 and 0.0 for both operands in SimplifyFMAMul.
Sep 13 2019, 9:19 AM · Restricted Project
reames accepted D67553: [InstSimplify] Match 1.0 and 0.0 for both operands in SimplifyFMAMul.
Sep 13 2019, 9:16 AM · Restricted Project
reames added inline comments to D67552: [LangRef] Clarify absence of rounding guarantees for fmuladd..
Sep 13 2019, 9:15 AM · Restricted Project
reames added inline comments to D67408: [IndVars] An implementation of loop predication without a need for speculation.
Sep 13 2019, 9:07 AM · Restricted Project

Sep 12 2019

reames committed rG4a8916cf1a45: [Test] Restructure check lines to show differences between modes more clearly (authored by reames).
[Test] Restructure check lines to show differences between modes more clearly
Sep 12 2019, 4:22 PM