Page MenuHomePhabricator

c-rhodes (Cullen Rhodes)
User

Projects

User does not belong to any projects.

User Details

User Since
May 18 2016, 6:13 AM (244 w, 6 d)

Recent Activity

Today

c-rhodes updated the diff for D94869: [LV] Fix crash when computing max VF too early.

@fhahn I've simplified the test, thanks for the comments!

Tue, Jan 26, 6:10 AM · Restricted Project

Wed, Jan 20

c-rhodes added a comment to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Are there plans to use this for fixed vectors as well? If not, can this be restricted to scalable vectors only? It seems like for fixed vectors, preferring the shufflevector versions would be beneficial, to avoid having to update all transforms lookin at shuffles.

Otherwise, this should probably have some tests for platforms other than AArch64 and also support in GlobalISel, which is the default on AArch64 with -O0 IIRC (or do the transform to shuffles as an IR transform).

Wed, Jan 20, 7:18 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Wed, Jan 20, 6:39 AM · Restricted Project
c-rhodes updated the diff for D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Changes:

  • Remove unused function declaration for LowerVECTOR_SPLICE.
  • Clarify trailing.elts must be an integer constant in LangRef.
  • Use DefaultAttrs for intrinsic.
  • Use setOperationPromotedToType.
Wed, Jan 20, 6:25 AM · Restricted Project

Mon, Jan 18

c-rhodes added reviewers for D94869: [LV] Fix crash when computing max VF too early: fhahn, sdesmalen.
Mon, Jan 18, 6:47 AM · Restricted Project
c-rhodes updated subscribers of D94869: [LV] Fix crash when computing max VF too early.
Mon, Jan 18, 6:47 AM · Restricted Project

Sat, Jan 16

c-rhodes added a comment to D90687: [LV] Clamp VF hint when unsafe.

The patch that causes the assert is patch cba4accda08f90. I tried commit c63799fc52ff247 that is before your patch and there is no assert. Thank you.

Sat, Jan 16, 9:07 AM · Restricted Project
c-rhodes requested review of D94869: [LV] Fix crash when computing max VF too early.
Sat, Jan 16, 9:00 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Sat, Jan 16, 4:27 AM · Restricted Project

Fri, Jan 15

c-rhodes added a comment to D90687: [LV] Clamp VF hint when unsafe.

I configured and built llvm with:
cmake -G Ninja -DLLVM_TARGETS_TO_BUILD:STRING=Hexagon -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=hexagon-unknown-elf -DLLVM_TARGET_ARCH:STRING=hexagon-unknown-elf -DLLVM_ENABLE_ASSERTIONS:BOOL=ON -DLLVM_PARALLEL_LINK_JOBS=1 '-DLLVM_ENABLE_PROJECTS=llvm;clang' -DBUILD_SHARED_LIBS:BOOL=ON ..

This patch causes an assert with this testcase:
typedef struct {

char a;

} b;
b *c;
int d, e;
int f() {

int g = 0;
for (; d; d++) {
  e = 0;
  for (; e < c[d].a; e++)
    g++;
}
return g;

}
clang -Os -mhvx -fvectorize -mv67 testcase.i -S -o -

