Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 混合本机可执行文件和llvm位代码库_Fortran_Llvm_Jit - Fatal编程技术网

Fortran 混合本机可执行文件和llvm位代码库

Fortran 混合本机可执行文件和llvm位代码库,fortran,llvm,jit,Fortran,Llvm,Jit,形势 我有一个程序(用fortran编写),包括: 每次运行程序时使用的一组核心例程 由用户在开始时选择的大量备用例程集合,每次运行仅使用其中一个 用户可以合理地为后续运行选择不同的备选方案 大部分构建时间都花在编译备选方案上,当我知道每次只使用一个备选方案时,这令人沮丧。大部分运行时间都花在替代例程中,该例程很短,但调用了很多次 创意 将所有核心例程编译为本机可执行文件以及llvm位代码库的所有备选方案。在运行时,仅自动编译和链接选定的备选方案。这将有望节省大量的构建时间,并略微降低运行速度

形势

我有一个程序(用fortran编写),包括:

  • 每次运行程序时使用的一组核心例程
  • 由用户在开始时选择的大量备用例程集合,每次运行仅使用其中一个
  • 用户可以合理地为后续运行选择不同的备选方案

    大部分构建时间都花在编译备选方案上,当我知道每次只使用一个备选方案时,这令人沮丧。大部分运行时间都花在替代例程中,该例程很短,但调用了很多次

    创意

    将所有核心例程编译为本机可执行文件以及llvm位代码库的所有备选方案。在运行时,仅自动编译和链接选定的备选方案。这将有望节省大量的构建时间,并略微降低运行速度

    问题

  • 这可能吗?如果可能,怎么可能
  • 这是个好主意吗?有没有更好的方法达到类似的效果

  • 如果您知道在编译时将使用哪些备选方案,那么最好修改您的构建系统,以便您可以选择应该编译哪些备选方案。但是如果您在运行时做出决定,那么我不明白为什么构建时间对您来说是个问题。用户是在运行时还是在编译时选择替代过程?如果是运行时,那么构建时应该没有问题,因为您只做了一次,并且每次运行没有额外的开销。如果他们必须重新编译以选择备用过程,那么这不是运行时选择,而是编译时选择。您能否确切说明用户如何选择备选方案?用户会编写一个文件,指定每次运行的配置。备选方案的选择就在那里。编译时间对于调试和测试来说很烦人。如果你能找到llvm编译器。。。我听说有人开始创建flang,但那只是开始阶段。然后解决方案是修改您的构建系统,使其只编译请求的备选方案。如果您知道在编译时将使用哪些备选方案,然后最好修改您的构建系统,以便您可以选择应该编译哪些备选方案。但是如果您在运行时做出决定,那么我不明白为什么构建时间对您来说是个问题。用户是在运行时还是在编译时选择替代过程?如果是运行时,那么构建时应该没有问题,因为您只做了一次,并且每次运行没有额外的开销。如果他们必须重新编译以选择备用过程,那么这不是运行时选择,而是编译时选择。您能否确切说明用户如何选择备选方案?用户会编写一个文件,指定每次运行的配置。备选方案的选择就在那里。编译时间对于调试和测试来说很烦人。如果你能找到llvm编译器。。。我听说有人开始创建flang,但那只是开始阶段。然后解决方案是修改您的构建系统,使其只编译请求的替代方案。