[PATCH] D29316: Add predicateinfo intrinsic, analysis pass, and basic NewGVN support

Piotr Padlewski via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 3 16:35:15 PST 2017

Prazek added inline comments.

Comment at: include/llvm/Transforms/Utils/PredicateInfo.h:244
+  struct Result {
+    Result(std::unique_ptr<PredicateInfo> &&PredInfo)
+        : PredInfo(std::move(PredInfo)) {}
dberlin wrote:
> Prazek wrote:
> > take unique_ptr by value. This ensures that the pointer value sinks (and it is also less characters to read, and it is easier for the optimizer to optimize it) 
> This does not actually work, afaict.
> If you try it, it does not compile no matter what because unique ptrs can't be copied by value, only moved.
> If you want me to do something here, exact code appreciated.
> This is also a direct copy of the idiom we are using in other analysis passes :)
I am not sure if the code dissapeard, but code like this:

  void take(std::unique_ptr<int> p) {

  void push() {
    std::unique_ptr<int> a;


Compiles fine, so I would guess it should work, but I will check it with your next reviews.


More information about the llvm-commits mailing list