diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h
index 47e1e72..771ac11 100644
--- a/include/llvm/Analysis/Passes.h
+++ b/include/llvm/Analysis/Passes.h
@@ -71,9 +71,10 @@
  
   //===--------------------------------------------------------------------===//
   //
-  // createLoaderPass - This pass loads information from a profile dump file.
+  // createProfileLoaderPass - This pass loads information from a profile dump
+  // file.
   //
-  ModulePass *createLoaderPass();
+  ModulePass *createProfileLoaderPass();
  
   //===--------------------------------------------------------------------===//
   //
diff --git a/include/llvm/Transforms/LinkAllPasses.h b/include/llvm/Transforms/LinkAllPasses.h
index b5d67f7..fb286c0 100644
--- a/include/llvm/Transforms/LinkAllPasses.h
+++ b/include/llvm/Transforms/LinkAllPasses.h
@@ -79,7 +79,6 @@
       (void) llvm::createInternalizePass();
       (void) llvm::createLICMPass();
       (void) llvm::createLoadValueNumberingPass();
-      (void) llvm::createLoaderPass();
       (void) llvm::createLoopExtractorPass();
       (void) llvm::createLoopInstrumentationPass();
       (void) llvm::createLoopSimplifyPass();
@@ -98,6 +97,7 @@
       (void) llvm::createNoProfileInfoPass();
       (void) llvm::createPREPass();
       (void) llvm::createParallelizePass();
+      (void) llvm::createProfileLoaderPass();
       (void) llvm::createProfilePathsPass();
       (void) llvm::createPromoteMemoryToRegister();
       (void) llvm::createPruneEHPass();
@@ -115,7 +115,6 @@
       (void) llvm::createTraceValuesPassForBasicBlocks();
       (void) llvm::createTraceValuesPassForFunction();
       (void) llvm::createUnifyFunctionExitNodesPass();
-      (void) llvm::createUnreachableBlockEliminationPass();
     }
   } _ForcePassLinking;
 };
diff --git a/lib/Analysis/ProfileInfoLoaderPass.cpp b/lib/Analysis/ProfileInfoLoaderPass.cpp
index 5a57c54..b76c34a 100644
--- a/lib/Analysis/ProfileInfoLoaderPass.cpp
+++ b/lib/Analysis/ProfileInfoLoaderPass.cpp
@@ -55,7 +55,7 @@
   RegisterAnalysisGroup<ProfileInfo, LoaderPass> Y;
 }  // End of anonymous namespace
 
-ModulePass *llvm::createLoaderPass() { return new LoaderPass(); }
+ModulePass *llvm::createProfileLoaderPass() { return new LoaderPass(); }
 
 /// createProfileLoaderPass - This function returns a Pass that loads the
 /// profiling information for the module from the specified filename, making it
diff --git a/win32/llvm.sln b/win32/llvm.sln
index 770d542..df24ada 100644
--- a/win32/llvm.sln
+++ b/win32/llvm.sln
@@ -170,7 +170,6 @@
 		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
 		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
 		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
 		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
 		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
 		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
