similar to: [LLVMdev] GVN

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] GVN"

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
2008 Jul 28
2
[LLVMdev] Memory Dependence Analysis: getNonLocalDependency()
Hi, I have a question about the memory dependence analysis. I am trying to use it to selectively enumerate a set of pairs of (load, store) instructions for every function by calling getNonLocalDependency() on the MemoryDependenceAnalysis. This populates a DenseMap<BasicBlock*, Value*>. I just looked up an usage of this in GVN.cpp: MD->getNonLocalDependency(C, deps); for
2008 Jul 28
0
[LLVMdev] Memory Dependence Analysis: getNonLocalDependency()
On Jul 28, 2008, at 3:47 PM, Prakash Prabhu wrote: > Hi, > > I have a question about the memory dependence analysis. I am trying > to use it to selectively enumerate a set of pairs of (load, store) > instructions for every function by calling getNonLocalDependency() > on the MemoryDependenceAnalysis. This populates a > DenseMap<BasicBlock*, Value*>. I just
2015 Jul 01
4
[LLVMdev] AliasAnalysis update interface - a tale of sorrow and woe
Greetings folks, As I'm working on refactoring the AA interfaces in LLVM to prepare for the new pass manager, I keep hitting issues. Some of the complexity that is hitting this stems from the update API, which consists of three virtual functions: deleteValue(Value *V) copyValue(Value *From, Value *To) addEscapingUse(Use &U) These interfaces are *very* rarely called. Here are the only
2015 Jul 21
6
[LLVMdev] GlobalsModRef (and thus LTO) is completely broken
Based on function names and structures, this is some version of GCC :) Any way you can post the entire .ll file? Because it's globalsmodref, it's hard to debug without the other functions, since it goes over all the functions to determine address takenness, etc :) On Tue, Jul 21, 2015 at 3:23 PM, Michael Zolotukhin <mzolotukhin at apple.com> wrote: > Hi Chandler, > > We
2010 Mar 31
2
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
Hi, I'm a bit confused about the distinction between addRequired and addRequiredTransitive in AnalysisUsage. From PassAnalysisSupport.h: "REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE (must be available throughout the lifetime of the pass)." The part that's confusing me is "must be available when the pass runs". I don't see how
2014 May 21
4
[LLVMdev] GVN incorrectly handling readnone parameter attribute?
Hi, I'm investigating a bug which I have so far been able to narrow down to the following small testcase: ======== test.c =========== int *get_pntr(int *p) { return p; } __attribute__((noinline)) void store(int *p) { int *p2 = get_pntr(p); *p2 = 10; } int test() { int i; store(&i); return i; } ----------------------------- If this is compiled in two steps as
2014 May 03
2
[LLVMdev] Testcases where GVN uses too much memory?
I've heard a few times, "GVN uses too much memory." The real fix is probably a rewrite of some sort, but that's not what this email is about. I have a few patches that should *incrementally* reduce its memory usage. Keyword being "should", because I haven't observed an improvement... in fact, I haven't seen it using much memory at all. Does anyone have a
2018 Apr 18
1
[RFC] Making GVN able to visit the same block more than once
Introduction ============ I'm currently in the middle of what initially looked to be a simple change in GVN but is turning out to have unexpected consequences that are turning out to be quite difficult to resolve, so I thought I'd send out an RFC to make sure that I'm not barking up the wrong tree with how I'm trying to do this. Motivation and current behaviour
2010 Mar 31
0
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
On Mar 31, 2010, at 2:53 PM, Trevor Harmon wrote: > I'm a bit confused about the distinction between addRequired and > addRequiredTransitive in AnalysisUsage. From PassAnalysisSupport.h: > > "REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE > (must be available throughout the lifetime of the pass)." > > The part that's confusing me
2015 May 11
2
[LLVMdev] about MemoryDependenceAnalysis usage
add -basicaa to your command line :) On Mon, May 11, 2015 at 7:15 AM, Willy WOLFF <willy.mh.wolff at gmail.com> wrote: > I play a bit more with MemoryDependenceAnalysis by wrapping my pass, and > call explicitely BasicAliasAnalysis. Its still using No Alias Analysis. > > How can I let MemoryDependenceAnalysis use BasicAliasAnalysis? > > Please, find attached my pass. >
2015 Aug 07
3
load instruction erroneously removed by GVN
On 08/07/2015 01:53 PM, Caldarale, Charles R wrote: >> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] >> On Behalf Of Mikael Holmén via llvm-dev >> Subject: [llvm-dev] load instruction erroneously removed by GVN > >> But between the load and the alloca there is also >> call fastcc void @format_long(i16* %_tmp30, i16 10, i32 10), !dbg !22 >>
2016 Aug 29
2
GVN / Alias Analysis issue with llvm.masked.scatter/gather intrinsics
this is definitely a bug in AA. 225 for (auto I = CS2.arg_begin(), E = CS2.arg_end(); I != E; ++I) { 226 const Value *Arg = *I; 227 if (!Arg->getType()->isPointerTy()) -> 228 continue; 229 unsigned CS2ArgIdx = std::distance(CS2.arg_begin(), I); 230 auto CS2ArgLoc = MemoryLocation::getForArgument(CS2, CS2ArgIdx, TLI);
2015 May 09
2
[LLVMdev] about MemoryDependenceAnalysis usage
Hi, I try to use MemoryDependenceAnalysis in a pass to analyse a simple function: void fct (int *restrict*restrict M, int *restrict*restrict L) { S1: M[1][1] = 1; S2: L[2][2] = 2; } When I iterate over MemoryDependenceAnalysis on the S2 statement, I get the load instruction for the first depth of the array, that’s ok. But I get also the load and store for the S1 statement. I assume the
2015 Aug 10
2
load instruction erroneously removed by GVN
Hi, On 08/07/2015 10:30 PM, Nick Lewycky wrote: [...] > Depends. What is the exact declaration of format_long? > > > In the input .ll file it is: > > ; Function Attrs: minsize optsize > define internal i16 @format_long(i16* %res.8.par, i16 %base.9.par, > i32 %x.10.par) #3 { > > which is later changed somewhere in opt to: > > ;
2015 Jul 17
2
[LLVMdev] GlobalsModRef (and thus LTO) is completely broken
On Fri, Jul 17, 2015 at 9:13 AM Evgeny Astigeevich < evgeny.astigeevich at arm.com> wrote: > It’s Dhrystone. > Dhrystone has historically not been a good indicator of real-world performance fluctuations, especially at this small of a shift. I'd like to see if we see any fluctuation on larger and more realistic application benchmarks. One advantage of the flag being set is that we
2011 May 07
1
[LLVMdev] Access GVN's value graph
Hi All, I would like to get access to GVN's value graph and use it in our pass. However, I do not see a .h file for GVN. Is there a way to get access to the value graph? I assume that the value is encoded in the value table. Thanks. George -------------- next part -------------- An HTML attachment was scrubbed... URL:
2008 Jul 29
1
[LLVMdev] Memory Dependence Analysis: getNonLocalDependency()
Thanks for the quick reply, Owen. I went through the code in MemoryDependenceAnalysis.cpp again. Since DenseMap<BasicBlock*, Value*> maps a BasicBlock to a single Value (Instruction) and it is populated by a DFS on the reverse Control Flow Graph starting at the query instruction's block, is it correct to say that the last dependent instruction in each visited basic block is what is
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
Thanks Daniel, I'll do a debug build of LLVM (I guess that'll teach me) and step through it as soon as I'll find a power outlet. I'm calling getDependency on the load instruction, and it returns the store instruction. Suspiciously enough, calling invalidateCachedPointerInfo on load->getPointerOperand() does not cause my AA pass to be called again when I use getDependency (or
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