CloneModule ValueMap

After cloning a Module with CloneModule, there doesn't seem to be any
easy way to convert a Value pointing into the old Module to a Value
pointing into the new one.

The CloneModule implementation already has to keep such a mapping
internally, so I've written a patch that exposes it as a second inout
parameter to CloneModule(), with the one param version being a simple
wrapper for backward compatibility.

The type of ValueMap is std::map<const Value *, Value*> and the
semantics are simply:
  Value *New = ValueMap[Old];

Nick Lewycky

clonemodule.patch (2.09 KB)

After cloning a Module with CloneModule, there doesn't seem to be any
easy way to convert a Value pointing into the old Module to a Value
pointing into the new one.

Sorry for the delay, your patch looks great, applied!

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060515/034896.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060515/034897.html

-Chris

The CloneModule implementation already has to keep such a mapping
internally, so I've written a patch that exposes it as a second inout
parameter to CloneModule(), with the one param version being a simple
wrapper for backward compatibility.

The type of ValueMap is std::map<const Value *, Value*> and the
semantics are simply:
Value *New = ValueMap[Old];

Nick Lewycky

-Chris