[PATCH] Ephemeral values for LLVM invariants

hfinkel at anl.gov hfinkel at anl.gov
Sat Jul 12 15:27:08 PDT 2014


Rebased (and completely rewritten, except for the test case). In the original attempt I'd made ephemeral values an analysis pass. However, I've reconsidered because a) it would be really hard to preserve (we'd need to audit essentially all callers of RAUW, etc.) and is only used by a few passes and b) since it would often be invalidated it would interrupt the loop-level pass manager is undesirable ways (and it would need to be a module/cgscc-level pass for use by the inliner). So here I've just written a set of functions in CodeMetrics that return the set of ephemeral values which can be used by CodeMetrics directly, or the caller in some other way, as appropriate.

http://reviews.llvm.org/D180

Files:
  include/llvm/Analysis/CodeMetrics.h
  lib/Analysis/CodeMetrics.cpp
  lib/Analysis/IPA/InlineCost.cpp
  lib/Transforms/Scalar/LoopRotation.cpp
  lib/Transforms/Scalar/LoopUnrollPass.cpp
  lib/Transforms/Scalar/LoopUnswitch.cpp
  test/Transforms/Inline/ephemeral.ll
  test/Transforms/LoopUnroll/ephemeral.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D180.11340.patch
Type: text/x-patch
Size: 13512 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140712/6f053d4d/attachment.bin>


More information about the llvm-commits mailing list