[PATCH] An Assumption-Tracking Pass

hfinkel at anl.gov hfinkel at anl.gov
Sun Jul 27 23:13:29 PDT 2014


Hi chandlerc, reames, atrick,

This patch adds an immutable pass, AssumptionTracker, which keeps a cache of @llvm.assume instructions within a module. It uses callback value handles to keep stale functions and intrinsics out of the map, and it relies on any code that creates new @llvm.assume calls to notify it of the new instructions. The benefit is that code needing to find @llvm.assume intrinsics can do so directly, without scanning the function, thus allowing the cost of @llvm.assume handling to be negligible when none are present.

I apologize ahead of time: Some of the patches in this series now depend on each other in odd ways. You probably can't compile them unless you apply them all.

http://reviews.llvm.org/D4689

Files:
  include/llvm/Analysis/AssumptionTracker.h
  include/llvm/InitializePasses.h
  lib/Analysis/AssumptionTracker.cpp
  lib/Analysis/CMakeLists.txt
  lib/Transforms/InstCombine/InstCombine.h
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  lib/Transforms/InstCombine/InstructionCombining.cpp
  lib/Transforms/Scalar/LoopUnswitch.cpp
  lib/Transforms/Utils/InlineFunction.cpp
  lib/Transforms/Utils/LoopUnroll.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4689.11928.patch
Type: text/x-patch
Size: 14934 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140728/43abb2ff/attachment.bin>


More information about the llvm-commits mailing list