Displaying 11 results from an estimated 11 matches for "copyaggregate".
2008 Feb 15
0
[LLVMdev] an llvm-gcc bug
...I don't think I introduced it (was it Devang?).
>>
>> Yup. PR 1278
>
> Ok! Can you please fix it to index by GCC type? There is a many to
> one mapping between gcc types and llvm types.
This is tricky and probably won't work. Padding info is in llvm struct
type and CopyAggregate() is operating on llvm type. There is not any
way to map llvm type back to gcc type. Am I missing something ?
-
Devang
2008 Feb 15
2
[LLVMdev] an llvm-gcc bug
...t (was it Devang?).
>>>
>>> Yup. PR 1278
>>
>> Ok! Can you please fix it to index by GCC type? There is a many to
>> one mapping between gcc types and llvm types.
>
> This is tricky and probably won't work. Padding info is in llvm struct
> type and CopyAggregate() is operating on llvm type. There is not any
> way to map llvm type back to gcc type. Am I missing something ?
I don't think so, I have reached the same conclusion. You can pass
the gcc type into CopyAggregate, but it's recursive, and there's no
way to get the gcc type for t...
2008 Feb 15
3
[LLVMdev] an llvm-gcc bug
On Feb 15, 2008, at 10:23 AM, Devang Patel wrote:
>
> On Feb 15, 2008, at 10:08 AM, Chris Lattner wrote:
>
>>>> Alternatively I can take the Padding bit into account in the
>>>> StructType::get code somehow. Anyone have a strong opinion?
>>>
>>> Shouldn't it be a map from the gcc type to the padding info?
>>> That said, you can get
2008 Feb 12
2
[LLVMdev] an llvm-gcc bug
...ligned (8))) void * a; } ;
The second example is padded out to 8 bytes, so both of these look like
{ i8 *, [1 x i32] }
This leads the "struct type factory" StructType::get to think they are
the same.
But, the second field is marked as Padding in the second case but not
the first,
and CopyAggregate does not copy Padding. When the second type
goes through ConvertType, it is converted to the same llvm Type as the
first type,
and the StructTypeConversionInfo info is replaced; later copies of the
first type
then think they don't have to copy the padding, producing wrong code.
I'm in...
2008 Feb 15
4
[LLVMdev] LLVMdev Digest, Vol 44, Issue 47
...s it Devang?).
> >>
> >> Yup. PR 1278
> >
> > Ok! Can you please fix it to index by GCC type? There is a many to
> > one mapping between gcc types and llvm types.
>
> This is tricky and probably won't work. Padding info is in llvm struct
> type and CopyAggregate() is operating on llvm type. There is not any
> way to map llvm type back to gcc type. Am I missing something ?
>
> -
> Devang
>
>
>
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 15 Feb 2008 11:21:41 -0800
> From: Chris Lattner <sabre...
2008 Feb 15
0
[LLVMdev] an llvm-gcc bug
...t;>> Yup. PR 1278
>>>
>>> Ok! Can you please fix it to index by GCC type? There is a many to
>>> one mapping between gcc types and llvm types.
>>
>> This is tricky and probably won't work. Padding info is in llvm
>> struct
>> type and CopyAggregate() is operating on llvm type. There is not any
>> way to map llvm type back to gcc type. Am I missing something ?
>
>
> I don't think so, I have reached the same conclusion. You can pass
> the gcc type into CopyAggregate, but it's recursive, and there's no
> wa...
2007 Nov 07
0
[LLVMdev] RFC: llvm-convert.cpp Patch
> How about this patch then?
How about this one :) It passes alignment and volatility around
with DestLoc. It's not finished because I noticed some bugs in
how CopyAggregate and ZeroAggregate handle alignment (problem points
marked with "QQ"). Also, I noticed potential problems with how we
handle call arguments and return results (what if they are strangely
aligned/volatile?), marked with FIXME.
While there, I fixed the following:
- Taught EmitAggregateZero...
2008 Feb 15
0
[LLVMdev] LLVMdev Digest, Vol 44, Issue 47
...gt; >> Yup. PR 1278
> > >
> > > Ok! Can you please fix it to index by GCC type? There is a many to
> > > one mapping between gcc types and llvm types.
> >
> > This is tricky and probably won't work. Padding info is in llvm struct
> > type and CopyAggregate() is operating on llvm type. There is not any
> > way to map llvm type back to gcc type. Am I missing something ?
> >
> > -
> > Devang
> >
> >
> >
> >
> >
> > ------------------------------
> >
> > Message: 2
> > Date: F...
2007 Nov 07
3
[LLVMdev] RFC: llvm-convert.cpp Patch
How about this patch then?
-bw
Index: gcc/llvm-convert.cpp
===================================================================
--- gcc/llvm-convert.cpp (revision 43658)
+++ gcc/llvm-convert.cpp (working copy)
@@ -758,7 +758,7 @@
}
-Value *TreeToLLVM::Emit(tree exp, Value *DestLoc) {
+Value *TreeToLLVM::Emit(tree exp, Value *DestLoc, unsigned Alignment) {
2008 Feb 13
0
[LLVMdev] an llvm-gcc bug
...e second example is padded out to 8 bytes, so both of these look like
> { i8 *, [1 x i32] }
> This leads the "struct type factory" StructType::get to think they are
> the same.
> But, the second field is marked as Padding in the second case but not
> the first,
> and CopyAggregate does not copy Padding. When the second type
> goes through ConvertType, it is converted to the same llvm Type as the
> first type,
> and the StructTypeConversionInfo info is replaced; later copies of the
> first type
> then think they don't have to copy the padding, producin...
2007 Nov 07
2
[LLVMdev] RFC: llvm-convert.cpp Patch
...at free.fr> wrote:
> > How about this patch then?
>
> How about this one :)
Your patch didn't apply cleanly, so I couldn't test it out. :-(
-bw
> It passes alignment and volatility around
> with DestLoc. It's not finished because I noticed some bugs in
> how CopyAggregate and ZeroAggregate handle alignment (problem points
> marked with "QQ"). Also, I noticed potential problems with how we
> handle call arguments and return results (what if they are strangely
> aligned/volatile?), marked with FIXME.
>
> While there, I fixed the following:
&g...