[PATCH] D27113: Expensive checks: support promoted floats.

Anton Yartsev via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 24 12:25:31 PST 2016


ayartsev created this revision.
ayartsev added a subscriber: llvm-commits.

Hi all!
Attached patch eliminates a number of test failures in LLVM built with expensive checks turned on (-DLLVM_ENABLE_EXPENSIVE_CHECKS:BOOL=True).
DAGTypeLegalizer::PerformExpensiveChecks() is not currently familiar with promoted floats supported at r235215. This causes a number of tests to fail with "Processed value not in any map!" message. The patch solves the issue.
Please review!


https://reviews.llvm.org/D27113

Files:
  lib/CodeGen/SelectionDAG/LegalizeTypes.cpp


Index: lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
===================================================================
--- lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
+++ lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
@@ -117,6 +117,8 @@
         Mapped |= 64;
       if (WidenedVectors.find(Res) != WidenedVectors.end())
         Mapped |= 128;
+      if (PromotedFloats.find(Res) != PromotedFloats.end())
+        Mapped |= 256;
 
       if (Node.getNodeId() != Processed) {
         // Since we allow ReplacedValues to map deleted nodes, it may map nodes
@@ -159,6 +161,8 @@
           dbgs() << " SplitVectors";
         if (Mapped & 128)
           dbgs() << " WidenedVectors";
+        if (Mapped & 256)
+          dbgs() << " PromotedFloats";
         dbgs() << "\n";
         llvm_unreachable(nullptr);
       }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27113.79252.patch
Type: text/x-patch
Size: 814 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161124/6fcee7e6/attachment.bin>


More information about the llvm-commits mailing list