並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 58件

新着順 人気順

LLVMの検索結果1 - 40 件 / 58件

  • 「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人”

    Blue Whale Systems株式会社の植山類氏は、「LLVM lld」「mold」が解決したプログラムのビルドの問題を例に、“大きな問題”を解決することについて話しました。全3回。 1個の本質的な問題を解いてしまうほうが細かいことを考えるよりも簡単 植山類氏:では始めます。本日、機会をいただいて講演をすることになった植山と申します。この講演の内容は「大きな問題のほうが小さな問題より解くのは簡単だ」というタイトルです。 どういう趣旨かというと、常に簡単だというわけではないのですが、いろいろな場面で、1個の本質的な問題をドッカンと解いてしまうほうが、いろいろな細かいことを考えるよりも簡単なことが多いという話です。 そういうソリューションが往々にして見逃されがちということがけっこうあって、そういうことにどうやって挑戦していくのかという気持ちの話を、僕がそういう大きな問題を解決した経験を踏

      「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人”
    • LLVM入門 - javascript使いがLLVM(Rust:inkwell)でjavascriptをJITコンパイルするまで

      コンパイラ基盤であるLLVMについて、全く知識がない私が、 javascriptソースコードをパースしLLVMでコンパイルできるようになりました。 LLVMの記事は数多くありますが、初心者向けの記事が少なく感じたため、 本記事では、できる限り分かりやすくLLVMについて紹介できる記事を書こうと思います。 ソースコードは、こちらに置いています。 自己紹介 ふだん、javascriptやpythonなどインタプリタ言語を使うエンジニアです。 LLVMについて、全く知識がなかった人間です。 背景 過去に、おもちゃのブラウザ自作をやってみました。 HTMLとCSSを解析し、レンダリングするところを書き、基本的な動作を知ることができました。 HTMLとCSSとくれば、次はJSだと思い、JSを実行するエンジンを書いてみたくなりました。 ただし、WebブラウザのAPIとJS実行エンジンをバインディングす

        LLVM入門 - javascript使いがLLVM(Rust:inkwell)でjavascriptをJITコンパイルするまで
      • 【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog

        はじめに 弊社Flatt Securityでは学生の学びを支援したいという想いから今回少額ではありますが高橋さんの留学を支援させていただき、そのご縁で弊社のYONEUCHI, Takashi (@lmt_swallow) | Twitterもスタッフを務めるセキュリティミニキャンプにおける素晴らしい講義の内容をテックブログに書いていただけることになりました。以下本文になります。 @00_ です。今年の夏のUC Berkeleyへの留学費用をFlatt Securityさんに支援して頂いた経緯で、セキュリティミニキャンプの講義内容についてテックブログで書くことになりました。 2019/09/28-2019/09/29 のセキュリティミニキャンプ山梨で「ミニキャン言語を作ってみよう!」の講座を行いました。この講座では、「ミニキャン言語(MC言語)」という独自言語のコンパイラを、自分がコミッタで

          【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog
        • Rust + LLVMでプログラミング言語を自作してセルフホスティングした話

          llrlは自作のプログラミング言語です。大きな特徴が2つあります。 Hindley-Milnerベースの型推論による静的型付け (+型クラス) Lisp-likeなS式によるシンタックスとLLVM JITによるマクロ この言語の処理系をRustとLLVMを用いて実装し、それをllrl上に移植してセルフホスティングを試みました。無事セルフホスティングを達成したので、取り組んだことやモチベーションなどを順に振り返りたいと思います。 LLVMについては、フロントエンド側・バックエンド側ともに既にいくらかの解説記事が見られるため、概要は省略します。今回は新たなプログラミング言語のバックエンドとしてLLVMを用いるので、LLVMのフロントエンド側の実装がメインとなります。 事の発端: LLVM Kaleidoscopeチュートリアル Kaleidoscopeは、LLVMのチュートリアルにおいて実装す

            Rust + LLVMでプログラミング言語を自作してセルフホスティングした話
          • 「RISC-V+LLVM本 付録2. 浮動小数点命令」を無償公開しました - FPGA開発日記

            「作って学ぶコンピュータアーキテクチャ」では、執筆時点ですでに500ページを超えてしまい、泣く泣く2章分を削除しています。 1つ目の付録である「付録1. 関数呼び出しのバリエーションと高度な機能」についてはすでに公開済みですが、もう一つの「付録2. 浮動小数点命令」についても公開しました。 こちらは、LLVMに浮動小数点命令を追加し、いくつかのアプリケーションを動かそうというものです。 github.com この章は、本当は基本的な演算や機能の実装後に挿入したかった章で、以下の範囲をカバーしています。 この章は割と頑張ったもので、浮動小数点の説明から、実装、さらにアプリケーションを2つ実装しています。 後半のレイトレーシングはかなり頑張った部分で、最後に画像が正しく出力されたときは若干感動しました。 こちらも、担当編集の方の校正が入っていないので怪しい文章やもしかしたら誤った情報が入ってい

              「RISC-V+LLVM本 付録2. 浮動小数点命令」を無償公開しました - FPGA開発日記
            • A Complete Guide to LLVM for Programming Language Creators

              Update: this post has now taken off on Hacker News and Reddit. Thank you all! Who’s this tutorial for?This series of compiler tutorials is for people who don’t just want to create a toy language. You want objects. You want polymorphism. You want concurrency. You want garbage collection. Wait you don’t want GC? Okay, no worries, we won’t do that :P If you’ve just joined the series at this stage, he

                A Complete Guide to LLVM for Programming Language Creators
              • RustのLLVMに関する問題 - 日記

                概要 dereferenceable_globally NonZeroUXXのLower 空無限ループ 終わりに 概要 この記事はRust Advent Calendar 2019の12日目の記事として書かれました。 qiita.com 遅刻してしまった...すいません(最悪)。 言わずもがなRustはLLVMをバックエンドに持つ言語です。 なのでバグがLLVMの最適化のせいだったりします。有名な例はnoaliasとか無限ループとかです。この辺りは定期的(2ヶ月一回くらい?)にTwitterとかで話題になりますね。またRustでの強い制約がLLVMにおける意味とのギャップで弱く表現せざるを得なかったりもします。そんな感じのこと少しだけ掘り下げて、RustのIssueとかLLVMのPhabricatorから幾つかまとめてみます。怪しいこと言ってたら教えて下さい。 dereferenceabl

                  RustのLLVMに関する問題 - 日記
                • LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記

                  MLIRについてもう少し具体的な例を勉強するために、資料を読み込んでいくことにした。 以下の資料を参考にした。Chris Lattnerの所属がSiFiveに変わっているので、比較的最近の資料だ。 docs.google.com MLIRはMulti-Level Intermediate Representation Compiler Ifrastructureの略称である。 2004にLLVMを開発したときの想定構成。1つのIRを用意してすべてを解決する。マルチターゲット、解析、最適化など。 ところがこれだけでは上手く行かなくなった。LLVM-IRだけでなく複数の表現形式を使用する必要がある。現在のLLVM IRでは並列性やループなどの表現形式に問題がある。 Clangも同様。LLVM IRを出力するだけでなく、様々なアノテーションを出力する必要が生じたり、もはやC++の複雑な言語構文を

                    LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
                  • Rust + PEG + LLVM で電卓を作る - Qiita

                    言語書いてる人すごいな〜かっけな〜って思ったので、ちょっとした処理系を書いてみたくてやってみた。 主にWebやアプリを開発している人がやってみたので、処理系をやったことなくても、読みやすいと思う。 ※ ちょっと前に書いたRustのコードなので書き方がふるくなってるかも?? ソースコード https://github.com/anharu2394/rust-llvm-calculator 使ったライブラリ rust-PEG 知識がなくても、とりあえず簡単に構文が作れる。 inkwell LLVMのラッパー。安全にラップしたらしい。 詳しくないので勧められたから使った。 計算機の処理の流れ のちに詳しく説明する。 パース(文字列→AST) ↓ ASTをたどってLLVM IRに変換(AST->LLVM IR) ↓ (LLVM IRの関数を)実行する パース 上の通り、PEGというライブラリに任せ

                      Rust + PEG + LLVM で電卓を作る - Qiita
                    • GitHub - exaloop/codon: A high-performance, zero-overhead, extensible Python compiler using LLVM

                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                        GitHub - exaloop/codon: A high-performance, zero-overhead, extensible Python compiler using LLVM
                      • GitHub - google/llvm-propeller: PROPELLER: Profile Guided Optimizing Large Scale LLVM-based Relinker

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          GitHub - google/llvm-propeller: PROPELLER: Profile Guided Optimizing Large Scale LLVM-based Relinker
                        • My First Language Frontend with LLVM Tutorial — LLVM 20.0.0git documentation

                          Requirements: This tutorial assumes you know C++, but no previous compiler experience is necessary. Welcome to the “My First Language Frontend with LLVM” tutorial. Here we run through the implementation of a simple language, showing how fun and easy it can be. This tutorial will get you up and running fast and show a concrete example of something that uses LLVM to generate code. This tutorial intr

                          • LLVM の Kaleidoscope を育てながら作る - Qiita

                            この記事は言語実装 Advent Calendar 2020 3日目の記事です。前回は sisshiki1969 さんの「ruruby: RustでつくっているRuby」、次回は yharaさんの「Shiika進捗」です。 趣旨 LLVM を使って小さな言語を実装してみます。 方針としては、最小限の機能の言語から出発して動くものを少しづつ大きくしていきます。ゴールは LLVM 公式のチュートリアルである Kaleidoscope の序盤相当の部分で、次のプログラムが動くことを目標とします。 def fib(n) if n < 3 then 1 else fib(n-1) + fib(n-2); fib(10) #=> 55 想定する読者 LLVM や LLVM IR がどういうものか何となく知っている Haskell がなんとなく分かる ただしコードにはコメントを入れて、LLVM IR や

                              LLVM の Kaleidoscope を育てながら作る - Qiita
                            • RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary

                              この記事は、Rustその2 Advent Calendar 2019の22日目の記事です。 はじめに Rustのコンパイラは内部でLLVMを利用しています。 LLVMとはいわゆるコンパイラ基盤というもので、Rustのコンパイル側でLLVMの中間コード(IR)まで生成できたら、あとはLLVM側が最適化や実行ファイルの作成までを行ってくれます。 Rust Blogの記事「Introducing MIR」の中にある画像が大変わかりやすいので、そちらを引用させていただきます。 ビルドの流れ このコンパイラ基盤の視点から言うと、Rustコンパイラはフロントエンド、LLVM側はバックエンドという位置づけです。 LLVMが様々な環境で動くプログラムを生成できるからこそ、Rustも多くの環境で動くプログラムを比較的容易に生成できるわけです。 プログラムの最適化技術についても、LLVM側でそのノウハウを洗練

                                RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary
                              • LLVMベースのPython実装で10~100倍の高速化を実現する、Codon 0.17 がリリース

                                8月26日、Codonプロジェクトは新たなPython実装であるCodon 0.17をリリースした。 CodonはLLVMコンパイラインフラストラクチャを活用し、Pythonコードをネイティブマシンコードにコンパイルすることで、従来のPythonよりも10〜100倍の高速化を目指すオープンソースプロジェクトである。GitHubでも14,000以上のスターを獲得しており、開発者たちからの注目度の高さが伺える。 Codonは、Pythonコードのランタイムオーバーヘッドを回避し、C/C++のパフォーマンスに匹敵する速度を目指している。また、ネイティブのマルチスレッド処理をサポートしており、さらに高いパフォーマンスを引き出すことができる。 今回のバージョン0.17では、LLVM 17コンパイラを基盤とし、新たにfloat16、bfloat16、float128といった浮動小数点型のサポートが追加

                                  LLVMベースのPython実装で10~100倍の高速化を実現する、Codon 0.17 がリリース
                                • Windows 10で始めるC言語開発(1) Windows 10でC言語開発をしよう!LLVM/Clangで行く

                                  TIOBE Programming Community Index (2021年4月4日) 資料: TIOBE Software 増加傾向を続けているのはPythonだ。使われる分野も多岐にわたる。学習が比較的容易で必要とされる産業が多いということは、それだけ就職口があるということも意味している。この言語に人気が出るのは当然だ。 長期にわたって減少傾向にあるものの、Javaにも根強いシェアがある。Javaは既に企業システムの基幹部分で使われているなど、ビジネスにおいて欠かすことができない言語だ。新規開発に加えて、Javaで開発したシステムのメンテナンスや改修といったニーズもある。これも就職先が多いプログラミング言語だ。 そして現在、TIOBE Programming Community Indexの1位はC言語だ。もともとC言語は人気1位だったが、Javaの登場以降は2位に甘んじていた。し

                                    Windows 10で始めるC言語開発(1) Windows 10でC言語開発をしよう!LLVM/Clangで行く
                                  • Modular: Mojo 🔥 - A systems programming language presented at LLVM 2023

                                    Mojo 🔥 - A systems programming language presented at LLVM 2023

                                      Modular: Mojo 🔥 - A systems programming language presented at LLVM 2023
                                    • Haskell+LLVM構成で作る自作コンパイラ - Qiita

                                      Haskellのパーサコンビネータmegaparsecと、コンパイラ基盤であるLLVMを使って、コンパイラを作ってみます。モチベーションとしてはコンパイラはC/C++を使って作るのが定番ですが、型の恩恵を受けながら開発したいなあということでHaskellでも作れないか調べてみました。 コンパイラ作成の流れ パーサコンビネータのMegaparsecで四則演算のパーサを作成します。 LLVM IR構築のライブラリであるllvm-hs-pureでLLVM IRのコードへ変換するコンパイラを作成します。 簡単な式をコンパイルしてLLVMのインタープリタlliで実行します。 LLVMのコンパイラllcでアセンブラを生成してgccでバイナリまで生成します。 環境 あらかじめ以下をインストールしておいてください。 stack 1.9.3 Haskell 8.6.5 LLVM 9.0.0 コマンドラインで

                                        Haskell+LLVM構成で作る自作コンパイラ - Qiita
                                      • LLVMやるならgodbolt - Software Transactional Memo

                                        この記事は pyspa advent calendar 2023の11日目の記事です。 godboltをご存知だろうか。 godbolt.org ブラウザから誰でもアクセスできる無料サービスでコンパイラの挙動について学ぶ事ができる。 例えば簡単に「渡された数Nに対し1+2+....+Nを返す関数sum」を例にすると こんな感じにコンパイル結果のアセンブリを表示してくれる。 アセンブリはマウスカーソルを置くとそれが元のコードのどの場所に対応したものなのかを逐一ハイライト表示してくれる。この機能を実現するために必要な労力は並では無いと思うが詳細はわからない。アセンブリ側も複数色あるのは元のコードの1行が同じ背景色のブロックになった事を表している。 これがすごいのはコンパイラの選択肢の豊富さである。gccはもちろんのことclang, zig c++, msvc, nvc++(なにそれ?), el

                                          LLVMやるならgodbolt - Software Transactional Memo
                                        • 手を動かせばできるLLVMバックエンド チュートリアル

                                          AsciiDocのコメントを用いて文中にFIXMEを仕込む。 その他のFIXME(全般的なものなど)をここにリストにする。

                                          • Blog: LLVM's 'RFC: C++ Buffer Hardening' at Google

                                            In this blog post, we're sharing how we evaluated LLVM's proposed approach at Google, outlining our initial conclusions from this process, sharing useful adoption tips, and pointing to the next steps we plan to take on this journey.

                                              Blog: LLVM's 'RFC: C++ Buffer Hardening' at Google
                                            • A Non-GNU Linux Distribution Built With LLVM & BSD Software Aims For Alpha Next Month - Phoronix

                                              A Non-GNU Linux Distribution Built With LLVM & BSD Software Aims For Alpha Next Month Written by Michael Larabel in Operating Systems on 6 February 2023 at 06:25 AM EST. 88 Comments In development now for nearly two years is Chimera Linux as a "non-GNU" Linux distribution built with the LLVM Clang compiler, leveraging musl libc, and commonly relying on BSD user-space software components. After a l

                                                A Non-GNU Linux Distribution Built With LLVM & BSD Software Aims For Alpha Next Month - Phoronix
                                              • Rust+LLVMでおもちゃ言語を作ったお話 - Qiita

                                                初日の記事で紹介されてる (今年度の生徒たちのコンテスト成果 一番上) JPNYKWです. 今回は自作言語もRustもLLVMも何もかも初めての 超絶初心者 である私が, 1ヶ月間学びながら簡単な自作言語に挑戦したので, これまでどのように学び開発をして行ったかを綴ろうと思います. また, 知識も無いので高度な内容は書けません, ご了承ください. 間違いもあると思いますので, 指摘していただけると助かります. ※偶然にも @Garnet3106 さんの 19日目の記事 と自作言語ネタが被りました 言語紹介 おもちゃ言語と呼んでいます. 高度な機能はありませんし, 未完成です. 期待はしないでください (重要) 言語名は plat と言います. 意味は playthings の省略です. 構文紹介 最初に, この言語の構文を簡単に紹介します. 基本的には LLVM Tutorial で開発し

                                                  Rust+LLVMでおもちゃ言語を作ったお話 - Qiita
                                                • Control Flow Guard for Clang/LLVM and Rust | MSRC Blog | Microsoft Security Response Center

                                                  This blog post is older than a year. The information provided below may be outdated. As part of our ongoing efforts towards safer systems programming, we’re pleased to announce that Windows Control Flow Guard (CFG) support is now available in the Clang C/C++ compiler and Rust. What is Control Flow Guard? CFG is a platform security technology designed to enforce control flow integrity. It has been

                                                  • 作って学ぶコンピュータアーキテクチャ ——LLVMとRISC-Vによる低レイヤプログラミングの基礎

                                                    この本の概要 コンピュータアーキテクチャ,とくにCPUの命令セットアーキテクチャについて,RISC-Vを例に「上のレイヤからアプローチする」ことで理解を深めることを目的とした一冊。本書を一通り読み終えるころには,低レイヤに対する一段上の実力がついているはずです! こんな方におすすめ 性能向上などのためにコンピュータアーキテクチャを理解したいエンジニア RISC-VやLLVMへの理解を深めたいエンジニア この書籍に関連する記事があります! 「低レイヤ」を,なぜ・どうやって学ぶのか コンピュータアーキテクチャ,とくにCPUの命令セットアーキテクチャについて,RISC-Vを例に「上のレイヤからアプローチする」ことで理解を深めることを目的とした一冊。本書を一通り読み終えるころには,低レイヤに対する一段上の実力がついているはずです! 第1章:コンピュータアーキテクチャとISAの基礎知識 コンピュータ

                                                      作って学ぶコンピュータアーキテクチャ ——LLVMとRISC-Vによる低レイヤプログラミングの基礎
                                                    • jank programming language - Clojure/LLVM/C++

                                                      The jank programming language jank is a general-purpose programming language which embraces the interactive, value-oriented nature of Clojure as well as the desire for native compilation and minimal runtimes. jank is strongly compatible with Clojure and considers itself a dialect of Clojure. Please note that jank is under heavy development; assume all features are planned or incomplete. Where jank

                                                        jank programming language - Clojure/LLVM/C++
                                                      • Make LLVM fast again

                                                        10. May 2020 The front page of the LLVM website proudly claims that: Clang is an “LLVM native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles […] I’m not sure whether this has been true in the past, but it certainly isn’t true now. Each LLVM release is a few percent slower than the last. LLVM 10 put some extra effort in this area, and somehow managed to make Rust compila

                                                        • LLVMのPassの作り方について学ぶ(ドキュメントを読む1) - FPGA開発日記

                                                          https://llvm.org/docs/WritingAnLLVMPass.html LLVMについて、バックエンドの部分はある程度勉強したけど、そういえばPassの作り方をまじめに勉強したことが無かった。 LLVMと言えばPassだろう!ということでPassの作り方について勉強することにした。これはそのうちLLVMの拡張や最適化をしたいときに役に立つはずだ。 参考にしたのはWriting LLVM Passというドキュメント。読み進めていくとこのPass Managerは古いそうなのだが、まあまずは古い方のドキュメントを読んで、新しい方の差分を確認していけばよかろう。 llvm.org LLVMのPassを書く Passとは何か? LLVMのPassフレームワークはLLVMシステムで重要な部分です。 LLVM Passはコンパイラ内に存在する面白い部分殆どに存在しています。 Pass

                                                            LLVMのPassの作り方について学ぶ(ドキュメントを読む1) - FPGA開発日記
                                                          • LLVMネイティブコードカバレッジを備えたRust 1.60がリリース、Rust 2024へのロードマップも公開

                                                            Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                              LLVMネイティブコードカバレッジを備えたRust 1.60がリリース、Rust 2024へのロードマップも公開
                                                            • Intel Fully Embracing LLVM For Their C/C++ Compilers - Phoronix

                                                              Intel Fully Embracing LLVM For Their C/C++ Compilers Written by Michael Larabel in Intel on 9 August 2021 at 06:31 PM EDT. 35 Comments Intel's next-generation C/C++ compilers are fully leveraging the LLVM compiler stack in place of their former proprietary compiler code-base. Intel has "complete[d] adoption" of LLVM moving forward for their C/C++ compiler needs. Intel's longtime compiler expert Ja

                                                                Intel Fully Embracing LLVM For Their C/C++ Compilers - Phoronix
                                                              • GCCとLLVMの内部の比較

                                                                このセッションの内容 現在の主要なCコンパイラであるGCCとLLVM/Clangが実際にどのような処理をするかを追っていきます コンパイラのトレースにはLLVMをバックエンドとして利用しているlldbを用います このセッションの目的 現在当研究室ではContinuation Based Cという言語を開発しています この言語はgcc/clangで実装されており,代々開発が引き継がれています 今回はこの発表を通して実際の開発の流れを体験していきます このセッションを聞くと実際にgcc/clangで開発を出来るかもしれない…!? GCCとLLVM 今回のセッションではGCCとLLVM/Clangを対象に読んでいきます GCCとはGNU Compiler Collectionの略で1985年から開発されているOSSなコンパイラパッケージです C言語で実装され,様々な言語のコンパイルをサポートして

                                                                • 【Swift】async/awaitはどのようにして動いているのかLLVMのレベルで調べてみる - Qiita

                                                                  Swift 5.5によって導入されたConcurrencyのうちの、async/awaitがどのように動いているのか調べてみました。 きっかけ 私はもともとasync/awaitなどはJavascriptで使っていたので、Swiftに導入されると聞いたときも「ようやく便利になるね」ぐらいにしか思っていなかったのですが、iOSDC2021のこの発表を見たときにたまげました。 特に驚いたのが、await式がサスペンションポイント(Suspension point)となり、実行が一時保留されるが、その間もスレッドは別の処理に使用されることや、再開されたときは別のスレッドに回ることもあり得るし、同じスレッドの場合もありうる、という話でした。 しかも、並列する複数のタスク間でのコンテキストスイッチは発生せず、呼び出しのコストのみで実現できるので、並列処理を軽量に実行できるそうです。 「なんでこんなこ

                                                                    【Swift】async/awaitはどのようにして動いているのかLLVMのレベルで調べてみる - Qiita
                                                                  • Zig's New Relationship with LLVM

                                                                    While not yet at version 1.0, Zig is about to reach a new level of maturity and stability. In the early days, Zig was but a thin frontend in front of LLVM. This was instrumental for getting started quickly and filling in gaps of Andrew’s knowledge as a compiler developer. Now, the training wheels of the bicycle are coming off, and LLVM is transitioning into an optional component. The work to repla

                                                                      Zig's New Relationship with LLVM
                                                                    • Compiling Containers - Dockerfiles, LLVM and BuildKit | Docker

                                                                      Compiling Containers – Dockerfiles, LLVM and BuildKit Today we’re featuring a blog from Adam Gordon Bell at Earthly who writes about how BuildKit, a technology developed by Docker and the community, works and how to write a simple frontend. Earthly uses BuildKit in their product. Introduction How are containers made? Usually, from a series of statements like `RUN`, `FROM`, and `COPY`, which are pu

                                                                        Compiling Containers - Dockerfiles, LLVM and BuildKit | Docker
                                                                      • LLVMのstd:: uniform_real_distributionが遅い件 - Qiita

                                                                        発端 一年ほど前の@kaityo256さんの発言: うーん、A64fx、やっぱりモンテカルロは苦手っぽいなぁ。 — ロボ太 (@kaityo256) February 4, 2022 MT19937がコンパイル条件によっては極端に遅いという話だったが、調べようと思ったまま1年近くが経ってしまった。別件で調べていてわかったのは、 遅いのはstd::mt19937ではなくstd:: uniform_real_distributionの方(まぁモンテカルロやるなら確実に踏む) LLVMとlibstdc++のときにAarch64であれx86_64であれ発動する、libc++にすることで回避できる ということ。libstdc++とlibc++については を参照してください。 計測 とりあえずこんなソース: #include <iostream> #include <iomanip> #include

                                                                          LLVMのstd:: uniform_real_distributionが遅い件 - Qiita
                                                                        • Lanai, the mystery CPU architecture in LLVM | q3k writes

                                                                          Lanai, the mystery CPU architecture in LLVM. Disclaimer: I have had access to some confidential information about some of the matter discussed in this page. However, everything written here is derived form publicly available sources, and references to these sources are also provided. Some of my recent long-term projects revolve around a little known CPU architecture called 'Lanai'. Unsurprisingly,

                                                                          • Amazon.co.jp: 作って学ぶコンピュータアーキテクチャ —— LLVMとRISC-Vによる低レイヤプログラミングの基礎: 木村優之: 本

                                                                              Amazon.co.jp: 作って学ぶコンピュータアーキテクチャ —— LLVMとRISC-Vによる低レイヤプログラミングの基礎: 木村優之: 本
                                                                            • LLVMでLLVM-IRを生成して眺める

                                                                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                LLVMでLLVM-IRを生成して眺める
                                                                              • GitHub - msyksphinz-self/support_ca_llvm_book

                                                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                  GitHub - msyksphinz-self/support_ca_llvm_book
                                                                                • Making LLVM GEP safer in Haskell

                                                                                  In today's article, I will showcase how Haskell's typesystem can be used to simplify code generation and reduce the chance of bugs involving the LLVM getelementptr instruction. Intro to the GEP instruction LLVM as a compiler framework offers many different low-level instructions, one of which being the getelementptr instruction (commonly abbreviated as just "gep"). With gep, you can compute derive

                                                                                    Making LLVM GEP safer in Haskell