[PATCH] D30529: [RFC][GlobalISel] Enable legalizing non-power-of-2 sized types.

Kristof Beyls via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 29 07:19:00 PDT 2017


kristof.beyls updated this revision to Diff 117141.
kristof.beyls added a comment.

- Rebased to ToT.
- Addressed all outstanding review comments.
- Used the test-suite on AArch64 to make sure there are no correctness regressions, both in fallback mode and in assert-when-not-legalizable mode.
- Measured compile time impact of this change: it's below the noise level I see on gathering CTMark compile time numbers on my system.

I believe this makes the patch as is ready to be committed.
I noticed that on X86, with this patch, there will be 7 new failures when GlobalISel is enabled in the test-suite, seemingly because the X86 RegisterBankSelector cannot handle G_TRUNC nodes with non-power-of-2-sized types.
As the testing on AArch64 demonstrates that those are handled correctly by the AArch64 RegisterBankSelector, I'm inclined to commit this patch as is to avoid letting this patch increase further in size.


https://reviews.llvm.org/D30529

Files:
  include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
  include/llvm/Support/LowLevelTypeImpl.h
  lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  lib/CodeGen/GlobalISel/LegalizerInfo.cpp
  lib/Support/LowLevelType.cpp
  lib/Target/AArch64/AArch64LegalizerInfo.cpp
  lib/Target/ARM/ARMLegalizerInfo.cpp
  lib/Target/X86/X86LegalizerInfo.cpp
  test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
  test/CodeGen/AArch64/GlobalISel/legalize-add.mir
  test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir
  unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
  unittests/CodeGen/LowLevelTypeTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30529.117141.patch
Type: text/x-patch
Size: 86466 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170929/d3377b8d/attachment.bin>


More information about the llvm-commits mailing list