ThinLTOBitcodeWriter: Do not rewrite intrinsic functions when splitting modules.
Changing the type of an intrinsic may invalidate the IR. Differential Revision: https://reviews.llvm.org/D35593 llvm-svn: 308500
This commit is contained in:
parent
6531df41ae
commit
93fdaca5ac
|
@ -141,7 +141,9 @@ void simplifyExternals(Module &M) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!F.isDeclaration() || F.getFunctionType() == EmptyFT)
|
||||
if (!F.isDeclaration() || F.getFunctionType() == EmptyFT ||
|
||||
// Changing the type of an intrinsic may invalidate the IR.
|
||||
F.getName().startswith("llvm."))
|
||||
continue;
|
||||
|
||||
Function *NewF =
|
||||
|
|
|
@ -25,9 +25,13 @@ define i64 @ok1(i8* %this) {
|
|||
; M0: define i64 @ok2
|
||||
; M1: define available_externally i64 @ok2
|
||||
define i64 @ok2(i8* %this, i64 %arg) {
|
||||
%1 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %arg, i64 %arg)
|
||||
ret i64 %arg
|
||||
}
|
||||
|
||||
; M1: declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64)
|
||||
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64)
|
||||
|
||||
; M0: define void @wrongtype1
|
||||
; M1: declare void @wrongtype1()
|
||||
define void @wrongtype1(i8*) {
|
||||
|
|
Loading…
Reference in New Issue