Re: [GHC] #5925: Add inline version of newArray#

#5925: Add inline version of newArray# ---------------------------------+------------------------------------------ Reporter: tibbe | Owner: Type: feature request | Status: new Priority: normal | Milestone: 7.6.2 Component: Compiler | Version: 7.4.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: 4258 | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by simonpj): If the array size is fixed at compile time, it should be easy... the heap check can be aggregated with all the others at the start of the basic block. If the array size is not known at compile time, but somehow known to be small, then with the new codegen it should be possible to just emit an inline heap check. EXCEPT that doing so could mess up downstream fixed- size checks. Eg {{{ let x = f v in let y = newArray# n# in let z = f w in ... }}} Absent the `newArray#` we'd have a single heap check that made sure there was enough space for both `x` and `z`. But we can't do that if the `newArray#` in the middle allocates an unknown amount of space. I suppose we could emit three heap checks... that would work I think. A related ticket is #2387 and #2289, where we'd like to put a heap check at the beginning of a primop case alternative, something that should now work just fine. Simon -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5925#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC