Displaying 14 results from an estimated 14 matches for "functioneffect".
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...ion()) {
// 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 being read by this function.
FR.MayReadAnyGlobal = true;
} else {
FunctionEffect |= ModRe...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...ion()) {
// 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 being read by this function.
FR.MayReadAnyGlobal = true;
} else {
FunctionEffect |= ModRe...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...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 being read by this function.
> FR.MayReadAnyGlobal = true;
> } else {
>...
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...nction 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 being read by this
> > function.
> >...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...ttributes.
>>> - 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 being read by this function.
>>> FR.MayReadAnyGlobal = true;...
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 04
2
RFC: New function attribute HasInaccessibleState
...iour 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 being read by this function.
>> FR.MayReadAnyGlobal = true;
>>...
2015 Dec 11
3
RFC: New function attribute HasInaccessibleState
...gt; - 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 being read by
> > > this
> &g...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...ttributes.
>>> - 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 being read by this function.
>>> FR.MayReadAnyGlobal = true;...
2015 Dec 14
3
RFC: New function attribute HasInaccessibleState
...{
>
> > > > > + 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 being read by
>
> > >...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...||
>> >
>> > > > > > 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 -
>> >
>> > > > > > // c...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...> > > + 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 being rea...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...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 being read by this function.
>>>>>...
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