Displaying 20 results from an estimated 35 matches for "memoryus".
Did you mean:
memoryuse
2017 Dec 19
4
MemorySSA question
...or.body: ; preds = %for.body.lr.ph,
%for.body
; 3 = MemoryPhi({for.body.lr.ph,liveOnEntry},{for.body,1})
%indvars.iv35 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next36,
%for.body ]
%arrayidx = getelementptr inbounds i32, i32* %b, i64 %indvars.iv35
; MemoryUse(3)
%2 = load i32, i32* %arrayidx, align 4, !tbaa !2
%arrayidx2 = getelementptr inbounds i32, i32* %c, i64 %indvars.iv35
; MemoryUse(3)
%3 = load i32, i32* %arrayidx2, align 4, !tbaa !2
%add = add nsw i32 %3, %2
%arrayidx4 = getelementptr inbounds i32, i32* %a, i64 %indvars.iv35
*; 1 = Me...
2017 Feb 17
2
[MemorySSA] inserting or removing memory instructions
...t; store i8 16, i8* %0
>> br label %4
>>
>> ; <label>:3: ; preds = %1
>> br label %4
>>
>> ; <label>:4: ; preds = %3, %2
>> ; 3 = MemoryPhi({%3,4},{%2,2})
>> ; MemoryUse(3)
>> %5 = load i8, i8* %0
>> ; MemoryUse(1)
>> %6 = load i8, i8* %0
>> }
>>
>> What is the general behavior that I can expect when I insert or remove
>> def/use?
>>
>
> So far, it is built to replace all the hoist/sink/removal/etc cases.
&...
2018 Jul 16
2
Memory leakage from large lists
...tion.
Is there a something I can do to prevent this memory leak? Any help would
be greatly appreciated. By the way, if you execute the code, please run it
in a new R session.
# Start of code
================================================================
# Function that returns memory being used
MemoryUsed <- function(){
pid <- Sys.getpid()
system(paste0("top -n 1 -p ", pid, " -b"), intern = TRUE)[c(7,8)]
}
# Initial memory (VIRT memory equals about 400,000 bytes on my machine)
MemoryUsed()
# Create a large list of large data, remove it, and perform garbarge
collecti...
2017 Dec 19
2
MemorySSA question
...>
This is true for def-def relationships, but doesn't;'t matter here.
>
>
So in that sense, from what I understand, it does not actually model the
> heap in a fine grained way.
>
> Any write to any part of the heap will create a new memorydef node.
>
> Yes, but MemoryUses can reach back past the nearest def, so that doesn't
affect uses.
The limitation here is deliberately done to keep it only requiring a single
phi.
All data from building this for years in GCC (which also moved from
"precise" to "imprecise" for the same reason) told us th...
2016 Apr 29
2
[MemorySSA] Potential CachingMemorySSAWalker bug
...ike to start by trying to show you
what is happening when running EarlyCSE with my local changes to use
MemorySSA. I've attached a debug log that shows that the value returned
by getClobberingMemoryAccess(Inst) after a call to removeMemoryAccess is
wrong. The MemorySSA node in question is MemoryUse(7), and the
corruption happens after a call to remove MemoryUse(2), at which point
its clobber value changes to '1 = MemoryDef(liveOnEntry)'. The
interesting thing is that is doesn't seem to be the first call to
getClobberingMemoryAccess after the removal that causes the corruptio...
2016 May 02
2
[MemorySSA] Potential CachingMemorySSAWalker bug
...EarlyCSE with my local changes to use MemorySSA. I've
> attached a debug log that shows that the value returned by
> getClobberingMemoryAccess(Inst) after a call to
> removeMemoryAccess is wrong. The MemorySSA node in
> question is MemoryUse(7), and the corruption happens after
> a call to remove MemoryUse(2), at which point its clobber
> value changes to '1 = MemoryDef(liveOnEntry)'. The
> interesting thing is that is doesn't seem to be the first
> call to getCl...
2018 Aug 09
2
llvm MemorySSA def-use chains
...i32*, align 8
%a = alloca i32, align 4
%d = alloca i32, align 4
%c = alloca i32, align 4
%e = alloca i32, align 4
; 1 = MemoryDef(liveOnEntry)
store i32* %b, i32** %b.addr, align 8
; 2 = MemoryDef(1)
store i32 0, i32* %a, align 4
; 3 = MemoryDef(2)
store i32 12, i32* %d, align 4
; MemoryUse(1)
%0 = load i32*, i32** %b.addr, align 8
%tobool = icmp ne i32* %0, null
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %entry
; 4 = MemoryDef(3)
store i32 42, i32* %a, align 4
; 5 = MemoryDef(4)
store i32 32, i32* %d, align...
2016 Jun 27
2
[MemorySSA] Potential bug in MemoryUse defining access calculation
...3 = MemoryPhi
+; CHECK-NEXT: %i.0 = phi i32
+ %i.0 = phi i32 [ 0, %entry ], [ %i.1, %for.body ]
+ %cmp = icmp slt i32 %i.0, %N
+ br i1 %cmp, label %for.body, label %cleanup
+
+for.body:
+; this load doesn't alias either of the stores, so should have a defining access of LiveOnEntry
+; CHECK: MemoryUse(liveOnEntry)
+; CHECK-NEXT: %loadG1_1 = load
+ %loadG1_1 = load i16, i16* @G1, align 2
+; CHECK: 1 = MemoryDef(3)
+; CHECK-NEXT: store i16 0
+ store i16 0, i16* @G2, align 2
+ ; ditto for this identical load
+; CHECK: MemoryUse(liveOnEntry)
+; CHECK-NEXT: %loadG1_2 = load
+ %loadG1_2 = load i1...
2018 Feb 09
1
PHI nodes for atomic variables
Dear Daniel Berlin,
I just tried MemorySSA analysis and get the next IR.
However, I feel confused by the result.
Specifically, why instruction *%3* relates to a *MemoryDef*. According to
my understanding,
I think *%3* should be related to a *MemoryUse*, right?
; Function Attrs: uwtable
define void @_Z2f1v() #3 personality i32 (...)* @__gxx_personality_v0 {
entry:
; 1 = MemoryDef(liveOnEntry)
tail call void @checker_thread_begin(i8* getelementptr inbounds ([3 x
i8], [3 x i8]* @.str, i64 0, i64 0))
; MemoryUse(1)
%0 = load i32, i32* @data1,...
2016 Jun 27
0
[MemorySSA] Potential bug in MemoryUse defining access calculation
This is definitely a caching bug related to this code:
1038 // Don't try to optimize this phi again if we've already tried
to do so.
1039 if (!Q.Visited.insert(PHIPair).second) {
1040 ModifyingAccess = CurrAccess;
1041 break;
1042 }
We don't differentiate elsewhere between having stopped at a phi because we
were path walking and discovered that path
2017 Feb 17
2
[MemorySSA] inserting or removing memory instructions
...:2: ; preds = %1
; 2 = MemoryDef(4)
store i8 16, i8* %0
br label %4
; <label>:3: ; preds = %1
br label %4
; <label>:4: ; preds = %3, %2
; 3 = MemoryPhi({%3,4},{%2,2})
; MemoryUse(3)
%5 = load i8, i8* %0
; MemoryUse(1)
%6 = load i8, i8* %0
}
What is the general behavior that I can expect when I insert or remove
def/use?
Another general question: what is the use of MemorySSAUpdater? When should
I use updater and when the MemorySSA API is sufficient?
Piotr
-------------...
2018 Aug 10
2
llvm MemorySSA def-use chains
...= alloca i32, align 4
>
> %e = alloca i32, align 4
>
> ; 1 = MemoryDef(liveOnEntry)
>
> store i32* %b, i32** %b.addr, align 8
>
> ; 2 = MemoryDef(1)
>
> store i32 0, i32* %a, align 4
>
> ; 3 = MemoryDef(2)
>
> store i32 12, i32* %d, align 4
>
> ; MemoryUse(1)
>
> %0 = load i32*, i32** %b.addr, align 8
>
> %tobool = icmp ne i32* %0, null
>
> br i1 %tobool, label %if.then, label %if.end
>
>
> if.then: ; preds = %entry
>
> ; 4 = MemoryDef(3)
>
> store i32 42, i32* %a, a...
2018 Jul 17
0
Memory leakage from large lists
...prevent this memory leak? Any help would
> be greatly appreciated. By the way, if you execute the code, please run it
> in a new R session.
>
> # Start of code
> ================================================================
>
> # Function that returns memory being used
> MemoryUsed <- function(){
> pid <- Sys.getpid()
> system(paste0("top -n 1 -p ", pid, " -b"), intern = TRUE)[c(7,8)]
> }
>
> # Initial memory (VIRT memory equals about 400,000 bytes on my machine)
> MemoryUsed()
>
> # Create a large list of large data, re...
2016 May 02
2
[MemorySSA] Potential CachingMemorySSAWalker bug
...you what is
>> happening when running EarlyCSE with my local changes to use MemorySSA.
>> I've attached a debug log that shows that the value returned by
>> getClobberingMemoryAccess(Inst) after a call to removeMemoryAccess is
>> wrong. The MemorySSA node in question is MemoryUse(7), and the corruption
>> happens after a call to remove MemoryUse(2), at which point its clobber
>> value changes to '1 = MemoryDef(liveOnEntry)'. The interesting thing is
>> that is doesn't seem to be the first call to getClobberingMemoryAccess
>> after the r...
2015 Apr 28
2
[LLVMdev] alias set collapse and LICM
On Mon, Apr 27, 2015 at 4:21 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> You can't win here (believe me, i've tried, and better people than me have
> tried, for years :P).
> No matter what you do, the partitioning will never be 100% precise. The
> only way to solve that in general is to pairwise query over the
> partitioning.
>
> Your basic problem is
2018 Feb 08
0
PHI nodes for atomic variables
Let me try to help.
On Thu, Feb 8, 2018 at 12:13 PM, Qiuping Yi via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Thanks for your explanation.
>
> Do you mean that LLVM will not maintain the def-use chain for atomic
> variables?
>
It is not a variable at the LLVM level.
At the source level, it is a variable.
At the LLVM IR level, it is lowered into memory operations.
All
2008 May 16
1
64-bit R and cache memory
...tware info:
OS: kUbuntu Feasty Fawn 7.04 (64-bit)
Processor: AMD Opteron 64-bit
R: version 2.7.0 (64-bit)
Cache memory: currently 16 GB (was 2 GB)
Outcome of 'limit' command in shell: cputime unlimited, filesize
unlimited, datasize unlimited, stacksize 8192 kbytes, coredumpsize 0
kbytes, memoryuse unlimited, vmemoryuse unlimited, descriptors 1024,
memorylocked unlimited, maxproc unlimited
-----------------------------------
a. We have recently upgraded the cache memory from 2 to 16 GB. However,
we have noticed that somehow R still swaps memory when datasets
exceeding 2 GB in size are us...
2018 Feb 08
3
PHI nodes for atomic variables
Thanks for your explanation.
Do you mean that LLVM will not maintain the def-use chain for atomic
variables?
So it is impossible to directly catch the fact that the load of x at the
statement 'data1 = x; ' dependents on data4 (because of the statement
x=data4 )?
If I want to get such information, may be the only solution is to traverse
all the predecessors of the statement 'data1 =
2006 Jan 31
1
rsync using ssh get stuck
...mpsize soft = 0,coredumpsize hard = unlimited,openfiles
soft = 1024,openfiles hard = 8192,descriptors soft = 1024,descriptors
hard = 8192,addressspace soft = unlimited,addressspace hard =
unlimited,memorylocked soft = unlimited,memorylocked hard =
unlimited,maxproc soft = 16384,maxproc hard = 16384,memoryuse soft =
unlimited,memoryuse hard = unlimited null false false false 5 0
/nfs/site/proj/mpgarch/perf/tools/scripts/bin/arch_post.csh
/netbatch/ekrimer/task_nhm_296/runs
/nfs/site/proj/mpgarch/arch_vpool_1/ekrimer/ambig/results
ekrimer 28620 28619 0 Jan28 ? 00:00:00 /bin/csh -f
/nfs/site/pr...
2017 Dec 21
4
Hoisting in the presence of volatile loads.
...ds around
> volatile
> ; loads
> ; CHECK-LABEL define void @volatile_only
> define void @volatile_only(i32* %arg1, i32* %arg2) {
> [...]
> ; MayAlias
> ; CHECK: 2 = MemoryDef(1)
> ; CHECK-NEXT: load volatile i32, i32* %arg1
> load volatile i32, i32* %arg1
> ; CHECK: MemoryUse(2)
> ; CHECK-NEXT: load i32, i32* %arg2
> load i32, i32* %arg2
> ret void
> }
>
> The testcase: test/Transforms/LICM/volatile-alias.ll checks the
> opposite, that we *do* hoist the non-volatile load. This is currently
> ensured by the AliasSetTracker.
>
>
> T...