incremental build fails to rerun cmake

I'm trying to bisect over some bug and here I spot a problem with incremental make.

During bisect I just go and run make (or ninja) for each new bisected commit, hoping
that it will incrementally build it just right.
Usually it does properly rerun cmake as needed, however today it failed on a particular point
(3a8afbd8a1a from git mirror, r345463 in svn):

] git log -1 HEAD --oneline
3a8afbd8a1a (HEAD) AMD BdVer2 (Piledriver) Initial Scheduler model
] (cd ../builds/linux-release && ninja)
.... builds ok
] git checkout HEAD^
Previous HEAD position was 3a8afbd8a1a... AMD BdVer2 (Piledriver) Initial Scheduler model
HEAD is now at 69daf48aab5... [NFC][X86] Baseline tests for AMD BdVer2 (Piledriver) Scheduler model
] (cd ../builds/linux-release && ninja)
ninja: error: '~/work/llvm-upstream/llvm/lib/Target/X86/X86ScheduleBdVer2.td', needed by 'lib/Target/X86/X86GenRegisterInfo.inc.tmp', missing and no known rule to make it
]

Naturally, X86ScheduleBdVer2.td was introduced in that change, now it is gone and make is unable to
figure out that it needs to re-cmake.

I can solve this problem with manually running rebuild_cache target.
However usually it works automagically...

I'm not familiar with this part of cmake magic so could anybody enlighten me and, perhaps,
see how this can be fixed?

thanks,
Fedor.