[LLVMdev] readonly and infinite loops
Sanjoy Das
sanjoy at playingwithpointers.com
Sat Jun 27 13:29:42 PDT 2015
Running -early-cse on
declare void @rn() readnone nounwind
define void @f() {
entry:
call void @rn()
ret void
}
removes the call to @rn(). But @rn() could have had an infinite loop
in it in which case @f() went from being a non-terminating
program to an terminating no-op. Is this intentional?
The only way I can see this transform being legal is if infinite loops
are declared to have undefined behavior, but I could not find anything
in the LLVM specification that mentions this.
-- Sanjoy
More information about the llvm-dev
mailing list