Zhengyang Liu
Zhengyang Liu
To eliminate the unnecessary jumps, two nested loops may share a common header. In this reduced example, the jump-threading pass turns the loops that have separate headers into loops sharing...
I guess we need to reimplement part of function in alive2 https://llvm.org/doxygen/LoopSimplify_8cpp_source.html#l00220. After it is implemented alive2 will be able to tell that these are two loops instead of one....
These trivial ones seems easy to implement. I will send a patch for llvm.[maxnum|minnum|ceil|floor|nearbyint|fabs]. And after that I'll send another patch for ffs/ffsll.
@nunoplopes Hi Nuno, I am working on maxnum and minnum, llvm langref* is saying that `minnum(+/-0.0, +/-0.0) could return either -0.0 or 0.0.` How do we model this definition in...
@aqjune Hi Juneyoung, after encoding returning -0 for the input (+0, -0) and (-0, +0), alive thinks this transform is wrong. Maybe always returning -0 is not a good encoding....
@regehr @aqjune making returning value non-det makes `llvm/llvm/test/Transforms/InstCombine/minnum.ll` pass. I'll wrap up and run on whole test suite and see.
PR for minnum/maxnum support https://github.com/AliveToolkit/alive2/pull/352
@jayfoad @regehr
@nikic @jayfoad agreed.
@jayfoad @regehr