search for: vpt_data

Displaying 13 results from an estimated 13 matches for "vpt_data".

2018 Apr 18
4
A struct {i8,i64} has size == 12, clang says size 16
...he second element. This is for the system triple "x86_64-linux-gnu" What could be causing this difference in alignment and how can I fix it? I'm verifying the native ABI with:     // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty     #include <stddef.h>     typedef struct vpt_data {         _Bool c;         long int b;     } vpt_data;     int main() {         vpt_data v;         vpt_test(v);         auto a = sizeof(v);         auto off = offsetof(vpt_data,b);     } 16 is stored to `a` and 8 to `off`. -- edA-qa mort-ora-y http://mortoray.com/ Creator of the Leaf lang...
2018 Apr 18
2
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
I'm implementing function arguments and tested this code in C:     // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty     typedef struct vpt_data {         char a;         int b;         float c;     } vpt_data;         void vpt_test( vpt_data vd ) {     }     int main() {         vpt_data v;         vpt_test(v);     } This emits an odd LLVM structure that casts to the desired struct type, but also memcpy's to a temporary structure. I&...
2018 Apr 18
0
A struct {i8, i64} has size == 12, clang says size 16
...for the system triple "x86_64-linux-gnu" > What could be causing this difference in alignment and how can I fix it? > I'm verifying the native ABI with: > // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty > #include <stddef.h> > typedef struct vpt_data { > _Bool c; > long int b; > } vpt_data; > int main() { > vpt_data v; > vpt_test(v); > auto a = sizeof(v); > auto off = offsetof(vpt_data,b); > } > 16 is stored to `a` and 8 to `off`. > -- >...
2018 Apr 18
2
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...itry Andric wrote: > On 18 Apr 2018, at 18:40, edA-qa mort-ora-y via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> I'm implementing function arguments and tested this code in C: >> >> // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >> typedef struct vpt_data { >> char a; >> int b; >> float c; >> } vpt_data; >> >> void vpt_test( vpt_data vd ) { >> } >> >> int main() { >> vpt_data v; >> vpt_test(v); >> } >> >> Th...
2018 Apr 18
0
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
On 18 Apr 2018, at 18:40, edA-qa mort-ora-y via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > I'm implementing function arguments and tested this code in C: > > // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty > typedef struct vpt_data { > char a; > int b; > float c; > } vpt_data; > > void vpt_test( vpt_data vd ) { > } > > int main() { > vpt_data v; > vpt_test(v); > } > > This emits an odd LLVM structure that casts to the desi...
2018 Apr 18
2
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...0, edA-qa mort-ora-y via llvm-dev >>> <llvm-dev at lists.llvm.org> wrote: >>>> I'm implementing function arguments and tested this code in C: >>>> >>>>      // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >>>>      typedef struct vpt_data { >>>>          char a; >>>>          int b; >>>>          float c; >>>>      } vpt_data; >>>> >>>>      void vpt_test( vpt_data vd ) { >>>>      } >>>> >>>>      int main() { >>>&gt...
2018 Apr 18
0
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...;> On 18 Apr 2018, at 18:40, edA-qa mort-ora-y via llvm-dev <llvm-dev at lists.llvm.org> wrote: >>> I'm implementing function arguments and tested this code in C: >>> >>> // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >>> typedef struct vpt_data { >>> char a; >>> int b; >>> float c; >>> } vpt_data; >>> >>> void vpt_test( vpt_data vd ) { >>> } >>> >>> int main() { >>> vpt_data v; >>>...
2018 Apr 18
2
A struct {i8, i64} has size == 12, clang says size 16
...e "x86_64-linux-gnu" >> What could be causing this difference in alignment and how can I fix it? > >> I'm verifying the native ABI with: >> // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >> #include <stddef.h> >> typedef struct vpt_data { >> _Bool c; >> long int b; >> } vpt_data; >> int main() { >> vpt_data v; >> vpt_test(v); >> auto a = sizeof(v); >> auto off = offsetof(vpt_data,b); >> } > >> 16 is s...
2018 Apr 18
3
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...>>> <llvm-dev at lists.llvm.org> wrote: >>>>>> I'm implementing function arguments and tested this code in C: >>>>>> >>>>>>       // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >>>>>>       typedef struct vpt_data { >>>>>>           char a; >>>>>>           int b; >>>>>>           float c; >>>>>>       } vpt_data; >>>>>> >>>>>>       void vpt_test( vpt_data vd ) { >>>>>>       } >&...
2018 Apr 18
0
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...ia llvm-dev >>>> <llvm-dev at lists.llvm.org> wrote: >>>>> I'm implementing function arguments and tested this code in C: >>>>> >>>>>      // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty >>>>>      typedef struct vpt_data { >>>>>          char a; >>>>>          int b; >>>>>          float c; >>>>>      } vpt_data; >>>>> >>>>>      void vpt_test( vpt_data vd ) { >>>>>      } >>>>> >>>...
2018 Apr 19
0
A struct {i8, i64} has size == 12, clang says size 16
...> >> What could be causing this difference in alignment and how can I fix it? > > > >> I'm verifying the native ABI with: > >> // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty > >> #include <stddef.h> > >> typedef struct vpt_data { > >> _Bool c; > >> long int b; > >> } vpt_data; > >> int main() { > >> vpt_data v; > >> vpt_test(v); > >> auto a = sizeof(v); > >> auto off = offsetof(vpt_data,b...
2018 Apr 19
0
Why does clang do a memcpy? Is the cast not enough? (ABI function args)
...m-dev at lists.llvm.org> wrote: > >>>>>> I'm implementing function arguments and tested this code in C: > >>>>>> > >>>>>> // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty > >>>>>> typedef struct vpt_data { > >>>>>> char a; > >>>>>> int b; > >>>>>> float c; > >>>>>> } vpt_data; > >>>>>> > >>>>>> void vpt_test( vpt_data vd ) { > &gt...
2018 Apr 14
0
Creating a C-ABI compatible function signature with a struct
Is there some way to create a target-specific C-ABI compatible function signature using LLVM? For example, this C-Code:     typedef struct vpt_data {         char x;         int a;         char c;         float b;     } vpt_data;         void vpt_test( vpt_data vd ) { Generates a function:     define void @vpt_test(i64 %vd.coerce0, i64 %vd.coerce1) #0 { And also packs/unpacks the structure values when calling/being called. If I create the...