search for: capturetracking

Displaying 17 results from an estimated 17 matches for "capturetracking".

2009 Mar 06
1
[LLVMdev] CaptureTracking.h?
Is there any particular reason that CaptureTracking.h isn't folded into ValueTracking.h? I was looking for the method to check whether a pointer would be captured and looked in ValueTracking.h, unaware that a new header had been created for that one method. Would anyone mind if I folded CaptureTracking into ValueTracking? Nick -------------- n...
2019 Jan 04
2
Coupling between CaptureTracking and its users
Working on a downstream optimization which uses CaptureTracking (CT) I came across a coupling problem. It looks like optimizations and analyses which use CT often need to be in sync with CT implementation. Analyzing the uses of the given pointer CT handles three kinds of uses: * Simple non-capturing use. When one is encountered, CT just moves on. * Non-captu...
2016 Mar 22
3
A couple ideas for possible GSoC projects
...a location which is provably thread local can be converted into a load, test, and store. Many other instructions intended for cross thread interaction have cheaper variants which apply to thread local locations. The key part of this project will be introducing an analysis (probably based on CaptureTracking) to prove memory locations are thread local. This project is probably best for a student with experience reasoning about concurrency in software. Capture Tracking Improvements Our current capture tracking analysis (see CaptureTracking.cpp) is relatively weak and expensive. It could be improve...
2019 Sep 19
2
Fixing some StackProtector issues
PR43308 describes a case where StackProtector fails to protect against a fairly simple smash. This problem started after r363169, which removed StackProtector's own analysis function HasAddressTaken, and used CaptureTracking's PointerMayBeCaptured instead. The problem here is that "pointer is captured" and "pointer could be used to smash the stack" are not equivalent queries. The header of CaptureTracking.cpp says in part: A pointer value is captured if the function makes a copy of any part...
2019 Sep 10
2
Question on llvm.mem* intrinsics
Hi there lowering experts, Can the llvm.mem* intrinsics ever turn into a library call? Or do they invariably turn into inline code? This comes up because there was a patch to StackProtector to use CaptureTracking instead of a home-grown analysis, which changes the treatment of calls to intrinsics. (The old code treated them as normal calls, the new code decides intrinsics can never capture.) But if llvm.mem* intrinsics can turn into real function calls, we need to pay attention to that. Thanks, --paulr
2016 Mar 22
0
A couple ideas for possible GSoC projects
...ainst a location which is provably thread local can be converted into a load, test, and store. Many other instructions intended for cross thread interaction have cheaper variants which apply to thread local locations. The key part of this project will be introducing an analysis (probably based on CaptureTracking) to prove memory locations are thread local. This project is probably best for a student with experience reasoning about concurrency in software. > > Capture Tracking Improvements > Our current capture tracking analysis (see CaptureTracking.cpp) is relatively weak and expensive. It coul...
2010 Sep 24
0
[LLVMdev] Finding all values derived from a function argument
...endent > instructions than like in the code below? In particular, I'm wondering > if it is possible to find all loads that depend on a particular store > more efficiently? I don't think memory dependence analysis is appropriate for this. The function llvm::PointerMayBeCaptured in CaptureTracking.cpp does something like what you are trying to do. It used to track stores and loads from them, but this was removed because it was not helpful in practice. The way it used to track stores and loads was simple. First, it only tried to analysis stores to local variables (AllocaInst). Stores to g...
2010 Sep 24
1
[LLVMdev] Finding all values derived from a function argument
...ns than like in the code below? In particular, I'm wondering >> if it is possible to find all loads that depend on a particular store >> more efficiently? > > I don't think memory dependence analysis is appropriate for this.  The function > llvm::PointerMayBeCaptured in CaptureTracking.cpp does something like what you > are trying to do.  It used to track stores and loads from them, but this was > removed because it was not helpful in practice.  The way it used to track > stores and loads was simple.  First, it only tried to analysis stores to local > variables (Alloc...
2014 Mar 02
3
[LLVMdev] [RFC] The coding standard for "struct" should be relaxed or removed
On Mar 1, 2014, at 7:15 PM, Chandler Carruth <chandlerc at google.com> wrote: > On Sat, Mar 1, 2014 at 5:59 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote: > The current guidelines [1] on the use of the struct keyword are too > restrictive and apparently ignored. They limit the use of struct to > PODs, citing broken compilers. > > The guidelines are
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
2010 Jul 13
0
[LLVMdev] Promoting malloc to alloca
...hat no copies of the pointer were made. While this is useless for malloc elimination in the general case (you care whether the callee might call free() not just whether it makes a copy) in your case with no explicit frees I think it's probably equivalent. The API is in include/llvm/Analysis/CaptureTracking.h, and link to libAnalysis. > Now I can see why LLVM doesn't do this -- it would be unsafe in > general. In my language (and many other high-level garbage-collected > languages which don't generate free() calls), it would be useful, but > LLVM itself can't guarantee that i...
2010 Jul 13
3
[LLVMdev] Promoting malloc to alloca
OK thanks for the replies. Yes, I was planning to use a garbage collector. This is for a functional language, so there's no real way to determine when memory needs to be freed without one. > Firstly, the pointer has to not make it into any function call at all, since any function might in turn call free(). Then we need to do escape analysis as you pointed out, but that's not
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 > >
2010 Oct 01
2
[LLVMdev] CMake "sudo make install" & headers
...lvm/Analysis/AliasAnalysis.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/AliasSetTracker.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/CFGPrinter.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/CallGraph.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/CaptureTracking.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/CodeMetrics.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/ConstantFolding.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/ConstantsScanner.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/DOTGraphTraitsPass...
2010 Oct 01
0
[LLVMdev] CMake "sudo make install" & headers
On Thu, Sep 30, 2010 at 3:08 PM, Samuel Williams <space.ship.traveller at gmail.com> wrote: > Hi, > > I might just be doing something stupid, but when I do > > $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/llvm-2.8 -DCMAKE_BUILD_TYPE=Release .. > $ sudo make install > > I don't get the expected headers in >        /usr/local/llvm-2.8/include/llvm > > It is
2010 Sep 30
6
[LLVMdev] CMake "sudo make install" & headers
Hi, I might just be doing something stupid, but when I do $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/llvm-2.8 -DCMAKE_BUILD_TYPE=Release .. $ sudo make install I don't get the expected headers in /usr/local/llvm-2.8/include/llvm It is simply an empty directory. What am I doing wrong? This is on Mac OS X, CMake 2.8+ Kind regards, Samuel
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...on.cpp for Release+Asserts build llvm[3]: Compiling GCOVProfiling.cpp for Release+Asserts build llvm[2]: Compiling CGSCCPassManager.cpp for Release+Asserts build llvm[3]: Compiling CloneModule.cpp for Release+Asserts build llvm[3]: Compiling FastISel.cpp for Release+Asserts build llvm[2]: Compiling CaptureTracking.cpp for Release+Asserts build llvm[3]: Compiling CmpInstAnalysis.cpp for Release+Asserts build llvm[3]: Compiling CodeExtractor.cpp for Release+Asserts build llvm[3]: Compiling InstrProfiling.cpp for Release+Asserts build llvm[2]: Compiling CodeMetrics.cpp for Release+Asserts build llvm[3]: Compili...