primOpOkForSpeculation :: PrimOp -> Bool
-- See comments with CoreUtils.exprOkForSpeculation
primOpOkForSpeculation op
- = not (primOpCanFail op || primOpHasSideEffects op || primOpOutOfLine op)
+ = primOpIsCheap op && not (primOpCanFail op)
\end{code}
let rep = typePrimRep ty in
case rep of
PtrRep -> case splitAlgTyConApp_maybe ty of
- Nothing -> panic "getPrimOpResultInfo"
+ Nothing -> pprPanic "getPrimOpResultInfo"
+ (ppr ty <+> ppr op)
Just (tc,_,_) -> ReturnsAlg tc
other -> ReturnsPrim other
\end{code}