iOS应用程序安全

LLVM

2021-07-05  本文已影响0人  捡书

Mac安装llvm

➜ brew install llvm

软链接相应工具(未列出的可以自己去找一下):

➜ sudo ln -s /usr/local/Cellar/llvm/12.0.0_1/bin/opt /usr/local/bin/opt
➜ sudo ln -s /usr/local/Cellar/llvm/12.0.0_1/bin/llvm-as /usr/local/bin/llvm-as
➜ sudo ln -s /usr/local/Cellar/llvm/12.0.0_1/bin/llc /usr/local/bin/llc
➜ sudo ln -s /usr/local/Cellar/llvm/12.0.0_1/bin/llvm-dis /usr/local/bin/llvm-dis

C转LLVM IR

➜ cat test.c
int main() {
 int a = 1;
 int b = 2;
 return a+b;
}
➜ clang -emit-llvm -S test.c -o 1.ll
➜ cat 1.ll
; ModuleID = 'test.c'
source_filename = "test.c"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx11.0.0"
; Function Attrs: noinline nounwind optnone ssp uwtable
define i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  store i32 0, i32* %1, align 4
  store i32 1, i32* %2, align 4
  store i32 2, i32* %3, align 4
  %4 = load i32, i32* %2, align 4
  %5 = load i32, i32* %3, align 4
  %6 = add nsw i32 %4, %5
  ret i32 %6
}

attributes #0 = { noinline nounwind optnone ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "darwin-stkchk-strong-link" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "probe-stack"="___chkstk_darwin" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.module.flags = !{!0, !1, !2}
!llvm.ident = !{!3}

!0 = !{i32 2, !"SDK Version", [2 x i32] [i32 11, i32 1]}
!1 = !{i32 1, !"wchar_size", i32 4}
!2 = !{i32 7, !"PIC Level", i32 2}
!3 = !{!"Apple clang version 12.0.0 (clang-1200.0.32.29)"}

LLVM IR转bitcode

