[llvm-branch-commits] [llvm-branch] r214683 - Merging r214429:

Bill Wendling isanbard at gmail.com
Sun Aug 3 21:22:18 PDT 2014


Author: void
Date: Sun Aug  3 23:22:18 2014
New Revision: 214683

URL: http://llvm.org/viewvc/llvm-project?rev=214683&view=rev
Log:
Merging r214429:
------------------------------------------------------------------------
r214429 | willschm | 2014-07-31 12:50:53 -0700 (Thu, 31 Jul 2014) | 29 lines

Disable IsSub subregister assert.  pr18663.

This is a follow-up to the activity in the bug at
http://llvm.org/bugs/show_bug.cgi?id=18663 .  The underlying issue has
to do with how the KILL pseudo-instruction is handled.  I defer to
Hal/Jakob/Uli for additional details and background.

This will disable the (bad?) assert, add an associated fixme comment,
and add a pair of tests.

The code change and the pr18663-2.ll test are copied from the referenced
bug.  That test does not immediately fail in my environment, but I have
added the pr18663.ll test which does.

(Comment from Hal)
to provide everyone else with some context, this assert was not bad when
it was written. At that time, we only generated KILL pseudo instructions
around subregister copies. This logic, unfortunately, had its own problems.
In r199797, the relevant logic in MachineCopyPropagation was replaced to
generate KILLs for other kinds of copies too. This change in semantics broke
this now-problematic assumption in AggressiveAntiDepBreaker. The
AggressiveAntiDepBreaker really needs a proper cleanup to deal with the
change, but removing the assert (which just allows the function to return
false) is a safe conservative behavior, and should do for the time being.





------------------------------------------------------------------------

Added:
    llvm/branches/release_35/test/CodeGen/PowerPC/pr18663-2.ll
      - copied unchanged from r214429, llvm/trunk/test/CodeGen/PowerPC/pr18663-2.ll
    llvm/branches/release_35/test/CodeGen/PowerPC/pr18663.ll
      - copied unchanged from r214429, llvm/trunk/test/CodeGen/PowerPC/pr18663.ll
Modified:
    llvm/branches/release_35/   (props changed)
    llvm/branches/release_35/lib/CodeGen/AggressiveAntiDepBreaker.cpp

Propchange: llvm/branches/release_35/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Aug  3 23:22:18 2014
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,213653,213749,213773,213793,213798,213815,213847,213880,213884,213894-213895,213915,214129,214180,214287,214331,214519
+/llvm/trunk:155241,213653,213749,213773,213793,213798,213815,213847,213880,213884,213894-213895,213915,214129,214180,214287,214331,214429,214519

Modified: llvm/branches/release_35/lib/CodeGen/AggressiveAntiDepBreaker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_35/lib/CodeGen/AggressiveAntiDepBreaker.cpp?rev=214683&r1=214682&r2=214683&view=diff
==============================================================================
--- llvm/branches/release_35/lib/CodeGen/AggressiveAntiDepBreaker.cpp (original)
+++ llvm/branches/release_35/lib/CodeGen/AggressiveAntiDepBreaker.cpp Sun Aug  3 23:22:18 2014
@@ -582,7 +582,9 @@ bool AggressiveAntiDepBreaker::FindSuita
     unsigned Reg = Regs[i];
     if (Reg == SuperReg) continue;
     bool IsSub = TRI->isSubRegister(SuperReg, Reg);
-    assert(IsSub && "Expecting group subregister");
+    // FIXME: remove this once PR18663 has been properly fixed. For now,
+    // return a conservative answer:
+    // assert(IsSub && "Expecting group subregister");
     if (!IsSub)
       return false;
   }





More information about the llvm-branch-commits mailing list