[m-rev.] diff: fix a bug in loop invariant hoisting
Ralph Becket
rafe at cs.mu.OZ.AU
Mon Sep 20 14:23:18 AEST 2004
Zoltan Somogyi, Monday, 20 September 2004:
>
> That looks fine, but it begs the question of what loop invariant
> optimization was doing with such goals in the first place. IIRC, all
> foreign_procs with extra arguments are marked as impure or semipure,
> and so shouldn't be optimized away by loop invariant optimization.
The LIO doesn't attempt to hoist semipure or impure goals, but it does
first makes a pass over the proc body to identify uniquely used
variables, which is where the problem arose. The problem arose because
the first pass just looks at the arg_modes, which, it seems, don't
include the modes for the extra args.
-- Ralph
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list