Implicit null check is a mechanism that fold null pointer checks into nearby memory operations. It simply means that for null pointer comparisons, the execution will unconditionally fall through the non-null branch and let the load of the pointer handle the false case (it can use store instruction as well but LLVM currently only supports load instruction). For more information, please refer http://llvm.org/docs/FaultMaps.html
Because implicit null checks act as unconditional branches, their inlining cost should be free.
It looks like this might be a partial diff? I don't see any changes in visitBranchInst?