SuccessChanges

Summary

  1. [InstCombine] keep assumption before sinking calls (details)
Commit c3b06d0c393e533eab712922911d14e5a079fa5d by tyker
[InstCombine] keep assumption before sinking calls
Summary: in the following C code the branch is not removed by clang in
O3.
``` int f1(char* p) {
   int i1 = __builtin_strlen(p);
   if (!p)
       return -1;
   return i1;
}
``` The issue is that the call to strlen is sunk to the following block
by instcombine. In its new place the call to strlen doesn't dominate the
use in the icmp anymore so value tracking can't see that p cannot be
null. This patch resolves the issue by inserting an assumption at the
place of the call before sinking a call when that call can be used to
prove an argument to be nonnull. This resolves this issue at O3.
Reviewers: majnemer, xbolva00, fhahn, jdoerfert, spatel, efriedma
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69477
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was addedllvm/test/Transforms/InstCombine/assume-replacing-call.ll

Summary

  1. Always do a clean build on llvm-clang-x86_64-expensive-checks-win. (details)
  2. Force LIT verbose mode for some ARM builders to prevent a timeout on (details)
Commit 3b78160a8bd457ad8dbe590517e1c7a965a6da31 by gkistanova
Always do a clean build on llvm-clang-x86_64-expensive-checks-win.
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit b9457163963587ab2b7e68e3807c4718a9ab85d9 by gkistanova
Force LIT verbose mode for some ARM builders to prevent a timeout on
clean builds.
The file was modifiedbuildbot/osuosl/master/config/builders.py