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 (264 w, 3 d)

Recent Activity

Apr 21 2021

c-rhodes accepted D100565: [TTI] NFC: Change getIntImmCost[Inst|Intrin] to return InstructionCost.
Apr 21 2021, 7:22 AM · Restricted Project

Apr 20 2021

c-rhodes committed rGf166d0db71bf: [AArch64][AsmParser] NFC: Remove unused ExtendOp struct (authored by c-rhodes).
[AArch64][AsmParser] NFC: Remove unused ExtendOp struct
Apr 20 2021, 6:49 AM
c-rhodes committed rG8a6772f3aa92: [ValueTypes] Fix sizes of v256i32 and v256f32 (8182 -> 8192) (authored by c-rhodes).
[ValueTypes] Fix sizes of v256i32 and v256f32 (8182 -> 8192)
Apr 20 2021, 5:10 AM

Apr 19 2021

c-rhodes committed rGf0bc2782f281: [TTI] NFC: Remove unused 'OptSize' parameter from shouldMaximizeVectorBandwidth (authored by c-rhodes).
[TTI] NFC: Remove unused 'OptSize' parameter from shouldMaximizeVectorBandwidth
Apr 19 2021, 4:03 AM
c-rhodes closed D100377: [TTI] NFC: Remove unused 'OptSize' parameter from shouldMaximizeVectorBandwidth.
Apr 19 2021, 4:02 AM · Restricted Project

Apr 15 2021

c-rhodes added inline comments to D100565: [TTI] NFC: Change getIntImmCost[Inst|Intrin] to return InstructionCost.
Apr 15 2021, 8:21 AM · Restricted Project
c-rhodes added inline comments to D100485: [AArch64][SVE] Fix crash with icmp+select.
Apr 15 2021, 3:45 AM · Restricted Project

Apr 14 2021

c-rhodes accepted D100316: [TTI] NFC: Change getFPOpCost to return InstructionCost.

LGTM

Apr 14 2021, 3:07 AM · Restricted Project
c-rhodes accepted D100312: [TTI] NFC: Change getCallInstrCost to return InstructionCost.

LGTM

Apr 14 2021, 3:03 AM · Restricted Project
c-rhodes accepted D98509: [LV] Calculate max feasible scalable VF..

LGTM

Apr 14 2021, 2:49 AM · Restricted Project

Apr 13 2021

c-rhodes requested review of D100377: [TTI] NFC: Remove unused 'OptSize' parameter from shouldMaximizeVectorBandwidth.
Apr 13 2021, 5:00 AM · Restricted Project
c-rhodes added inline comments to D98509: [LV] Calculate max feasible scalable VF..
Apr 13 2021, 3:52 AM · Restricted Project
c-rhodes accepted D100297: [AArch64][SVE] Always use overloaded methods instead of preprocessor macro..

LGTM

Apr 13 2021, 3:29 AM · Restricted Project

Mar 30 2021

c-rhodes added inline comments to D98509: [LV] Calculate max feasible scalable VF..
Mar 30 2021, 5:27 AM · Restricted Project

Mar 9 2021

c-rhodes committed rG2750f3ed3155: [IR] Introduce llvm.experimental.vector.splice intrinsic (authored by c-rhodes).
[IR] Introduce llvm.experimental.vector.splice intrinsic
Mar 9 2021, 2:45 AM
c-rhodes closed D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Mar 9 2021, 2:45 AM · Restricted Project

Mar 5 2021

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

Thanks for reviewing all, I'll land this early next week unless there's any objections between then, cheers

Mar 5 2021, 6:58 AM · Restricted Project

Mar 3 2021

c-rhodes updated the diff for D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Address @sdesmalen's comments

Mar 3 2021, 3:51 AM · Restricted Project

Feb 22 2021

c-rhodes accepted D97053: [clang][SVE] Don't warn on vector to sizeless builtin implicit conversion.

LGTM thanks

Feb 22 2021, 10:04 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Feb 22 2021, 7:17 AM · Restricted Project
c-rhodes updated the diff for D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Address comments

Feb 22 2021, 7:08 AM · Restricted Project
c-rhodes added a comment to D97053: [clang][SVE] Don't warn on vector to sizeless builtin implicit conversion.

Is this change specific to fixed vectors declared with arm_sve_vector_bits or any of the subclasses of VectorType? If it allows the others, how do we know for sure that there are enough bits in the scalable type for the fixed vector. I ask because RISCV is also using sizeless builtin types for our vectors as of D92715.

Feb 22 2021, 5:12 AM · Restricted Project

Feb 19 2021

c-rhodes added inline comments to D97053: [clang][SVE] Don't warn on vector to sizeless builtin implicit conversion.
Feb 19 2021, 9:58 AM · Restricted Project
c-rhodes added inline comments to D97053: [clang][SVE] Don't warn on vector to sizeless builtin implicit conversion.
Feb 19 2021, 8:33 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Feb 19 2021, 7:51 AM · Restricted Project
c-rhodes updated the diff for D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Address comments

Feb 19 2021, 7:49 AM · Restricted Project

Feb 18 2021

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).

The named shufflevector intrinsics accept both fixed and scalable vectors but for fixed they map to existing shufflevector.

