
#4101: Primitive constant unfolding --------------------------------------------+--------------------------- Reporter: malosh | Owner: schyler Type: bug | Status: new Priority: low | Milestone: 7.6.2 Component: Compiler | Version: 6.12.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86 Type of failure: Runtime performance bug | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: --------------------------------------------+--------------------------- Comment (by carter): @schyler please please be very careful about anything regarding evaluating floating point, I think before we add optimizations and constant propagation for floating point computations we really need to enrich GHC's internal data model of floating point. a Naive constant progagation alg will not be correct for floating point. I'd in fact argue that any constant propagtion stuff first needs that internal model cleaned up first to be correct. Relatedly: many floating point libs do a lot of work that exploits the specific structure of floating point, for example edward kmett's compensated lib http://hackage.haskell.org/package/compensated I think the first step would be adding better support for writing double# and float# literals, perhaps with hexadecimal notation support, as this ticket suggests, as a prereq to the subsequent parts of the ticket. Perhaps that literal support should be spun out into its own ticket and your first task is adding that literals support? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/4101#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler