Liste des Groupes | Revenir à c arch |
David Brown <david.brown@hesbynett.no> wrote:Not true:Often you get the most efficient results by writing code clearly andI know of no example where hand optimized code does worse on a newer CPU.
simply so that the compiler can understand it better and good object
code. This is particularly true if you want the same source to be used
on different targets or different variants of a target - few people can
track the instruction scheduling and timings on multiple processors
better than a good compiler. (And the few people who /can/ do that
spend their time chatting in comp.arch instead of writing code...) When
you do hand-made micro-optimisations, these can work against the
compiler and give poorer results overall.
A newer CPU with bigger OoOe will effectively unroll your code and schedule
it even better.
It’s older lesser CPU’s where your hand optimized code might fail hard, andRight.
I know of few examples of that. None actually.
This is especially the case
when code is moved around with inlining, constant propagation,
unrolling, link-time optimisation, etc.
>
Long ago, it was a different matter - then compilers needed more help to
get good results. And compilers are far from perfect - there are still
times when "smart" code or assembly-like C is needed (such as when
taking advantage of some vector and SIMD facilities).
Les messages affichés proviennent d'usenet.