当我使用 gcc 4.3 为该处理器编译二进制文件时,我应该使用-march=nocona
还是应该使用?-march=core2
vendor_id:GenuineIntel CPU 系列:6 型号:15 型号名称:Intel(R) Xeon(R) CPU X3220 @ 2.40GHz 步进:8 cpuid级别:10 标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss 系统调用 nx lm constant_tsc arch_perfmon pebs bts rep_good pni ssse3 cx16 lahf_lm
我真的无法查明该 CPU 是否已经是 core2 架构...只找到有关四核变体的信息,但该 CPU 仅为双核。
答案1
-march=core2 应该是正确的。您可以随时使用每个编译器对代码进行基准测试。此外,您可能会发现 open64 编译器可能更擅长优化您的代码。gcc 很棒,因为它可以在很多平台上运行,但是在生成超级优化代码方面它并不是最强大的。我猜这才是您真正想要的,否则您只会使用 i686 作为 arch。