Displaying 20 results from an estimated 1100 matches similar to: "[LLVMdev] MemoryDependenceAnalysis && MemDepResult"
2011 Dec 13
1
[LLVMdev] Memory Dependence Analysis
Howdy,
I'm working on writing a dependence analyzer (rather like what
LoopDependenceAnalysis wants to be, except a bit more general). While this
is a problem of many parts, I'm currently focusing on finding pairs of
memory references to test for dependence. Consider this contrived C code:
double test2(int n, double *restrict A, double *restrict B, bool flag) {
if (flag) {
A[0] =
2015 Aug 07
2
load instruction erroneously removed by GVN
Hi,
I'm having a problem with GVN removing a load instruction that I think
is needed.
Dump before GVN:
*** IR Dump Before Global Value Numbering ***
; Function Attrs: minsize optsize
define i16 @TEST__MAIN(i16 %argc.13.par, i16** %argv.14.par) #0 {
%buf.17 = alloca [10 x i16], align 1
%_tmp30 = getelementptr inbounds [10 x i16], [10 x i16]* %buf.17, i16
0, i16 0, !dbg !22
call
2010 Sep 23
2
[LLVMdev] Finding all values derived from a function argument
Hello!
I am trying to retrieve all instructions from a function's body that
are dependent on a specific argument. The strategy I am currently
using for that is to follow all uses of the argument and record them.
Also, whenever I encounter a store of a dependent value, I try to find
loads in the function that are dependent on that store and resume
use-tracking from there. For this purpose I am
2009 Jul 23
0
[LLVMdev] [PATCH] PR2218
On Jul 22, 2009, at 1:37 PM, Jakub Staszak wrote:
> Hello,
>
> This patch fixes PR2218.
Very nice. Are you sure this fixes PR2218? The example there doesn't
have any loads in it.
> However, I'm not pretty sure that this optimization should be in
> MemCpyOpt. I think that GVN is good place as well.
Yes, you're right. My long term goal is to merge the relevant
2010 Jul 18
0
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
Sorry, I misunderstood the question.
The difference between a load and a read-only call is that load can be
used as the value of the memory location. E.g. DeadStoreElimination
pass removes a store that stores a just loaded value back into the
same location. To do this it checks if the stored value is the value
of load. Read-only call cannot be used like this.
This being said, I don't know if
2010 Jul 17
0
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
Since isLoad == false means we're looking at a store, what this does
is making the store *p depend on the load *p. This is correct -- you
can't move store before load, otherwise load will start returning a
different value.
Eugene
On Fri, Jul 16, 2010 at 5:43 PM, Marc de Kruijf <dekruijf at cs.wisc.edu> wrote:
> Hello,
>
> I'm taking a really good look at the
2010 Jul 18
2
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
Yes, I'm not arguing that there is a dependence, just that it's not a
clobber dependence. The case of a load is already considered earlier in
that function and with isLoad == false it returns MemDepResult::getDef().
My question is: why should a read-only call (which yields
AliasAnalysis::Ref and is handled in this code fragment) be any different
from e.g. a load. Isn't a read-only
2010 Jul 16
2
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
Hello,
I'm taking a really good look at the MemoryDependenceAnalysis pass, but I'm
slightly confused about one little thing. I think it's a bug but I'm not
confident enough to submit a bug report.
Is there a reason why read-only calls are considered to "clobber" pointers
in the non-load case (which is what gets returned due to the fall-through in
the switch -- see
2013 Jan 18
0
[LLVMdev] llvm getDependency() for ICMP instructions is UNKNOWN
Hello everyone !
I am trying to get the dependencies for the variables of ICMP instructions.
Do you know if I can use an already existing method?
I tried to use getDependency() method of class MemoryDependenceAnalysis.
Does it work only for particular instruction types? Its definition is
MemDepResult MemoryDependenceAnalysis::getDependency ( Instruction *
QueryInst )
When I running my pass
2009 Sep 02
0
[LLVMdev] [PATCH] PR2218
On Sep 2, 2009, at 1:07 AM, Jakub Staszak wrote:
> Hello,
>
> I fixed my patch as you asked. Sorry for the delay, I'd been working
> on my SSU patch (http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-August/025347.html
> )
>
> I hope that everything is fine now.
Hey Jakub,
Thanks for working on this again, one more round :)
Please merge the three testcases into one
2009 Jul 25
2
[LLVMdev] [PATCH] PR2218
Hello,
Sorry for my stupid mistakes. I hope that everything is fine now. This
patch fixes PR2218. There are no loads in example, however
"instcombine" changes memcpy() into store/load.
Regards,
Jakub Staszak
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr2218-2.patch
Type: application/octet-stream
Size: 6525 bytes
Desc: not available
URL:
2009 Sep 02
1
[LLVMdev] [PATCH] PR2218
On Sep 2, 2009, at 3:15 PM, Chris Lattner wrote:
> Please merge the three testcases into one file. We added a new
> FileCheck tool which allows you to check for the exact sequence of
> instructions expected, which also allows the tests to be merged into
> one file.
>
> +/// MemCpyOpt::pointerIsParameter - returns true iff pointer is a
> parameter of
> +/// C call
2011 Dec 12
1
[LLVMdev] problem with runOnLoop
Thank you for your reply
Yes, I change them, so what should I do for another loops?
On Mon, Dec 12, 2011 at 7:54 PM, neda 8664 <neda8664 at gmail.com> wrote:
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
>
> On Mon, Dec 12, 2011 at 7:42 PM, John Criswell <criswell at illinois.edu>wrote:
>
>> On 12/12/11 9:59 AM,
2011 Dec 12
0
[LLVMdev] problem with runOnLoop
On 12/12/11 10:25 AM, neda 8664 wrote:
>
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
I don't really know what you should do since I don't know what your code
does. All I know is that it's changing the function's control-flow graph.
If you're not modifying the structure of the loops in the function, then
you can
2009 Apr 25
1
[LLVMdev] MemoryDependenceAnalysis
On Apr 25, 2009, at 5:05 PM, Chris Lattner wrote:
>
> On Apr 13, 2009, at 12:01 PM, Anthony Danalis wrote:
>
>> I'm attaching the .bc file. Note that my analysis pass is invoked
>> after "-O1" and that's why the IR I included in the original email
>> is optimized.
>
> Hi Anthony,
>
> Sorry for the delay, things have been crazy lately.
>
2009 Apr 13
0
[LLVMdev] MemoryDependenceAnalysis
On Mon, Apr 13, 2009 at 9:06 AM, Anthony Danalis <adanalis at eecs.utk.edu> wrote:
> How can I use MemoryDependenceAnalysis (or any other analysis for that
> matter) to gather that the instructions
> j = N/2 (store i32 %11, i32* %j, align 4)
> and
> N = N+7 (store i32 %12, i32* %n, align 4)
> are the ones that define the parameters "j" and "N"
2009 Apr 13
1
[LLVMdev] MemoryDependenceAnalysis
On Apr 13, 2009, at 3:32 PM, Eli Friedman wrote:
> On Mon, Apr 13, 2009 at 9:06 AM, Anthony Danalis <adanalis at eecs.utk.edu
> > wrote:
>> How can I use MemoryDependenceAnalysis (or any other analysis for
>> that
>> matter) to gather that the instructions
>> j = N/2 (store i32 %11, i32* %j, align 4)
>> and
>> N = N+7 (store i32 %12, i32* %n,
2009 Apr 25
0
[LLVMdev] MemoryDependenceAnalysis
On Apr 13, 2009, at 12:01 PM, Anthony Danalis wrote:
> I'm attaching the .bc file. Note that my analysis pass is invoked
> after "-O1" and that's why the IR I included in the original email
> is optimized.
Hi Anthony,
Sorry for the delay, things have been crazy lately.
The MemDep API assumes that you will call getDependency() first, and
then only call
2008 Oct 08
1
Error in spdep: system is computationally singular
Hi all,
I am trying to run an autologistic model using the function errorsarlm from spdep package.
**I built an XY matrix extracting the two colums from matriz**
coords1<-matriz[matriz$casos1==1, c(4,5)]
coords1<-as.matrix(coords1)
**I identify neighbours of region points**
nb20<-dnearneigh(coords1,0,20,longlat=TRUE)
** I build a neighbours list with spatial weights**
2011 Dec 12
4
[LLVMdev] problem with runOnLoop
hi all,
I want access to all basic blocks of function in a loop, so I used the
following code:
*bool parallel::runOnLoop(Loop *L, LPPassManager &LPM)
{
for (Function::iterator bi= func->begin(); bi != func->end(); bi++){
//
}
}*
First loop run without problem, but for second loop I get the following
error:
*0 libLLVM-2.9.so 0x0137d530
1 libLLVM-2.9.so 0x0137fa6c
2