对于gcc-7.2.0,它在这里:https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/x86-Options.html#x86-Options
你可以去gcc在线文档。然后,找到您感兴趣的版本的手册。然后,转到机器相关选项部分。如果您正在研究x86,请跳到"x86 options“部分。现在,搜索“-march”。
我还没有检查过旧版的gcc。您可以尝试的另一种方法是签出源代码,并打开保存所支持的arch的文字字符串的源代码。
代码语言:javascript运行复制svn checkout svn://gcc.gnu.org/svn/gcc/trunk gcc_trunk
cd gcc_trunk然后,也许你可以这样尝试:
代码语言:javascript运行复制find . -type f | egrep "*\.(c|cc|cpp|h|hpp)$" | xargs egrep '"skylake-avx'目前,对于x86架构,文本字符串保存在./gcc/config/i386/i386.c中。
%P.S.
正如Peter提到的,它似乎是特定于机器的。我怀疑没有一个标准的/所需的行为来列出可用的进行值。例如,如果gcc刚被移植到一个全新的指令集体系结构LEG,而不是ARM,那么它不一定有一个命令行选项来列出所有支持的进行值。
幸运的是,似乎一些较新的gcc版本提供了一种这样做的方法。如果你确实需要在旧的gcc上使用这样的选项,那么可以考虑写一个从gcc 4.5开始可以工作的gcc插件:
gcc plugin
simple gcc plugin how to
通过添加一些命令行选项,可以将Gcc插件插入到现有的gcc中。Gcc有插件的API。您所需要做的就是编写一段代码来检查诸如gcc版本、运行gcc的拱门等信息,并打印出所支持的进行表。