[llvm-commits] [llvm] r47337 - /llvm/trunk/lib/Target/CBackend/CBackend.cpp
Evan Cheng
evan.cheng at apple.com
Wed Feb 20 10:31:33 PST 2008
Hi Andrew,
This patch broke several CBE tests last night on x86:
bh, 403.gcc, and 175.vpr (DISABLE_LTO=1)
I'll back it out for now. Please re-apply after these are fixed.
Thanks,
Evan
On Feb 19, 2008, at 11:47 AM, Andrew Lenharth wrote:
> Author: alenhar2
> Date: Tue Feb 19 13:47:54 2008
> New Revision: 47337
>
> URL: http://llvm.org/viewvc/llvm-project?rev=47337&view=rev
> Log:
> fix some byval problems in the cbe. Closes PR2065
>
> Modified:
> llvm/trunk/lib/Target/CBackend/CBackend.cpp
>
> Modified: llvm/trunk/lib/Target/CBackend/CBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CBackend/CBackend.cpp?rev=47337&r1=47336&r2=47337&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Target/CBackend/CBackend.cpp (original)
> +++ llvm/trunk/lib/Target/CBackend/CBackend.cpp Tue Feb 19 13:47:54
> 2008
> @@ -1198,12 +1198,12 @@
> }
>
> void CWriter::writeOperand(Value *Operand) {
> - if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand))
> + if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand) ||
> ByValParams.count(Operand))
> Out << "(&"; // Global variables are referenced as their
> addresses by llvm
>
> writeOperandInternal(Operand);
>
> - if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand))
> + if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand) ||
> ByValParams.count(Operand))
> Out << ')';
> }
>
> @@ -2723,13 +2723,11 @@
> // Check if the argument is expected to be passed by value.
> bool isOutByVal = PAL && PAL->paramHasAttr(ArgNo+1,
> ParamAttr::ByVal);
> // Check if this argument itself is passed in by reference.
> - bool isInByVal = ByValParams.count(*AI);
> - if (isOutByVal && !isInByVal)
> + //bool isInByVal = ByValParams.count(*AI);
> + if (isOutByVal)
> Out << "*(";
> - else if (!isOutByVal && isInByVal)
> - Out << "&(";
> writeOperand(*AI);
> - if (isOutByVal ^ isInByVal)
> + if (isOutByVal)
> Out << ")";
> PrintedArg = true;
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list