[llvm-commits] [llvm-gcc-4.2] r74575 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Dale Johannesen
dalej at apple.com
Tue Jun 30 17:51:06 PDT 2009
On Jun 30, 2009, at 5:45 PMPDT, Chris Lattner wrote:
>
> On Jun 30, 2009, at 4:53 PM, Dale Johannesen wrote:
>
>> Author: johannes
>> Date: Tue Jun 30 18:53:04 2009
>> New Revision: 74575
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=74575&view=rev
>> Log:
>> Fix buildbreaking nonstandardism. (And I thought I'd
>> never complain C++ doesn't have enough features...)
>
> Hi Dale,
>
> It's not that big of a deal, but please use SmallVector<int, 4> or
> something instead of alloca. SmallVector works when "N" is more than
> 4 by going to the heap so you won't run out of stack space for large
> N, and is more portable.
I am not a big lover of alloca, but it was used several places in this
code before I started working on it so I don't think portability can
be a problem, and the numbers involved cannot be big enough to run out
of stack space.
> -Chris
>
>>
>>
>> Modified:
>> llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
>>
>> Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=74575&r1=74574&r2=74575&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
>> +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Tue Jun 30 18:53:04 2009
>> @@ -4010,11 +4010,12 @@
>> {
>> int MaxWeight = 0;
>> unsigned int CommasToSkip = 0;
>> - int Weights[NumChoices];
>> + int *Weights = (int *)alloca(NumChoices * sizeof(int));
>> // RunningConstraints is pointers into the Constraints strings which
>> // are incremented as we go to point to the beginning of each
>> // comma-separated alternative.
>> - const char* RunningConstraints[NumInputs+NumOutputs];
>> + const char** RunningConstraints =
>> + (const char**)alloca((NumInputs+NumOutputs)*sizeof(const
>> char*));
>> memcpy(RunningConstraints, Constraints,
>> (NumInputs+NumOutputs) * sizeof(const char*));
>> // The entire point of this loop is to compute CommasToSkip.
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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