Displaying 6 results from an estimated 6 matches for "renamepass".
2017 Feb 17
2
[MemorySSA] inserting or removing memory instructions
Hi guys,
a question about updating memory SSA:
Is it expected that e.g insertion of MemoryDef doesn't change all dominated
uses?
For example test case CreateLoadsAndStoreUpdater produces:
define void @F(i8*) {
; 1 = MemoryDef(liveOnEntry)
store i8 16, i8* %0
; 4 = MemoryDef(1)
store i8 16, i8* %0
br i1 true, label %2, label %3
; <label>:2: ;
2017 Feb 17
2
[MemorySSA] inserting or removing memory instructions
In particular, if you want to add support, the right way to know what to
rename is (off the top of my head)
add a flag or something to have renamepass reset all uses it sees (you only
have to change the uses, defs are all linked together and thus already
fixed by the updater). Right now it only does that if they have no
defining access.
Make it skip blocks already in the visited set (the incomingval to pass to
successors is the existing incomin...
2008 Oct 27
1
[LLVMdev] mem2reg optimization
...ustification that it is a significant code cleanup to mem2reg.
Here's the patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20081027/068970.html
Are there any other places which exhibit bad behavior with large
blocks in mem2reg? I see a linear scan over instructions in
RenamePass. If you can produce a testcase which shows a problem
there, I'd be happy to help fix it.
-Chris
2008 Oct 27
0
[LLVMdev] mem2reg optimization
On Oct 21, 2008, at 10:16 AM, David Greene wrote:
> On Monday 20 October 2008 16:14, Chris Lattner wrote:
>
>> Ok, if you need this direction, just use an
>> std::vector<pair<unsigned,Instruction*>> as a forward map? You can
>> do
>> fast binary searches in it.
>
> I don't see how that helps. I need a map from BasicBlock to a list
> of
2008 Oct 21
2
[LLVMdev] mem2reg optimization
On Monday 20 October 2008 16:14, Chris Lattner wrote:
> Ok, if you need this direction, just use an
> std::vector<pair<unsigned,Instruction*>> as a forward map? You can do
> fast binary searches in it.
I don't see how that helps. I need a map from BasicBlock to a list of loads
and stores.
> > I suppose we could resctrict the map to containing only load and
2009 Jan 27
4
[LLVMdev] Copy Instructions?
There is no register-to-register copy instructions in LLVM. I've found a bug
in mem2reg (LLVM 2.3 but it doesn't appear to be fixed in trunk either) and a
copy instruction seems to be the easiest way to fix it.
Consider this code coming into the RenamePass phase of mem2reg.
"*" in the phi means we haven't added that incoming value yet.
// x.0 = ...
// y.0 = ...
//
// do
// x = phi(x.0, *)
// y = phi(y.0, *)
// [...]
// store x -> y
//...