search for: copyvalue

Displaying 6 results from an estimated 6 matches for "copyvalue".

2012 Feb 03
2
[LLVMdev] How to properly use copyValue?
Since there are no constructors for Value, how do you properly insert a new Value? If I create a pointer Value *newValue and then call AA.copyValue(oldValue, newValue), this does not work, since newValue is not allocated. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120203/44086cf5/attachment.html>
2012 Feb 05
1
[LLVMdev] How to properly use copyValue?
...want to create an exact copy of an already exisitng Value, this should be pretty simple to do but I'm unclear on how to do this? For example, PHINode::getIncomingValue (unsigned) returns a "Value" and I want to make a copy of that Value. Is there some other way to do this other than copyValue() that I'm missing? On Sat, Feb 4, 2012 at 3:23 PM, Nick Lewycky <nicholas at mxc.ca> wrote: > Ryan Taylor wrote: > >> Since there are no constructors for Value, how do you properly insert a >> new Value? >> > > Value is a pure base. If you want to construc...
2012 Feb 04
0
[LLVMdev] How to properly use copyValue?
...o constructors for Value, how do you properly insert a > new Value? Value is a pure base. If you want to construct a new Value, then you want to construct a global variable or instruction or argument or something in particular. > If I create a pointer Value *newValue and then call > AA.copyValue(oldValue, newValue), this does not work, since newValue is > not allocated. AA.copyValue is used to tell the AliasAnalysis that a transformation is replacing the instruction in oldValue with newValue, so AA should update its internal tables. (Note that BasicAA and TBAA don't have internal...
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 passes that ever bother to use these: - MemoryDependenceAnalysis.cpp - BasicBlockUtils.cpp - LoopSimplify.cpp - MergedLoadStoreMotion.cpp - GVN.cpp That's it. This is not a complete...
2015 Jul 02
2
[LLVMdev] AliasAnalysis update interface - a tale of sorrow and woe
...oring 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 passes > > that ever bother to use these: > > - MemoryDependenceAnalysis.cpp > > - BasicBlockUtils.cpp > > - LoopSimplify...
2013 Feb 03
0
[LLVMdev] Merging custom metadata
...R pairs (the `before` code gets passed through `opt -O3 test.ll | llvm-dis`). Regular `tbaa` tags are still present when loads are merged, however custom ones seem to perish. Is this expected? If yes, is there any way I can make them persist from within a custom AA pass at all? I tried overwriting copyValue() in the AA pass but it doesn't seem to get called at all. The main idea is to recognize certain types of loads and have other information in the my.tbaa metadata that regular tbaa doesn't provide. The only other solution I can think of right now is to encode that extra information in tbaa...