llvm.org GIT mirror llvm / release_21 test / Transforms / LICM / call_sink_pure_function.ll
release_21

Tree @release_21 (Download .tar.gz)

call_sink_pure_function.ll @release_21raw · history · blame

; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -licm | llvm-dis | %prcontext strlen 1 | grep Out: 
declare int %strlen(sbyte*)
declare void %foo()

int %test(sbyte* %P) {
	br label %Loop

Loop:
	%A = call int %strlen(sbyte* %P)   ;; Can hoist/sink call
	br bool false, label %Loop, label %Out

Out:
	ret int %A
}