+-- EZY: This code has an unusually high amount of assignTemp calls, seen +-- nowhere else in the code generator. This is mostly because these +-- "primitive" ops result in a surprisingly large amount of code. It +-- will likely be worthwhile to optimize what is emitted here, so that +-- our optimization passes don't waste time repeatedly optimizing the +-- same bits of code.
One possibility would be to use out-of-lime primops when the size isn't statically known and generate code inline otherwise? When the size is statically known we don't generate much code. On Mon, Jun 13, 2011 at 5:40 PM, Edward Z. Yang <[email protected]> wrote: > Repository : ssh://darcs.haskell.org//srv/darcs/ghc > > On branch : master > > http://hackage.haskell.org/trac/ghc/changeset/5b1053897fa16ced293e749447e9c027d15d29f5 > >>--------------------------------------------------------------- > > commit 5b1053897fa16ced293e749447e9c027d15d29f5 > Author: Edward Z. Yang <[email protected]> > Date: Fri Jun 10 17:16:32 2011 +0100 > > Port "Make array copy primops inline" and related patches to new codegen. > > The following patches were ported: > > d0faaa6 Fix segfault in array copy primops on 32-bit > 18691d4 Make assignTemp_ less pessimistic > 9c23f06 Make array copy primops inline > > Signed-off-by: Edward Z. Yang <[email protected]> > > compiler/codeGen/CgForeignCall.hs | 3 + > compiler/codeGen/CgMonad.lhs | 2 + > compiler/codeGen/CgPrimOp.hs | 7 ++ > compiler/codeGen/StgCmmPrim.hs | 209 > +++++++++++++++++++++++++++++++++++++ > compiler/codeGen/StgCmmUtils.hs | 17 +++- > 5 files changed, 234 insertions(+), 4 deletions(-) > > > Diff suppressed because of size. To see it, use: > > git show 5b1053897fa16ced293e749447e9c027d15d29f5 > > _______________________________________________ > Cvs-ghc mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/cvs-ghc > _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
