[PATCH] D58595: [TableGen][SelectionDAG][X86] Add specific isel matchers for immAllZerosV/immAllOnesV. Remove bitcasts from X86 patterns that are no longer necessary.

ChenZheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 5 08:14:33 PST 2019


shchenz added a comment.

After accpet this patch, the elem `MatcherTable[0]` in `lib/Target/PowerPC/PPCGenDAGISel.inc` (same as X86GenDAGISel.inc) is not `OPC_SwitchOpcode` any more, it becomes `OPC_Scope` instead.

`MatcherTable[0]` sets to `OPC_Scope` makes container `OpcodeOffset` in function `SelectCodeCommon()` always empty, so it needs to match from the very beginning for every time matching in ISEL phase.

Maybe above issus is caused by generating of `lib/Target/PowerPC/PPCGenDAGISel.inc` meets crash after accept this patch.

  /gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen -gen-dag-isel -I=~/llvm-project/llvm/include/ -I=./ PPC.td 
  /home/czhengsz/llvm_dev/llvm-project/llvm/include//llvm/Target/TargetSelectionDAG.td:782:1: error: In vtInt: Unknown node flavor used in pattern: immAllZerosV
  def vtInt      : PatLeaf<(vt),  [{ return N->getVT().isInteger(); }]>;
  ^
  Unknown leaf kind: immAllZerosV:{ *:[v4i32] }
   #0 0x00000000102a29c4 PrintStackTraceSignalHandler(void*) (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x102a29c4)
   #1 0x00000000102a0038 llvm::sys::RunSignalHandlers() (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x102a0038)
   #2 0x00000000102a3140 SignalHandler(int) (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x102a3140)
   #3 0x00003fffb5650478  0x478 __GI_abort
   #4 0x00003fffb5650478 
   #5 0x00003fffb5650478 (anonymous namespace)::MatcherGen::EmitMatchCode(llvm::TreePatternNode const*, llvm::TreePatternNode*, unsigned int) (+0x478)
   #6 0x00003fffb50a072c llvm::ConvertPatternToMatcher(llvm::PatternToMatch const&, unsigned int, llvm::CodeGenDAGPatterns const&) (/lib64/power8/libc.so.6+0x4072c)
   #7 0x0000000010122710 llvm::EmitDAGISel(llvm::RecordKeeper&, llvm::raw_ostream&) (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x10122710)
   #8 0x000000001011f7b0 (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x1011f7b0)
   #9 0x000000001010f038 llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x1010f038)
  #10 0x000000001023c384 main (/gsa/tlbgsa/projects/x/xlcmpbld/run/clang/main_trunk/linux_leppc/daily/latest/bin/llvm-tblgen+0x1023c384)


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58595/new/

https://reviews.llvm.org/D58595





More information about the llvm-commits mailing list