summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/code_placement_eh.ll
blob: 172d5910d0316f5bd2943fbdd922881ab2c3cde5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
; RUN: llc < %s

; CodePlacementOpt shouldn't try to modify this loop because
; it involves EH edges.

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
target triple = "i386-apple-darwin10.0"

define void @foo() {
invcont5:
  br label %bb15

.noexc3:                                          ; preds = %bb15
  br i1 undef, label %bb18.i5.i, label %bb15

.noexc6.i.i:                                      ; preds = %bb18.i5.i
  %tmp2021 = invoke float @cosf(float 0.000000e+00) readonly
          to label %bb18.i5.i unwind label %lpad.i.i ; <float> [#uses=0]

bb18.i5.i:                                        ; preds = %.noexc6.i.i, %bb51.i
  %tmp2019 = invoke float @sinf(float 0.000000e+00) readonly
          to label %.noexc6.i.i unwind label %lpad.i.i ; <float> [#uses=0]

lpad.i.i:                                         ; preds = %bb18.i5.i, %.noexc6.i.i
  %eh_ptr.i.i = call i8* @llvm.eh.exception()     ; <i8*> [#uses=1]
  unreachable

lpad59.i:                                         ; preds = %bb15
  %eh_ptr60.i = call i8* @llvm.eh.exception()     ; <i8*> [#uses=1]
  unreachable

bb15:                                             ; preds = %.noexc3, %invcont5
  invoke fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev()
          to label %.noexc3 unwind label %lpad59.i
}

declare i8* @llvm.eh.exception() nounwind readonly

declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind

declare float @sinf(float) readonly

declare float @cosf(float) readonly

declare fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev() align 2