]> granicus.if.org Git - llvm/commitdiff
[GlobalISel] Add a few comments to the tablegen backend. NFC.
authorAhmed Bougacha <ahmed.bougacha@gmail.com>
Sat, 4 Feb 2017 00:47:10 +0000 (00:47 +0000)
committerAhmed Bougacha <ahmed.bougacha@gmail.com>
Sat, 4 Feb 2017 00:47:10 +0000 (00:47 +0000)
Based on a review of D29478 by Kristof Beyls.

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

utils/TableGen/GlobalISelEmitter.cpp

index 45567b2378731284c3f94b23c2f67d75ac928a53..f6bcca814842f554248854eeb0968805560abf34 100644 (file)
@@ -285,6 +285,11 @@ public:
 
 //===- Actions ------------------------------------------------------------===//
 
+/// An action taken when all Matcher predicates succeeded for a parent rule.
+///
+/// Typical actions include:
+/// * Changing the opcode of an instruction.
+/// * Adding an operand to an instruction.
 class MatchAction {
 public:
   virtual ~MatchAction() {}
@@ -304,6 +309,8 @@ public:
   }
 };
 
+/// Generates code to set the opcode (really, the MCInstrDesc) of a matched
+/// instruction to a given Instruction.
 class MutateOpcodeAction : public MatchAction {
 private:
   const CodeGenInstruction *I;
@@ -318,12 +325,15 @@ public:
 };
 
 /// Generates code to check that a match rule matches.
-///
-/// This currently supports a single match position but could be extended to
-/// support multiple positions to support div/rem fusion or load-multiple
-/// instructions.
 class RuleMatcher {
+  /// A list of matchers that all need to succeed for the current rule to match.
+  /// FIXME: This currently supports a single match position but could be
+  /// extended to support multiple positions to support div/rem fusion or
+  /// load-multiple instructions.
   std::vector<std::unique_ptr<InstructionMatcher>> Matchers;
+
+  /// A list of actions that need to be taken when all predicates in this rule
+  /// have succeeded.
   std::vector<std::unique_ptr<MatchAction>> Actions;
 
 public: