search for: subaggregate

Displaying 20 results from an estimated 33 matches for "subaggregate".

2017 Aug 19
3
RFC: Resolving TBAA issues
Daniel, Hal, I'm trying to figure out what we would need to do in terms of the current approach, accepting its limitations, to support unions, member arrays, aggregate accesses and type identifiers and what I get looks suspiciously simple. Can you please check it out and let me know if I'm missing something? For unions: TBAA, regardless of a specific approach, cannot guarantee
2017 Aug 19
2
RFC: Resolving TBAA issues
Daniel, > This is an aggregate type that includes a type compatible > with the effective type of the object. In particular, > x->i is an lvalue expression of type "int" > b->a is an lvalue expression of type "struct A" > "struct A" is an aggregate type that includes "int" among > its members. > Therefore, the b->a
2010 Jul 09
2
[LLVMdev] types in load/store
...type of the object, > [...] > — a type that is the signed or unsigned type corresponding to the > effective type of the > object, > [...] > — an aggregate or union type that includes one of the aforementioned > types among its > members (including, recursively, a member of a subaggregate or > contained union), or > — a character type. > (sec 6.5, items 6 and 7, page 67-68, > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf) LLVM does not have any such restrictions. > If LLVM IR is weaker than these C restrictions, then I have the > following questions a...
2013 Mar 11
5
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...esponding to the effective type of the object, 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or 6. a character type. Example ------- struct A { int x; int y; }; struct B { A a; int z; }; struct C { B b1; B b2; int *p; }; Type DAG: int <- A::x <- A int <- A::y <- A <- B::a <- B <- C::b1 <...
2010 Jul 08
0
[LLVMdev] types in load/store
...— a type compatible with the effective type of the object, [...] — a type that is the signed or unsigned type corresponding to the effective type of the object, [...] — an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or — a character type. (sec 6.5, items 6 and 7, page 67-68, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf) If LLVM IR is weaker than these C restrictions, then I have the following questions about when GEP is undefined: 1) Can I load a value partially or overlapped...
2013 Mar 11
0
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...to the effective type of the object, > 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, > 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or > 6. a character type. > > Example > ------- > struct A { > int x; > int y; > }; > struct B { > A a; > int z; > }; > struct C { > B b1; > B b2; > int *p; > }; > > Type DAG: >...
2017 Aug 19
2
RFC: Resolving TBAA issues
...ype that is the signed or unsigned type corresponding to a >> qualified version of the effective type of the object, >> >> >> - an aggregate or union type that includes one of the aforementioned >> types among its members (including, recursively, a member of a subaggregate >> or contained union), or >> >> >> - a character type. >> >> > This is an aggregate type that includes a type compatible with the > effective type of the object. In particular, > x->i is an lvalue expression of type "int" > b->...
2013 Mar 11
2
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...ffective type of the object, >> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >> 6. a character type. >> > >> Example >> ------- >> struct A { >> int x; >> int y; >> }; >> struct B { >> A a; >> int z; >> }; >> struct C { >> B b1; >> B...
2010 Jul 09
0
[LLVMdev] types in load/store
....] >> — a type that is the signed or unsigned type corresponding to the >> effective type of the >> object, >> [...] >> — an aggregate or union type that includes one of the aforementioned >> types among its >> members (including, recursively, a member of a subaggregate or >> contained union), or >> — a character type. >> (sec 6.5, items 6 and 7, page 67-68, >> http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf) > > LLVM does not have any such restrictions. > >> If LLVM IR is weaker than these C restrictions, then I ha...
2010 Jul 08
4
[LLVMdev] types in load/store
Hi, I have a confusion about types used in load/store, (http://llvm.org/docs/GetElementPtr.html#types) says that [...] Furthermore, loads and stores don't have to use the same types as the type of the underlying object. Types in this context serve only to specify memory size and alignment. Beyond that there are merely a hint to the optimizer indicating how the value will likely be used. [...]
2013 Mar 12
2
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...ffective type of the object, >> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >> 6. a character type. >> >> Example >> ------- >> struct A { >> int x; >> int y; >> }; >> struct B { >> A a; >> int z; >> }; >> struct C { >> B b1; &...
2013 Mar 11
4
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...the object, >>>> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >>>> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >>>> 6. a character type. >>>> >>> >>>> Example >>>> ------- >>>> struct A { >>>> int x; >>>> int y; >>>> }; >>>> struct B { >>>> A a; &gt...
2013 Mar 11
0
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...type of the object, >>> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >>> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >>> 6. a character type. >>> >> >>> Example >>> ------- >>> struct A { >>> int x; >>> int y; >>> }; >>> struct B { >>> A a; >>> int z; >>> }; &gt...
2013 Mar 11
0
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...ect, >>>>> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >>>>> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >>>>> 6. a character type. >>>>> >>>> >>>>> Example >>>>> ------- >>>>> struct A { >>>>> int x; >>>>> int y; >>>>> }; >>>>>...
2014 Aug 12
4
[LLVMdev] [cfe-dev] For alias analysis, It's gcc too aggressive or LLVM need to improve?
...fective type of the object, > a type that is the signed or unsigned type corresponding to a > qualified version of the effective type of the object, > an aggregate or union type that includes one of the aforementioned > types among its members (including, recursively, a member of a > subaggregate or contained union), or > a character type. > (C++11 adds something about dynamic type here) > > struct heap is "an aggregate or union type that includes one of the > aforementioned types among it's members". > > Thus, this is legal to access this int through an l...
2013 Mar 11
2
[LLVMdev] PROPOSAL: struct-access-path aware TBAA
...;>>>>> 4. a type that is the signed or unsigned type corresponding to a qualified version of the effective type of the object, >>>>>> 5. an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or >>>>>> 6. a character type. >>>>>> >>>>> >>>>>> Example >>>>>> ------- >>>>>> struct A { >>>>>> int x; >>>>>> int y; >>>&...
2009 Apr 08
0
[LLVMdev] new warnings
Mike Stump wrote: > On Apr 7, 2009, at 6:02 PM, Tanya M. Lattner wrote: >> Can you please just respond to the specific patch on llvm-commits >> instead >> of emailing llvm-dev? > > Don't happen to know which checkin caused it... Given that there's only ever been one checkin to this file, it can't be that hard. :) But I'm not sure what it's
2017 Aug 19
2
RFC: Resolving TBAA issues
"then gcc does the right thing in both cases." There is no way it would ever affect execution semantics except through deletion, so ... On Sat, Aug 19, 2017 at 10:54 AM, Ivan A. Kosarev <ikosarev at accesssoftek.com > wrote: > Can you share the snippets you use? > > Reloading x->i may affect performance, but not necessarily execution > semantics. Sure > So
2009 Apr 08
1
[LLVMdev] new warnings
...corresponding to the dynamic type of the object, — a type that is the signed or unsigned type corresponding to a cv-qualified version of the dynamic type of the object, — an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), — a type that is a (possibly cv-qualified) base class type of the dynamic type of the object, — a char or unsigned char type. Constant* is not a base class type of MDNode* even though Constant is a base class of MDNode. The conversion would be unsafe even without strict aliasin...
2009 Apr 08
4
[LLVMdev] new warnings
On Apr 7, 2009, at 6:02 PM, Tanya M. Lattner wrote: > Can you please just respond to the specific patch on llvm-commits > instead > of emailing llvm-dev? Don't happen to know which checkin caused it...