intmax
intmax

Reputation: 3

Apply LLVM pass to a specific basic block

Is it possible to apply LLVM transformation pass to a specific basic block, instead of the whole IR?

I know how to apply a pass to the whole IR: $ opt –S –instcombine test.ll –o out.ll

But there might be several basic blocks inside test.ll and I want to apply –instcombine to just one of them.

Upvotes: 0

Views: 297

Answers (1)

arnt
arnt

Reputation: 9675

Generally, no. Some LLVM passes are written to work on whole modules, others on whole functions. Some are also safe to use for single basic blocks (more by chance than by design), but LLVM's pass interface deals with only the design unit (functions in case of function passes, modules in case of module passes). That is, function passes are given a function by the pass manager, and nothing else.

Upvotes: 1

Related Questions