Hi all,
I'm working on some LLVM 7 code and I was wondering if there exists an
optimization pass (perhaps that exists in a later version of LLVM) that
does the following. Or if not, a good pass for me to implement this inside
of may be.
Suppose you have the following loop:
for: ; preds = %entry, %for
%phi = phi double [ %entry_value, %entry ], [ %selected_value, %for ]
%condition = ...
%selected_value = select i1 %condition, double %inner_value, double
%any_value
br i1 %condition, label %for, label %loop_exit
In this case, (and similarly cases where the loop condition is the same as
the select condition), we may simply replace %selected_value in the for
loop with %inner_value from the select (and therefore remove the select).
This type of structure comes up frequently in some codes I'm looking at and
figured I'd check if anyone has something to deal with it already before I
implement my own (and try to upstream).
Cheers,
Billy Moses
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190316/b93d48b2/attachment.html>