search for: aliassettrack

Displaying 20 results from an estimated 102 matches for "aliassettrack".

Did you mean: aliassettracker
2016 Jan 24
4
Skip redundant checks in AliasSet::aliasesUnknownInst
Dear llvm contributors, Could you please advise me how to skip checks, which are performed in AliasSet::aliasesUnknownInst, of unknown instructions from different alias sets of an alias set tracker that is a parameter of ‘AliasSetTracker::add(const AliasSetTracker &AST)’? If this wasn’t available at the moment and someone could review me, I would try to implement it. A temporary patch can be found attached (for example, ViewedInst can become a second parameter of AliasSetTracker::addUnknown ). It passes the LLVM regression t...
2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
Thank you for the idea! Could you please explain it? If I’m not mistaken, you advise to insert the unknown insts of an every AS from AliasSetTracker::add(const AliasSetTracker &AST) into a smallptrset and consequently append it to merged alias sets from AliasSetTracker::findAliasSetForUnknownInst. I think that Philip proposed something similar to your approach in https://llvm.org/bugs/show_bug.cgi?id=23077. 2016-01-24 22:44 GMT+05:00 Dan...
2015 Jul 28
1
[LLVMdev] AliasSetTracker and UnknownInst's (callsites mostly) problem
Hi all, There is a problem about how AliasSetTracker merging AliasSet's when meet UnknownInst. When adding new pointer it looks for existing AliasSet's aliased with new pointer. And merging them together. It is ok for pointers: if %A mayalias %B and %B mayalias %C then %A mayalias %C. But the same logic when adding callsite is wrong ( fin...
2015 Dec 06
2
Objects of MemoryLocation class are created for ‘llvm.memset.*‘ intrinsics
Dear llvm contributors, Could you please advise me where objects of MemoryLocation class are created for ‘llvm.memset.*‘ intrinsics? In the Bug 23077 (https://llvm.org/bugs/show_bug.cgi?id=23077) the AliasSetTracker constructs 128 alias sets for 0 pointer values, which contain only unknown instructions. In this case, all unknown instructions, which are added to new alias sets in the AliasSetTracker::addUnknown, have the following form: call void @llvm.memset.p0i8.i64(i8* %scevgep..., i8 0, i64 256, i32 8, i...
2015 Dec 12
2
Objects of MemoryLocation class are created for ‘llvm.memset.*‘ intrinsics
...> > The MemoryLocation objects are involved in findAliasSetForUnknownInst, but none are created there for the memset intrinsic. MemoryLocation objects are only involved for the regular memory accesses being compared to the unknown instruction. See AliasSet::aliasesUnknownInst in lib/Analysis/AliasSetTracker.cpp. > > We do know how to create MemoryLocation objects for memsets, see MemoryLocation::getForDest, but we don't do so in the AliasSetTracker. We're taking advantage here of the fast that AA's getModRefInfo understands (or should understand) enough about memset to accurately a...
2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
...vroman at gmail.com>> wrote: > > Thank you for the idea! Could you please explain it? > > > Which part are you having trouble with, so i know where to concetrate? > > If I’m not > mistaken, you advise to insert the unknown insts of an every AS from > AliasSetTracker::add(const AliasSetTracker &AST) into a smallptrset > and consequently append it to merged alias sets from > AliasSetTracker::findAliasSetForUnknownInst. > > > Well, no. This is not the only place duplication can occur, because > the merging of unknownInsts can occu...
2009 Aug 17
2
[LLVMdev] AliasSetTracker
I started using the AliasSetTracker, but I have a problem. I am using -basicaa -anders-aa and optimizations are enabled for llvm-gcc and llvm-ld. I use an instruction visitor to populate the alias set tracker, but two pointers end up in different alias sets. While investigating this I notice at one point that if I call: bool New...
2009 May 08
1
[LLVMdev] Some questions on the output formats of AliasSetTracker
Quoting Eli Friedman <eli.friedman at gmail.com>: Dear Eli, Thanks very much for your reply. I have modified the XX and YY to be global variables, but the output of AliasSetTracker are still MUST alias: Alias Set Tracker: 5 alias sets for 4 pointer values. AliasSet[0xea55d0,0] may alias, Mod/Ref 8 Call Sites: void ({ }*)* @llvm.dbg.func.start, void (i32, i32, { }*)* @llvm.dbg.stoppoint, void (i32, i32, { }*)* @llvm.dbg.stoppoint, void (i32, i32, { }*)* @llvm....
2009 Mar 15
1
[LLVMdev] using alias-analysis
...h value. For example, for a code like: int main() { int i; int *p1 = &i; int *p2 = &i; return 0; } the map should contain something like: {i --> (p1, p2), ..... } For that, i do followings in my pass: AliasAnalysis &AA = getAnalysis<AliasAnalysis>(); AliasSetTracker *tracker = new AliasSetTracker(AA); for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) { tracker->add(*BB); } using the print-method of AliasSetTracker, i see: Alias Set Tracker: 4 alias sets for 4 pointer values. AliasSet[0x8528d08,1] must alias, Mod Pointers:...
2009 Aug 18
0
[LLVMdev] AliasSetTracker
On Aug 17, 2009, at 4:16 PM, Marcus Hicks wrote: > I started using the AliasSetTracker, but I have a problem. Hi Marcus, At best, anders-aa is beta-quality. It probably has several bugs and is not really ready to be widely used. -Chris > > I am using -basicaa -anders-aa and optimizations are enabled for > llvm-gcc and llvm-ld. > I use an instruction visitor to...
2012 Jan 19
1
[LLVMdev] AliasSetTracker
In the implementation of the AliasSetTracker, I see LoadInst, StoreInst, and VAArgInst are treated specially. Why aren't AtomicCmpXchgInst and AtomicRMWInst treated with similar care? Lumping together with other unknown instructions seems unnecessarily expensive in compile time. Preston -------------- next part -------------- An HTML...
2013 Feb 11
0
[LLVMdev] Possible issue with DenseMap when using AliasSetTracker
...seMap or me using it incorrectly. > > I'm currently using llvm and clang in release version 3.2. > Please find attached the "alias-detector" program and its backtrace. The problem is that you never added a DataLayout object to the PassManager (it's an ImmutablePass) and AliasSetTracker appears to be assuming you have one. However, I don't see such a bug with llvm on trunk, and the line numbers don't line up. Perhaps this has already been fixed? Nick
2017 May 30
4
RFC: Replace usage of Alias Set Tracker with MemorySSA in LICM
Hi, I wanted to give a heads-up that I've been looking into replacing the AliasSetTracker(AST) with MemorySSA in the Loop Invariant Code Motion (LICM) pass. I would love to get feedback on the best way to incrementally push in this change. Motivation: There has been an outstanding issue with using the Alias Set Tracker due to its expensive construction time (quadratic). We've had...
2004 Sep 02
0
[LLVMdev] Problem with CVS LLVM build in obj != src dir case
...sh<llvm::Function*>, std::equal_to<llvm::Function*>, std::allocator<unsigned int> >&)': /home/wanderer/pkg/build/llvm/src/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:109: warning: converting of negative value `-0x000000001' to `unsigned int' Compiling AliasSetTracker.cpp /home/wanderer/pkg/build/llvm/src/llvm/lib/Analysis/AliasSetTracker.cpp: In member function `bool llvm::AliasSetTracker::add(llvm::FreeInst*)': /home/wanderer/pkg/build/llvm/src/llvm/lib/Analysis/AliasSetTracker.cpp:260: warning: passing negative value `-0x000000001' for converting...
2009 May 08
0
[LLVMdev] Some questions on the output formats of AliasSetTracker
Dear Staff, Here are some questions on the output formats of AliasSetTracker. The code is as below: int G1 = 9; int G2 = 5; int main() { int * XX; int * YY; XX = &G1; YY = XX; YY = &G2; XX = &G2; } The output for -anders-aa is (the command is: opt -anders-aa test.bc -disable-output -print-alias-s...
2009 May 08
0
[LLVMdev] Some questions on the output formats of AliasSetTracker
On Thu, May 7, 2009 at 5:07 PM, <hc2428 at columbia.edu> wrote: > However, I am a little confused with these output. In Both anders-aa > and steens-aa, XX and YY should stay in the same AliasSet, and their > alias relationship should be May Alias, right? %XX and %YY are the results of alloca instructions (i.e. equivalent to the C expressions "&XX" and
2013 Feb 08
2
[LLVMdev] Possible issue with DenseMap when using AliasSetTracker
Dear All, while willing to assist developers to adhere strictly to coding guidelines, I wrote the attached program called "alias-detector". The program's intent is to utilize the BasicAliasAnalysis to get a list of aliases for each pointer in a certain program code. First it initializes clang as frontend, executes the EmitLLVMOnlyAction, and then processes the produced Module with
2009 May 08
2
[LLVMdev] Some questions on the output formats of AliasSetTracker
Dear Staff, Here are some questions on the output formats of AliasSetTracker. The code is as below: int G1 = 9; int G2 = 5; int main() { int * XX; int * YY; XX = &G1; YY = XX; YY = &G2; XX = &G2; } The output for -anders-aa is: Alias Set Tracker: 5 alias sets for 4 pointer values. AliasSet[0xea6fb0,0] may alias, Mod/Ref 10 Call Sites: voi...
2012 Jan 25
2
[LLVMdev] PLEASE help with Alias Analysis initialization assertion at the end of my pass
...pp", line=59, function=0xf78f0e40 "virtual void llvm::AliasAnalysis::deleteValue(llvm::Value*)") at assert.c:81 #4 0xf6c37686 in llvm::AliasAnalysis::deleteValue (this=0x81848d0, V=0x8147000) at /x/grwright/llvm/llvm-2.9/lib/Analysis/AliasAnalysis.cpp:59 #5 0xf6c47153 in llvm::AliasSetTracker::deleteValue (this=0x823ab58, PtrVal=0x8147000) at /x/grwright/llvm/llvm-2.9/lib/Analysis/AliasSetTracker.cpp:505 #6 0xf6c47ae6 in llvm::AliasSetTracker::ASTCallbackVH::deleted (this=0x8233ce8) at /x/grwright/llvm/llvm-2.9/lib/Analysis/AliasSetTracker.cpp:619 #7 0xf72b9d2f in llvm::ValueHandleBas...
2004 Sep 01
2
[LLVMdev] Problem with CVS LLVM build in obj != src dir case
LLVM build without big problems in obj dir == src dir case (for example, last night tester build) But I have problem with building CVS version LLVM in obj dir != src dir case. ======= Finished building ModuleMaker debug executable (without symbols) ======= gmake[2]: Leaving directory `/usr/home/wanderer/pkg/build/llvm/obj/examples/ModuleMaker' gmake[1]: Leaving directory