Add DEBUG_DECLARE. Not used yet.
authorDale Johannesen <dalej@apple.com>
Sat, 9 Jan 2010 01:24:25 +0000 (01:24 +0000)
committerDale Johannesen <dalej@apple.com>
Sat, 9 Jan 2010 01:24:25 +0000 (01:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93040 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/Target.td
include/llvm/Target/TargetInstrInfo.h
utils/TableGen/CodeEmitterGen.cpp
utils/TableGen/CodeGenTarget.cpp
utils/TableGen/InstrInfoEmitter.cpp

index d6465b8e8ab0190e81365c1ad282e07610192744..740bf4f74d0c1e551a1160be042c2dd8a7ece268 100644 (file)
@@ -485,6 +485,14 @@ def DEBUG_VALUE : Instruction {
   let neverHasSideEffects = 1;
   let isAsCheapAsAMove = 1;
 }
+def DEBUG_DECLARE : Instruction {
+  let OutOperandList = (ops);
+  let InOperandList = (ops unknown:$vbl, unknown:$meta);
+  let AsmString = "DEBUG_DECLARE";
+  let Namespace = "TargetInstrInfo";
+  let neverHasSideEffects = 1;
+  let isAsCheapAsAMove = 1;
+}
 }
 
 //===----------------------------------------------------------------------===//
index 83c530748673905eeac2eb007a2dafbd2e8ded94..c57a2d4c236f746d79069b65b8e85412aab6f3b6 100644 (file)
@@ -91,7 +91,10 @@ public:
     COPY_TO_REGCLASS = 10,
 
     // DEBUG_VALUE - a mapping of the llvm.dbg.value intrinsic
-    DEBUG_VALUE = 11
+    DEBUG_VALUE = 11,
+
+    // DEBUG_DECLARE - a mapping of the llvm.dbg.declare intrinsic
+    DEBUG_DECLARE = 12
   };
 
   unsigned getNumOpcodes() const { return NumOpcodes; }
index 714a39c7f4f30d4d6297c6018441c37128d5bf83..23d42de33d179addd6963529be977179ac3cecdf 100644 (file)
@@ -35,7 +35,8 @@ void CodeEmitterGen::reverseBits(std::vector<Record*> &Insts) {
         R->getName() == "IMPLICIT_DEF" ||
         R->getName() == "SUBREG_TO_REG" ||
         R->getName() == "COPY_TO_REGCLASS" ||
-        R->getName() == "DEBUG_VALUE") continue;
+        R->getName() == "DEBUG_VALUE" ||
+        R->getName() == "DEBUG_DECLARE") continue;
 
     BitsInit *BI = R->getValueAsBitsInit("Inst");
 
@@ -113,7 +114,8 @@ void CodeEmitterGen::run(raw_ostream &o) {
         R->getName() == "IMPLICIT_DEF" ||
         R->getName() == "SUBREG_TO_REG" ||
         R->getName() == "COPY_TO_REGCLASS" ||
-        R->getName() == "DEBUG_VALUE") {
+        R->getName() == "DEBUG_VALUE" ||
+        R->getName() == "DEBUG_DECLARE") {
       o << "    0U,\n";
       continue;
     }
@@ -152,7 +154,8 @@ void CodeEmitterGen::run(raw_ostream &o) {
         InstName == "IMPLICIT_DEF" ||
         InstName == "SUBREG_TO_REG" ||
         InstName == "COPY_TO_REGCLASS" ||
-        InstName == "DEBUG_VALUE") continue;
+        InstName == "DEBUG_VALUE" ||
+        InstName == "DEBUG_DECLARE") continue;
 
     BitsInit *BI = R->getValueAsBitsInit("Inst");
     const std::vector<RecordVal> &Vals = R->getValues();
index c9af5f7213aacd56d5917a298752d6e405e3f644..572a9a85c45e9117a236a38d38c64575e120aedb 100644 (file)
@@ -342,6 +342,11 @@ getInstructionsByEnumValue(std::vector<const CodeGenInstruction*>
     throw "Could not find 'DEBUG_VALUE' instruction!";
   const CodeGenInstruction *DEBUG_VALUE = &I->second;
 
+  I = getInstructions().find("DEBUG_DECLARE");
+  if (I == Instructions.end())
+    throw "Could not find 'DEBUG_DECLARE' instruction!";
+  const CodeGenInstruction *DEBUG_DECLARE = &I->second;
+
   // Print out the rest of the instructions now.
   NumberedInstructions.push_back(PHI);
   NumberedInstructions.push_back(INLINEASM);
@@ -355,6 +360,7 @@ getInstructionsByEnumValue(std::vector<const CodeGenInstruction*>
   NumberedInstructions.push_back(SUBREG_TO_REG);
   NumberedInstructions.push_back(COPY_TO_REGCLASS);
   NumberedInstructions.push_back(DEBUG_VALUE);
+  NumberedInstructions.push_back(DEBUG_DECLARE);
   for (inst_iterator II = inst_begin(), E = inst_end(); II != E; ++II)
     if (&II->second != PHI &&
         &II->second != INLINEASM &&
@@ -367,7 +373,8 @@ getInstructionsByEnumValue(std::vector<const CodeGenInstruction*>
         &II->second != IMPLICIT_DEF &&
         &II->second != SUBREG_TO_REG &&
         &II->second != COPY_TO_REGCLASS &&
-        &II->second != DEBUG_VALUE)
+        &II->second != DEBUG_VALUE &&
+        &II->second != DEBUG_DECLARE)
       NumberedInstructions.push_back(&II->second);
 }
 
index cf40c78fa72e348da603ccbd52163a6961de47d7..92d70480626be86e5e5305386915fefe251ad57e 100644 (file)
@@ -346,7 +346,8 @@ void InstrInfoEmitter::emitShiftedValue(Record *R, StringInit *Val,
         R->getName() != "IMPLICIT_DEF" &&
         R->getName() != "SUBREG_TO_REG" &&
         R->getName() != "COPY_TO_REGCLASS" &&
-        R->getName() != "DEBUG_VALUE")
+        R->getName() != "DEBUG_VALUE" &&
+        R->getName() != "DEBUG_DECLARE")
       throw R->getName() + " doesn't have a field named '" + 
             Val->getValue() + "'!";
     return;