Subzero: Update for LLVM 3.9 (trunk).

The purpose is to allow pnacl-sz to be built within an LLVM checkout (version 3.9 or later), and not require the complex PNaCl build environment.

Within an LLVM checkout, one would do something like the following:
  cd projects
  git clone https://chromium.googlesource.com/native_client/pnacl-subzero
  # change to LLVM build directory
  cmake -G "Ninja" <path_to_llvm_source_dir>
  ninja

A follow-on CL will add in the PNaCl bitcode reader source files that are needed for compiling and linking.

BUG= none
R=jpp@chromium.org

Review URL: https://codereview.chromium.org/1961743002 .
diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
index 0729b73..7d192e6 100644
--- a/src/IceConverter.cpp
+++ b/src/IceConverter.cpp
@@ -111,7 +111,7 @@
       // The initial definition/use of each arg is the entry node.
       for (auto ArgI = F->arg_begin(), ArgE = F->arg_end(); ArgI != ArgE;
            ++ArgI) {
-        Func->addArg(mapValueToIceVar(ArgI));
+        Func->addArg(mapValueToIceVar(&*ArgI));
       }
 
       // Make an initial pass through the block list just to resolve the blocks
@@ -708,7 +708,7 @@
                                      E = Mod->global_end();
        I != E; ++I) {
 
-    const GlobalVariable *GV = I;
+    const GlobalVariable *GV = &*I;
 
     Ice::GlobalDeclaration *Var = getConverter().getGlobalDeclaration(GV);
     auto *VarDecl = cast<Ice::VariableDeclaration>(Var);
@@ -888,7 +888,7 @@
   for (Module::const_global_iterator I = Mod->global_begin(),
                                      E = Mod->global_end();
        I != E; ++I) {
-    const GlobalVariable *GV = I;
+    const GlobalVariable *GV = &*I;
     constexpr bool NoSuppressMangling = false;
     auto *Var = VariableDeclaration::create(
         GlobalDeclarationsPool.get(), NoSuppressMangling, GV->getLinkage());