OSDN Git Service

Revert r129235 pending a vetting of the EH rewrite.
authorBill Wendling <isanbard@gmail.com>
Sun, 10 Apr 2011 23:18:04 +0000 (23:18 +0000)
committerBill Wendling <isanbard@gmail.com>
Sun, 10 Apr 2011 23:18:04 +0000 (23:18 +0000)
--- Reverse-merging r129235 into '.':
D    test/Feature/bb_attrs.ll
U    include/llvm/BasicBlock.h
U    include/llvm/Bitcode/LLVMBitCodes.h
U    lib/VMCore/AsmWriter.cpp
U    lib/VMCore/BasicBlock.cpp
U    lib/AsmParser/LLParser.cpp
U    lib/AsmParser/LLLexer.cpp
U    lib/AsmParser/LLToken.h
U    lib/Bitcode/Reader/BitcodeReader.cpp
U    lib/Bitcode/Writer/BitcodeWriter.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129259 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/BasicBlock.h
include/llvm/Bitcode/LLVMBitCodes.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/VMCore/AsmWriter.cpp
lib/VMCore/BasicBlock.cpp
test/Feature/bb_attrs.ll [deleted file]

index 3336b36..7e7c9e7 100644 (file)
@@ -74,7 +74,6 @@ public:
 private:
   InstListType InstList;
   Function *Parent;
-  bool IsLandingPad;
 
   void setParent(Function *parent);
   friend class SymbolTableListTraits<BasicBlock, Function>;
@@ -139,11 +138,6 @@ public:
     return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbg();
   }
 
-  /// isLandingPad - True if this basic block is a landing pad for exception
-  /// handling.
-  bool isLandingPad() const { return IsLandingPad; }
-  void setIsLandingPad(bool Val = true) { IsLandingPad = Val; }
-
   /// removeFromParent - This method unlinks 'this' from the containing
   /// function, but does not delete it.
   ///
