Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h | ||
---|---|---|
1046–1070 ↗ | (On Diff #547226) | Is it possible to separate this from the lowerEXT parts? |
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
5951 | This shouldn't need to consider the legality of intermediate ops and fail, just unconditionally do this and let the new artifacts legalize |
Split combiner into a seperate commit.
Unconditionally lowers Extends, independent of the intermediate instruction
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
---|---|---|
5952 | Can reduce the indenting now. | |
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp | ||
523 | Can you add a comment here explaining that this is trying to convert larger extends into two smaller ones. | |
525 | (Query.Types[0].isVector()) -> Query.Types[0].isVector() | |
llvm/test/CodeGen/AArch64/GlobalISel/legalize-build-vector.mir | ||
144–145 | Is this with update_mir_test_checks? Maybe just replace %ext with %3 in the code below. |
A few comments but otherwise LGTM, thanks for the new tests.
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
---|---|---|
5951–5952 | No need for MidRegister, this can be simplified to: auto NewExt = MIRBuilder.buildInstr(MI.getOpcode(), {MidTy}, {Src}); ... auto UnmergeSrc = MIRBuilder.buildUnmerge(EltTy, NewExt); ...` | |
5958–5966 | Same here, it's less verbose to just create the LLTs and pass those to buildInstr() instead of passing Registers. // ZExt the vectors Register ZExtResTy = DstTy.changeElementCount(DstTy.getElementCount().divideCoefficientBy(2)); auto ZExtRes1 = MIRBuilder.buildInstr(MI.getOpcode(), {ZExtResTy}, {UnmergeSrc.getReg(0)}); auto ZExtRes2 = MIRBuilder.buildInstr(MI.getOpcode(), {ZExtResTy}, {UnmergeSrc.getReg(1)}); |
Rectified comments made by aemerson
Instructions are built using register types instead of creating a register for the instruction to be built
This shouldn't need to consider the legality of intermediate ops and fail, just unconditionally do this and let the new artifacts legalize