Let's see if we can break things.
Lower GOT relative addresses to Lo and HI.
Update both ISels to select them when they can.
Saves instructions here and there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25001 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/Alpha/AlphaISelLowering.h b/lib/Target/Alpha/AlphaISelLowering.h
index c42dbce..16ff79d 100644
--- a/lib/Target/Alpha/AlphaISelLowering.h
+++ b/lib/Target/Alpha/AlphaISelLowering.h
@@ -27,6 +27,18 @@
       FIRST_NUMBER = ISD::BUILTIN_OP_END+Alpha::INSTRUCTION_LIST_END,
       //These corrospond to the identical Instruction
       ITOFT_, FTOIT_, CVTQT_, CVTQS_, CVTTQ_,
+
+      /// GPRelHi/GPRelLo - These represent the high and low 16-bit
+      /// parts of a global address respectively.  These nodes have
+      /// two operands, the first of which must be a
+      /// TargetGlobalAddress, and the second of which must be a
+      /// Constant.  Selected naively, these turn into 'ldah R(G)' and
+      /// 'lda R(C)', though these are usually folded into other nodes.
+      GPRelHi, GPRelLo,
+
+      /// GlobalBaseReg, used to restore the GOT ptr
+      GlobalBaseReg,
+
     };
   }