Hi, Attached is the patch to fix bug 44503: "control flow in the middle of basic block" with -fprefetch-loop-arrays. The problem is that a non-local label (for setjmp) exists in the function. When we insert a _builtin_prefetch call, this prefetch is considered potentially changing the control flow. We think this is, in general, a loop construction problem. When the current function has non local labels, there are no natural loops in the function. The patch passed bootstrapping and gcc regression tests on amd-linux64 systems. Is it ok for the trunk? Thanks, Changpeng