[PATCH] Add a speculative execution pass

Bjarke Hammersholt Roune broune at google.com
Wed Apr 29 17:43:05 PDT 2015


Hi meheff, jingyue, eliben, hfinkel, dberlin,

This is a pass for speculative execution of instructions for simple if-then (triangle) control flow. It's aimed at GPUs, but could perhaps be used in other contexts. Enabling this pass gives us a 1.0% geomean improvement on Google benchmark suites, with one benchmark improving 33%.

Credit goes to Jingyue Wu for writing an earlier version of this pass.

http://reviews.llvm.org/D9360

Files:
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  include/llvm/Transforms/Scalar.h
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/Scalar/CMakeLists.txt
  lib/Transforms/Scalar/Scalar.cpp
  lib/Transforms/Scalar/SpeculativeExecution.cpp
  test/Transforms/SpeculativeExecution/spec.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9360.24670.patch
Type: text/x-patch
Size: 14929 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150430/d8b6c42a/attachment.bin>


More information about the llvm-commits mailing list