#2396: Default class method not inlined
---------------------------------+------------------------------------------
Reporter: sedillard | Owner:
Type: bug | Status: new
Priority: low | Milestone: 7.0.1
Component: Compiler | Version: 6.8.3
Keywords: | Testcase:
Blockedby: | Difficulty: Unknown
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: Runtime performance bug
---------------------------------+------------------------------------------
Comment(by reinerp):
With ghc 6.12.3, we get the following core from your file:
{{{
Test.$wmultmv3d =
\ (ww_svV :: Double#)
(ww1_svW :: Double#)
(ww2_svX :: Double#)
(ww3_sw3 :: Double#)
(ww4_sw4 :: Double#)
(ww5_sw5 :: Double#)
(ww6_swb :: Double#)
(ww7_swc :: Double#)
(ww8_swd :: Double#)
(w_swj :: Test.Vec3D) ->
case w_swj of _ { Test.Vec3D rb_XtF rb1_XtH rb2_XtJ ->
(# +##
(*## rb_XtF ww_svV)
(+##
(*## rb1_XtH ww1_svW) (*## rb2_XtJ ww2_svX)),
+##
(*## rb_XtF ww3_sw3)
(+##
(*## rb1_XtH ww4_sw4) (*## rb2_XtJ ww5_sw5)),
+##
(*## rb_XtF ww6_swb)
(+##
(*## rb1_XtH ww7_swc) (*## rb2_XtJ ww8_swd)) #)
}
...
Test.multmv3d :: Test.Mat33D -> Test.Vec3D -> Test.Vec3D
GblId
Worker Test.$wmultmv3d
Test.multmv3d =
__inline_me (\ (w_svR :: Test.Mat33D) (w1_swj :: Test.Vec3D) ->
case w_svR of _ { Test.:. ww_svT ww1_svZ ->
case ww_svT of _ { Test.Vec3D ww3_svV ww4_svW ww5_svX ->
case ww1_svZ of _ { Test.:. ww7_sw1 ww8_sw7 ->
case ww7_sw1 of _ { Test.Vec3D ww10_sw3 ww11_sw4 ww12_sw5
->
case ww8_sw7 of _ { Test.:. ww14_sw9 _ ->
case ww14_sw9 of _ { Test.Vec3D ww17_swb ww18_swc
ww19_swd ->
case Test.$wmultmv3d
ww3_svV
ww4_svW
ww5_svX
ww10_sw3
ww11_sw4
ww12_sw5
ww17_swb
ww18_swc
ww19_swd
w1_swj
of _ { (# ww21_swp, ww22_swq, ww23_swr #) ->
Test.Vec3D ww21_swp ww22_swq ww23_swr
}
}
}
}
}
}
})
}}}
which has no unnecessary constructors.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2396#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs