Pass around const RetOrArg references instead of copying values. Also, mark
RetOrArg::getDescription() as const.

llvm-svn: 53599
diff --git a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
index b9feab6..d2a5f28 100644
--- a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
+++ b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
@@ -70,7 +70,7 @@
         return F == O.F && Idx == O.Idx && IsArg == O.IsArg;
       }
 
-      std::string getDescription() {
+      std::string getDescription() const {
         return std::string((IsArg ? "Argument #" : "Return value #")) 
                + utostr(Idx) + " of function " + F->getName();
       }
@@ -132,7 +132,7 @@
     void SurveyFunction(Function &F);
     void MarkValue(const RetOrArg &RA, Liveness L,
                    const UseVector &MaybeLiveUses);
-    void MarkLive(RetOrArg RA);
+    void MarkLive(const RetOrArg &RA);
     void MarkLive(const Function &F);
     bool RemoveDeadStuffFromFunction(Function *F);
     bool DeleteDeadVarargs(Function &Fn);
@@ -540,7 +540,7 @@
 /// MarkLive - Mark the given return value or argument as live. Additionally,
 /// mark any values that are used by this value (according to Uses) live as
 /// well.
-void DAE::MarkLive(RetOrArg RA) {
+void DAE::MarkLive(const RetOrArg &RA) {
   if (!LiveValues.insert(RA).second)
     return; // We were already marked Live.