[PATCH] D35821: Have ARM call setBooleanContents(ZeroOrOneBooleanContent).

Joel Galenson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 24 16:22:39 PDT 2017


jgalenson created this revision.
Herald added subscribers: kristof.beyls, javed.absar, aemerson.

As pointed out by Eli Friedman, the ARM backend should call setBooleanContents so that it can use known bits to make some optimizations.

In addition, this patch also contains a simple optimization to avoid duplicate ands in one of the test cases.

Unfortunately, this change causes a number of the existing tests to stop being useful.  All but the last of the modified tests no longer test what they initially intended to do, mostly due to different undef handling (e.g., cse-call no longer generates any cmps).

I added a new testcase where the first mov is caused by the new code.


https://reviews.llvm.org/D35821

Files:
  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  lib/Target/ARM/ARMISelLowering.cpp
  test/CodeGen/ARM/cse-call.ll
  test/CodeGen/ARM/i1.ll
  test/CodeGen/ARM/sub-cmp-peephole.ll
  test/CodeGen/Thumb2/2009-09-28-ITBlockBug.ll
  test/CodeGen/Thumb2/2010-11-22-EpilogueBug.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35821.107990.patch
Type: text/x-patch
Size: 4220 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170724/56c8139c/attachment.bin>


More information about the llvm-commits mailing list