comparison test/CodeGen/AArch64/br-to-eh-lpad.ll @ 95:afa8332a0e37 LLVM3.8

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 60c9769439b8
children
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
5 ; The test is brittle and isn't ideally reduced, because in most cases the 5 ; The test is brittle and isn't ideally reduced, because in most cases the
6 ; branch would be removed (for instance, turned into a fallthrough), and in 6 ; branch would be removed (for instance, turned into a fallthrough), and in
7 ; that case, the machine verifier, which relies on analyzing branches for this 7 ; that case, the machine verifier, which relies on analyzing branches for this
8 ; kind of verification, is unable to check anything, so accepts the CFG. 8 ; kind of verification, is unable to check anything, so accepts the CFG.
9 9
10 define void @test_branch_to_landingpad() { 10 define void @test_branch_to_landingpad() personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) {
11 entry: 11 entry:
12 br i1 undef, label %if.end50.thread, label %if.then6 12 br i1 undef, label %if.end50.thread, label %if.then6
13 13
14 lpad: 14 lpad:
15 %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) 15 %0 = landingpad { i8*, i32 }
16 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @"OBJC_EHTYPE_$_NSString" 16 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @"OBJC_EHTYPE_$_NSString"
17 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @OBJC_EHTYPE_id 17 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @OBJC_EHTYPE_id
18 catch i8* null 18 catch i8* null
19 br i1 undef, label %invoke.cont33, label %catch.fallthrough 19 br i1 undef, label %invoke.cont33, label %catch.fallthrough
20 20
28 28
29 invoke.cont7: 29 invoke.cont7:
30 unreachable 30 unreachable
31 31
32 if.end50.thread: 32 if.end50.thread:
33 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125) 33 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125)
34 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 128) 34 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 128)
35 unreachable 35 unreachable
36 36
37 invoke.cont33: 37 invoke.cont33:
38 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 119) 38 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 119)
39 unreachable 39 unreachable
40 40
41 invoke.cont41: 41 invoke.cont41:
42 invoke void @objc_exception_rethrow() 42 invoke void @objc_exception_rethrow()
43 to label %invoke.cont43 unwind label %lpad40 43 to label %invoke.cont43 unwind label %lpad40
44 44
45 invoke.cont43: 45 invoke.cont43:
46 unreachable 46 unreachable
47 47
48 lpad40: 48 lpad40:
49 %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) 49 %1 = landingpad { i8*, i32 }
50 catch i8* null 50 catch i8* null
51 br label %finally.catchall 51 br label %finally.catchall
52 52
53 finally.catchall: 53 finally.catchall:
54 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125) 54 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125)
55 unreachable 55 unreachable
56 } 56 }
57 57
58 %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765 = type { i8**, i8*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764* } 58 %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765 = type { i8**, i8*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764* }
59 %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764 = type { %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._objc_cache.0.117.182.273.338.481.507.520.559.585.611.754*, i8* (i8*, i8*)**, %struct._class_ro_t.9.126.191.282.347.490.516.529.568.594.620.763* } 59 %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764 = type { %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._objc_cache.0.117.182.273.338.481.507.520.559.585.611.754*, i8* (i8*, i8*)**, %struct._class_ro_t.9.126.191.282.347.490.516.529.568.594.620.763* }