Page MenuHomePhabricator

samparker (Sam Parker)
User

Projects

User does not belong to any projects.

User Details

User Since
May 11 2015, 7:59 AM (223 w, 5 d)

Recent Activity

Yesterday

samparker created D66660: [ARM][ParallelDSP] Change search for muls.
Fri, Aug 23, 8:43 AM

Mon, Aug 12

samparker accepted D66005: [ARM] Add MVE beats vector cost model.

LGTM

Mon, Aug 12, 2:24 AM · Restricted Project

Fri, Aug 9

samparker added inline comments to D66005: [ARM] Add MVE beats vector cost model.
Fri, Aug 9, 5:34 AM · Restricted Project
samparker accepted D66006: [ARM] sext of a load is free.

Huh, surprised this was missing. Add i64 before committing?

Fri, Aug 9, 5:23 AM · Restricted Project
samparker committed rG0dba791a25e7: [ARM][ParallelDSP] Replace SExt uses (authored by samparker).
[ARM][ParallelDSP] Replace SExt uses
Fri, Aug 9, 12:51 AM
samparker added a comment to D65884: [ARM] MVE Tail Predication.

Sure, the ACLE intrinsic needs to return an i16, but does that mean the IR intrinsic needs to? It could be expanded to two instructions, llvm_arm_vctp32 and llvm_arm_vmrs, with the i16 coming from the vmrs. This kind of thing sounds like it would be useful already for things like masked loads. i.e I'm saying can we invert where the conversion happens?

It would work even better for compares that already have predicate that llvm knows about. They whole thing would just become llvm IR and we can let it optimise away.

Fri, Aug 9, 12:46 AM

Thu, Aug 8

samparker added a comment to D65929: [ARM] Make v2i1 a valid type for the MVE predicate register..

Some codegen tests would be good.

Thu, Aug 8, 3:03 AM · Restricted Project
samparker accepted D65583: [ARM] MVE big endian loads/stores.

What an eye opener...

Thu, Aug 8, 2:59 AM · Restricted Project
samparker added inline comments to D65583: [ARM] MVE big endian loads/stores.
Thu, Aug 8, 1:53 AM · Restricted Project
samparker added inline comments to D65583: [ARM] MVE big endian loads/stores.
Thu, Aug 8, 1:23 AM · Restricted Project
samparker accepted D65803: [MVE] Don't try to unroll vectorised MVE loops.

Ah, nice. LGTM

Thu, Aug 8, 12:56 AM · Restricted Project
samparker updated the diff for D65884: [ARM] MVE Tail Predication.

Updated with context.

Thu, Aug 8, 12:44 AM
samparker added a comment to D65884: [ARM] MVE Tail Predication.

Why does the llvm_arm_vctp32 not return a <4xi1> directly?

The vctp family are defined like that because the ACLE specifies that they return a mve_pred16_t and I'm assuming this is a scalar - but I can't find a definition! I think that all the user facing predicate generators will produce a scalar and we will need to do the conversion to make it nice and LLVMy.

Thu, Aug 8, 12:44 AM
samparker updated the summary of D65884: [ARM] MVE Tail Predication.
Thu, Aug 8, 12:18 AM

Wed, Aug 7

samparker accepted D65809: [ARM] Expand CTPOP instruction for MVE .

LGTM.

Wed, Aug 7, 8:36 AM · Restricted Project
samparker created D65884: [ARM] MVE Tail Predication.
Wed, Aug 7, 8:21 AM
samparker accepted D65580: [ARM] Tighten up VLDRH.32 with low alignments.

With my confusion cleared, LGTM.

Wed, Aug 7, 2:34 AM · Restricted Project
samparker added inline comments to D65580: [ARM] Tighten up VLDRH.32 with low alignments.
Wed, Aug 7, 2:28 AM · Restricted Project
samparker added inline comments to D65580: [ARM] Tighten up VLDRH.32 with low alignments.
Wed, Aug 7, 1:06 AM · Restricted Project
samparker committed rG173de0374049: [ARM][LowOverheadLoops] Revert after read/write (authored by samparker).
[ARM][LowOverheadLoops] Revert after read/write
Wed, Aug 7, 12:40 AM
samparker added a comment to D65803: [MVE] Don't try to unroll vectorised MVE loops.

