Numeric literal very badly optimized
Compile the following program with -ddump-simpl
main = interact $ show . (< 1e40) . read
Note how there's no literal value 1e40::Double anywhere in the code. Instead there's a call to fromRat to do the conversion.
Now replace 1e40 with (1e40::Double), and the code looks good. So it seems that when defaulting is involved the code is much worse.
Trac metadata
Trac field | Value |
---|---|
Version | 6.9 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | lennart@augustsson.net |
Operating system | |
Architecture |