On 4 August 2011 08:33, Eric Anholt <e...@anholt.net> wrote: > On Wed, 3 Aug 2011 17:07:42 -0700, Paul Berry <stereotype...@gmail.com> > wrote: >> When link_functions.cpp adds a new function to the final linked >> program, it needs to add it after any global variable declarations >> that the function refers to, otherwise the IR will be invalid (because >> variable declarations must occur before variable accesses). The >> easiest way to do that is to have the linker emit functions to the >> tail of the final linked program. >> >> The linker used to emit functions to the head of the final linked >> program, in an effort to keep callees sorted before their callers. >> However, this was not reliable: it didn't work for functions declared >> or defined in the same compilation unit as main, for diamond-shaped >> patterns in the call graph, or for some obscure cases involving >> overloaded functions. And no code currently relies on this sort >> order. > > Usually we'd swap the order of these around, so that if we have a > testcase that would hit this, you don't get extra failures when a bisect > lands on patch 1/2. >
That's a good point, Eric. I'll switch the order of the patches. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev