Commit b6c9b9bc by Zdenek Dvorak Committed by Zdenek Dvorak

loop-invariant.c (invariant_for_use, [...]): Fail for read-write uses.

	* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
	read-write uses.

From-SVN: r111141
parent 28749cfb
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
read-write uses.
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/26296
* Makefile.in (loop-invariant.c): Add except.h dependency.
* loop-invariant.c: Include except.h.
......
......@@ -233,6 +233,9 @@ invariant_for_use (struct df_ref *use)
struct df_ref *def;
basic_block bb = BLOCK_FOR_INSN (use->insn), def_bb;
if (use->flags & DF_REF_READ_WRITE)
return NULL;
defs = DF_REF_CHAIN (use);
if (!defs || defs->next)
return NULL;
......@@ -682,7 +685,8 @@ record_use (struct def *def, rtx *use, rtx insn)
}
/* Finds the invariants INSN depends on and store them to the DEPENDS_ON
bitmap. */
bitmap. Returns true if all dependencies of INSN are known to be
loop invariants, false otherwise. */
static bool
check_dependencies (rtx insn, bitmap depends_on)
......@@ -695,6 +699,9 @@ check_dependencies (rtx insn, bitmap depends_on)
for (use = DF_INSN_GET (df, insn)->uses; use; use = use->next_ref)
{
if (use->flags & DF_REF_READ_WRITE)
return false;
defs = DF_REF_CHAIN (use);
if (!defs)
continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment