search for: functioneffect

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