Yes, I'm definitely up for preventing unrolling and I think checking the instructions would be better - we'll catch vector intrinsics that way too.

Wed, Aug 7, 12:12 AM · Restricted Project

Tue, Aug 6

samparker added a comment to D65803: [MVE] Don't try to unroll vectorised MVE loops.

Yes, I guess that would be sensible approach! I am worried that one of the (many) passes will trip somewhere, so this gives me another example test case... For performance, I'm still not convinced this is the best approach because (1) we can't depend on metadata and (2) doesn't this also prevent the scalar remainder from being unrolled too?

Tue, Aug 6, 8:47 AM · Restricted Project
samparker added a comment to D65803: [MVE] Don't try to unroll vectorised MVE loops.

Rather than for performance, I can't see how we can legally unroll a vectorized loops in the case of tail predication. I also don't know how we'd detect that a loop had been unrolled when we get to the conversion phase, so it seems like this is the only place where we can maintain correctness. And because we need this for legality, we can't rely on metadata...

Tue, Aug 6, 6:23 AM · Restricted Project
samparker added a comment to D65792: [ARM][LowOverheadLoops] Revert after read/write.

Anything is allowed to use the value of LR, just not after it has been updated by LoopDec.

Tue, Aug 6, 2:18 AM · Restricted Project
samparker created D65792: [ARM][LowOverheadLoops] Revert after read/write.
Tue, Aug 6, 2:00 AM · Restricted Project
samparker added a comment to D65740: [ARM][ParallelDSP] Replace SExt uses.

Because of the VecLd[0]/LHS typo, I had assumed that there was something wrong with the handling of the 'exchange' instructions. When I added that functionality, the tests weren't very varied so I assumed that I had missed an edge case with operand orderings. What the tests show is that there are some patterns which don't get optimised well, see the TODOs. The tests in overlapping are the kind of accesses that cause the problems and it wasn't something I had thought about. We test for sext loads with multiple users, but not in the case where multiple ones are widened.

Tue, Aug 6, 12:02 AM · Restricted Project

Mon, Aug 5

samparker added a comment to D65746: [ARM] Generate VHADDs/VHSUBs.

So why doesn't sdiv get optimised like udiv..?

Mon, Aug 5, 7:59 AM · Restricted Project
samparker created D65740: [ARM][ParallelDSP] Replace SExt uses.
Mon, Aug 5, 5:49 AM · Restricted Project

Fri, Aug 2

