Refactor: Use positive field names in VectorizeConfig.
[oota-llvm.git] / include / llvm / Transforms / Utils / ValueMapper.h
index c786342debb1ccd796a8252ee0c62e36e4bddcae..8594707a848288821ee31fb7ceb6fd44f1498185 100644 (file)
 namespace llvm {
   class Value;
   class Instruction;
-  typedef ValueMap<const Value *, TrackingVH<Value> > ValueToValueMapTy;
+  typedef ValueMap<const Value *, WeakVH> ValueToValueMapTy;
 
   /// ValueMapTypeRemapper - This is a class that can be implemented by clients
   /// to remap types when cloning constants and instructions.
   class ValueMapTypeRemapper {
     virtual void Anchor();  // Out of line method.
   public:
-    ~ValueMapTypeRemapper() {}
+    virtual ~ValueMapTypeRemapper() {}
     
     /// remapType - The client should implement this method if they want to
     /// remap types while mapping values.
@@ -66,12 +66,12 @@ namespace llvm {
   inline MDNode *MapValue(const MDNode *V, ValueToValueMapTy &VM,
                           RemapFlags Flags = RF_None,
                           ValueMapTypeRemapper *TypeMapper = 0) {
-    return (MDNode*)MapValue((const Value*)V, VM, Flags, TypeMapper);
+    return cast<MDNode>(MapValue((const Value*)V, VM, Flags, TypeMapper));
   }
   inline Constant *MapValue(const Constant *V, ValueToValueMapTy &VM,
                             RemapFlags Flags = RF_None,
                             ValueMapTypeRemapper *TypeMapper = 0) {
-    return (Constant*)MapValue((const Value*)V, VM, Flags, TypeMapper);
+    return cast<Constant>(MapValue((const Value*)V, VM, Flags, TypeMapper));
   }