<i>For example, knowing that INT_MAX+1 is undefined allows optimizing &quot;X+1 &gt; X&quot; to &quot;true&quot;.</i><p>If a programmer writes &quot;X+1 &gt; X&quot;, chances are this is an overflow check. Doing this is perfectly defined by the standard if X is an <i>unsigned</i> integer, but not if it&#x27;s signed. That&#x27;s what doesn&#x27;t make sense, since they could&#x27;ve made the unsigned case undefined as well.<p><i>which allows a broad range of loop optimizations to kick in</i><p>What sort of optimisations exactly, and just how significant are they? I don&#x27;t believe C should be a language where the compiler does all sorts of high-level optimisation; it should be a straightforward &quot;do what I say&quot; type of language where you get almost exactly what you write, and the only optimisations should be at the level of things like instruction selection --- the optimisations that a programmer would not be able to do at the source level.