[llvm-commits] CVS: llvm/include/llvm/Function.h GlobalAlias.h GlobalValue.h GlobalVariable.h

Anton Korobeynikov asl at math.spbu.ru
Sat Apr 28 06:45:48 PDT 2007



Changes in directory llvm/include/llvm:

Function.h updated: 1.82 -> 1.83
GlobalAlias.h updated: 1.1 -> 1.2
GlobalValue.h updated: 1.39 -> 1.40
GlobalVariable.h updated: 1.45 -> 1.46
---
Log message:

Implement review feedback. Aliasees can be either GlobalValue's or 
bitcasts of them.


---
Diffs of the changes:  (+32 -37)

 Function.h       |   18 +++++++++---------
 GlobalAlias.h    |   37 +++++++++++++++++++++----------------
 GlobalValue.h    |   10 ----------
 GlobalVariable.h |    4 ++--
 4 files changed, 32 insertions(+), 37 deletions(-)


Index: llvm/include/llvm/Function.h
diff -u llvm/include/llvm/Function.h:1.82 llvm/include/llvm/Function.h:1.83
--- llvm/include/llvm/Function.h:1.82	Wed Apr 25 09:27:10 2007
+++ llvm/include/llvm/Function.h	Sat Apr 28 08:44:59 2007
@@ -81,6 +81,15 @@
   void setNext(Function *N) { Next = N; }
   void setPrev(Function *N) { Prev = N; }
 
+  // getNext/Prev - Return the next or previous function in the list.  These
+  // methods should never be used directly, and are only used to implement the
+  // function list as part of the module.
+  //
+  Function *getNext()             { return Next; }
+  const Function *getNext() const { return Next; }
+  Function *getPrev()             { return Prev; }
+  const Function *getPrev() const { return Prev; }
+
 public:
   /// Function ctor - If the (optional) Module argument is specified, the
   /// function is automatically inserted into the end of the function list for
@@ -243,15 +252,6 @@
     Function *Obj = 0;
     return unsigned(reinterpret_cast<uintptr_t>(&Obj->ArgumentList));
   }
-private:
-  // getNext/Prev - Return the next or previous function in the list.  These
-  // methods should never be used directly, and are only used to implement the
-  // function list as part of the module.
-  //
-  Function *getNext()             { return Next; }
-  const Function *getNext() const { return Next; }
-  Function *getPrev()             { return Prev; }
-  const Function *getPrev() const { return Prev; }
 };
 
 inline ValueSymbolTable *


Index: llvm/include/llvm/GlobalAlias.h
diff -u llvm/include/llvm/GlobalAlias.h:1.1 llvm/include/llvm/GlobalAlias.h:1.2
--- llvm/include/llvm/GlobalAlias.h:1.1	Wed Apr 25 11:42:39 2007
+++ llvm/include/llvm/GlobalAlias.h	Sat Apr 28 08:44:59 2007
@@ -1,4 +1,4 @@
-//===______-- llvm/GlobalAlias.h - GlobalAlias class ------------*- C++ -*-===//
+//===-------- llvm/GlobalAlias.h - GlobalAlias class ------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 // This file contains the declaration of the GlobalAlias class, which
-// represents a single function or variable alias in the VM.
+// represents a single function or variable alias in the IR.
 //
 //===----------------------------------------------------------------------===//
 
@@ -36,13 +36,18 @@
   void setNext(GlobalAlias *N) { Next = N; }
   void setPrev(GlobalAlias *N) { Prev = N; }
 
-  const GlobalValue* Aliasee;
-  std::string Target;
+  // getNext/Prev - Return the next or previous alias in the list.
+        GlobalAlias *getNext()       { return Next; }
+  const GlobalAlias *getNext() const { return Next; }
+        GlobalAlias *getPrev()       { return Prev; }
+  const GlobalAlias *getPrev() const { return Prev; }
+
+  Use Aliasee;
 public:
   /// GlobalAlias ctor - If a parent module is specified, the alias is
