{"type":"rich","url":"https://blog.kengo-toda.jp/entry/2013/04/06/174650","blog_title":"Kengo's blog","title":"How to implement Brainf*ck on LLVM IR","width":"100%","published":"2013-04-06 17:46:50","image_url":null,"author_name":"eller","categories":["llvm"],"provider_url":"https://hatena.blog","height":"190","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog.kengo-toda.jp%2Fentry%2F2013%2F04%2F06%2F174650\" title=\"How to implement Brainf*ck on LLVM IR - Kengo&#39;s blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","description":"I am still thinking... Brainf*ckLLVM IR > (incr pointer)load, add nsw, storephi < (decr pointer)load, sub nsw, storephi + (incr value)getelementptr, load, add nsw, store - (decr value)getelementptr, load, sub nsw, store . (output)call i32 @putchar(i32) , (input)call i32 @getchar() [ (while) br ] (wh\u2026","blog_url":"https://blog.kengo-toda.jp/","author_url":"https://blog.hatena.ne.jp/eller/","provider_name":"Hatena Blog"}