------- Comment #11 from rguenther at suse dot de 2007-11-06 21:36 ------- Subject: Re: [4.3 Regression] ICE in ssa_operand_alloc, at tree-ssa-operands.c:487 with -O3
On Tue, 6 Nov 2007, amacleod at redhat dot com wrote: > Partitioning doesn't really seem to be the root problem. But partitioning should exactly help avoiding this: > looking at testcase-min.i: > There are about 820 SFTs associated with the giant structure, and we decide > that they *all* can be affected by the memory access and try to issue VOPS for > them. 820 virtual operands should not happen because we have partitioning. > An int is loaded via MEM[base: Hoopster_ptr_17, offset: 3552]. > In get_tmr_operands(), we always call add_virtual_operands() with an offset of > 0 and a size of -1. This seems wrong. we should be able to use the size of the > load and offset information to figure out the right SFT(s) to add. Instead, > because the size is -1, we simply include all of them. > > Is this offset of 0 and size of -1 to paper over something else? I understand > there might be issues trying to get the right offset and base calculations > under some conditions... I think TMR had not precise enough alias information that we did want to play safe here. In some cases (only constant offsets and strides) we might be able to optimize this. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31976