This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)
     && !ann->makes_aliased_stores
     && !ann->has_volatile_ops)

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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]