-  /// automatically inserted into the end of the specified modules alias list.
+  /// automatically inserted into the end of the specified module's alias list.
   GlobalAlias(const Type *Ty, LinkageTypes Linkage, const std::string &Name = "",
-              const GlobalValue* Aliasee = 0, Module *Parent = 0);
+              Constant* Aliasee = 0, Module *Parent = 0);
 
   /// isDeclaration - Is this global variable lacking an initializer?  If so, 
   /// the global variable is defined in some other translation unit, and is thus
@@ -52,30 +57,30 @@
   /// removeFromParent - This method unlinks 'this' from the containing module,
   /// but does not delete it.
   ///
-  virtual void removeFromParent();
+  void removeFromParent();
 
   /// eraseFromParent - This method unlinks 'this' from the containing module
   /// and deletes it.
   ///
-  virtual void eraseFromParent();
+  void eraseFromParent();
 
   virtual void print(std::ostream &OS) const;
   void print(std::ostream *OS) const { if (OS) print(*OS); }
 
-  void setAliasee(const GlobalValue* GV);
-  const GlobalValue* getAliasee() const { return Aliasee; }
+  /// set/getAliasee - These methods retrive and set alias target.
+  void setAliasee(Constant* GV);
+  const Constant* getAliasee() const {
+    return cast_or_null<Constant>(getOperand(0));
+  }
+  Constant* getAliasee() {
+    return cast_or_null<Constant>(getOperand(0));
+  }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const GlobalAlias *) { return true; }
   static inline bool classof(const Value *V) {
     return V->getValueID() == Value::GlobalAliasVal;
   }
-private:
-  // getNext/Prev - Return the next or previous alias in the list.
-        GlobalAlias *getNext()       { return Next; }
-  const GlobalAlias *getNext() const { return Next; }
-        GlobalAlias *getPrev()       { return Prev; }
-  const GlobalAlias *getPrev() const { return Prev; }
 };
 
 } // End llvm namespace


Index: llvm/include/llvm/GlobalValue.h
diff -u llvm/include/llvm/GlobalValue.h:1.39 llvm/include/llvm/GlobalValue.h:1.40
--- llvm/include/llvm/GlobalValue.h:1.39	Wed Apr 25 09:27:10 2007
+++ llvm/include/llvm/GlobalValue.h	Sat Apr 28 08:44:59 2007
@@ -121,16 +121,6 @@
   /// value is outside of the current translation unit...
   virtual bool isDeclaration() const = 0;
 
-  /// removeFromParent - This method unlinks 'this' from the containing module,
-  /// but does not delete it.
-  ///
-  virtual void removeFromParent() = 0;
-
-  /// eraseFromParent - This method unlinks 'this' from the containing module
-  /// and deletes it.
-  ///
-  virtual void eraseFromParent() = 0;
-
   /// getParent - Get the module that this global value is contained inside
   /// of...
   inline Module *getParent() { return Parent; }


Index: llvm/include/llvm/GlobalVariable.h
diff -u llvm/include/llvm/GlobalVariable.h:1.45 llvm/include/llvm/GlobalVariable.h:1.46
--- llvm/include/llvm/GlobalVariable.h:1.45	Wed Apr 25 09:27:10 2007
+++ llvm/include/llvm/GlobalVariable.h	Sat Apr 28 08:44:59 2007
@@ -107,12 +107,12 @@
   /// removeFromParent - This method unlinks 'this' from the containing module,
   /// but does not delete it.
   ///
-  virtual void removeFromParent();
+  void removeFromParent();
 
   /// eraseFromParent - This method unlinks 'this' from the containing module
   /// and deletes it.
   ///
-  virtual void eraseFromParent();
+  void eraseFromParent();
 
   /// Override Constant's implementation of this method so we can
   /// replace constant initializers.






More information about the llvm-commits mailing list