index dcfbe5a..7692bd2 100644 (file)
@@ -106,9 +106,8 @@ namespace bitc {
 
   // The value symbol table only has one code (VST_ENTRY_CODE).
   enum ValueSymtabCodes {
-    VST_CODE_ENTRY     = 1,  // VST_ENTRY:     [valid, namechar x N]
-    VST_CODE_BBENTRY   = 2,  // VST_BBENTRY:   [bbid, namechar x N]
-    VST_CODE_LPADENTRY = 3   // VST_LPADENTRY: [lpadid, namechar x N]
+    VST_CODE_ENTRY   = 1,  // VST_ENTRY: [valid, namechar x N]
+    VST_CODE_BBENTRY = 2   // VST_BBENTRY: [bbid, namechar x N]
   };
 
   enum MetadataCodes {
index da26cb8..857fa1e 100644 (file)
@@ -587,8 +587,6 @@ lltok::Kind LLLexer::LexIdentifier() {
 
   KEYWORD(x);
   KEYWORD(blockaddress);
-
-  KEYWORD(landingpad);
 #undef KEYWORD
 
   // Keywords for types.
index afd10a0..0c3237a 100644 (file)
@@ -2918,11 +2918,6 @@ bool LLParser::ParseBasicBlock(PerFunctionState &PFS) {
   BasicBlock *BB = PFS.DefineBB(Name, NameLoc);
   if (BB == 0) return true;
 
-  if (Lex.getKind() == lltok::kw_landingpad) {
-    BB->setIsLandingPad();
-    Lex.Lex();
-  }
-
   std::string NameStr;
 
   // Parse the instructions in this block until we get a terminator.
index 53cf8d8..576da19 100644 (file)
@@ -125,9 +125,6 @@ namespace lltok {
     kw_extractelement, kw_insertelement, kw_shufflevector, kw_getresult,
     kw_extractvalue, kw_insertvalue, kw_blockaddress,
 
-    // Basic block attribute.
-    kw_landingpad,
-
     // Unsigned Valued tokens (UIntVal).
     GlobalID,          // @42
     LocalVarID,        // %42
index 2355198..8223f76 100644 (file)
@@ -714,8 +714,7 @@ bool BitcodeReader::ParseValueSymbolTable() {
 
     // Read a record.
     Record.clear();
-    unsigned VSTCode = Stream.ReadRecord(Code, Record);
-    switch (VSTCode) {
+    switch (Stream.ReadRecord(Code, Record)) {
     default:  // Default behavior: unknown type.
       break;
     case bitc::VST_CODE_ENTRY: {  // VST_ENTRY: [valueid, namechar x N]
@@ -730,17 +729,13 @@ bool BitcodeReader::ParseValueSymbolTable() {
       ValueName.clear();
       break;
     }
-    case bitc::VST_CODE_BBENTRY:
-    case bitc::VST_CODE_LPADENTRY: {
+    case bitc::VST_CODE_BBENTRY: {
       if (ConvertToString(Record, 1, ValueName))
         return Error("Invalid VST_BBENTRY record");
       BasicBlock *BB = getBasicBlock(Record[0]);
       if (BB == 0)
         return Error("Invalid BB ID in VST_BBENTRY record");
 
-      if (VSTCode == bitc::VST_CODE_LPADENTRY)
-        BB->setIsLandingPad(true);
-
       BB->setName(StringRef(ValueName.data(), ValueName.size()));
       ValueName.clear();
       break;
index 51c13bd..e34137f 100644 (file)
@@ -40,7 +40,6 @@ enum {
   VST_ENTRY_7_ABBREV,
   VST_ENTRY_6_ABBREV,
   VST_BBENTRY_6_ABBREV,
-  VST_LPADENTRY_6_ABBREV,
 
   // CONSTANTS_BLOCK abbrev id's.
   CONSTANTS_SETTYPE_ABBREV = bitc::FIRST_APPLICATION_ABBREV,
@@ -1180,20 +1179,13 @@ static void WriteValueSymbolTable(const ValueSymbolTable &VST,
 
     unsigned AbbrevToUse = VST_ENTRY_8_ABBREV;
 
-    // VST_ENTRY:     [valueid, namechar x N]
-    // VST_BBENTRY:   [bbid, namechar x N]
-    // VST_LPADENTRY: [lpadid, namechar x N]
+    // VST_ENTRY:   [valueid, namechar x N]
+    // VST_BBENTRY: [bbid, namechar x N]
     unsigned Code;
-    if (const BasicBlock *BB = dyn_cast<BasicBlock>(SI->getValue())) {
-      if (BB->isLandingPad()) {
-        Code = bitc::VST_CODE_LPADENTRY;
-        if (isChar6)
-          AbbrevToUse = VST_LPADENTRY_6_ABBREV;
-      } else {
-        Code = bitc::VST_CODE_BBENTRY;
-        if (isChar6)
-          AbbrevToUse = VST_BBENTRY_6_ABBREV;
-      }
+    if (isa<BasicBlock>(SI->getValue())) {
+      Code = bitc::VST_CODE_BBENTRY;
+      if (isChar6)
+        AbbrevToUse = VST_BBENTRY_6_ABBREV;
     } else {
       Code = bitc::VST_CODE_ENTRY;
       if (isChar6)
@@ -1374,16 +1366,8 @@ static void WriteBlockInfo(const ValueEnumerator &VE, BitstreamWriter &Stream) {
                                    Abbv) != VST_BBENTRY_6_ABBREV)
       llvm_unreachable("Unexpected abbrev ordering!");
   }
-  { // 6-bit char6 VST_LPADENTRY strings.
-    BitCodeAbbrev *Abbv = new BitCodeAbbrev();
-    Abbv->Add(BitCodeAbbrevOp(bitc::VST_CODE_LPADENTRY));
-    Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
-    Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
-    Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Char6));
-    if (Stream.EmitBlockInfoAbbrev(bitc::VALUE_SYMTAB_BLOCK_ID,
-                                   Abbv) != VST_LPADENTRY_6_ABBREV)
-      llvm_unreachable("Unexpected abbrev ordering!");
-  }
+
+
 
   { // SETTYPE abbrev for CONSTANTS_BLOCK.
     BitCodeAbbrev *Abbv = new BitCodeAbbrev();
index a92c9bc..ffd367a 100644 (file)
@@ -1687,13 +1687,8 @@ void AssemblyWriter::printBasicBlock(const BasicBlock *BB) {
     Out << "\n";
     PrintLLVMName(Out, BB->getName(), LabelPrefix);
     Out << ':';
-    if (BB->isLandingPad())
-      Out << " landingpad";
   } else if (!BB->use_empty()) {      // Don't print block # of no uses...
-    Out << '\n';
-    if (BB->isLandingPad())
-      Out << "landingpad ";
-    Out << "; <label>:";
+    Out << "\n; <label>:";
     int Slot = Machine.getLocalSlot(BB);
     if (Slot != -1)
       Out << Slot;
index b46fab5..955a028 100644 (file)
@@ -38,10 +38,10 @@ LLVMContext &BasicBlock::getContext() const {
 // are not in the public header file...
 template class llvm::SymbolTableListTraits<Instruction, BasicBlock>;
 
+
 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent,
                        BasicBlock *InsertBefore)
-  : Value(Type::getLabelTy(C), Value::BasicBlockVal), Parent(0),
-    IsLandingPad(false) {
+  : Value(Type::getLabelTy(C), Value::BasicBlockVal), Parent(0) {
 
   // Make sure that we get added to a function
   LeakDetector::addGarbageObject(this);
@@ -57,6 +57,7 @@ BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent,
   setName(Name);
 }
 
+
 BasicBlock::~BasicBlock() {
   // If the address of the block is taken and it is being deleted (e.g. because
   // it is dead), this means that there is either a dangling constant expr
diff --git a/test/Feature/bb_attrs.ll b/test/Feature/bb_attrs.ll
deleted file mode 100644 (file)
index af2af31..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis > %t1.ll
-; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
-; RUN: diff %t1.ll %t2.ll
-
-; Test for basic block attributes.
-
-define i32 @f1(i32 %a) {
-entry:
-  %cmp = icmp slt i32 %a, 37
-  br i1 %cmp, label %bb, label %lpad
-
-bb:
-  ret i32 37
-
-lpad: landingpad
-  ret i32 927
-}
-
-define i32 @f2(i32 %a) {
-; entry : 0
-  %1 = icmp slt i32 %a, 37
-  br i1 %1, label %2, label %3
-
-; bb : 2
-  ret i32 37
-
-landingpad ; bb : 3
-  ret i32 927
-}