[PATCH] D28915: [ExecutionDepsFix] Optimize instruction insertion

Keno Fischer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 19 13:23:22 PST 2017


loladiro created this revision.

In preparation for an upcoming commit (https://reviews.llvm.org/D28786) that will make
ExecutionDepsFix more agressive about inserting dependency breaking instructions,
teach ExecutionDepsFix to be smarter about inserting these instructions.
There are two aspects to this:

1. Recognize dependency breaking instructions and if there already is such an instruction, simply re-use it, rather than inserting a new one.

2. For undef reads, which register is used does not matter. Thus, if there is many such reads in close succession, we only need to insert one dependency breaking instruction for many such reads.

Note: This revision depends on https://reviews.llvm.org/D28759


https://reviews.llvm.org/D28915

Files:
  include/llvm/Target/TargetInstrInfo.h
  lib/CodeGen/ExecutionDepsFix.cpp
  lib/Target/X86/X86InstrInfo.cpp
  lib/Target/X86/X86InstrInfo.h
  test/CodeGen/X86/break-false-dep.ll
  test/CodeGen/X86/known-bits-vector.ll
  test/CodeGen/X86/vec_int_to_fp.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28915.85018.patch
Type: text/x-patch
Size: 15408 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170119/faa0a068/attachment.bin>


More information about the llvm-commits mailing list