[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