Add helper functions for computing the Location of load, store,
and vaarg instructions.

llvm-svn: 118845
diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
index fe30381..17ef703 100644
--- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -433,10 +433,7 @@
     LoadInst *Load = Loads[i];
     BasicBlock *BB = Load->getParent();
 
-    AliasAnalysis::Location Loc(Load->getPointerOperand(),
-                                AA.getTypeStoreSize(Load->getType()),
-                                Load->getMetadata(LLVMContext::MD_tbaa));
-
+    AliasAnalysis::Location Loc = AA.getLocation(Load);
     if (AA.canInstructionRangeModify(BB->front(), *Load, Loc))
       return false;  // Pointer is invalidated!