• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Index: include/llvm/Function.h
2===================================================================
3--- include/llvm/Function.h	(revision 3710)
4+++ include/llvm/Function.h	(working copy)
5@@ -93,6 +93,8 @@
6   // The Calling Convention is stored in Value::SubclassData.
7   /*CallingConv::ID CallingConvention;*/
8
9+  unsigned intrinsicID;                   ///< ID of intrinsic, 0 otherwise
10+
11   friend class SymbolTableListTraits<Function, Module>;
12
13   void setParent(Module *parent);
14@@ -109,6 +111,8 @@
15       BuildLazyArguments();
16   }
17   void BuildLazyArguments() const;
18+
19+  unsigned initIntrinsicID() const;
20
21   Function(const Function&); // DO NOT IMPLEMENT
22   void operator=(const Function&); // DO NOT IMPLEMENT
23@@ -146,8 +150,8 @@
24   /// The particular intrinsic functions which correspond to this value are
25   /// defined in llvm/Intrinsics.h.
26   ///
27-  unsigned getIntrinsicID() const LLVM_ATTRIBUTE_READONLY;
28-  bool isIntrinsic() const { return getIntrinsicID() != 0; }
29+  unsigned getIntrinsicID() const { return intrinsicID; }
30+  bool isIntrinsic() const { return intrinsicID != 0; }
31
32   /// getCallingConv()/setCallingConv(CC) - These method get and set the
33   /// calling convention of this function.  The enum values for the known
34Index: lib/VMCore/Function.cpp
35===================================================================
36--- lib/VMCore/Function.cpp	(revision 3710)
37+++ lib/VMCore/Function.cpp	(working copy)
38@@ -178,9 +178,9 @@
39     ParentModule->getFunctionList().push_back(this);
40
41   // Ensure intrinsics have the right parameter attributes.
42-  if (unsigned IID = getIntrinsicID())
43-    setAttributes(Intrinsic::getAttributes(Intrinsic::ID(IID)));
44-
45+  intrinsicID = initIntrinsicID();
46+  if (intrinsicID)
47+    setAttributes(Intrinsic::getAttributes(Intrinsic::ID(intrinsicID)));
48 }
49
50 Function::~Function() {
51@@ -310,14 +310,14 @@
52     clearGC();
53 }
54
55-/// getIntrinsicID - This method returns the ID number of the specified
56+/// initIntrinsicID - This method returns the ID number of the specified
57 /// function, or Intrinsic::not_intrinsic if the function is not an
58 /// intrinsic, or if the pointer is null.  This value is always defined to be
59 /// zero to allow easy checking for whether a function is intrinsic or not.  The
60 /// particular intrinsic functions which correspond to this value are defined in
61 /// llvm/Intrinsics.h.
62 ///
63-unsigned Function::getIntrinsicID() const {
64+unsigned Function::initIntrinsicID() const {
65   const ValueName *ValName = this->getValueName();
66   if (!ValName)
67     return 0;
68