原创 方舟編譯器學習筆記67 clang-tidy的檢查規則解析

前段時間,我爲方舟編譯器提交了一些clang-tidy的檢查規則,這些規則位於項目目錄之下的.clang-tidy文件之中。本文將逐條解讀一下這些規則。 1、readability-identifier-naming (規則2.1.1)

原创 深入研究Clang(十四) clang-tidy的使用

前文對clang-tidy進行了簡單的介紹,本文對clang-tidy使用中的一些點進行一下總結。 1、clang-tidy及其批量運行腳本run-clang-tidy.py在Clang/LLVM的預編譯發佈包中都有,但是位於不同的目錄。

原创 寫在36歲的生日

25 Feb 2020 今天是我36歲的生日。 回望過去,似乎是不知不覺就來到了這個有點尷尬的年紀,這個被年輕程序員認爲要被淘汰的年紀。 但是真正到了這個年紀,卻發現,現在更能靜下心來做點東西,也更喜歡踏實的做點東西。 32歲的時候,做到

原创 Modern source-to-source transformation with Clang and libTooling

原文地址:https://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling/ I coupl

原创 LLVM每日談之四十五 LLVM IR TUTORIAL

今年的LLVM歐洲開發者會議上,在Tutorials環節,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel Corporation)做了名爲《LLV

原创 LLVM每日談之四十八 LLVM後端文檔解析1

之前在 LLVM每日談之四十七 LLVM後端文檔解析 中,介紹了後端文檔中提到關於後端的六大模塊、七大環節和七個步驟。前文也提到過,它們是從不同的維度去解析LLVM的後端,不同維度之間是存在各種各樣的交叉關係的。在這裏,簡單對於三者的關係

原创 LLVM每日談之五十一 TargetMachine

TargetMachine及其子類: 前文介紹了TargetMachine類,我們這篇文章簡單分析下TargetMachine類及其子類。TargetMachine類位於include/llvm/Target/TargetMachine.

原创 LLVM libc++的RISCV支持

libc++的官方主頁:http://libcxx.llvm.org/ libc++文檔主頁:https://libcxx.llvm.org/docs/   簡介: libc++ is an implementation of the C

原创 深入研究Clang(十五) Clang的RISCV支持1

一、Clang/LLVM對RISCV的支持概況 目前已經有一系列的C類編譯器和庫開始支持RISCV,這其中包括了GCC和Clang/LLVM。從RISCV的官方網站,可以獲取目前的支持狀態。具體內容如下: 網址:https://risc

原创 深入研究Clang(十八) Clang Driver庫的job

Clang的Tool最終會調用ConstructJob來爲Compilation添加job。根據源碼中的註釋,Tool中保存的是一個特定編譯工具的信息(Tool - Information on a specific compilatio

原创 深入研究Clang(十七) Clang Driver庫的Tool

Tool也是Clang的Driver庫裏的一個類,它是具體編譯工具的信息,代碼註釋中的原文是:Tool - Information on a specific compilation tool.(clang/include/clang/D

原创 深入研究Clang(十九) Clang的RISCV支持2

前文Clang的RISCV支持1介紹了Clang中有關RISCV的代碼主要集中在三個地方:Driver部分、Basic部分和CodeGen部分,並且對Basic部分和CodeGen部分的內容和關係進行了介紹,只有Driver部分因爲涉及到

原创 深入研究Clang(十六) Clang Driver庫的ToolChain

ToolChain是Clang的Driver庫裏的一個類,它是用來獲取具體某個平臺的工具集合,代碼註釋中的原文是:ToolChain - Access to tools for a single platform.(clang/inclu

原创 LLVM每日談之五十七 TableGen

TableGen官方文檔 TableGen 後端官方文檔 TableGen是LLVM的一個工具,其可執行文件的名字爲llvm-tblgen。通常在build目錄下的bin目錄裏。 TableGen主要是幫助開發者開發和維護特定領域的信息記

原创 關於編譯器和靜態分析的一些課程

陸陸續續收集了一些課程,主要是編譯器和靜態分析方面的,在這裏分享給大家,也給自己做個資料存檔。 國外的一些課程: 1、Stanford編譯器課程系列 CS143:CS143: Compilers CS243:CS243 - Advance