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?
pgpqFaCrqV9Hg.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
