[LLVMdev] Remove an instruction through Dead Code Elimination pass of llvm
Duncan Sands
baldrick at free.fr
Sat Feb 11 01:43:28 PST 2012
Hi Adarsh,
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'
> instruction?
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
Ciao, Duncan.
More information about the llvm-dev
mailing list