[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineModuleInfo.h

Anton Korobeynikov asl at math.spbu.ru
Sun May 13 08:42:45 PDT 2007



Changes in directory llvm/include/llvm/CodeGen:

MachineModuleInfo.h updated: 1.13 -> 1.14
---
Log message:

Emit multiple common EH frames for multiple (including blank) personality 
functions. This partly fixes PR1414: http://llvm.org/PR1414 : now we're restricted only to one 
personality function per eh frame, not per module. Further work on 
"multiple personalities" topic needs representative example.


---
Diffs of the changes:  (+14 -3)

 MachineModuleInfo.h |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/MachineModuleInfo.h
diff -u llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.13 llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.14
--- llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.13	Sat May 12 17:36:25 2007
+++ llvm/include/llvm/CodeGen/MachineModuleInfo.h	Sun May 13 10:42:26 2007
@@ -1020,7 +1020,9 @@
   //
   std::vector<GlobalVariable *> TypeInfos;
 
-  Function *Personality;
+  // Personalities - Vector of all personality functions ever seen. Used to emit
+  // common EH frames.
+  std::vector<Function *> Personalities;
 public:
   static char ID; // Pass identification, replacement for typeid
 
@@ -1201,7 +1203,16 @@
   /// addPersonality - Provide the personality function for the exception
   /// information.
   void addPersonality(MachineBasicBlock *LandingPad, Function *Personality);
-  
+
+  /// getPersonalityIndex - Get index of the current personality function inside
+  /// Personalitites array
+  unsigned getPersonalityIndex() const;
+
+  /// getPersonalities - Return array of personality functions ever seen.
+  const std::vector<Function *>& getPersonalities() const {
+    return Personalities;
+  }
+    
   /// addCatchTypeInfo - Provide the catch typeinfo for a landing pad.
   ///
   void addCatchTypeInfo(MachineBasicBlock *LandingPad,
@@ -1219,7 +1230,7 @@
   /// pads.
   void TidyLandingPads();
                         
-  /// getLandingPadInfos - Return a reference to the landing pad info for the
+  /// getLandingPads - Return a reference to the landing pad info for the
   /// current function.
   const std::vector<LandingPadInfo> &getLandingPads() const {
     return LandingPads;






More information about the llvm-commits mailing list