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

Nemanja Ivanovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 5 10:37:30 PST 2019


nemanjai added a comment.

I think we should re-think this patch as it seems to massively increase the number of failed attempts the instruction selector makes when selecting code. Below is a trivial example:

  $ cat trivial.ll 
  define dso_local void @foo() {
  entry:
    ret void
  }
  
  $ llc trivial.ll -debug-only=isel -mtriple=x86_64-unknown-unknown 2>&1 | grep -c 'Skipped scope entry'
  106
  
  $ pre-patch-llc trivial.ll -debug-only=isel -mtriple=x86_64-unknown-unknown 2>&1 | grep -c 'Skipped scope entry'
  0
  
  $ llc trivial.ll -debug-only=isel -mtriple=powerpc64le-unknown-unknown 2>&1 | grep -c 'Skipped scope entry'
  86
  
  $ pre-patch-llc trivial.ll -debug-only=isel -mtriple=powerpc64le-unknown-unknown 2>&1 | grep -c 'Skipped scope entry'
  1

It would stand to reason that this issue would compound with real-world size code and lead to significant increases in compile time.


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