Fix some compilation errors on msvc:
- "Redefinition of I" (iterator masks previous definition)
- include missing header file

Patch by Argiris Kirtzidis!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48115 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index 5545af6..ad6852d 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -597,9 +597,9 @@
 
     // Globals were already linked, thus we can just query ValueMap for variant
     // of SAliasee in Dest
-    std::map<const Value*,Value*>::const_iterator I = ValueMap.find(SAliasee);
-    assert(I != ValueMap.end() && "Aliasee not linked");
-    GlobalValue* DAliasee = cast<GlobalValue>(I->second);
+    std::map<const Value*,Value*>::const_iterator VMI = ValueMap.find(SAliasee);
+    assert(VMI != ValueMap.end() && "Aliasee not linked");
+    GlobalValue* DAliasee = cast<GlobalValue>(VMI->second);
 
     // Try to find something 'similar' to SGA in destination module.
     if (GlobalAlias *DGA = Dest->getNamedAlias(SGA->getName())) {
diff --git a/lib/Transforms/IPO/ExtractGV.cpp b/lib/Transforms/IPO/ExtractGV.cpp
index a230dd1..882097c 100644
--- a/lib/Transforms/IPO/ExtractGV.cpp
+++ b/lib/Transforms/IPO/ExtractGV.cpp
@@ -17,6 +17,7 @@
 #include "llvm/Constants.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Support/Compiler.h"
+#include <algorithm>
 using namespace llvm;
 
 namespace {