{"id":13116,"date":"2016-03-21T10:35:55","date_gmt":"2016-03-21T01:35:55","guid":{"rendered":"http:\/\/kako.com\/blog\/?p=13116"},"modified":"2016-03-21T10:35:55","modified_gmt":"2016-03-21T01:35:55","slug":"llvm-irllvm%e4%b8%ad%e9%96%93%e3%82%b3%e3%83%bc%e3%83%89%e7%94%a8%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%a9%e3%81%ae%e4%bd%9c%e3%82%8a%e6%96%b9-%e3%81%9d%e3%81%ae11","status":"publish","type":"post","link":"http:\/\/kako.com\/blog\/?p=13116","title":{"rendered":"LLVM-IR(LLVM\u4e2d\u9593\u30b3\u30fc\u30c9)\u7528\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u4f5c\u308a\u65b9 \u305d\u306e11"},"content":{"rendered":"<p><a href=\"http:\/\/kako.com\/blog\/?p=12982\">\u524d\u56de\u306e\u7d9a\u304d<\/a><\/p>\n<p>\u914d\u5217\u5909\u6570\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u3001\u66f8\u304f\u306e\u3092\u5fd8\u308c\u3066\u3044\u305f\u3002<\/p>\n<p>10 DIM A(10)<br \/>\n\u307f\u305f\u3044\u306bTinyBasic\u3067\u914d\u5217\u5ba3\u8a00\u3092\u3057\u305f\u3068\u304d\u306b\u3001LLVM-IR\u3067\u305d\u308c\u306b\u5bfe\u5fdc\u3057\u305f\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3059\u308b\u3002<br \/>\n\u901a\u5e38\u306e\u5909\u6570\u306e\u5834\u5408\u306f\u3001\u6700\u521d\u306b\u51fa\u73fe\u3057\u305f\u6642\u306b\u751f\u6210\u3059\u308b\u306e\u3060\u304c\u3001\u914d\u5217\u306fDIM\u6587\u3067\u5ba3\u8a00\u304c\u5fc5\u8981\u3068\u3044\u3046\u4ed5\u69d8\u3060\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  %_A0 = alloca [11 x i32], align 4\r\n<\/pre>\n<p>\u3068\u3044\u3046\u3088\u3046\u306b11\u500b\u306e32bit\u6574\u6570\u306e\u30e1\u30e2\u30ea\u7a7a\u9593\u3092\u5272\u308a\u5f53\u3066\u308b\u3002<br \/>\n10\u500b\u3067\u7121\u3044\u306e\u306f\u3001A(0)\uff5eA(10)\u307e\u306711\u500b\u3060\u304b\u3089\u3060\u3002<br \/>\n<!--more--><\/p>\n<p>20 A(1)=2<br \/>\n\u306e\u3088\u3046\u306a\u4ee3\u5165\u6587\u306f\u3001<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  store i32 1 , i32* %acc, align 4\r\n  %1 = load i32* %acc, align 4\r\n  store i32 2 , i32* %acc, align 4\r\n  %2 = load i32* %acc, align 4\r\n  %3 = getelementptr inbounds [11 x i32]* %_A0, i32 0, i32 %1\r\n  store i32 %2, i32 * %3, align 4\r\n<\/pre>\n<p>\u3068\u3001\u3053\u306e\u3088\u3046\u306bgetelementptr\u3092\u4f7f\u3046\u3002<\/p>\n<p>30 PRINT A(1)+A(2)+A(3)<br \/>\n\u306e\u5834\u5408\u306f\u3001<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  store i32 1 , i32* %acc, align 4\r\n  %10 = load i32* %acc, align 4\r\n  %11 = getelementptr inbounds [11 x i32]* %_A0, i32 0, i32 %10\r\n  %12 = load i32* %11, align 4\r\n  store i32 %12, i32* %acc\r\n  %13 = load i32* %acc, align 4\r\n  store i32 2 , i32* %acc, align 4\r\n  %14 = load i32* %acc, align 4\r\n  %15 = getelementptr inbounds [11 x i32]* %_A0, i32 0, i32 %14\r\n  %16 = load i32* %15, align 4\r\n  store i32 %16, i32* %acc\r\n  %17 = load i32* %acc, align 4\r\n  %18 = add nsw i32 %13, %17\r\n  store i32 %18, i32* %acc\r\n  %19 = load i32* %acc, align 4\r\n  store i32 3 , i32* %acc, align 4\r\n  %20 = load i32* %acc, align 4\r\n  %21 = getelementptr inbounds [11 x i32]* %_A0, i32 0, i32 %20\r\n  %22 = load i32* %21, align 4\r\n  store i32 %22, i32* %acc\r\n  %23 = load i32* %acc, align 4\r\n  %24 = add nsw i32 %19, %23\r\n  store i32 %24, i32* %acc\r\n  %25 = load i32* %acc, align 4\r\n  %26 = call i32(i8*,...)* @printf(i8* getelementptr inbounds([4 x i8]* @.1, i32 0, i32 0), i32 %25) nounwind\r\n<\/pre>\n<p>\u3068\u306a\u308b\u3002<\/p>\n<p>\u3053\u308c\u3067\u3082\u3046\u4e00\u901a\u308aTinyBasic\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u30b3\u30fc\u30c9\u751f\u6210\u306e\u4e2d\u8eab\u306e\u89e3\u8aac\u306f\u7d42\u4e86\u3057\u3066\u3057\u307e\u3063\u305f\u304b\u306a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u56de\u306e\u7d9a\u304d \u914d\u5217\u5909\u6570\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u3001\u66f8\u304f\u306e\u3092\u5fd8\u308c\u3066\u3044\u305f\u3002 10 DIM A(10) \u307f\u305f\u3044\u306bTinyBasic\u3067\u914d\u5217\u5ba3\u8a00\u3092\u3057\u305f\u3068\u304d\u306b\u3001LLVM-IR\u3067\u305d\u308c\u306b\u5bfe\u5fdc\u3057\u305f\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3059\u308b\u3002 \u901a\u5e38\u306e\u5909\u6570\u306e\u5834\u5408\u306f\u3001\u6700\u521d\u306b\u51fa\u73fe\u3057\u305f\u6642 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"tags":[],"_links":{"self":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/13116"}],"collection":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13116"}],"version-history":[{"count":1,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/13116\/revisions"}],"predecessor-version":[{"id":13117,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/13116\/revisions\/13117"}],"wp:attachment":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13116"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}