[PATCH] D30539: [tablegen][globalisel] Add support for nested instruction matching.

Diana Picus via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 31 08:16:04 PDT 2017


rovka added inline comments.


================
Comment at: lib/Target/AArch64/AArch64InstructionSelector.cpp:938
   case TargetOpcode::G_ZEXT:
   case TargetOpcode::G_SEXT: {
     unsigned Opcode = I.getOpcode();
----------------
Aren't these handled by TableGen now?


================
Comment at: test/CodeGen/AArch64/GlobalISel/select-xor.mir:1
-# RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
+# RUN: llc -O0 -mtriple=aarch64-linux-gnu -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
 
----------------
Why is this change necessary?


================
Comment at: utils/TableGen/GlobalISelEmitter.cpp:289
+  /// Only InstructionOperandMatcher needs to do anything for this method.
+  virtual void emitCxxCaptureStmtsForOperand(raw_ostream &OS, RuleMatcher &Rule,
+                                             StringRef Expr) const {}
----------------
Any reason why this needs to be [...]ForOperand instead of just emitCxxCaptureStmts?


================
Comment at: utils/TableGen/GlobalISelEmitter.cpp:655
   /// TODO: When nested instruction matching is implemented, this function will
   ///       descend into the operands and capture variables.
   void emitCxxCaptureStmts(raw_ostream &OS, RuleMatcher &Rule, StringRef Expr) {
----------------
This TODO should be obsolete now.


https://reviews.llvm.org/D30539





More information about the llvm-commits mailing list