Displaying 16 results from an estimated 16 matches for "analyzecallgraph".
2015 Dec 02
2
Function attributes for LibFunc and its impact on GlobalsAA
Hi,
GlobalsAA, during propagation of mod-ref behavior in the call graph, looks
at library functions (in GlobalsAAResult::AnalyzeCallGraph:
F->isDeclaration() check), for attributes, and if the function does not
have the onlyReadsMemory attribute set, forgets it.
I noticed that library functions such as malloc/realloc do not have the
attributes doesNotAccessMemory or onlyReadsMemory respectively set
(FunctionAttrs.cpp). This leads...
2015 Dec 03
2
Function attributes for LibFunc and its impact on GlobalsAA
...s,
>
> James
>
> On Wed, 2 Dec 2015 at 14:07 Vaivaswatha Nagaraj via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi,
>>
>> GlobalsAA, during propagation of mod-ref behavior in the call graph,
>> looks at library functions (in GlobalsAAResult::AnalyzeCallGraph:
>> F->isDeclaration() check), for attributes, and if the function does not
>> have the onlyReadsMemory attribute set, forgets it.
>>
>> I noticed that library functions such as malloc/realloc do not have the
>> attributes doesNotAccessMemory or onlyReadsMemory resp...
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...39;re understanding correctly, but I don't understand what you're saying will go badly with the malloc example. Quoting the start of the thread:
<<<
The intention behind introducing this attribute 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->onl...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...ion to what are already set):
malloc/free: HasInaccessibleState, ReadNone
printf: HasInaccessibleState, ArgMemOnly
realloc: HasInaccessibleState, ReadOnly (not sure).
The intention behind introducing this attribute 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->on...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...malloc/free: HasInaccessibleState, ReadNone
> printf: HasInaccessibleState, ArgMemOnly
> realloc: HasInaccessibleState, ReadOnly (not sure).
>
> The intention behind introducing this attribute 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!...
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
...t; you're saying will go badly with the malloc example. Quoting the
> > start of the thread:
> >
> > <<<
> > The intention behind introducing this attribute 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...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...;>> printf: HasInaccessibleState, ArgMemOnly
>>> realloc: HasInaccessibleState, ReadOnly (not sure).
>>>
>>> The intention behind introducing this attribute 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()) {
>>&...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...sibleState, ReadNone
>> printf: HasInaccessibleState, ArgMemOnly
>> realloc: HasInaccessibleState, ReadOnly (not sure).
>>
>> The intention behind introducing this attribute 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...
2015 Dec 11
3
RFC: New function attribute HasInaccessibleState
...adly with the malloc example. Quoting the
> > > start of the thread:
> > >
> > > <<<
> > > The intention behind introducing this attribute 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()) {
&...
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
...;>> printf: HasInaccessibleState, ArgMemOnly
>>> realloc: HasInaccessibleState, ReadOnly (not sure).
>>>
>>> The intention behind introducing this attribute 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()) {
>>&...
2015 Dec 14
3
RFC: New function attribute HasInaccessibleState
...>
>
> > > > > <<<
>
> > > > > The intention behind introducing this attribute 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() ||
>
> &g...
2015 Dec 03
3
Function attributes for LibFunc and its impact on GlobalsAA
...>
> On Wed, 2 Dec 2015 at 14:07 Vaivaswatha Nagaraj via llvm-dev <
> llvm-dev at lists.llvm.org > wrote:
>
>
>
>
>
>
> Hi,
>
> GlobalsAA, during propagation of mod-ref behavior in the call graph,
> looks at library functions (in GlobalsAAResult::AnalyzeCallGraph:
> F->isDeclaration() check), for attributes, and if the function does
> not have the onlyReadsMemory attribute set, forgets it.
>
>
>
> I noticed that library functions such as malloc/realloc do not have
> the attributes doesNotAccessMemory or onlyReadsMemory respectivel...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...gt;
>> > > > > > The intention behind introducing this attribute 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()) {
>> >
>> > &g...
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
...gt; start of the thread:
> > > >
> > > > <<<
> > > > The intention behind introducing this attribute 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() ||
>...
2015 Dec 04
4
RFC: New function attribute HasInaccessibleState
...ArgMemOnly
>>>>> realloc: HasInaccessibleState, ReadOnly (not sure).
>>>>>
>>>>> The intention behind introducing this attribute 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-...
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