I think we changed what we protect with IsValidFrame over the course of
our refactorings. Take a look at the code before we started:
https://github.com/llvm/llvm-project/blob/2946cd701067404b99c39fb29dc9c74bd7193eb3/compiler-rt/lib/asan/asan_stack.h
Note that the code path that can potentially result in a fast unwind is
protected by IsValidFrame (for MIPS). This makes sense, since fast
unwind requires the frame info (bp, stack_top, stack_bottom) to work.
The current code only protects the slow unwind.
Previously It protected both.
However original commit for this check mentions that MIPS use only Slow and it lacks IsValid check.