➜ llvm-as 1.ll -o 1.bc
➜ hexdump -C 1.bc
00000000  de c0 17 0b 00 00 00 00  14 00 00 00 68 09 00 00  |............h...|
00000010  07 00 00 01 42 43 c0 de  35 14 00 00 05 00 00 00  |....BC..5.......|
00000020  62 0c 30 24 4a 59 be 66  6d fb b4 4f 0b 51 80 4c  |b.0$JY.fm..O.Q.L|
00000030  01 00 00 00 21 0c 00 00  1e 02 00 00 0b 02 21 00  |....!.........!.|
00000040  02 00 00 00 16 00 00 00  07 81 23 91 41 c8 04 49  |..........#.A..I|
00000050  06 10 32 39 92 01 84 0c  25 05 08 19 1e 04 8b 62  |..29....%......b|
00000060  80 0c 45 02 42 92 0b 42  64 10 32 14 38 08 18 4b  |..E.B..Bd.2.8..K|
00000070  0a 32 32 88 48 70 c4 21  23 44 12 87 8c 10 41 92  |.22.Hp.!#D....A.|
00000080  02 64 c8 08 b1 14 20 43  46 88 20 c9 01 32 32 84  |.d.... CF. ..22.|
00000090  18 2a 28 2a 90 31 7c b0  5c 91 20 c3 c8 00 00 00  |.*(*.1|.\. .....|
000000a0  89 20 00 00 0b 00 00 00  32 22 c8 08 20 64 85 04  |. ......2".. d..|
000000b0  93 21 a4 84 04 93 21 e3  84 a1 90 14 12 4c 86 8c  |.!....!......L..|
000000c0  0b 84 64 4c 10 1c 73 04  60 50 02 50 06 02 52 00  |..dL..s.`P.P..R.|
000000d0  84 11 00 00 51 18 00 00  b6 00 00 00 1b fc 27 f8  |....Q.........'.|
000000e0  ff ff ff ff 01 70 00 09  28 03 40 03 c2 80 18 87  |.....p..(.@.....|
000000f0  77 90 07 79 28 87 71 a0  07 76 c8 87 36 90 87 77  |w..y(.q..v..6..w|
00000100  a8 07 77 20 87 72 20 87  36 20 87 74 b0 87 74 20  |..w .r .6 .t..t |
00000110  87 72 68 83 79 88 07 79  a0 87 36 30 07 78 68 83  |.rh.y..y..60.xh.|
00000120  76 08 07 7a 40 07 c0 1c  c2 81 1d e6 a1 1c 80 81  |v..z@...........|
00000130  1c c2 41 1e ee 21 1d dc  a1 0d e6 81 1e d6 61 1c  |..A..!........a.|
00000140  d0 61 1d da 60 1e e8 41  1e de c1 1d ce a1 0d d8  |.a..`..A........|
00000150  21 1d dc 61 1d 00 82 1c  d2 61 1e c2 41 1c d8 a1  |!..a.....a..A...|
00000160  1c da 80 1e c2 21 1d d8  a1 0d c6 21 1c d8 81 1d  |.....!.....!....|
00000170  e6 01 30 87 70 60 87 79  28 07 80 30 07 79 08 87  |..0.p`.y(..0.y..|
00000180  76 28 87 36 80 87 77 48  07 77 a0 87 72 90 07 20  |v(.6..wH.w..r.. |
00000190  1c d8 81 1d 00 82 1d ca  61 1e e6 a1 0d e0 41 1e  |........a.....A.|
000001a0  ca 61 1c d2 61 1e ca a1  0d cc 01 1e da 21 1c c8  |.a..a........!..|
000001b0  01 30 87 70 60 87 79 28  07 80 68 87 74 70 87 36  |.0.p`.y(..h.tp.6|
000001c0  60 87 72 38 87 70 60 87  36 b0 87 72 18 07 7a 78  |`.r8.p`.6..r..zx|
000001d0  07 79 68 83 7b 48 07 72  a0 07 74 00 e0 00 20 dc  |.yh.{H.r..t... .|
000001e0  e1 1d da 20 1d dc c1 1c  e6 a1 0d cc 01 1e da a0  |... ............|
000001f0  1d c2 81 1e d0 01 30 87  70 60 87 79 28 07 80 70  |......0.p`.y(..p|
00000200  87 77 68 03 75 a8 87 76  80 87 36 a0 87 70 10 07  |.wh.u..v..6..p..|
00000210  76 28 87 79 00 cc 21 1c  d8 61 1e ca 01 20 dc e1  |v(.y..!..a... ..|
00000220  1d da c0 1d c2 c1 1d e6  a1 0d cc 01 1e da a0 1d  |................|
00000230  c2 81 1e d0 01 30 87 70  60 87 79 28 07 80 70 87  |.....0.p`.y(..p.|
00000240  77 68 83 79 48 87 73 70  87 72 20 87 36 d0 87 72  |wh.yH.sp.r .6..r|
00000250  90 87 77 98 87 36 30 07  78 68 83 76 08 07 7a 40  |..w..60.xh.v..z@|
00000260  07 c0 1c c2 81 1d e6 a1  1c 00 c2 1d de a1 0d e8  |................|
00000270  41 1e c2 01 1e e0 21 1d  dc e1 1c da a0 1d c2 81  |A.....!.........|
00000280  1e d0 01 30 87 70 60 87  79 28 07 80 80 07 79 78  |...0.p`.y(....yx|
00000290  07 71 28 87 36 98 07 7a  08 87 71 58 07 e0 17 7e  |.q(.6..z..qX...~|
000002a0  e1 17 c6 01 1d d6 61 1e  e8 61 1d 7e 81 1c c2 41  |......a..a.~...A|
000002b0  1e ee 21 1d dc 01 20 e6  81 1e c2 61 1c d6 a1 0d  |..!... ....a....|
000002c0  e0 41 1e de 81 1e ca 61  1c e8 e1 1d e4 a1 0d c4  |.A.....a........|
000002d0  a1 1e cc c1 1c ca 41 1e  da 60 1e d2 41 1f ca 01  |......A..`..A...|
000002e0  c0 03 80 a0 87 70 90 87  73 28 07 7a 68 83 71 80  |.....p..s(.zh.q.|
000002f0  87 7a 00 e0 a1 1c dc 41  1e f2 c1 1d 00 82 1e c2  |.z.....A........|
00000300  41 1e ce a1 1c e8 a1 0d  cc a1 1c c2 81 1e ea 41  |A..............A|
00000310  1e ca 61 1e 80 35 18 07  7c 88 03 3b 60 83 35 18  |..a..5..|..;`.5.|
00000320  07 7c c0 03 36 58 03 73  c0 87 79 90 07 36 58 83  |.|..6X.s..y..6X.|
00000330  76 68 07 7c 60 83 35 98  87 70 40 07 73 60 83 35  |vh.|`.5..p@.s`.5|
00000340  98 87 79 28 07 36 58 83  79 98 87 72 90 03 36 58  |..y(.6X.y..r..6X|
00000350  83 79 98 87 72 98 03 36  58 83 79 98 87 72 a0 03  |.y..r..6X.y..r..|
00000360  37 88 03 36 58 83 79 98  87 79 28 87 39 60 83 35  |7..6X.y..y(.9`.5|
00000370  c0 07 3c b8 03 80 a8 07  77 98 87 70 30 87 72 68  |..<.....w..p0.rh|
00000380  03 73 80 87 36 68 87 70  a0 07 74 00 cc 21 1c d8  |.s..6h.p..t..!..|
00000390  61 1e ca 01 20 ea 61 1e  ca a1 0d e6 e1 1d cc 81  |a... .a.........|
000003a0  1e da c0 1c d8 e1 1d c2  81 1e 00 73 08 07 76 98  |...........s..v.|
000003b0  87 72 00 00 49 18 00 00  01 00 00 00 13 82 00 00  |.r..I...........|
000003c0  13 32 7c c0 03 3b f8 05  3b a0 83 36 08 07 78 80  |.2|..;..;..6..x.|
000003d0  07 76 28 87 36 68 87 70  18 87 77 98 07 7c 88 83  |.v(.6h.p..w..|..|
000003e0  38 70 03 38 70 03 38 d8  60 0a e5 d0 06 ed a0 07  |8p.8p.8.`.......|
000003f0  ef d0 06 f0 20 07 77 00  07 7a 30 07 72 a0 07 73  |.... .w..z0.r..s|
00000400  20 07 6d 00 0f 72 70 07  71 a0 07 73 20 07 7a 30  | .m..rp.q..s .z0|
00000410  07 72 d0 06 f0 20 07 77  20 07 7a 60 07 74 a0 07  |.r... .w .z`.t..|
00000420  76 40 07 6d 90 0e 76 40  07 7a 60 07 74 d0 06 e6  |v@.m..v@.z`.t...|
00000430  80 07 70 a0 07 71 20 07  78 d0 06 ee 80 07 7a 10  |..p..q .x.....z.|
00000440  07 76 a0 07 73 20 07 7a  60 07 74 d0 06 b3 10 07  |.v..s .z`.t.....|
00000450  72 80 07 1a 21 0c 69 4c  84 34 f9 c2 90 0a 20 02  |r...!.iL.4.... .|
00000460  00 00 02 00 00 00 00 00  00 00 00 00 02 90 d8 20  |............... |
00000470  50 54 44 00 00 20 0b 04  07 00 00 00 32 1e 98 0c  |PTD.. ......2...|
00000480  19 11 4c 90 8c 09 26 47  c6 04 43 42 11 10 c7 12  |..L...&G..CB....|
00000490  96 80 50 02 85 50 0e 00  b1 18 00 00 97 00 00 00  |..P..P..........|
000004a0  33 08 80 1c c4 e1 1c 66  14 01 3d 88 43 38 84 c3  |3......f..=.C8..|
000004b0  8c 42 80 07 79 78 07 73  98 71 0c e6 00 0f ed 10  |.B..yx.s.q......|
000004c0  0e f4 80 0e 33 0c 42 1e  c2 c1 1d ce a1 1c 66 30  |....3.B.......f0|
000004d0  05 3d 88 43 38 84 83 1b  cc 03 3d c8 43 3d 8c 03  |.=.C8.....=.C=..|
000004e0  3d cc 78 8c 74 70 07 7b  08 07 79 48 87 70 70 07  |=.x.tp.{..yH.pp.|
000004f0  7a 70 03 76 78 87 70 20  87 19 cc 11 0e ec 90 0e  |zp.vx.p ........|
00000500  e1 30 0f 6e 30 0f e3 f0  0e f0 50 0e 33 10 c4 1d  |.0.n0.....P.3...|
00000510  de 21 1c d8 21 1d c2 61  1e 66 30 89 3b bc 83 3b  |.!..!..a.f0.;..;|
00000520  d0 43 39 b4 03 3c bc 83  3c 84 03 3b cc f0 14 76  |.C9..<..<..;...v|
00000530  60 07 7b 68 07 37 68 87  72 68 07 37 80 87 70 90  |`.{h.7h.rh.7..p.|
00000540  87 70 60 07 76 28 07 76  f8 05 76 78 87 77 80 87  |.p`.v(.v..vx.w..|
00000550  5f 08 87 71 18 87 72 98  87 79 98 81 2c ee f0 0e  |_..q..r..y..,...|
00000560  ee e0 0e f5 c0 0e ec 30  03 62 c8 a1 1c e4 a1 1c  |.......0.b......|
00000570  cc a1 1c e4 a1 1c dc 61  1c ca 21 1c c4 81 1d ca  |.......a..!.....|
00000580  61 06 d6 90 43 39 c8 43  39 98 43 39 c8 43 39 b8  |a...C9.C9.C9.C9.|
00000590  c3 38 94 43 38 88 03 3b  94 c3 2f bc 83 3c fc 82  |.8.C8..;../..<..|
000005a0  3b d4 03 3b b0 c3 0c c7  69 87 70 58 87 72 70 83  |;..;....i.pX.rp.|
000005b0  74 68 07 78 60 87 74 18  87 74 a0 87 19 ce 53 0f  |th.x`.t..t....S.|
000005c0  ee 00 0f f2 50 0e e4 90  0e e3 40 0f e1 20 0e ec  |....P.....@.. ..|
000005d0  50 0e 33 20 28 1d dc c1  1e c2 41 1e d2 21 1c dc  |P.3 (.....A..!..|
000005e0  81 1e dc e0 1c e4 e1 1d  ea 01 1e 66 18 51 38 b0  |...........f.Q8.|
000005f0  43 3a 9c 83 3b cc 50 24  76 60 07 7b 68 07 37 60  |C:..;.P$v`.{h.7`|
00000600  87 77 78 07 78 98 51 4c  f4 90 0f f0 50 0e 33 1e  |.wx.x.QL....P.3.|
00000610  6a 1e ca 61 1c e8 21 1d  de c1 1d 7e 01 1e e4 a1  |j..a..!....~....|
00000620  1c cc 21 1d f0 61 06 54  85 83 38 cc c3 3b b0 43  |..!..a.T..8..;.C|
00000630  3d d0 43 39 fc c2 3c e4  43 3b 88 c3 3b b0 c3 8c  |=.C9..<.C;..;...|
00000640  c5 0a 87 79 98 87 77 18  87 74 08 07 7a 28 07 72  |...y..w..t..z(.r|
00000650  98 81 5c e3 10 0e ec c0  0e e5 50 0e f3 30 23 c1  |..\.......P..0#.|
00000660  d2 41 1e e4 e1 17 d8 e1  1d de 01 1e 66 48 19 3b  |.A..........fH.;|
00000670  b0 83 3d b4 83 1b 84 c3  38 8c 43 39 cc c3 3c b8  |..=.....8.C9..<.|
00000680  c1 39 c8 c3 3b d4 03 3c  cc 48 b4 71 08 07 76 60  |.9..;..<.H.q..v`|
00000690  07 71 08 87 71 58 87 19  db c6 0e ec 60 0f ed e0  |.q..qX......`...|
000006a0  06 f0 20 0f e5 30 0f e5  20 0f f6 50 0e 6e 10 0e  |.. ..0.. ..P.n..|
000006b0  e3 30 0e e5 30 0f f3 e0  06 e9 e0 0e e4 50 0e f8  |.0..0........P..|
000006c0  30 23 e2 ec 61 1c c2 81  1d d8 e1 17 ec 21 1d e6  |0#..a........!..|
000006d0  21 1d c4 21 1d d8 21 1d  e8 21 1f 66 20 9d 3b bc  |!..!..!..!.f .;.|
000006e0  43 3d b8 03 39 94 83 39  cc 58 bc 70 70 07 77 78  |C=..9..9.X.pp.wx|
000006f0  07 7a 08 07 7a 48 87 77  70 07 00 00 79 20 00 00  |.z..zH.wp...y ..|
00000700  31 00 00 00 72 1e 48 20  43 88 0c 19 09 72 32 48  |1...r.H C....r2H|
00000710  20 23 81 8c 91 91 d1 44  a0 10 28 64 3c 31 32 42  | #.....D..(d<12B|
00000720  8e 90 21 a3 48 10 b1 00  8b 92 bc 01 53 44 4b 20  |..!.H.......SDK |
00000730  56 65 72 73 69 6f 6e 77  63 68 61 72 5f 73 69 7a  |Versionwchar_siz|
00000740  65 50 49 43 20 4c 65 76  65 6c 41 70 70 6c 65 20  |ePIC LevelApple |
00000750  63 6c 61 6e 67 20 76 65  72 73 69 6f 6e 20 31 32  |clang version 12|
00000760  2e 30 2e 30 20 28 63 6c  61 6e 67 2d 31 32 30 30  |.0.0 (clang-1200|
00000770  2e 30 2e 33 32 2e 32 39  29 00 00 00 23 08 40 30  |.0.32.29)...#.@0|
00000780  82 40 08 23 08 c0 30 82  00 10 23 08 40 31 c3 50  |.@.#..0...#.@1.P|
00000790  04 c6 0c c3 21 20 33 0c  c9 50 cc 10 10 32 12 98  |....! 3..P...2..|
000007a0  a0 8c d8 d8 ec da 5c da  de c8 ea d8 ca 5c cc d8  |......\......\..|
000007b0  c2 ce e6 46 19 12 65 49  85 8d cd ae cd 25 8d ac  |...F..eI.....%..|
000007c0  cc 8d 6e 94 80 01 00 00  a9 18 00 00 19 00 00 00  |..n.............|
000007d0  0b 0a 72 28 87 77 80 07  7a 58 70 98 43 3d b8 c3  |..r(.w..zXp.C=..|
000007e0  38 b0 43 39 d0 c3 82 e6  1c c6 a1 0d e8 41 1e c2  |8.C9.........A..|
000007f0  c1 1d e6 21 1d e8 21 1d  de c1 1d 16 34 e3 60 0e  |...!..!.....4.`.|
00000800  e7 50 0f e1 20 0f e4 40  0f e1 20 0f e7 50 0e f4  |.P.. ..@.. ..P..|
00000810  b0 80 81 07 79 28 87 70  60 07 76 78 87 71 08 07  |....y(.p`.vx.q..|
00000820  7a 28 07 72 58 70 9c c3  38 b4 01 3b a4 83 3d 94  |z(.rXp..8..;..=.|
00000830  03 00 00 00 d1 10 00 00  06 00 00 00 07 cc 3c a4  |..............<.|
00000840  83 3b 9c 03 3b 94 03 3d  a0 83 3c 94 43 38 90 c3  |.;..;..=..<.C8..|
00000850  01 00 00 00 61 20 00 00  10 00 00 00 13 04 41 2c  |....a ........A,|
00000860  10 00 00 00 01 00 00 00  84 11 00 00 33 11 00 30  |............3..0|
00000870  8c c2 4c 04 00 0c a3 30  13 01 00 c3 28 0c 1b 10  |..L....0....(...|
00000880  03 31 00 c3 06 84 70 0c  c0 b0 01 11 24 03 40 02  |.1....p.....$.@.|
00000890  06 09 18 28 04 20 b0 01  00 00 00 00 71 20 00 00  |...(. ......q ..|
000008a0  03 00 00 00 32 0e 10 22  84 00 90 04 00 00 00 00  |....2.."........|
000008b0  00 00 00 00 65 0c 00 00  1f 00 00 00 12 03 94 f0  |....e...........|
000008c0  00 00 00 00 02 00 00 00  04 00 00 00 06 00 00 00  |................|
000008d0  4c 00 00 00 01 00 00 00  58 00 00 00 00 00 00 00  |L.......X.......|
000008e0  58 00 00 00 01 00 00 00  70 00 00 00 00 00 00 00  |X.......p.......|
000008f0  0a 00 00 00 19 00 00 00  23 00 00 00 06 00 00 00  |........#.......|
00000900  04 00 00 00 00 00 00 00  70 00 00 00 00 00 00 00  |........p.......|
00000910  00 00 00 00 01 00 00 00  00 00 00 00 29 00 00 00  |............)...|
00000920  05 00 00 00 00 00 00 00  04 00 00 00 ff ff ff ff  |................|
00000930  00 24 00 00 00 00 00 00  5d 0c 00 00 0f 00 00 00  |.$......].......|
00000940  12 03 94 6e 00 00 00 00  6d 61 69 6e 31 32 2e 30  |...n....main12.0|
00000950  2e 30 78 38 36 5f 36 34  2d 61 70 70 6c 65 2d 6d  |.0x86_64-apple-m|
00000960  61 63 6f 73 78 31 31 2e  30 2e 30 74 65 73 74 2e  |acosx11.0.0test.|
00000970  63 5f 6d 61 69 6e 00 00  00 00 00 00 00 00 00 00  |c_main..........|
00000980

bitcode转为目标平台汇编

➜ llc 1.bc -o 1.s
➜ cat 1.s
    .section    __TEXT,__text,regular,pure_instructions
    .build_version macos, 11, 0 sdk_version 11, 1
    .globl  _main                           ## -- Begin function main
    .p2align    4, 0x90
_main:                                  ## @main
    .cfi_startproc
## %bb.0:
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset %rbp, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register %rbp
    subq    $12, %rsp
    movl    $0, -12(%rbp)
    movl    $1, -8(%rbp)
    movl    $2, -4(%rbp)
    movl    -8(%rbp), %eax
    addl    -4(%rbp), %eax
    addq    $12, %rsp
    popq    %rbp
    retq
    .cfi_endproc
                                        ## -- End function
.subsections_via_symbols

也可以使用clang:

➜ clang -S 1.bc -o 1.s -fomit-frame-pointer
➜ cat 1.s
    .section    __TEXT,__text,regular,pure_instructions
    .build_version macos, 11, 0 sdk_version 11, 1
    .globl  _main                   ## -- Begin function main
    .p2align    4, 0x90
_main:                                  ## @main
    .cfi_startproc
## %bb.0:
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset %rbp, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register %rbp
    movl    $0, -4(%rbp)
    movl    $1, -8(%rbp)
    movl    $2, -12(%rbp)
    movl    -8(%rbp), %eax
    addl    -12(%rbp), %eax
    popq    %rbp
    retq
    .cfi_endproc
                                        ## -- End function
.subsections_via_symbols

bitcode转为LLVM IR

➜ llvm-dis 1.bc -o 1.ll
➜ cat 1.ll
; ModuleID = '1.bc'
source_filename = "test.c"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx11.0.0"

; Function Attrs: noinline nounwind optnone ssp uwtable
define i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  store i32 0, i32* %1, align 4
  store i32 1, i32* %2, align 4
  store i32 2, i32* %3, align 4
  %4 = load i32, i32* %2, align 4
  %5 = load i32, i32* %3, align 4
  %6 = add nsw i32 %4, %5
  ret i32 %6
}

attributes #0 = { noinline nounwind optnone ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "darwin-stkchk-strong-link" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "probe-stack"="___chkstk_darwin" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.module.flags = !{!0, !1, !2}
!llvm.ident = !{!3}

!0 = !{i32 2, !"SDK Version", [2 x i32] [i32 11, i32 1]}
!1 = !{i32 1, !"wchar_size", i32 4}
!2 = !{i32 7, !"PIC Level", i32 2}
!3 = !{!"Apple clang version 12.0.0 (clang-1200.0.32.29)"}
上一篇下一篇

猜你喜欢

热点阅读