Displaying 14 results from an estimated 14 matches for "onlyaccessesargmemory".
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...is to relax the conditions in GlobalsAA as below:
(this code is in GlobalsAAResult::AnalyzeCallGraph)
if (F->isDeclaration()) {
// Try to get mod/ref behaviour from function attributes.
- if (F->doesNotAccessMemory()) {
+ if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
// Can't do better than that!
} else if (F->onlyReadsMemory()) {
FunctionEffect |= Ref;
if (!F->isIntrinsic())
// This function might call back into the module and read a global -
// consider every global as possibly...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...is to relax the conditions
in GlobalsAA as below:
(this code is in GlobalsAAResult::AnalyzeCallGraph)
if (F->isDeclaration()) {
// Try to get mod/ref behaviour from function attributes.
- if (F->doesNotAccessMemory()) {
+ if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
// Can't do better than that!
} else if (F->onlyReadsMemory()) {
FunctionEffect |= Ref;
if (!F->isIntrinsic())
// This function might call back into the module and read
a global -
// consider every global as possibly...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...GlobalsAA as below:
> (this code is in GlobalsAAResult::AnalyzeCallGraph)
>
> if (F->isDeclaration()) {
> // Try to get mod/ref behaviour from function attributes.
> - if (F->doesNotAccessMemory()) {
> + if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
> // Can't do better than that!
> } else if (F->onlyReadsMemory()) {
> FunctionEffect |= Ref;
> if (!F->isIntrinsic())
> // This function might call back into the module and read a global -
> // con...
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...t; (this code is in GlobalsAAResult::AnalyzeCallGraph)
> > if (F->isDeclaration()) {
> > // Try to get mod/ref behaviour from function attributes.
> > - if (F->doesNotAccessMemory()) {
> > + if (F->doesNotAccessMemory() ||
> > F->onlyAccessesArgMemory()) {
> > // Can't do better than that!
> > } else if (F->onlyReadsMemory()) {
> > FunctionEffect |= Ref;
> > if (!F->isIntrinsic())
> > // This function might call back into the module and
> >...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...in GlobalsAAResult::AnalyzeCallGraph)
>>>
>>> if (F->isDeclaration()) {
>>> // Try to get mod/ref behaviour from function attributes.
>>> - if (F->doesNotAccessMemory()) {
>>> + if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
>>> // Can't do better than that!
>>> } else if (F->onlyReadsMemory()) {
>>> FunctionEffect |= Ref;
>>> if (!F->isIntrinsic())
>>> // This function might call back into the module and...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...;> (this code is in GlobalsAAResult::AnalyzeCallGraph)
>>
>> if (F->isDeclaration()) {
>> // Try to get mod/ref behaviour from function attributes.
>> - if (F->doesNotAccessMemory()) {
>> + if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
>> // Can't do better than that!
>> } else if (F->onlyReadsMemory()) {
>> FunctionEffect |= Ref;
>> if (!F->isIntrinsic())
>> // This function might call back into the module and read a global -
>...
2015 Dec 11
3
RFC: New function attribute HasInaccessibleState
...lsAAResult::AnalyzeCallGraph)
> > > if (F->isDeclaration()) {
> > > // Try to get mod/ref behaviour from function attributes.
> > > - if (F->doesNotAccessMemory()) {
> > > + if (F->doesNotAccessMemory() ||
> > > F->onlyAccessesArgMemory()) {
> > > // Can't do better than that!
> > > } else if (F->onlyReadsMemory()) {
> > > FunctionEffect |= Ref;
> > > if (!F->isIntrinsic())
> > > // This function might call back into the module...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...in GlobalsAAResult::AnalyzeCallGraph)
>>>
>>> if (F->isDeclaration()) {
>>> // Try to get mod/ref behaviour from function attributes.
>>> - if (F->doesNotAccessMemory()) {
>>> + if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
>>> // Can't do better than that!
>>> } else if (F->onlyReadsMemory()) {
>>> FunctionEffect |= Ref;
>>> if (!F->isIntrinsic())
>>> // This function might call back into the module and...
2015 Dec 14
3
RFC: New function attribute HasInaccessibleState
...gt; > if (F->isDeclaration()) {
>
> > > > > // Try to get mod/ref behaviour from function attributes.
>
> > > > > - if (F->doesNotAccessMemory()) {
>
> > > > > + if (F->doesNotAccessMemory() ||
>
> > > > > F->onlyAccessesArgMemory()) {
>
> > > > > // Can't do better than that!
>
> > > > > } else if (F->onlyReadsMemory()) {
>
> > > > > FunctionEffect |= Ref;
>
> > > > > if (!F->isIntrinsic())
>
> > > > > // This function m...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...t; > > > // Try to get mod/ref behaviour from function attributes.
>> >
>> > > > > > - if (F->doesNotAccessMemory()) {
>> >
>> > > > > > + if (F->doesNotAccessMemory() ||
>> >
>> > > > > > F->onlyAccessesArgMemory()) {
>> >
>> > > > > > // Can't do better than that!
>> >
>> > > > > > } else if (F->onlyReadsMemory()) {
>> >
>> > > > > > FunctionEffect |= Ref;
>> >
>> > > > > > if (!F-...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...if (F->isDeclaration()) {
> > > > // Try to get mod/ref behaviour from function attributes.
> > > > - if (F->doesNotAccessMemory()) {
> > > > + if (F->doesNotAccessMemory() ||
> > > > F->onlyAccessesArgMemory()) {
> > > > // Can't do better than that!
> > > > } else if (F->onlyReadsMemory()) {
> > > > FunctionEffect |= Ref;
> > > > if (!F->isIntrinsic())
> > > >...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...t;>>>>
>>>>> if (F->isDeclaration()) {
>>>>> // Try to get mod/ref behaviour from function attributes.
>>>>> - if (F->doesNotAccessMemory()) {
>>>>> + if (F->doesNotAccessMemory() || F->onlyAccessesArgMemory()) {
>>>>> // Can't do better than that!
>>>>> } else if (F->onlyReadsMemory()) {
>>>>> FunctionEffect |= Ref;
>>>>> if (!F->isIntrinsic())
>>>>> // This funct...
2015 Dec 03
3
Function attributes for LibFunc and its impact on GlobalsAA
----- Original Message -----
> From: "James Molloy via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Vaivaswatha Nagaraj" <vn at compilertree.com>
> Cc: "LLVM Dev" <llvm-dev at lists.llvm.org>
> Sent: Thursday, December 3, 2015 4:41:46 AM
> Subject: Re: [llvm-dev] Function attributes for LibFunc and its impact on GlobalsAA
>
>
2015 Dec 09
5
RFC: New function attribute HasInaccessibleState
Sigh... let me try that last part again:
Maybe GlobalsAA and/or a GlobalsAA-centric attribution pass could partition writes as:
1. Stores to local allocas
2. Stores through pointer parameters
3. Stores to globals defined in this compilation unit
4. Other
Attributing functions with attributes:
readonly: only writes of type 1
argmemonly: only writes of type 1/2
almost-readonly: only