将LLVM过程应用于特定的基本块

将LLVM过程应用于特定的基本块,llvm,llvm-clang,llvm-ir,Llvm,Llvm Clang,Llvm Ir,是否可以将LLVM转换过程应用于特定的基本块,而不是整个IR 我知道如何将通行证应用于整个IR: $opt–S–instcombine test.ll–o out.ll 但是test.ll中可能有几个基本模块,我想应用它们中的一个。一般来说,没有。一些LLVM过程是为了在整个模块上工作而编写的,另一些则是为了在整个函数上工作。有些还可以安全地用于单个基本块(更多的是偶然而非设计),但LLVM的pass接口只处理设计单元(函数通过时的函数,模块通过时的模块)。也就是说,函数传递由传递管理器提供一个

是否可以将LLVM转换过程应用于特定的基本块,而不是整个IR

我知道如何将通行证应用于整个IR: $opt–S–instcombine test.ll–o out.ll


但是test.ll中可能有几个基本模块,我想应用它们中的一个。

一般来说,没有。一些LLVM过程是为了在整个模块上工作而编写的,另一些则是为了在整个函数上工作。有些还可以安全地用于单个基本块(更多的是偶然而非设计),但LLVM的pass接口只处理设计单元(函数通过时的函数,模块通过时的模块)。也就是说,函数传递由传递管理器提供一个函数,而不是其他任何函数。

看看这个,这是否回答了您的问题?如果标签可用于指向特定块,则可能非常有用。当您说模块时,是指基本块吗?否。