search for: may_alias

Displaying 12 results from an estimated 12 matches for "may_alias".

2008 Oct 15
3
[LLVMdev] Making GEP into vector illegal?
...your take on this then: >> >> /* The Intel API is flexible enough that we must allow aliasing with >> other >> vector types, and their scalar components. */ >> /* APPLE LOCAL 4505813 */ >> typedef long long __m64 __attribute__ ((__vector_size__ (8), >> __may_alias__)); > > This is actually completely different AFAIK, That statement was that: > float4 a; > float* ptr_z = (float*)(&a) + 3; ``violates strict aliasing`` That assertion is wrong. The docs says: @item may_alias Accesses to objects with types with this attribute are not subject...
2017 Aug 18
2
RFC: Resolving TBAA issues
...; Similarly to the scalar and struct-path approaches, we consider > every type to be a member of a type group it explicitly refers > to. Here's how the tree that describes relations between type > groups would look like for the example above: > > <tbaa_root> > |- <may_alias> > |- <representation_byte> > |-<structure> > | |- S > |- int > > The <vtable_pointer> group has a special meaning and is used to > describe accesses to virtual table pointers. As in the current scheme, this group is a peer to <ma...
2017 Aug 14
4
RFC: Representing unions in TBAA
It's hard to say. What you've described sounds close to a neutral type system implemented in metadata. In particular, ". It also defines a set of language-neutral formal rules that LLVM codegen follows to determine whether a given pair of accesses are allowed to overlap by rules of the input language. " and "the base type followed by field descriptors" etc Despite the
2010 Jul 23
1
[LLVMdev] "Attribute" Translation
Hey all, Could anyone give me any hint on how llvm-g++ translates the "__attribute__" annotations (supported by GCC)? (Has GCC already implemented the support for the C++0x attributes?) Suppose a class definition as below: template <typename T> class __attribute__((may_alias)) list { ... }; I understand that each particular attribute may be handled differently. Assuming that I want to retain one attribute in the LLVM IR, how is the attribute represented in the LLVM IR? And then how can I query the attribute assuming that the attribute is appertained to a class? By t...
2017 Aug 21
2
RFC: Resolving TBAA issues
...; Similarly to the scalar and struct-path approaches, we consider > every type to be a member of a type group it explicitly refers > to. Here's how the tree that describes relations between type > groups would look like for the example above: > > <tbaa_root> > |- <may_alias> > |- <representation_byte> > |-<structure> > | |- S > |- int > > The <vtable_pointer> group has a special meaning and is used to > describe accesses to virtual table pointers. Similarly, the > <union> type group includes all...
2008 Oct 15
0
[LLVMdev] Making GEP into vector illegal?
On Oct 14, 2008, at 11:43 PM, Mike Stump wrote: > That statement was that: > >> float4 a; >> float* ptr_z = (float*)(&a) + 3; > > ``violates strict aliasing`` > > That assertion is wrong. The docs says: > > @item may_alias > Accesses to objects with types with this attribute are not subjected > to > type-based alias analysis, but are instead assumed to be able to alias > any other type of objects, just like the @code{char} type. > > clearly, is _m64 is to be treated as char, then, all stores befor...
2017 Aug 21
2
RFC: Resolving TBAA issues
...r and struct-path approaches, we consider >> every type to be a member of a type group it explicitly refers >> to. Here's how the tree that describes relations between type >> groups would look like for the example above: >> >> <tbaa_root> >> |- <may_alias> >> |- <representation_byte> >> |-<structure> >> | |- S >> |- int >> >> The <vtable_pointer> group has a special meaning and is used to >> describe accesses to virtual table pointers. Similarly, the >> <un...
2017 Oct 18
2
Possible bug of Alias Analysis?
> -----Original Message----- > From: meinersbur at googlemail.com [mailto:meinersbur at googlemail.com] On > Behalf Of Michael Kruse > Sent: Wednesday, October 18, 2017 1:18 PM > To: Song, Ruiling <ruiling.song at intel.com> > Cc: Michael Kruse <llvm at meinersbur.de>; llvm-dev at lists.llvm.org > Subject: Re: Possible bug of Alias Analysis? > > 2017-10-18
2008 Oct 14
2
[LLVMdev] Making GEP into vector illegal?
...e > workaround with a union, though. Hum what's your take on this then: /* The Intel API is flexible enough that we must allow aliasing with other vector types, and their scalar components. */ /* APPLE LOCAL 4505813 */ typedef long long __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); :-)
2008 Oct 15
0
[LLVMdev] Making GEP into vector illegal?
.... > > Hum what's your take on this then: > > /* The Intel API is flexible enough that we must allow aliasing with > other > vector types, and their scalar components. */ > /* APPLE LOCAL 4505813 */ > typedef long long __m64 __attribute__ ((__vector_size__ (8), > __may_alias__)); This is actually completely different AFAIK, this allows things like: ((float*)&myvec4)[2] which is exactly what the proposal wants to continue supporting in the IR. -Chris
2008 Oct 15
1
[LLVMdev] Making GEP into vector illegal?
...> On Oct 14, 2008, at 11:43 PM, Mike Stump wrote: >> That statement was that: >> >>> float4 a; >>> float* ptr_z = (float*)(&a) + 3; >> >> ``violates strict aliasing`` >> >> That assertion is wrong. The docs says: >> >> @item may_alias >> Accesses to objects with types with this attribute are not subjected >> to >> type-based alias analysis, but are instead assumed to be able to >> alias >> any other type of objects, just like the @code{char} type. >> >> clearly, is _m64 is to be treate...
2011 Jul 12
0
[PATCH]: Use a general way to get the default subvolume for btrfs
.../ + __u32 nr_items; + + /* align to 64 bits */ + __u32 unused; + + /* some extra for later */ + __u64 unused1; + __u64 unused2; + __u64 unused3; + __u64 unused4; +}; + +struct btrfs_ioctl_search_header { + __u64 transid; + __u64 objectid; + __u64 offset; + __u32 type; + __u32 len; +} __attribute__((may_alias)); + +#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) +/* + * the buf is an array of search headers where + * each header is followed by the actual item + * the type field is expanded to 32 bits for alignment + */ +struct btrfs_ioctl_search_args { + struct btrfs_ioc...