As specified here yes, but I was wondering if they actually need to support fixed-width vectors? Is there a reason to use the intrinsics with fixed vectors instead of shuffles?

Feb 18 2021, 7:18 AM · Restricted Project
c-rhodes updated the diff for D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.

Changes:

  • As proposed by @sdesmalen, the intrinsic now supports two variants based on the sign of the immediate, where a negative immediate is a trailing element count and a positive immediate an index.
  • Following the discussion on the reverse intrinsic (D94883) around whether named shufflevector intrinsics should support fixed vectors, I've opted for the same approach to make it explicit in the LangRef that whilst these instructions are experimental shufflevector should be used for fixed-width vectors. The changes to InstCombineCalls to map this intrinsic to shufflevector as an IR transform have been dropped.
  • ExpandVectorSpliceThroughStack has been moved to TLI under expandVectorSplice which is reused by DAGTypeLegalizer::SplitVecRes_VECTOR_SPLICE.
Feb 18 2021, 7:13 AM · Restricted Project

Feb 16 2021

c-rhodes accepted D96021: [LoopVectorize] NFC: Move UserVF feasibility checks to separate function..

LGTM, might be worth leaving a little time before landing incase others have any comments, cheers

Feb 16 2021, 7:28 AM · Restricted Project

Feb 12 2021

c-rhodes added inline comments to D96021: [LoopVectorize] NFC: Move UserVF feasibility checks to separate function..
Feb 12 2021, 6:52 AM · Restricted Project

Feb 10 2021

c-rhodes added inline comments to D96020: [TTI] Change TargetTransformInfo::getMinimumVF to return ElementCount.
Feb 10 2021, 5:12 AM · Restricted Project
c-rhodes accepted D94776: [AArch64][SVE] Asm: Fix supported immediates for DUP/CPY.
Feb 10 2021, 2:52 AM · Restricted Project

Feb 8 2021

c-rhodes added inline comments to D88663: [AArch64] Use TargetRegisterClass::hasSubClassEq in tryToFindRegisterToRename.
Feb 8 2021, 8:12 AM · Restricted Project
c-rhodes updated the diff for D88663: [AArch64] Use TargetRegisterClass::hasSubClassEq in tryToFindRegisterToRename.

Fix renaming of implicit-defs but only allow it for certain opcodes.

Feb 8 2021, 8:05 AM · Restricted Project

Feb 4 2021

c-rhodes accepted D95934: [Analysis] Remove unused functions from TargetLibraryInfo.
Feb 4 2021, 8:34 AM · Restricted Project

Feb 1 2021

c-rhodes added inline comments to D94776: [AArch64][SVE] Asm: Fix supported immediates for DUP/CPY.
Feb 1 2021, 10:00 AM · Restricted Project
c-rhodes closed D90687: [LV] Clamp VF hint when unsafe.

Thanks Cullen! I tried your fix D94869 and my benchmark passes.

Feb 1 2021, 5:19 AM · Restricted Project
c-rhodes added a comment to D94869: [LV] Fix crash when computing max VF too early.

LGTM, thanks! This should probably also go onto the 12.x release branch.

Feb 1 2021, 5:18 AM · Restricted Project
c-rhodes committed rG8cda227432f1: [LV] Fix crash when computing max VF too early (authored by c-rhodes).
[LV] Fix crash when computing max VF too early
Feb 1 2021, 4:15 AM
c-rhodes closed D94869: [LV] Fix crash when computing max VF too early.
Feb 1 2021, 4:15 AM · Restricted Project

Jan 26 2021

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!

Jan 26 2021, 6:10 AM · Restricted Project

Jan 20 2021

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).

Jan 20 2021, 7:18 AM · Restricted Project
c-rhodes added inline comments to D94708: [IR] Introduce llvm.experimental.vector.splice intrinsic.
Jan 20 2021, 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.
Jan 20 2021, 6:25 AM · Restricted Project

Jan 18 2021

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

Jan 16 2021

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.

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

Jan 15 2021

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.

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

Jan 14 2021

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

Jan 13 2021

c-rhodes committed rGad85e3967067: [SVE] Add ISel pattern for addvl (authored by c-rhodes).
[SVE] Add ISel pattern for addvl
Jan 13 2021, 3:25 AM
c-rhodes closed D94504: [SVE] Add ISel pattern for addvl.
Jan 13 2021, 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?

Jan 13 2021, 2:56 AM · Restricted Project

Jan 12 2021

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).

Jan 12 2021, 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
Jan 12 2021, 10:11 AM
c-rhodes requested review of D94504: [SVE] Add ISel pattern for addvl.
Jan 12 2021, 8:57 AM · Restricted Project

Jan 8 2021

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

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

Jan 7 2021

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.

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

Jan 6 2021

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.

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

Address @fhahn comments.

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

Jan 5 2021

c-rhodes added inline comments to D75674: [AArch64][SVE] Implement vector tuple intrinsics.
Jan 5 2021, 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.
Jan 5 2021, 10:02 AM · Restricted Project

Jan 4 2021

c-rhodes added inline comments to D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments.
Jan 4 2021, 5:38 AM · Restricted Project
c-rhodes accepted D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments.
Jan 4 2021, 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