[llvm] r214287 - Don't manually (and forcibly) run the verifier on the entire module from

Chandler Carruth chandlerc at gmail.com
Tue Jul 29 22:44:04 PDT 2014


Author: chandlerc
Date: Wed Jul 30 00:44:04 2014
New Revision: 214287

URL: http://llvm.org/viewvc/llvm-project?rev=214287&view=rev
Log:
Don't manually (and forcibly) run the verifier on the entire module from
the jump instruction table pass. First, the verifier is already built
into all the tools. The test case is adapted to just run llvm-as
demonstrating that we still catch the broken module. Second, the
verifier is *extremely* slow. This was responsible for very significant
compile time regressions.

If you have deployed a Clang binary anywhere from r210280 to this
commit, you really want to re-deploy.

Modified:
    llvm/trunk/lib/CodeGen/JumpInstrTables.cpp
    llvm/trunk/test/Verifier/jumptable.ll

Modified: llvm/trunk/lib/CodeGen/JumpInstrTables.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/JumpInstrTables.cpp?rev=214287&r1=214286&r2=214287&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/JumpInstrTables.cpp (original)
+++ llvm/trunk/lib/CodeGen/JumpInstrTables.cpp Wed Jul 30 00:44:04 2014
@@ -251,10 +251,6 @@ FunctionType *JumpInstrTables::transform
 }
 
 bool JumpInstrTables::runOnModule(Module &M) {
-  // Make sure the module is well-formed, especially with respect to jumptable.
-  if (verifyModule(M))
-    return false;
-
   JITI = &getAnalysis<JumpInstrTableInfo>();
 
   // Get the set of jumptable-annotated functions.

Modified: llvm/trunk/test/Verifier/jumptable.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/jumptable.ll?rev=214287&r1=214286&r2=214287&view=diff
==============================================================================
--- llvm/trunk/test/Verifier/jumptable.ll (original)
+++ llvm/trunk/test/Verifier/jumptable.ll Wed Jul 30 00:44:04 2014
@@ -1,4 +1,4 @@
-; RUN: not llc <%s 2>&1 | FileCheck %s
+; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s
 
 define i32 @f() jumptable {
   ret i32 0
@@ -6,4 +6,3 @@ define i32 @f() jumptable {
 
 ; CHECK: Attribute 'jumptable' requires 'unnamed_addr'
 ; CHECK: i32 ()* @f
-; CHECK: LLVM ERROR: Broken function found, compilation aborted!





More information about the llvm-commits mailing list