llvm::LoopVectorizationCostModel::computeMaxVF(llvm::ElementCount, unsigned int): Assertion `WideningDecisions.empty() && Uniforms.empty() && Scalars.empty() && "No decisions should have been taken at this point"' failed.

Fri, Jan 15, 10:07 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Fri, Jan 15, 4:19 AM · Restricted Project

Thu, Jan 14

c-rhodes requested review of D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Thu, Jan 14, 12:18 PM · Restricted Project

Wed, Jan 13

c-rhodes committed rGad85e3967067: [SVE] Add ISel pattern for addvl (authored by c-rhodes).
[SVE] Add ISel pattern for addvl
Wed, Jan 13, 3:25 AM
c-rhodes closed D94504: [SVE] Add ISel pattern for addvl.
Wed, Jan 13, 3:24 AM · Restricted Project
c-rhodes added a comment to D94504: [SVE] Add ISel pattern for addvl.

LGTM

I'm assuming scheduling the new addvls closer to their uses is a register pressure win?

Wed, Jan 13, 2:56 AM · Restricted Project

Tue, Jan 12

c-rhodes updated the diff for D94504: [SVE] Add ISel pattern for addvl.

Rebased. Committed update_llc_test_checks.py changes separately to reduce the diff (thanks for suggestion @sdesmalen).

Tue, Jan 12, 10:17 AM · Restricted Project
c-rhodes committed rG3d9c51d111d0: [SVE][NFC] Regenerate a few CodeGen tests (authored by c-rhodes).
[SVE][NFC] Regenerate a few CodeGen tests
Tue, Jan 12, 10:11 AM
c-rhodes requested review of D94504: [SVE] Add ISel pattern for addvl.
Tue, Jan 12, 8:57 AM · Restricted Project

Fri, Jan 8

c-rhodes accepted D94290: [clang][AArch64][SVE] Avoid going through memory for coerced VLST return values.

I've left one minor nit but looks otherwise looks fine to me

Fri, Jan 8, 3:43 AM · Restricted Project
c-rhodes committed rG1e7efd397ac2: [LV] Legalize scalable VF hints (authored by c-rhodes).
[LV] Legalize scalable VF hints
Fri, Jan 8, 3:04 AM
c-rhodes closed D91718: [LV] Legalize scalable VF hints.
Fri, Jan 8, 3:03 AM · Restricted Project

Thu, Jan 7

c-rhodes added a comment to D94168: [RISCV] Add scalable vector icmp ISel patterns.

@c-rhodes, could you possibly check that the changes to the AArch64 tests are okay? The whilelo one is a bit confusing.

Thu, Jan 7, 9:31 AM · Restricted Project
c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Thu, Jan 7, 7:35 AM · Restricted Project

Wed, Jan 6

c-rhodes added a comment to D91718: [LV] Legalize scalable VF hints.

@fhahn thanks for reviewing, I think I've addressed all comments. I'll probably land this over the coming days unless there's any objections between then, cheers.

Wed, Jan 6, 8:13 AM · Restricted Project
c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Address @fhahn comments.

Wed, Jan 6, 8:09 AM · Restricted Project
c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Wed, Jan 6, 7:13 AM · Restricted Project

Tue, Jan 5

c-rhodes added inline comments to D75674: [AArch64][SVE] Implement vector tuple intrinsics.
Tue, Jan 5, 10:30 AM · Restricted Project
c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Changes:

  • Rebased. Target hook for max vscale has been removed from this patch since it landed in D93030.
  • Address Sander's comment w.r.t. falling back to fixed vectorization if scalable vectors are supported, but max vscale is undefined.
Tue, Jan 5, 10:02 AM · Restricted Project

Mon, Jan 4

c-rhodes added inline comments to D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments.
Mon, Jan 4, 5:38 AM · Restricted Project
c-rhodes accepted D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments.
Mon, Jan 4, 5:01 AM · Restricted Project

Dec 21 2020

c-rhodes accepted D93537: [AArch64] Fix inline assembly parsing crash.
Dec 21 2020, 7:24 AM · Restricted Project
c-rhodes added inline comments to D93537: [AArch64] Fix inline assembly parsing crash.
Dec 21 2020, 3:51 AM · Restricted Project

Dec 18 2020

c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Address @fhahn's comments, changes:

Dec 18 2020, 9:06 AM · Restricted Project
c-rhodes added inline comments to D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments.
Dec 18 2020, 7:50 AM · Restricted Project
c-rhodes committed rG7c8796f9db2c: [TTI] Add supportsScalableVectors target hook (authored by c-rhodes).
[TTI] Add supportsScalableVectors target hook
Dec 18 2020, 2:59 AM
c-rhodes closed D93060: [TTI] Add supportsScalableVectors target hook.
Dec 18 2020, 2:59 AM · Restricted Project

Dec 17 2020

c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Handle scalable VF in a single isScalable block in computeFeasibleMaxVF.

Dec 17 2020, 5:02 AM · Restricted Project
c-rhodes committed rG1fd3a0477597: [LV] Disable epilogue vectorization for scalable VFs (authored by c-rhodes).
[LV] Disable epilogue vectorization for scalable VFs
Dec 17 2020, 4:14 AM
c-rhodes closed D93063: [LV] Disable epilogue vectorization for scalable VFs.
Dec 17 2020, 4:14 AM · Restricted Project
c-rhodes accepted D93404: [NFC][SVE] Clean up bfloat isel patterns that emit non-bfloat instructions..
Dec 17 2020, 2:45 AM · Restricted Project

Dec 16 2020

c-rhodes added inline comments to D93307: [SVE][CodeGen] Add bfloat16 support to scalable masked gather.
Dec 16 2020, 2:36 AM · Restricted Project

Dec 15 2020

c-rhodes accepted D92761: [clang][AArch64][SVE] Avoid going through memory for VLAT <-> VLST casts.

Left a couple of nits but mostly LGTM, cheers

Dec 15 2020, 10:36 AM · Restricted Project, Restricted Project
c-rhodes added inline comments to D93307: [SVE][CodeGen] Add bfloat16 support to scalable masked gather.
Dec 15 2020, 8:56 AM · Restricted Project
c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Dec 15 2020, 6:56 AM · Restricted Project

Dec 14 2020

c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Dec 14 2020, 7:38 AM · Restricted Project
c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.
  • Rather than disable vectorization if scalable VF isn't supported, let the LV pick a VF as it normally does and process with cost-modelling.
  • Added a new LV flag -force-target-supports-scalable-vectors to support writing non-target specific tests with scalable VFs.
  • Added a temporary workaround to use MaxVF in place of UserVF until cost modelling loop works for scalable VFs.
  • Emit opt remark.
Dec 14 2020, 7:26 AM · Restricted Project

Dec 11 2020

c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Dec 11 2020, 6:54 AM · Restricted Project
c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Dec 11 2020, 6:23 AM · Restricted Project
c-rhodes added inline comments to D93063: [LV] Disable epilogue vectorization for scalable VFs.
Dec 11 2020, 5:33 AM · Restricted Project
c-rhodes updated the diff for D93063: [LV] Disable epilogue vectorization for scalable VFs.

Address comments and added test.

Dec 11 2020, 5:32 AM · Restricted Project

Dec 10 2020

c-rhodes requested review of D93063: [LV] Disable epilogue vectorization for scalable VFs.
Dec 10 2020, 1:06 PM · Restricted Project
c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Changes:

  • Rebase since D88962 and D91077 have now landed.
  • Address @sdesmalen's comments. Added a target hook supportsScalableVectors in D93060 which is used in this patch to bail out of vectorization if unsupported. Also changed the behavior when scalable vectorization is unfeasible given a dependency, it now changes the hint to fixed, where existing behavior applies (i.e. clamping).
  • Updated tests.
Dec 10 2020, 1:01 PM · Restricted Project
c-rhodes requested review of D93060: [TTI] Add supportsScalableVectors target hook.
Dec 10 2020, 12:51 PM · Restricted Project

Dec 9 2020

c-rhodes committed rG4167a0259ec3: [IR] Support scalable vectors in CastInst::CreatePointerCast (authored by c-rhodes).
[IR] Support scalable vectors in CastInst::CreatePointerCast
Dec 9 2020, 3:01 AM
c-rhodes closed D92482: [IR] Support scalable vectors in CastInst::CreatePointerCast.
Dec 9 2020, 3:01 AM · Restricted Project

Dec 8 2020

c-rhodes committed rG2cfbdaf60104: [IR] Remove CastInst::isCastable since it is not used (authored by c-rhodes).
[IR] Remove CastInst::isCastable since it is not used
Dec 8 2020, 2:32 AM
c-rhodes closed D92571: [IR] Remove CastInst::isCastable since it is not used.
Dec 8 2020, 2:32 AM · Restricted Project, Restricted Project

Dec 7 2020

c-rhodes committed rG7b1cb4715063: [IR] Bail out for scalable vectors in ShuffleVectorInst::isConcat (authored by c-rhodes).
[IR] Bail out for scalable vectors in ShuffleVectorInst::isConcat
Dec 7 2020, 3:03 AM
c-rhodes closed D92475: [IR] Bail out for scalable vectors in ShuffleVectorInst::isConcat.
Dec 7 2020, 3:03 AM · Restricted Project
c-rhodes committed rG9b0189655500: [IR] Support scalable vectors in ShuffleVectorInst::increasesLength (authored by c-rhodes).
[IR] Support scalable vectors in ShuffleVectorInst::increasesLength
Dec 7 2020, 2:43 AM
c-rhodes closed D92472: [IR] Support scalable vectors in ShuffleVectorInst::increasesLength.
Dec 7 2020, 2:43 AM · Restricted Project

Dec 4 2020

c-rhodes committed rG333de690ea73: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask (authored by c-rhodes).
[IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask
Dec 4 2020, 3:31 AM
c-rhodes closed D92312: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask.
Dec 4 2020, 3:31 AM · Restricted Project
c-rhodes added a comment to D92571: [IR] Remove CastInst::isCastable since it is not used.

LGTM too if you drop the libcxxabi change.

If there's an out-of-tree user that needs this we can revert again if it makes sense to (in which case, it'd be better to change getCastOpcode to return an Optional<Instruction::CastOps>, so we're not having to keep two functions in sync like this...).

Dec 4 2020, 3:00 AM · Restricted Project, Restricted Project
c-rhodes updated the diff for D92571: [IR] Remove CastInst::isCastable since it is not used.

Remove change to libcxxabi test.

Dec 4 2020, 2:52 AM · Restricted Project, Restricted Project

Dec 3 2020

c-rhodes requested review of D92571: [IR] Remove CastInst::isCastable since it is not used.
Dec 3 2020, 4:37 AM · Restricted Project, Restricted Project
c-rhodes added inline comments to D92472: [IR] Support scalable vectors in ShuffleVectorInst::increasesLength.
Dec 3 2020, 3:26 AM · Restricted Project

Dec 2 2020

c-rhodes requested review of D92482: [IR] Support scalable vectors in CastInst::CreatePointerCast.
Dec 2 2020, 7:02 AM · Restricted Project
c-rhodes requested review of D92475: [IR] Bail out for scalable vectors in ShuffleVectorInst::isConcat.
Dec 2 2020, 3:58 AM · Restricted Project
c-rhodes committed rG14557cdf9427: [InstructionsTest] NFC: Replace VectorType::get(.., .., true) with… (authored by c-rhodes).
[InstructionsTest] NFC: Replace VectorType::get(.., .., true) with…
Dec 2 2020, 2:50 AM
c-rhodes closed D92467: [InstructionsTest] NFC: Replace VectorType::get(.., .., true) with ScalableVectorType::get.
Dec 2 2020, 2:50 AM · Restricted Project
c-rhodes requested review of D92472: [IR] Support scalable vectors in ShuffleVectorInst::increasesLength.
Dec 2 2020, 2:39 AM · Restricted Project
c-rhodes requested review of D92467: [InstructionsTest] NFC: Replace VectorType::get(.., .., true) with ScalableVectorType::get.
Dec 2 2020, 1:01 AM · Restricted Project

Dec 1 2020

c-rhodes updated the diff for D92312: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask.

Replace assert with bail out for scalable vector in static variant.

Dec 1 2020, 7:58 AM · Restricted Project
c-rhodes added inline comments to D92312: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask.
Dec 1 2020, 7:06 AM · Restricted Project
c-rhodes committed rGcba4accda08f: [LV] Clamp VF hint when unsafe (authored by c-rhodes).
[LV] Clamp VF hint when unsafe
Dec 1 2020, 3:31 AM
c-rhodes closed D90687: [LV] Clamp VF hint when unsafe.
Dec 1 2020, 3:31 AM · Restricted Project

Nov 30 2020

c-rhodes added inline comments to D92312: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask.
Nov 30 2020, 10:32 AM · Restricted Project
c-rhodes requested review of D92312: [IR] Disallow scalable vectors in ShuffleVectorInst::isExtractSubvectorMask.
Nov 30 2020, 5:24 AM · Restricted Project

Nov 27 2020

c-rhodes updated the diff for D91718: [LV] Legalize scalable VF hints.

Changes:

  • s/FixedVF/MaxSafeElements/
  • Rather than bail out, clamp to fixed VF is scalable is unfeasible. Remove change to return Optional<ElementCount> from LoopVectorizationCostModel::computeFeasibleMaxVF.
  • In LoopVectorizationPlanner::plan, if a UserVF is specified but isn't legal then use MaxVF (earlier).
  • Simplified the IR in the tests.
Nov 27 2020, 8:25 AM · Restricted Project
c-rhodes added a comment to D90687: [LV] Clamp VF hint when unsafe.

I think I've addressed all comments now so I'll land this at the beginning of next week unless there's any objections between then, thanks for reviewing all!

Nov 27 2020, 6:08 AM · Restricted Project
c-rhodes committed rG7b8d50b141bb: [InstSimplify] Clarify use of FixedVectorType in SimplifySelectInst (authored by c-rhodes).
[InstSimplify] Clarify use of FixedVectorType in SimplifySelectInst
Nov 27 2020, 2:21 AM
c-rhodes closed D92046: [InstSimplify] Clarify use of FixedVectorType in SimplifySelectInst.
Nov 27 2020, 2:21 AM · Restricted Project

Nov 25 2020

c-rhodes added inline comments to D91718: [LV] Legalize scalable VF hints.
Nov 25 2020, 7:41 AM · Restricted Project
c-rhodes committed rG1ba4b82f67e2: [LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits (authored by c-rhodes).
[LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits
Nov 25 2020, 5:07 AM
c-rhodes closed D91727: [LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits.
Nov 25 2020, 5:06 AM · Restricted Project
c-rhodes added inline comments to D90687: [LV] Clamp VF hint when unsafe.
Nov 25 2020, 4:03 AM · Restricted Project
c-rhodes updated the diff for D90687: [LV] Clamp VF hint when unsafe.

Address Florian's comments

Nov 25 2020, 4:01 AM · Restricted Project

Nov 24 2020

c-rhodes requested review of D92046: [InstSimplify] Clarify use of FixedVectorType in SimplifySelectInst.
Nov 24 2020, 10:32 AM · Restricted Project
c-rhodes updated the diff for D91727: [LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits.

Run clang-format

Nov 24 2020, 3:06 AM · Restricted Project

Nov 20 2020

c-rhodes added inline comments to D88663: [AArch64] Use TargetRegisterClass::hasSubClassEq in tryToFindRegisterToRename.
Nov 20 2020, 8:07 AM · Restricted Project
c-rhodes accepted D91696: [AArch64][SVE] Allow lax conversion between VLATs and GNU vectors.

Address @c-rhodes's comments regarding lax conversion when __ARM_FEATURE_SVE_BITS != N for GNU vectors.

Nov 20 2020, 4:00 AM · Restricted Project
c-rhodes added inline comments to D91727: [LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits.
Nov 20 2020, 3:43 AM · Restricted Project
c-rhodes added inline comments to D90687: [LV] Clamp VF hint when unsafe.
Nov 20 2020, 3:24 AM · Restricted Project

Nov 18 2020

c-rhodes requested review of D91727: [LAA] NFC: Rename [get]MaxSafeRegisterWidth -> [get]MaxSafeVectorWidthInBits.
Nov 18 2020, 10:33 AM · Restricted Project
c-rhodes added inline comments to D91696: [AArch64][SVE] Allow lax conversion between VLATs and GNU vectors.
Nov 18 2020, 9:49 AM · Restricted Project
c-rhodes accepted D91262: [AArch64][SVE] Allow C-style casts between fixed-size and scalable vectors.

I've left one minor comment, if that suggestion works it should be fine to fix it before committing

Nov 18 2020, 9:19 AM · Restricted Project
c-rhodes requested review of D91718: [LV] Legalize scalable VF hints.
Nov 18 2020, 8:31 AM · Restricted Project
c-rhodes updated the diff for D90687: [LV] Clamp VF hint when unsafe.
  • Rebased (computeFeasibleMaxVF now returns an ElementCount).
  • Address one of @fhahn's comments.
  • Added an assert at the top of computeFeasibleMaxVF that UserVF isn't scalable.
Nov 18 2020, 5:31 AM · Restricted Project

Nov 17 2020

c-rhodes added inline comments to D91262: [AArch64][SVE] Allow C-style casts between fixed-size and scalable vectors.
Nov 17 2020, 6:21 AM · Restricted Project