Factor/To do/Performance

  • generic math: inline the method body in method combination. we used to do this but it created problems for redefinition; if this can be solved it will eliminate an unnecessary jump in non-optimized execution
  • memoized words with no inputs can perform the same as CONSTANT: instead of doing a hashtable lookup

Fixed:

  • we can use memsetpattern to initialize strings, arrays on OS X 10.5; actually it will be better to use SSE2 and AltiVec directly instead, more portable... Prunedtree says "can't you write your own optimized memset with intrinsics ? It's not much code and it would be more portable. I can provide the x86 code if you want"
  • <range> is slow; / 1 + 0 max >integer no good
  • struct returns: compiler needs to know they're byte-arrays so it can optimize complex float boxing
  • uninitialized byte arrays
  • reallotbytearray() zeroes too much
  • finish asm fixnum primitives
  • array-capacity?: try not using between?
  • linear search of recursive-state
  • make M: word hashcode foldable
  • we're inserting redundant 0 fixnum>= checks in tuple dispatch engine
  • unnecessary 7 slot calls in hashed dispatch
  • not and >boolean should be branchless
  • case with words has [ t ] [ f ] if awkwardness
  • dispatch: small dispatch over hi-tag doesn't need to 8 fixnum-fast
  • make sure that 0 slot in dispatch is the known-tag case
  • can be faster; if base is a multiple of a power of two, factor out the power of 2 and use a shift, and use binary-reduce to multiple together the rest

This revision created on Fri, 20 Nov 2009 02:43:38 by slava