mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	The CallGraphNode function "addCalledFunction()" asserts that edges are not to intrinsics. This patch makes sure that the Inliner does not add such an edge to the callgraph. Fix for clang crash by assertion: https://llvm.org/bugs/show_bug.cgi?id=22857 Differential Revision: http://reviews.llvm.org/D8231 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231927 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			31 lines
		
	
	
		
			705 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			705 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; RUN: opt < %s -inline -instcombine -S | FileCheck %s
 | 
						|
 | 
						|
; PR22857: http://llvm.org/bugs/show_bug.cgi?id=22857
 | 
						|
; The inliner should not add an edge to an intrinsic and
 | 
						|
; then assert that it did not add an edge to an intrinsic!
 | 
						|
 | 
						|
define float @foo(float %f1) #0 {
 | 
						|
  %call = call float @bar(float %f1)
 | 
						|
  ret float %call
 | 
						|
 | 
						|
; CHECK-LABEL: @foo(
 | 
						|
; CHECK-NEXT: call float @llvm.fabs.f32
 | 
						|
; CHECK-NEXT: ret float
 | 
						|
}
 | 
						|
 | 
						|
define float @bar(float %f1) #0 {
 | 
						|
  %call = call float @sqr(float %f1)
 | 
						|
  %call1 = call float @sqrtf(float %call) #0
 | 
						|
  ret float %call1
 | 
						|
}
 | 
						|
 | 
						|
define float @sqr(float %f) #0 {
 | 
						|
  %mul = fmul fast float %f, %f
 | 
						|
  ret float %mul
 | 
						|
}
 | 
						|
 | 
						|
declare float @sqrtf(float) #0
 | 
						|
 | 
						|
attributes #0 = { "unsafe-fp-math"="true" }
 | 
						|
 |