My main concern was fixing the warnings (~150, mostly vsize vs. int), and getting to know the codebase a bit. However, during this procedure I have changed other things also, typedef-ed enums, empty else statements, string repeating, unreferenced parameter names and some random cosmetics, like code and comment spacing etc. Please check for errors. I've also changed the sign and comparison code from the branching "if () return else if return else ..." to the non-branching "return (b < a) - (a < b)", which was 5 and 30% faster in my tests. I have also changed a few "*0.5" to "/2.0", since the generated code is the same (just checked it, same speed also, of course), and I think a logical division should be marked as a division (and both were used in the code in a -seemingly- random way).
A few questions(haven't searched through the mails): * Why are many lines wrapped at 60-80 (while some at 100)? This makes reading the code hard, console mode wrapping seems deprecated to me (especially on my 24'' monitor). I think that 95-110 chars/line are better in most cases then wrapping @ 80. * Are unsigned variables really necessary here? (I guess the vector's length() makes them necessary) * and double precision and i64? Is that level of precision required over the speed gain? (it might be, I'm just askin' if it was considered) * How about SSE optimization? There might be lots of data with same instructions. The diff is quite big (~2700 lines and ... 99 files ... how did I do that??), but most of the warnings (except for the missing images in the docs, some deprecated makefile warnings and some strange lexer warnings) will go away. http://codereview.appspot.com/1724041/show Lőrinc ps. this patch includes the previous one, posted as an attachment. Please tell, if something was inappropriate.
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel