mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
283961f4c8
With the addition of the `willreturn` attribute, functions that may not return (e.g. due to an infinite loop) are well defined, if they are not marked as `willreturn`. This patch updates `wouldInstructionBeTriviallyDead` to not consider calls that may not return as dead. This patch still provides an escape hatch for intrinsics, which are still assumed as willreturn unconditionally. It will be removed once all intrinsics definitions have been reviewed and updated. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D94106
9 lines
227 B
LLVM
9 lines
227 B
LLVM
; RUN: opt < %s -instcombine -S | not grep call
|
|
; rdar://6880732
|
|
declare double @t1(i32) readonly willreturn
|
|
|
|
define void @t2() nounwind {
|
|
call double @t1(i32 42) ;; dead call even though callee is not nothrow.
|
|
ret void
|
|
}
|