Add support for byval function whose argument is not 32 bit aligned.
[oota-llvm.git] / lib / CodeGen / UnreachableBlockElim.cpp
index 5feab0f81776560ae8cabfbb97c2371be89dde1f..0a611ab9bb35a05d67b0a9682486a3eeddfed940 100644 (file)
@@ -1,12 +1,12 @@
 //===-- UnreachableBlockElim.cpp - Remove unreachable blocks for codegen --===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file was developed by the LLVM research group and is distributed under
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
-// 
+//
 // This pass is an extremely simple version of the SimplifyCFG pass.  Its sole
 // job is to delete LLVM basic blocks that are not reachable from the entry
 // node.  To do this, it performs a simple depth first traversal of the CFG,
 #include "llvm/Pass.h"
 #include "llvm/Type.h"
 #include "llvm/Support/CFG.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/ADT/DepthFirstIterator.h"
 using namespace llvm;
 
 namespace {
-  class UnreachableBlockElim : public FunctionPass {
+  class VISIBILITY_HIDDEN UnreachableBlockElim : public FunctionPass {
     virtual bool runOnFunction(Function &F);
+  public:
+    static char ID; // Pass identification, replacement for typeid
+    UnreachableBlockElim() : FunctionPass((intptr_t)&ID) {}
   };
-  RegisterOpt<UnreachableBlockElim>
+  char UnreachableBlockElim::ID = 0;
+  RegisterPass<UnreachableBlockElim>
   X("unreachableblockelim", "Remove unreachable blocks from the CFG");
 }