PGOInstrumentation runs SplitIndirectBrCriticalEdges but some IndirectBrInst
critical edge cannot be split. getInstrBB will crash when calling SplitCriticalEdge, e.g.
int foo(char *p) { void *targets[2]; targets[0] = &&indirect; targets[1] = &&end; for (;; p++) if (*p == 7) { indirect: goto *targets[p[1]]; // the self loop is critical in -O } end: return 0; }
Skip such critical edges to prevent a crash.
s/previous/following/