Visual Studio Code での C++ 開発環境構築:LLVM(Clang + Clangd + LLDB)を Windows/MacOS に設定

重要なご案内 このチュートリアルは単一の C++ プロジェクトを作成するものではなく、学習用/開発用の準備済み環境を提供します。C++ の日常学習を容易にするために、個別の .cpp ソースファイル(拡張子必須)またはフォルダ全体を実行・デバッグする簡易スクリプトが組み込まれています。 プロジェクト構成が必要な場合は、CMake を学習し、ルートディレクトリの CMakeLi ...

7月27日 17:03 投稿

LLVM中間表現(IR)の詳細解析

LLVM IRの基本概念 LLVM IRはコンパイラフレームワークの中間言語として設計されており、抽象化レベルと表現力のバランスを特徴とします。この中間表現はソースコードの情報を保持しつつ、最適化とコード生成の柔軟性を提供します。 三アドレスコード形式 LLVM IRは三アドレスコード(TAC)形式を採用しており、各命令は最大3つのオペランドで構成されます。基本的な構造は ...

7月20日 19:01 投稿

RetDecリバースエンジニアリング完全ガイド:10の必須テクニックで反コンパイラをマスターする

RetDecはLLVMベースのリターゲット可能なマシンコードデコンパイラです。特定のターゲットアーキテクチャ、オペレーティングシステム、または実行ファイル形式に制限されず、リバースエンジニアリング愛好家と開発者に強力なコード分析ツールを提供します。本記事では10の実用的なテクニックを共有し、このオープンソースのデコンパイルツールを迅速に習得する方法を解説し ...

7月17日 22:38 投稿

LLVM コーディング規約の実践的ガイドライン

はじめに 本ドキュメントはLLVMプロジェクトで採用されているコーディング規約について説明します。大規模なコードベースでは一貫したスタイルが特に重要であり、既存コードの拡張や修正時には既存のスタイルに従うことが基本原則です。 使用言語と標準 LLVMの主要な実装言語はC++です。C++14標準に準拠したコードを基本とし、ベンダー固有の拡張機能は避けます。標準ライ ...

6月29日 22:51 投稿

EmscriptenによるC/C++からWebAssemblyへの変換:ClangフロントエンドとLLVM IR生成の詳細

Emscriptenは、C/C++コードをWebAssembly(Wasm)にコンパイルするためのオープンソースツールチェーンであり、ブラウザ上で高性能なネイティブコードを実行可能にする。本稿では、EmscriptenにおけるClangフロントエンドの動作とLLVM中間表現(IR)の生成プロセスを詳しく解説する。 Emscriptenツールチェーンの全体像 Emscriptenのコンパイルフローは以下の主要コンポー ...

5月16日 20:38 投稿