samparker committed rGcd3859927596: [NFC][ARM[ParallelDSP] Rename/remove/change types (authored by samparker).
[NFC][ARM[ParallelDSP] Rename/remove/change types
Fri, Aug 2, 1:21 AM
samparker committed rG14c6dfdfe2da: [NFC][ARM][ParallelDSP] Remove ValueList (authored by samparker).
[NFC][ARM][ParallelDSP] Remove ValueList
Fri, Aug 2, 12:34 AM

Thu, Aug 1

samparker created D65567: [ARM][ParallelDSP] Generate SMUAD.
Thu, Aug 1, 2:42 AM
samparker committed rG7ca8c6f6db8d: [NFC][ARM][ParallelDSP] Getters and renaming (authored by samparker).
[NFC][ARM][ParallelDSP] Getters and renaming
Thu, Aug 1, 1:18 AM

Wed, Jul 31

samparker accepted D65502: [ARM] Fix for MVE VREV64.

LGTM

Wed, Jul 31, 3:27 AM · Restricted Project
samparker committed rG5ea07f7c072c: [NFC][ARMCGP] Use switch in isSupportedValue (authored by samparker).
[NFC][ARMCGP] Use switch in isSupportedValue
Wed, Jul 31, 2:36 AM
samparker added a comment to D65324: [ARM][ParallelDSP] Convert to function pass.

@efriedma Thanks, added Preserved before committing.

Wed, Jul 31, 12:51 AM · Restricted Project
samparker committed rG2200a9bdf351: [ARM][ParallelDSP] Convert to function pass (authored by samparker).
[ARM][ParallelDSP] Convert to function pass
Wed, Jul 31, 12:35 AM

Tue, Jul 30

samparker abandoned D49239: [ARM]{WIP] SADD16 support in ParallelDSP.
Tue, Jul 30, 5:11 AM
samparker abandoned D52550: [ARM] Check for sel intrinsic use in ARM CGP.
Tue, Jul 30, 5:11 AM
samparker abandoned D50079: [ARM] arm.codegen.zeroext intrinsics.
Tue, Jul 30, 5:11 AM
samparker updated the diff for D65324: [ARM][ParallelDSP] Convert to function pass.

Thanks. Added skipFunction and rebased.

Tue, Jul 30, 1:50 AM · Restricted Project
samparker committed rGe3a4a13fcc0d: [ARM][LowOverheadLoops] Enable by default (authored by samparker).
[ARM][LowOverheadLoops] Enable by default
Tue, Jul 30, 1:16 AM
samparker committed rGed2ea3e46b75: [ARM][LowOverheadLoops] Revert non-header LE target (authored by samparker).
[ARM][LowOverheadLoops] Revert non-header LE target
Tue, Jul 30, 1:10 AM

Mon, Jul 29

samparker committed rG11ad33ede65a: [NFC][ARM][ParallelDSP] Remove PopulateLoads (authored by samparker).
[NFC][ARM][ParallelDSP] Remove PopulateLoads
Mon, Jul 29, 8:31 AM
samparker committed rG853806010333: [NFC][ARM][ParallelDSP] Remove AreSymmetrical (authored by samparker).
[NFC][ARM][ParallelDSP] Remove AreSymmetrical
Mon, Jul 29, 8:16 AM
samparker committed rG414dd1c946a4: [NFC][ARM[ParallelDSP] Cleanup of BinOpChain (authored by samparker).
[NFC][ARM[ParallelDSP] Cleanup of BinOpChain
Mon, Jul 29, 7:54 AM
samparker accepted D65351: [ARM] Lower "(x<<c) > 0x80000000U" to "lsls" on Thumb1..

LGTM

Mon, Jul 29, 7:36 AM · Restricted Project

Fri, Jul 26

samparker committed rG3da59e55138d: [ARM][ParallelDSP] Combine structs (authored by samparker).
[ARM][ParallelDSP] Combine structs
Fri, Jul 26, 7:12 AM
samparker committed rG7440065bd818: [NFC][ARM][ParallelDSP] Cleanup isNarrowSequence (authored by samparker).
[NFC][ARM][ParallelDSP] Cleanup isNarrowSequence
Fri, Jul 26, 4:00 AM
samparker created D65324: [ARM][ParallelDSP] Convert to function pass.
Fri, Jul 26, 3:05 AM · Restricted Project
samparker updated the diff for D65268: [ARM][LowOverheadLoops] Revert non-header LE target.

Reduced test case and removed change from previous commit.

Fri, Jul 26, 2:15 AM · Restricted Project
samparker added a comment to D65275: [ARM][LowOverheadLoops] Add CPSR defs.

I made some changes before committing - after noticing I should have attached the def to LoopEnd and not LoopDec.

Fri, Jul 26, 1:25 AM · Restricted Project
samparker committed rGc760b5da1164: [ARM][LowOverheadLoops] Add CPSR defs (authored by samparker).
[ARM][LowOverheadLoops] Add CPSR defs
Fri, Jul 26, 1:17 AM
samparker added inline comments to D65268: [ARM][LowOverheadLoops] Revert non-header LE target.
Fri, Jul 26, 12:47 AM · Restricted Project

Thu, Jul 25

samparker added inline comments to D65275: [ARM][LowOverheadLoops] Add CPSR defs.
Thu, Jul 25, 11:56 PM · Restricted Project

Jul 25 2019

samparker abandoned D65069: [ARM][ParallelDSP] Improve smlad search.

Not sure why this is still lingering in my phab, this has been closed already.

Jul 25 2019, 6:01 AM
samparker added parent revisions for D65277: [ARM][LowOverheadLoops] Enable by default: D65268: [ARM][LowOverheadLoops] Revert non-header LE target, D65275: [ARM][LowOverheadLoops] Add CPSR defs.
Jul 25 2019, 5:48 AM · Restricted Project
samparker added a child revision for D65268: [ARM][LowOverheadLoops] Revert non-header LE target: D65277: [ARM][LowOverheadLoops] Enable by default.
Jul 25 2019, 5:48 AM · Restricted Project
samparker created D65277: [ARM][LowOverheadLoops] Enable by default.
Jul 25 2019, 5:48 AM · Restricted Project
samparker added a child revision for D65275: [ARM][LowOverheadLoops] Add CPSR defs: D65277: [ARM][LowOverheadLoops] Enable by default.
Jul 25 2019, 5:48 AM · Restricted Project
samparker abandoned D63440: [WIP][LoopUnroll] Enable unrolled loops to have scevable trip counts..
Jul 25 2019, 5:25 AM · Restricted Project
samparker created D65275: [ARM][LowOverheadLoops] Add CPSR defs.
Jul 25 2019, 5:22 AM · Restricted Project
samparker created D65268: [ARM][LowOverheadLoops] Revert non-header LE target.
Jul 25 2019, 2:15 AM · Restricted Project

Jul 24 2019

samparker committed rGaeb21b96a0e9: [ARM][ParallelDSP] Fix pointer operand reordering (authored by samparker).
[ARM][ParallelDSP] Fix pointer operand reordering
Jul 24 2019, 2:42 AM
samparker added a comment to D65175: [ARM] Transform compare of masked value to shift on Thumb1..

Any reason why not to use this for thumb2 as well? It looks like it would be useful for T2 codesize.

Jul 24 2019, 2:08 AM · Restricted Project
samparker created D65193: [ARM][ParallelDSP] Fix pointer operand reordering.
Jul 24 2019, 1:47 AM · Restricted Project

Jul 23 2019

samparker committed rG57e87dd81beb: [ARM][LowOverheadLoops] Fix branch target codegen (authored by samparker).
[ARM][LowOverheadLoops] Fix branch target codegen
Jul 23 2019, 7:13 AM
samparker added inline comments to D64616: [ARM][LowOverheadLoops] Fix branch target codegen.
Jul 23 2019, 6:42 AM · Restricted Project
samparker added a comment to D65052: [ARM] MVE predicate register support.

yarp.

Jul 23 2019, 5:29 AM · Restricted Project
samparker accepted D65054: [ARM] MVE floating point compares and selects.

I trust that those massive test files are okay! LGTM.

Jul 23 2019, 5:26 AM · Restricted Project
samparker accepted D65072: [ARM] Rewrite how VCMP are lowered, using a single node.

Cheers! LGTM

Jul 23 2019, 5:22 AM · Restricted Project
samparker added inline comments to D65052: [ARM] MVE predicate register support.
Jul 23 2019, 3:56 AM · Restricted Project

Jul 22 2019

samparker committed rG4379a400889c: [ARM][LowOverheadLoops] Revert remaining pseudos (authored by samparker).
[ARM][LowOverheadLoops] Revert remaining pseudos
Jul 22 2019, 7:18 AM
samparker updated the diff for D64616: [ARM][LowOverheadLoops] Fix branch target codegen.

Added support for setcc ge/uge, 1

Jul 22 2019, 7:14 AM · Restricted Project
samparker added inline comments to D65072: [ARM] Rewrite how VCMP are lowered, using a single node.
Jul 22 2019, 6:55 AM · Restricted Project
samparker accepted D65066: [ARM] Disable MVE fptosi and friends.

Do you see a way that we can make this more efficient in the future..? If so, could we add a comment somewhere because looking at these code sequences, I hope this doesn't come up often!

Jul 22 2019, 6:30 AM · Restricted Project
samparker created D65080: [ARM][LowOverheadLoops] Revert remaining pseudos.
Jul 22 2019, 6:02 AM · Restricted Project
samparker updated the diff for D64616: [ARM][LowOverheadLoops] Fix branch target codegen.
  • renamed the nodes and the search function.
  • added support for other setcc opcodes, other than EQ and NE.
Jul 22 2019, 4:01 AM · Restricted Project
samparker created D65069: [ARM][ParallelDSP] Improve smlad search.
Jul 22 2019, 2:50 AM

Jul 12 2019

samparker added inline comments to D64616: [ARM][LowOverheadLoops] Fix branch target codegen.
Jul 12 2019, 1:04 AM · Restricted Project
samparker created D64616: [ARM][LowOverheadLoops] Fix branch target codegen.
Jul 12 2019, 12:09 AM · Restricted Project

Jul 11 2019

samparker committed rG08b4a8da07aa: [ARM][LowOverheadLoops] Correct offset checking (authored by samparker).
[ARM][LowOverheadLoops] Correct offset checking
Jul 11 2019, 2:57 AM
samparker closed D64501: [ARM][LowOverheadLoops] Correct offset checking.

Committed in rL365749.

Jul 11 2019, 2:56 AM
samparker committed rG85ad78b1cfa3: [ARM][ParallelDSP] Change the search for smlads (authored by samparker).
[ARM][ParallelDSP] Change the search for smlads
Jul 11 2019, 12:49 AM
samparker updated the diff for D64501: [ARM][LowOverheadLoops] Correct offset checking.

Modified logic during lowering.

Jul 11 2019, 12:36 AM
samparker added inline comments to D64501: [ARM][LowOverheadLoops] Correct offset checking.
Jul 11 2019, 12:19 AM

Jul 10 2019

samparker created D64501: [ARM][LowOverheadLoops] Correct offset checking.
Jul 10 2019, 8:19 AM
samparker committed rG775b2f598a99: [NFC][ARM] Convert lambdas to static helpers (authored by samparker).
[NFC][ARM] Convert lambdas to static helpers
Jul 10 2019, 5:31 AM
samparker accepted D64471: Loop pragma parsing. NFC..

LGTM

Jul 10 2019, 5:04 AM · Restricted Project
samparker updated the diff for D61780: [ARM][ParallelDSP] Change the search for smlads.

Added and modified comments.

Jul 10 2019, 1:44 AM · Restricted Project

Jul 9 2019

samparker accepted D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().

Thanks, LGTM

Jul 9 2019, 7:21 AM · Restricted Project
samparker closed D64122: Fix for PR42397. SCEVExpander wrongly adds nsw to shl instruction..

Committed in rL365363.

Jul 9 2019, 2:47 AM · Restricted Project
samparker added inline comments to D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().
Jul 9 2019, 2:27 AM · Restricted Project

Jul 3 2019

samparker accepted D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.

Thanks. LGTM

Jul 3 2019, 9:18 AM · Restricted Project
samparker committed rG6005681ac614: [ARM] Fix for NDEBUG builds (authored by samparker).
[ARM] Fix for NDEBUG builds
Jul 3 2019, 7:41 AM
samparker added a comment to D63816: [ARM] WLS/LE Code Generation.

@RKSimon Committed in rL365046

Jul 3 2019, 7:40 AM · Restricted Project
samparker added inline comments to D63816: [ARM] WLS/LE Code Generation.
Jul 3 2019, 6:14 AM · Restricted Project
samparker added a comment to D64124: [PowerPC] Hardware Loop branch instruction's condition may not be icmp.

Please could you add an opt test for the hardware-loops too? This looks like a corner case that we're not getting generic coverage on.

Jul 3 2019, 2:23 AM · Restricted Project
samparker accepted D64122: Fix for PR42397. SCEVExpander wrongly adds nsw to shl instruction..

Thanks for doing this! LGTM.

Jul 3 2019, 1:30 AM · Restricted Project

Jul 2 2019

samparker added a comment to D63928: [ARM][SCEV][LSR] Prevent using undefined value in binops.

There's a fair number of sub, load and ptrtoint instructions so narrowing the context of the checks would be good, just checking which basic block would be good. As well as what GEP the load is using. Thanks.

Jul 2 2019, 6:10 AM · Restricted Project
samparker added a comment to D63928: [ARM][SCEV][LSR] Prevent using undefined value in binops.

And please could you update the test so that is clear which instructions you are testing.

Jul 2 2019, 5:00 AM · Restricted Project