|  | 
 
 发表于 2004-6-2 08:25:15
|
显示全部楼层 
| 可能是gcc在对循环结构进行循环展开。 [quote:c13bb0fcea="cnhnln"]用了优化参数编译以后快慢感觉不到,倒是明显发现编译出的程序大了不少
 
 另外,看了一下 http://www.freehackers.org/gentoo/gccflags/faq.html
 它是通过gcc-3.2/gcc/toplevel.c和gcc-3.2/gcc/config/i386/i386.c来确定优化参数的。
 
 gcc3.4的i386.c里有如下的定义
 [code:1]  const processor_alias_table[] =
 {
 {"i386", PROCESSOR_I386, 0},
 {"i486", PROCESSOR_I486, 0},
 {"i586", PROCESSOR_PENTIUM, 0},
 {"pentium", PROCESSOR_PENTIUM, 0},
 {"pentium-mmx", PROCESSOR_PENTIUM, PTA_MMX},
 {"winchip-c6", PROCESSOR_I486, PTA_MMX},
 {"winchip2", PROCESSOR_I486, PTA_MMX | PTA_3DNOW},
 {"c3", PROCESSOR_I486, PTA_MMX | PTA_3DNOW},
 {"c3-2", PROCESSOR_PENTIUMPRO, PTA_MMX | PTA_PREFETCH_SSE | PTA_SSE},
 {"i686", PROCESSOR_PENTIUMPRO, 0},
 {"pentiumpro", PROCESSOR_PENTIUMPRO, 0},
 {"pentium2", PROCESSOR_PENTIUMPRO, PTA_MMX},
 {"pentium3", PROCESSOR_PENTIUMPRO, PTA_MMX | PTA_SSE | PTA_PREFETCH_SSE},
 {"pentium4", PROCESSOR_PENTIUM4, PTA_SSE | PTA_SSE2 |
 PTA_MMX | PTA_PREFETCH_SSE},
 {"k6", PROCESSOR_K6, PTA_MMX},
 {"k6-2", PROCESSOR_K6, PTA_MMX | PTA_3DNOW},
 {"k6-3", PROCESSOR_K6, PTA_MMX | PTA_3DNOW},
 {"athlon", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
 | PTA_3DNOW_A},
 {"athlon-tbird", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE
 | PTA_3DNOW | PTA_3DNOW_A},
 {"athlon-4", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
 | PTA_3DNOW_A | PTA_SSE},
 {"athlon-xp", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
 | PTA_3DNOW_A | PTA_SSE},
 {"athlon-mp", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
 | PTA_3DNOW_A | PTA_SSE},
 {"x86-64", PROCESSOR_K8, PTA_MMX | PTA_PREFETCH_SSE | PTA_64BIT
 | PTA_SSE | PTA_SSE2 },
 {"k8", PROCESSOR_K8, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW | PTA_64BIT
 | PTA_3DNOW_A | PTA_SSE | PTA_SSE2},
 {"opteron", PROCESSOR_K8, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW | PTA_64BIT
 | PTA_3DNOW_A | PTA_SSE | PTA_SSE2},
 {"athlon64", PROCESSOR_K8, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW | PTA_64BIT
 | PTA_3DNOW_A | PTA_SSE | PTA_SSE2},
 {"athlon-fx", PROCESSOR_K8, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW | PTA_64BIT
 | PTA_3DNOW_A | PTA_SSE | PTA_SSE2},
 };[/code:1]
 
 但是toplevel.c的定义方式变了,看不明白。请教![/quote]
 | 
 |