GCC options for Intel Atom processors

Morgan Wesström gcc-help@pp.dyndns.biz
Wed Apr 8 12:47:00 GMT 2009

Dear list subscribers.

I've searched the gcc-help mailing list archive for anything related to
Intel Atom and surprisingly little showed up. I've also googled
extensively for the past few weeks and found many opinions on what
compiler options to use for Intel Atom but nothing coherent. I'm
extremely sorry if I've missed something obvious but the only way for me
to learn is to ask. I really want to learn _why_ I should use certain
options and just not apply them blindly. So here are my questions:

1) I understand that Intel Atom is an in-order processor and that the
last such processor Intel made was the original Pentium. How big is the
performance penalty if the code is not optimized for in-order execution?

2) If the answer to question 1 is that it does give a noticeable penalty
how does one control the output of gcc to produce in-order code? Should
I choose -march=pentium or is there a single option that is enabled by
the -march option that controls this behaviour? I've even searched for
"in-order" in gcc's source code but the few occurrences that turns up
doesn't solve this puzzle for me.

3) When it comes to cache sizes and available registers I think I
understand that the -mtune option controls this optimization (which is
automatically set to the same value as -march when using that). Since
there is no -march option for Intel Atom yet, is there anyway to control
these optimizations manually in gcc and what should they be in that case?

4) Please correct me on any misunderstandings in my questions above. New
insight into this is greatly appreciated as well as examples on what
people on this list use as options for Intel Atom and _why_ they use them.

Kind regards
Morgan Wesström

More information about the Gcc-help mailing list