Re:“What the Hardware Does” Is Not What Your Program Does: U...
by saagarjha on Monday July 15, 2019 @02:16AM
(#20438562)
ICC exploits the standard itself: it generates code that is technically incorrect.
Re:“What the Hardware Does” Is Not What Your Program Does: U...
by mehrdadn on Monday July 15, 2019 @03:20AM
(#20438784)
What do you mean?
Re:“What the Hardware Does” Is Not What Your Program Does: U...
by saagarjha on Monday July 15, 2019 @03:31AM
(#20438830)
As Patrick mentions, ICC generates code that doesn't follow IEEE-754: https://news.ycombinator.com/item?id=20437375 (I should have mentioned I was talking about that rather than the C standard).
Re:“What the Hardware Does” Is Not What Your Program Does: U...
by mehrdadn on Monday July 15, 2019 @03:35AM
(#20438855)
Oh I see, you're talking about floating point.
So basically ICC has -ffast-math (or -funsafe-math-optimizations) on by default, and you can turn it off with an explicit flag?
I see this as more of a philosophical difference than a material one since you can just add or remove the flag on either one...
From my experience, ICC is far more reluctant to exploit UB, yet still generates very good code.