search for: dereferenceable_or_nul

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

2017 Jul 18
2
[RFC] dereferenceable metadata
Hi, While working on PR21780, I used "dereferenceable_or_null" metadata and I realized now that it is not correct for my solution to use this metadata type since it might point to an address that it is not dereferenceable but null. I think that we need another new metadata type, something like "dereferenceable" with that we could annotate a...
2017 Jul 20
2
[RFC] dereferenceable metadata
...idn't read > the whole thread carefully). > > Nuno > > -----Original Message----- > From: Dinar Temirbulatov via llvm-dev > Sent: Tuesday, July 18, 2017 7:36 PM > Subject: [llvm-dev] [RFC] dereferenceable metadata > > Hi, > While working on PR21780, I used "dereferenceable_or_null" metadata > and I realized now that it is not correct for my solution to use this > metadata type since it might point to an address that it is not > dereferenceable but null. I think that we need another new metadata > type, something like "dereferenceable" with that...
2018 Feb 16
3
Missing attribute inference cases
...in functions which are annotated, but don't manually annotate the wrappers dereferenceable - influences speculation safety, this primarily drives LICM, but can also effect things like PRE -- probably best to implement as a deref_or_nuill analysis and then merge nonnull inference to promote dereferenceable_or_null - see previous nounwind - currently implemented in PruneEH, missing in new pass manager -- this one will get fixed in the near future *Untrusted Declarations* In several cases, we check hasExactDefinition before checking properties of the function declaration (such as return type).  To my kno...
2018 Feb 16
2
Missing attribute inference cases
...n functions which are annotated, but don't manually annotate the wrappers dereferenceable - influences speculation safety, this primarily drives LICM, but can also effect things like PRE -- probably best to implement as a deref_or_nuill analysis and then merge nonnull inference to promote dereferenceable_or_null - see previous nounwind - currently implemented in PruneEH, missing in new pass manager -- this one will get fixed in the near future Other cases I just noticed... noreturn -- useful for exception throw wrappers allocsize -- useful for allocation wrappers writeonly -- useful for AA speculatabl...
2018 Feb 17
2
Missing attribute inference cases
...he >> wrappers >> >> dereferenceable - influences speculation safety, this primarily drives LICM, >> but can also effect things like PRE -- probably best to implement as a >> deref_or_nuill analysis and then merge nonnull inference to promote >> >> >> dereferenceable_or_null - see previous >> >> nounwind - currently implemented in PruneEH, missing in new pass manager -- >> this one will get fixed in the near future >> >> Other cases I just noticed... >> noreturn -- useful for exception throw wrappers >> allocsize -- useful for...
2018 Feb 16
0
Missing attribute inference cases
...on't manually > annotate the wrappers > > dereferenceable - influences speculation safety, this primarily drives > LICM, but can also effect things like PRE -- probably best to > implement as a deref_or_nuill analysis and then merge nonnull > inference to promote > > dereferenceable_or_null - see previous > > nounwind - currently implemented in PruneEH, missing in new pass > manager -- this one will get fixed in the near future > Other cases I just noticed... noreturn -- useful for exception throw wrappers allocsize -- useful for allocation wrappers writeonly -- useful f...
2018 Feb 16
0
Missing attribute inference cases
...ut don't manually annotate the > wrappers > > dereferenceable - influences speculation safety, this primarily drives LICM, > but can also effect things like PRE -- probably best to implement as a > deref_or_nuill analysis and then merge nonnull inference to promote > > > dereferenceable_or_null - see previous > > nounwind - currently implemented in PruneEH, missing in new pass manager -- > this one will get fixed in the near future > > Other cases I just noticed... > noreturn -- useful for exception throw wrappers > allocsize -- useful for allocation wrappers > wr...
2018 Feb 17
0
Missing attribute inference cases
...; wrappers >> >> dereferenceable - influences speculation safety, this primarily drives >> LICM, >> but can also effect things like PRE -- probably best to implement as a >> deref_or_nuill analysis and then merge nonnull inference to promote >> >> >> dereferenceable_or_null - see previous >> >> nounwind - currently implemented in PruneEH, missing in new pass >> manager -- >> this one will get fixed in the near future >> >> Other cases I just noticed... >> noreturn -- useful for exception throw wrappers >> allocsize --...
2018 Feb 19
1
Missing attribute inference cases
...> dereferenceable - influences speculation safety, this primarily >>> drives LICM, >>> but can also effect things like PRE -- probably best to implement as a >>> deref_or_nuill analysis and then merge nonnull inference to promote >>> >>> >>> dereferenceable_or_null - see previous >>> >>> nounwind - currently implemented in PruneEH, missing in new pass >>> manager -- >>> this one will get fixed in the near future >>> >>> Other cases I just noticed... >>> noreturn -- useful for exception throw wra...
2015 Feb 12
2
[LLVMdev] RFC: attribute for a pointer which is dereferenceable xor null
...change. I'll let him describe his objection since I was never quite clear on it. *Option 2* We introduce a new attribute with the desired semantics. This results in a collection of confusing overlapping attributes, but is otherwise straight forward. My proposed strawman syntax would be: dereferenceable_or_null(N). (Bikeshedding welcomed.) This would be a legal parameter and return attribute on both function declarations and call sites (i.e. calls and invokes). As with above, we'd extend all the places that currently consider 'dereferenceable' to consider the new attribute in combinatio...
2017 Mar 20
4
[RFC] Attribute overhaul 2
...ptimizations taken together are particularly nice, because it means that changing enum attributes on functions and arguments won't trigger copies of immutable objects. It will only involve flipping bits in a locally stored bitset. Separately, I want to collapse dereferenceable(N), nonnull, and dereferenceable_or_null(N) for efficiency and orthogonality. I will probably raise this in a separate RFC, but I think it was a mistake to have to attribute imply nonnull. I'm mostly looking at this from an efficiency and redundancy perspective, though, not a semantic one. ---------- Does this all seem reasonable?...
2015 Apr 16
3
[LLVMdev] LazyValueInfo.getPredicateAt
Hi, Is it intentional that LazyValueInfo.getPredicateAt doesn't solve for the value and only takes assumptions into account? getPredicateAt gets lattice value from cache using getValueAt call: LVILatticeVal LazyValueInfoCache::getValueAt(Value *V, Instruction *CxtI) { ... LVILatticeVal Result; mergeAssumeBlockValueConstantRange(V, Result, CxtI); ... return Result; } Other