[LLVMdev] Remove an instruction through Dead Code Elimination pass of llvm
baldrick at free.fr
Sat Feb 11 01:43:28 PST 2012
On 11/02/12 09:47, Adarsh Konchady wrote:
> My pass in LLVM generates an IR like this
> %5 = icmp eq i32 %4, 0
> %7 = or i1 %5, %5
> ;. . .
> Since the 'or' instruction is actually not needed(dead code), I replaced all
> occurences of %7 with %5.
> Now, the 'or' instruction should get deleted. How can I call Dead Code
> Elimination pass of LLVM from my pass or is there any method to remove that 'or'
in LLVM passes don't schedule other passes. Whoever schedules your pass to run
can just schedule a dead code elimination pass after yours (or instcombine, or
some other pass that will zap this kind of thing). Alternatively, your pass
can use a utility function to do it, for example SimplifyInstructionsInBlock,
defined in llvm/Transforms/Utils/Local.h
More information about the llvm-dev