Daniel Berlin wrote:
On 4/4/07, George Caragea <george@xxxxxxxxxx> 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