Add explicit keywords.
[oota-llvm.git] / include / llvm / Function.h
index 897e53b0a2d250d335ffc743f8c76284ace4ffb2..2c4f9d9e27dea5c85e0d4c203cccb5e876a6bee7 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
@@ -101,6 +101,9 @@ private:
       BuildLazyArguments();
   }
   void BuildLazyArguments() const;
+  
+  Function(const Function&); // DO NOT IMPLEMENT
+  void operator=(const Function&); // DO NOT IMPLEMENT
 public:
   /// Function ctor - If the (optional) Module argument is specified, the
   /// function is automatically inserted into the end of the function list for
@@ -152,6 +155,28 @@ public:
   /// @brief Set the parameter attributes.
   void setParamAttrs(const ParamAttrsList *attrs);
 
+  /// hasCollector/getCollector/setCollector/clearCollector - The name of the
+  /// garbage collection algorithm to use during code generation.
+  bool hasCollector() const;
+  const char *getCollector() const;
+  void setCollector(const char *Str);
+  void clearCollector();
+
+  /// @brief Determine whether the function has the given attribute.
+  bool paramHasAttr(uint16_t i, unsigned attr) const;
+  
+  /// @brief Determine if the function cannot return.
+  bool doesNotReturn() const;
+
+  /// @brief Determine if the function cannot unwind.
+  bool doesNotThrow() const;
+
+  /// @brief Determine if the function does not access memory.
+  bool doesNotAccessMemory() const;
+
+  /// @brief Determine if the function does not access or only reads memory.
+  bool onlyReadsMemory() const;
+
   /// @brief Determine if the function returns a structure.
   bool isStructReturn() const;