search for: b__vtblz

Displaying 4 results from an estimated 4 matches for "b__vtblz".

Did you mean: b__vtbl
2015 Aug 20
3
[RFC] Aggreate load/store, proposed plan
...orm. -Hal > turns aggregate > load/store into a load/store using an integer of equivalent size and > insert the correct bitcast before/after, right? > > Example is: > > %0 = tail call i8* @allocmemory(i64 32) > %1 = bitcast i8* %0 to %B* > store %B { %B__vtbl* @B__vtblZ, i32 42 }, %B* %1, align 8 > > into: > > store i128 or (i128 zext (i64 ptrtoint (%B__vtbl* @B__vtblZ to i64) > to i128), i128 774763251095801167872), i128* %1, align 8 > > Where the aggregate is: > > %B__vtbl = type { i8*, i32 (%B*)* } > @B__vtblZ = constant %B__vt...
2015 Aug 20
2
[RFC] Aggreate load/store, proposed plan
...gnement. Binary manipulation, like > mask and shift, are used to build the aggregate from the scalar > after loading and the aggregate to a scalar when storing. > > > For instance, the following IR (extracted from a D frontend) : > > %B__vtbl = type { i8*, i32 (%B*)* } > @B__vtblZ = constant %B__vtbl { i8* null, i32 (%B*)* @B.foo } > > %0 = tail call i8* @allocmemory(i64 32) > > %1 = bitcast i8* %0 to %B* > store %B { %B__vtbl* @B__vtblZ, i32 42 }, %B* %1, align 8 > > > Would be canonized into : > %0 = tail call i8* @allocmemory(i64 32) > %1...
2015 Aug 21
3
[RFC] Aggreate load/store, proposed plan
...> mask and shift, are used to build the aggregate from the scalar > > after loading and the aggregate to a scalar when storing. > > > > > > For instance, the following IR (extracted from a D frontend) : > > > > %B__vtbl = type { i8*, i32 (%B*)* } > > @B__vtblZ = constant %B__vtbl { i8* null, i32 (%B*)* @B.foo } > > > > %0 = tail call i8* @allocmemory(i64 32) > > > > %1 = bitcast i8* %0 to %B* > > store %B { %B__vtbl* @B__vtblZ, i32 42 }, %B* %1, align 8 > > > > > > Would be canonized into : > > %0...
2015 Aug 20
2
[RFC] Aggreate load/store, proposed plan
It is pretty clear people need this. Let's get this moving. I'll try to sum up the point that have been made and I'll try to address them carefully. 1/ There is no good solution for large aggregates. That is true. However, I don't think this is a reason to not address smaller aggregates, as they appear to be needed. Realistically, the proportion of aggregates that are very large