Switch the bindings to use LLVMFoldingBuilder.
[oota-llvm.git] / include / llvm / Function.h
index 20a43e285cfff021f35792936927e1f0563df6e9..2c76c9947baeaf2b76223bf466a89def1db2151b 100644 (file)
@@ -153,11 +153,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, ParameterAttributes attr) const {
     return ParamAttrs && ParamAttrs->paramHasAttr(i, attr);
   }
 
+  /// @brief Determine if the function cannot return.
+  bool doesNotReturn() const {
+    return paramHasAttr(0, ParamAttr::NoReturn);
+  }
+
+  /// @brief Determine if the function cannot unwind.
+  bool doesNotThrow() const {
+    return paramHasAttr(0, ParamAttr::NoUnwind);
+  }
+
   /// @brief Determine if the function does not access memory.
   bool doesNotAccessMemory() const {
     return paramHasAttr(0, ParamAttr::ReadNone);