search for: pointermaybecaptured

Displaying 10 results from an estimated 10 matches for "pointermaybecaptured".

2016 Jun 09
2
[GSoC 2016] Capture Tracking - False Positives
Hello Anna, I've been looking into compiling a list of all of the false positives in the current Capture Tracking Analysis, but I'm having a bit of trouble getting my head around it all. I feel like I understand it at a theoretical level but jumping into the implementation is quite daunting. I would appreciate any advice you could give to point me in the right direction. Many thanks,
2019 Mar 05
2
RFC: Contained stateful AliasAnalysis
...cache itself, and we're building it with a stateless tool. We know that while building MemorySSA, there are no changes in the program, and yet, there is info that is computed again and again. One example is this patch: D57627 <https://reviews.llvm.org/D57627>. The patch adds a cache for PointerMayBeCaptured, which is cleared after every alias() call, in order to keep BasicAA stateless. In the example given in the patch, not clearing the isCapturedCache reduces compile times by another second. In some pathological cases I'm looking at, not-clearing this cache halves compile times (from 8s to 4s). T...
2010 Oct 11
4
[LLVMdev] Missed devirtualization opportunities
...clang put in a bunch of bitcasts and stuck the vtbl itself into an array; ripping all that out made no difference) Tracing through MemoryDependenceAnalysis and BasicAA, it turns out that the store into %ppVtbl (a pointer to the instance's vtbl pointer) is clobbered by the call to @puts because PointerMayBeCaptured gets called on it when the @puts call is encountered and returns true because %pinstance is passed through %pVfn1 to make the virtual method call, and the call to %pVfn1 (unlike the actual function that %pVfn1 must point to) does not declare the 'this' parameter nocapture. The devirtualiza...
2010 Sep 24
0
[LLVMdev] Finding all values derived from a function argument
...ent way to determine dependent > 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 (Alloca...
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 of the pointer that outli...
2019 Mar 05
2
RFC: Contained stateful AliasAnalysis
...building it with a > stateless tool. > We know that while building MemorySSA, there are no changes in the > program, and yet, there is info that is computed again and again. > > One example is this patch: D57627 <https://reviews.llvm.org/D57627>. The > patch adds a cache for PointerMayBeCaptured, which is cleared after every > alias() call, in order to keep BasicAA stateless. In the example given in > the patch, not clearing the isCapturedCache reduces compile times by > another second. In some pathological cases I'm looking at, not-clearing > this cache halves compile time...
2010 Sep 24
1
[LLVMdev] Finding all values derived from a function argument
...dent >> 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 &g...
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
2016 Apr 16
3
[GSoc 2016] Proposal - Capture Tracking Improvements
Hello, Attached is the proposal that I have submitted. I would be grateful for any and all feedback provided. Many Thanks, Scott -------------- next part -------------- A non-text attachment was scrubbed... Name: GSoc Proposal 2016 - Scott Egerton.pdf Type: application/pdf Size: 391088 bytes Desc: GSoc Proposal 2016 - Scott Egerton.pdf URL:
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 > >