[llvm-commits] CVS: llvm/include/llvm/Function.h Instructions.h
Reid Spencer
reid at x10sys.com
Mon Apr 9 08:01:29 PDT 2007
Changes in directory llvm/include/llvm:
Function.h updated: 1.72 -> 1.73
Instructions.h updated: 1.63 -> 1.64
---
Log message:
For PR1146: http://llvm.org/PR1146 :
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp
---
Diffs of the changes: (+29 -5)
Function.h | 22 +++++++++++++++++-----
Instructions.h | 12 ++++++++++++
2 files changed, 29 insertions(+), 5 deletions(-)
Index: llvm/include/llvm/Function.h
diff -u llvm/include/llvm/Function.h:1.72 llvm/include/llvm/Function.h:1.73
--- llvm/include/llvm/Function.h:1.72 Mon Feb 5 14:47:19 2007
+++ llvm/include/llvm/Function.h Mon Apr 9 10:01:12 2007
@@ -26,6 +26,7 @@
namespace llvm {
class FunctionType;
+class ParamAttrsList;
// Traits for intrusive list of instructions...
template<> struct ilist_traits<BasicBlock>
@@ -60,11 +61,11 @@
private:
// Important things that make up a function!
- BasicBlockListType BasicBlocks; // The basic blocks
- ArgumentListType ArgumentList; // The formal arguments
-
- ValueSymbolTable *SymTab;
- unsigned CallingConvention;
+ BasicBlockListType BasicBlocks; ///< The basic blocks
+ ArgumentListType ArgumentList; ///< The formal arguments
+ ValueSymbolTable *SymTab; ///< Symbol table of args/instructions
+ ParamAttrsList *ParamAttrs; ///< Parameter attributes
+ unsigned CallingConvention; ///< Calling convention to use
friend class SymbolTableListTraits<Function, Module, Module>;
@@ -111,6 +112,17 @@
unsigned getCallingConv() const { return CallingConvention; }
void setCallingConv(unsigned CC) { CallingConvention = CC; }
+ /// Obtains a constant pointer to the ParamAttrsList object which holds the
+ /// parameter attributes information, if any.
+ /// @returns 0 if no parameter attributes have been set.
+ /// @brief Get the parameter attributes.
+ const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
+
+ /// Sets the parameter attributes for this Function. To construct a
+ /// ParamAttrsList, see ParameterAttributes.h
+ /// @brief Set the parameter attributes.
+ void setParamAttrs(ParamAttrsList *attrs) { ParamAttrs = attrs; }
+
/// deleteBody - This method deletes the body of the function, and converts
/// the linkage to external.
///
Index: llvm/include/llvm/Instructions.h
diff -u llvm/include/llvm/Instructions.h:1.63 llvm/include/llvm/Instructions.h:1.64
--- llvm/include/llvm/Instructions.h:1.63 Wed Feb 28 16:00:54 2007
+++ llvm/include/llvm/Instructions.h Mon Apr 9 10:01:12 2007
@@ -26,6 +26,7 @@
class VectorType;
class ConstantRange;
class APInt;
+class ParamAttrsList;
//===----------------------------------------------------------------------===//
// AllocationInst Class
@@ -694,6 +695,7 @@
/// hold the calling convention of the call.
///
class CallInst : public Instruction {
+ ParamAttrsList *ParamAttrs; ///< parameter attributes for call
CallInst(const CallInst &CI);
void init(Value *Func, Value* const *Params, unsigned NumParams);
void init(Value *Func, Value *Actual1, Value *Actual2);
@@ -735,6 +737,16 @@
SubclassData = (SubclassData & 1) | (CC << 1);
}
+ /// Obtains a constant pointer to the ParamAttrsList object which holds the
+ /// parameter attributes information, if any.
+ /// @brief Get the parameter attributes.
+ const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
+
+ /// Sets the parameter attributes for this CallInst. To construct a
+ /// ParamAttrsList, see ParameterAttributes.h
+ /// @brief Set the parameter attributes.
+ void setParamAttrs(ParamAttrsList *attrs) { ParamAttrs = attrs; }
+
/// getCalledFunction - Return the function being called by this instruction
/// if it is a direct call. If it is a call through a function pointer,
/// return null.
More information about the llvm-commits
mailing list