Displaying 6 results from an estimated 6 matches for "struct_ty".
2015 Dec 02
2
Support token type in struct for landingpad
Hi David,
Sorry to bother you, but I would like to get some suggestions on your recent work of token type.
I’m currently working on changing gc.statepoint to return a token type instead of a i32 type. The reason is that with the current implementation, gc.statepoint could potentially be fed into PHI nodes, and break RewriteStatepointsForGC pass later. Using token type would help us to avoid
2015 Dec 02
2
Support token type in struct for landingpad
> On Dec 1, 2015, at 11:14 PM, David Majnemer <david.majnemer at gmail.com> wrote:
>
> While we support 'opaque' types nested within struct types, they are not exactly battle tested:
>
> $ cat t.ll
> %opaque_ty = type opaque
>
> %struct_ty = type { i32, %opaque_ty }
>
> define %struct_ty @f(%struct_ty* %p) {
> %load = load %struct_ty, %struct_ty* %p
> ret %struct_ty %load
> }
>
> $ opt -O2 t.ll -S
> lib/IR/DataLayout.cpp:623: unsigned int llvm::DataLayout::getAlignment(llvm::Type *, bool) const: Assertio...
2015 Dec 04
2
Support token type in struct for landingpad
...gmail.com>> wrote:
On Dec 1, 2015, at 11:14 PM, David Majnemer <david.majnemer at gmail.com<mailto:david.majnemer at gmail.com>> wrote:
While we support 'opaque' types nested within struct types, they are not exactly battle tested:
$ cat t.ll
%opaque_ty = type opaque
%struct_ty = type { i32, %opaque_ty }
define %struct_ty @f(%struct_ty* %p) {
%load = load %struct_ty, %struct_ty* %p
ret %struct_ty %load
}
$ opt -O2 t.ll -S
lib/IR/DataLayout.cpp:623: unsigned int llvm::DataLayout::getAlignment(llvm::Type *, bool) const: Assertion `Ty->isSized() && "Can...
2015 Dec 06
2
Support token type in struct for landingpad
...gmail.com>> wrote:
On Dec 1, 2015, at 11:14 PM, David Majnemer <david.majnemer at gmail.com<mailto:david.majnemer at gmail.com>> wrote:
While we support 'opaque' types nested within struct types, they are not exactly battle tested:
$ cat t.ll
%opaque_ty = type opaque
%struct_ty = type { i32, %opaque_ty }
define %struct_ty @f(%struct_ty* %p) {
%load = load %struct_ty, %struct_ty* %p
ret %struct_ty %load
}
$ opt -O2 t.ll -S
lib/IR/DataLayout.cpp:623: unsigned int llvm::DataLayout::getAlignment(llvm::Type *, bool) const: Assertion `Ty->isSized() && "Can...
2018 Sep 20
3
Aliasing rules difference between GCC and Clang
...st case, where the same difference seems to be
present. It has just one struct type which contains a matrix of
double:s. A store to an element of the struct via a pointer is
surrounded with two loads of a global double variable. Only Clang emits
two loads.
typedef struct {
double c[3][3];
} STRUCT_TY;
double e = 0.0;
STRUCT_TY *f;
int g = 0;
void h() {
int i = e;
f->c[0][i] = g;
g = e;
}
clang -O3-march=z13 :
h: # @h
# %bb.0: # %entry
larl %r1, e
ld %f0, 0(%r1) // LOAD E
...
2018 Sep 21
2
Aliasing rules difference between GCC and Clang
...t. It has just one struct type which contains a matrix of
> double:s. A store to an element of the struct via a pointer is
> surrounded with two loads of a global double variable. Only Clang
> emits two loads.
>
> typedef struct {
> double c[3][3];
> } STRUCT_TY;
>
> double e = 0.0;
> STRUCT_TY *f;
> int g = 0;
> void h() {
> int i = e;
> f->c[0][i] = g;
> g = e;
> }
>
> clang -O3-march=z13 :
>
> h: # @h
> # %bb.0: ...