inserting prefetch instructions in ssa

George Caragea george@cs.umd.edu
Wed Apr 4 18:49:00 GMT 2007


Daniel Berlin wrote:
> On 4/4/07, George Caragea <george@cs.umd.edu> wrote:
>> After I identify a MODIFY_EXPR which is a read from an array location,
>> I'm having trouble getting gcc to insert a prefetch instruction for it.
>> I've been trying to follow the same pattern as in
>> tree-ssa-loop-prefetch.c, which I got from the gcc-svn version. However,
>> it doesn't work, and Im not sure if it's because of the differences in
>> versions, or because I'm doing something wrong.
>>
>> The output I get when I compile a program is:
>> ===
>> In force_gimple_operand_bsi, inserting statements: D.1109_4 = &B[i_8];
>> The prefetch instr generated is: __builtin_prefetch (D.1109_4, 0);
>> done inserting
>> XMTS.simple32.c:6: internal compiler error: tree check: expected
>> ssa_name, have var_decl in verify_ssa, at tree-ssa.c:679
>
> You need to mark these variables for renaming.
> In 4.3 you'd just use mark_new_vars_for_renaming.
> I don't remember what you use in 4.0 (in general, it is never a good
> idea to do new work against anything but the development version of
> gcc)

Thanks for the answer. Unfortunately I'm stuck with gcc-4.0.2 for now.

I couldn't find anything called "mark_new_vars_for_renaming" in the 
gcc-svn snapshot. The closest call was mark_symbols_for_renaming and 
mark_sym_for_renaming, is that what you meant?
In gcc-4.0.2, the only thing that looked related was 
"add_referenced_tmp_var", but that didn't do the trick. If I add that, I 
get an error saying:

XMTS.simple32.c:6: internal compiler error: in var_ann, at 
tree-flow-inline.h:34

Any ideas how I could get this to work with this version of gcc?

Thanks,
George



More information about the Gcc-help mailing list