Don't manually (and forcibly) run the verifier on the entire module from
authorChandler Carruth <chandlerc@gmail.com>
Wed, 30 Jul 2014 05:44:04 +0000 (05:44 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Wed, 30 Jul 2014 05:44:04 +0000 (05:44 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214287 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/JumpInstrTables.cpp
test/Verifier/jumptable.ll

index 61ef722dce525a27e9a9550989f6bb6b9669fbc8..750f71f6022e4b2ad2fdf93f0b5abee9b6f72e50 100644 (file)
@@ -251,10 +251,6 @@ FunctionType *JumpInstrTables::transformType(FunctionType *FunTy) {
 }
 
 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.
index 5f4cd3fe4f45876a5f7cdcac2cc69c1bc0636102..81984eeb187feeaab6014f129ff1061b1cedaff5 100644 (file)
@@ -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!