This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] pre vs asm statements
On Jan 5, 2004, at 1:14 AM, Richard Henderson wrote:
On Mon, Jan 05, 2004 at 01:05:15AM -0500, Daniel Berlin wrote:
You have a MODIFY_EXPR assigning an ASM_EXPR to something?
Nope. The top-level statement node is the asm_expr.
Otherwise, it wouldn't fit in the check for expressions we process:
if ((TREE_CODE_CLASS (TREE_CODE (expr)) == '2'
|| TREE_CODE_CLASS (TREE_CODE (expr)) == '<'
|| TREE_CODE (expr) == SSA_NAME
|| TREE_CODE (expr) == INDIRECT_REF)
One would think. Nevertheless, the statement is processed and
we do crash.
I see the problem. It gets marked as a kill for the expression in
question, and thus, when doing load PRE on the expression, we save the
value there to the temporary.
This must be the first load redundancy involving an ASM_EXPR somewhere,
since there's no way this could have worked on one.
I'll fix it.