Introduce the notion of function addresses in Subzero.

Introduces the notion of a function address, to replace using LLVM
IR's Function class. Modifies Ice converter, and Subzero's bitcode
reader, to build function addresses.

BUG=None
R=jvoung@chromium.org, stichnot@chromium.org

Review URL: https://codereview.chromium.org/641193002
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index f116cf3..bbda1f8 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -27,7 +27,6 @@
 typedef uint8_t AsmCodeByte;
 
 class Assembler;
-class GlobalAddress;
 
 // LoweringContext makes it easy to iterate through non-deleted
 // instructions in a node, and insert new (lowered) instructions at
@@ -249,7 +248,7 @@
                                                   GlobalContext *Ctx);
   virtual ~TargetGlobalInitLowering();
 
-  virtual void lower(const GlobalAddress &Addr, bool DisableTranslation) = 0;
+  virtual void lower(const VariableDeclaration &Var) = 0;
 
 protected:
   TargetGlobalInitLowering(GlobalContext *Ctx) : Ctx(Ctx) {}