[llvm-commits] [llvm] r47254 - /llvm/trunk/lib/VMCore/Function.cpp

2008-02-17 Thread Owen Anderson
Author: resistor
Date: Sun Feb 17 22:06:26 2008
New Revision: 47254

URL: http://llvm.org/viewvc/llvm-project?rev=47254view=rev
Log:
Duncan pointed out that we can fast fail here, because the sret parameter of
a function must be the first parameter.

Modified:
llvm/trunk/lib/VMCore/Function.cpp

Modified: llvm/trunk/lib/VMCore/Function.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=47254r1=47253r2=47254view=diff

==
--- llvm/trunk/lib/VMCore/Function.cpp (original)
+++ llvm/trunk/lib/VMCore/Function.cpp Sun Feb 17 22:06:26 2008
@@ -107,7 +107,8 @@
 /// it in its containing function.
 bool Argument::hasStructRetAttr() const {
   if (!isaPointerType(getType())) return false;
-  return getParent()-paramHasAttr(getArgNo()+1, ParamAttr::StructRet);
+  if (getArgNo()) return false; // StructRet param must be first param
+  return getParent()-paramHasAttr(1, ParamAttr::StructRet);
 }
 
 


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] [llvm] r47254 - /llvm/trunk/lib/VMCore/Function.cpp

2008-02-17 Thread Chris Lattner

On Feb 17, 2008, at 8:06 PM, Owen Anderson wrote:

 Author: resistor
 Date: Sun Feb 17 22:06:26 2008
 New Revision: 47254

 URL: http://llvm.org/viewvc/llvm-project?rev=47254view=rev
 Log:
 Duncan pointed out that we can fast fail here, because the sret  
 parameter of
 a function must be the first parameter.

getArgNo() is linear time, please compare against F-abegin().

-Chris



 Modified:
llvm/trunk/lib/VMCore/Function.cpp

 Modified: llvm/trunk/lib/VMCore/Function.cpp
 URL: 
 http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=47254r1=47253r2=47254view=diff

 = 
 = 
 = 
 = 
 = 
 = 
 = 
 = 
 ==
 --- llvm/trunk/lib/VMCore/Function.cpp (original)
 +++ llvm/trunk/lib/VMCore/Function.cpp Sun Feb 17 22:06:26 2008
 @@ -107,7 +107,8 @@
 /// it in its containing function.
 bool Argument::hasStructRetAttr() const {
   if (!isaPointerType(getType())) return false;
 -  return getParent()-paramHasAttr(getArgNo()+1,  
 ParamAttr::StructRet);
 +  if (getArgNo()) return false; // StructRet param must be first  
 param
 +  return getParent()-paramHasAttr(1, ParamAttr::StructRet);
 }




 ___
 llvm-commits mailing list
 llvm-commits@cs.uiuc.edu
 http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits