search for: derefin

Displaying 10 results from an estimated 10 matches for "derefin".

Did you mean: derefing
2017 Jul 10
2
[ThinLTO] Making ThinLTO functions not fail hasExactDefinition (specifically preventing it from being derefined)
...e functionattr optimizations that LTO can (since LTO is able to convert everything to Internal). This is a problem because every functionattr optimization expects an exact definition by calling hasExactDefinition (http://llvm-cs.pcc.me.uk/ include/llvm/IR/GlobalValue.h#387) which doesn't want a derefined function (mayBeDerefined http://llvm-cs.pcc.me.uk/include/llvm/IR/GlobalValue.h#119). According to the current definition, an AvailableExternally function could be derefined so hasExactDefinition fails. Does anyone have any ideas on how to make a function with External/AvailableExternally linkag...
2017 Jul 11
2
[ThinLTO] Making ThinLTO functions not fail hasExactDefinition (specifically preventing it from being derefined)
...xternally is concerned, preventing FunctionAttrs on them is by design and I'm not sure if there is anything in ThinLTO to fix that (assuming that the functions are, in fact, available_externally). There is some background information on this issue at https://www.playingwithpointers.com/ipo-and-derefinement.html -- Sanjoy >> it is unable to apply any of the functionattr optimizations that LTO can >> (since LTO is able to convert everything to Internal). This is a problem >> because every functionattr optimization expects an exact definition by >> calling hasExactDefinit...
2018 Feb 16
3
Missing attribute inference cases
...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 knowledge, facts on declarations are valid even in the place of derefinement.  This results in the analysis being unnecessarily conservative around external declarations. *AlwaysInline and hasExactDefinition* I believe, but have not fully thought through, that it is legal to IPO across an inexact definition boundary if a particularly callsite or declaration is ma...
2018 Feb 16
2
Missing attribute inference cases
...y -- useful for AA speculatable - useful for speculation, LICM, PRE, etc... Untrusted Declarations In several cases, we check hasExactDefinition before checking properties of the function declaration (such as return type). To my knowledge, facts on declarations are valid even in the place of derefinement. This results in the analysis being unnecessarily conservative around external declarations. AlwaysInline and hasExactDefinition I believe, but have not fully thought through, that it is legal to IPO across an inexact definition boundary if a particularly callsite or declaration is mark...
2018 Feb 17
2
Missing attribute inference cases
...E, etc... >> >> >> >> Untrusted Declarations >> >> In several cases, we check hasExactDefinition before checking properties of >> the function declaration (such as return type). To my knowledge, facts on >> declarations are valid even in the place of derefinement. This results in >> the analysis being unnecessarily conservative around external declarations. >> >> >> AlwaysInline and hasExactDefinition >> >> I believe, but have not fully thought through, that it is legal to IPO >> across an inexact definition b...
2018 Feb 16
0
Missing attribute inference cases
...le - useful for speculation, LICM, PRE, etc... > *Untrusted Declarations* > > In several cases, we check hasExactDefinition before checking > properties of the function declaration (such as return type). To my > knowledge, facts on declarations are valid even in the place of > derefinement.  This results in the analysis being unnecessarily > conservative around external declarations. > > *AlwaysInline and hasExactDefinition* > > I believe, but have not fully thought through, that it is legal to IPO > across an inexact definition boundary if a particularly cal...
2018 Feb 16
0
Missing attribute inference cases
...useful for speculation, LICM, PRE, etc... > > > > Untrusted Declarations > > In several cases, we check hasExactDefinition before checking properties of > the function declaration (such as return type). To my knowledge, facts on > declarations are valid even in the place of derefinement. This results in > the analysis being unnecessarily conservative around external declarations. > > > AlwaysInline and hasExactDefinition > > I believe, but have not fully thought through, that it is legal to IPO > across an inexact definition boundary if a particularly ca...
2018 Feb 17
0
Missing attribute inference cases
...gt;> >> >> Untrusted Declarations >> >> In several cases, we check hasExactDefinition before checking properties >> of >> the function declaration (such as return type). To my knowledge, facts >> on >> declarations are valid even in the place of derefinement. This results >> in >> the analysis being unnecessarily conservative around external >> declarations. >> >> >> AlwaysInline and hasExactDefinition >> >> I believe, but have not fully thought through, that it is legal to IPO >> across an...
2018 Feb 19
1
Missing attribute inference cases
...; Untrusted Declarations >>> >>> In several cases, we check hasExactDefinition before checking >>> properties of >>> the function declaration (such as return type).  To my knowledge, >>> facts on >>> declarations are valid even in the place of derefinement. This >>> results in >>> the analysis being unnecessarily conservative around external >>> declarations. >>> >>> >>> AlwaysInline and hasExactDefinition >>> >>> I believe, but have not fully thought through, that it is l...
2018 Sep 14
5
RFC: Adding a !thread.private metadata
Problem LLVM's memory model for NonAtomic accesses is generally fairly weak, but explicitly disallows inserting stores that didn't occur in the original program.  This is required for any potentially shared location, but is overkill for any memory location which is provably only accessed by a single thread. My particular motivating example is a single thread private field in our