[PATCH, PR44503] Fixes "control flow in the middle of basic block" with -fprefetch-loop-arrays

Fang, Changpeng Changpeng.Fang@amd.com
Tue Jun 15 18:10:00 GMT 2010


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Do-not-form-natural-loops-when-non-local-labels-exis.patch
Type: text/x-patch
Size: 1003 bytes
Desc: 0003-Do-not-form-natural-loops-when-non-local-labels-exis.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100615/e0e1e173/attachment.bin>


More information about the Gcc-patches mailing list