t
On Tue, 29 Mar 2011 11:35:33 -0700, Tom Stellard <[email protected]> wrote:
> On Tue, Mar 29, 2011 at 10:19:13AM -0700, Eric Anholt wrote:
> > On Mon, 28 Mar 2011 22:59:31 -0700, Tom Stellard <[email protected]> wrote:
> > > This pass scans programs for instructions that read registers that have
> > > not been written and replaces these reads with a read from a constant
> > > register with the value of zero.  This pass prevents phantom
> > > dependencies from being introduced by the register allocator and
> > > improves the efficiency of subsequent optimization passes.
> > 
> > I'm not sure why optimizing a program with undefined behavior (using
> > undefined register values) is interesting.  It just seems like an
> > opportunity to make a mistake and break programs that should have
> > defined behavior.
> 
> The main problem I am trying to fix with this is that these reads
> from undefined register values are causing the Mesa IR register allocator
> to alter the structure of the program by adding dependencies between
> instructions that should not be there.  This is limiting the number of
> optimization opportunities that are available to drivers, especially
> on architectures like r300 that need IFs lowered and thus use a lot of
> CMP instructions.

Why do you have programs reading undefined values?  Why are these
programs interesting?

Attachment: pgpqFaCrqV9Hg.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to