CompilerDev板 - WEB批踢踢(PTT)http://webptt.com/rss.ashx?n=CompilerDev2022-01-26T11:37:20+08:00Fw: [心得] 用JSON寫CPUhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1777915622.A.EAE.html2026-05-05T01:27:02+08:002026-05-06T01:47:50+08:00erspicu<pre>以後可以擴展的方向 https://tinyurl.com/y3xw4uwe ※ [本文轉錄自 Soft_Job 看板 #1f-CzV24 ] 作者: erspicu (.) 看板: Soft_Job 標題: [心得] 用JSON寫CPU </pre>Re: [分享] shecc - 可自我編譯的簡化 C 編譯器實作https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1757665982.A.956.html2025-09-12T16:33:02+08:002025-10-14T15:11:02+08:00jserv<pre>shecc [1] 不僅是一個從無到有開發、可編譯自身 (self-hosting) 的 C 語言編譯器, 更是理解編譯器最佳化策略的教學範例。其最佳化設計已形成層次分明的架構:前端產生 SSA 形式的中間表示,中端透過全域與區域的分析進行轉換,後端再以 peephole 最佳化 和指令序列重寫完成修飾,展現出具體而微的最佳化流程。連同 Arm 和 RISC-V 處理器 後端的程式碼,全部僅 1 萬行出頭的 C 專案,且不依賴任何組譯器或連結器,直接輸出 </pre>Fw: [情報] 一個排版軟體與語言的實作+TeXBook筆記https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1738258629.A.494.html2025-01-31T01:37:09+08:002025-01-31T11:41:40+08:00yoxem<pre>雖然這不是一般的編譯器,只是DSL轉到PDF,但這是 開放原始碼,且不是直譯器,是生成另一種語言(PDF描述語言)的檔案的工具, 故在此轉貼。 ※ [本文轉錄自 LaTeX 看板 #1dcxX31U ] 作者: yoxem (Yoxem) 看板: LaTeX </pre>[分享] 2022 LLVM Dev Mtg, San Josehttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1668865563.A.589.html2022-11-19T21:46:03+08:002023-12-25T22:53:12+08:00eopXD<pre>第一次實體參與 LLVM Developers' Meeting。 照慣例每一年會有兩次的 Developers' Meeting, 一次會辦在歐洲,一次會辦在美國。 這次美國的會議是自疫情以來暌違三年恢復實體舉辦。 今年美國會議舉辦在美國灣區 San Jose, </pre>[討論] benchmark該如何尋找?https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1656003128.A.F80.html2022-06-24T00:52:08+08:002022-06-25T19:12:56+08:00shane87123<pre>我目前有自己製作一個最佳化演算法,想要去用他最佳化LLVM IR並跟原生點最佳化比較 除了LLVM test-suite外,該去哪裡找benchmark? 我知道比較知名的如SPEC2006等,但這個好像要錢,窮困的研究生負擔不太起.. 有些benchmark似乎是對CPU進行評分,那像我這樣子的要比較最佳化後的效能,keyword要怎麼下? 謝謝版友,救救研究生QQ </pre>[分享] ML Compilation 線上課程https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1655704369.A.4C2.html2022-06-20T13:52:49+08:002022-06-27T05:37:09+08:00eopXD<pre>如題,Tianqi Chen(TVM, XGBoost 作者)在這個夏天開了個線上課程 https://mlc.ai/summer22/ Reasons to study MLC #1: Build ML Deployment Solutions #2: In-depth Understanding of Existing Frameworks </pre>[討論] JIT compiler中的instruction Selectionhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1652775690.A.810.html2022-05-17T16:21:30+08:002022-05-18T10:01:53+08:00ericerix<pre>JIT compiler 會去分析所謂的hotspot,然後進行最佳化, 甚至JVM中市直接把hotspot的bytecode編譯成machine code 來強化效能, 但假如有一份程式碼長這樣: a = b / c; d = b % c; </pre>Re: [問題] 為何這兩份程式碼的效能差異如此奇特https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1652670539.A.991.html2022-05-16T11:08:59+08:002023-01-14T06:15:09+08:00mshockwave<pre>我其實比較好奇這個「比較快」是快幾趴? 因為其實通常差距低於2%我會直接認為是噪音 : perf 中,我可以得知 instruction 數量、cycles 數量等等 : instruction 數量中,less.c 比 more.c 還要少,不過這是可以預料的, : 畢竟人家就是比他少做運算跟呼叫函數; </pre>[問題] 為何這兩份程式碼的效能差異如此奇特https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1651587139.A.DF3.html2022-05-03T22:12:19+08:002022-05-15T16:22:35+08:00shane87123<pre>由於我是在 LLVM IR 最佳化階段發現這個問題, 跟編譯器最佳化有關,所以我發在這個版上。 這個問題困擾我很久了,想和版上的大大討論一番。 由於 LLVM IR 比較難讀,所以我把程式逆推成 C code 來增加可讀性。 先附上兩份程式碼的線上 diff: </pre>gcc, LLVM的新前後端開發難易度https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1649924696.A.973.html2022-04-14T16:24:56+08:002022-04-16T15:12:32+08:00shane87123<pre>本篇可能會有很多有關編譯器的特性的的地方, 如果描述有錯,還請大家鞭小力一點>< LLVM 迷人的地方就是他很多東西都模組化,是一個高度模組化的專案 簡單來說 近期我發現 LLVM 某個 IR 優化對特定程式會有優化失敗的問題,(效能變差) </pre>Re: [問題] 利用clang前端傳遞參數給後端opt Passhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1649905114.A.4DF.html2022-04-14T10:58:34+08:002022-04-14T16:37:45+08:00mshockwave<pre>因為 -plugin-arg-<argument name> 不是用來傳參數給 LLVM Pass plugin 而是用來傳參數給 Clang plugin Clang 其實有好幾種 plugin: AST consumer plugin, custom pragma plugin, custom attribute plugin 如果以你的例子 要傳參數給 LLVM plugin, 可以試試 </pre>[問題] 利用clang前端傳遞參數給後端opt Passhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1649747193.A.D80.html2022-04-12T15:06:33+08:002022-04-21T16:53:53+08:00unimaybe<pre>各位好 最近在寫 LLVM 的 Pass 主要是針對 Compile 成 IR 的 CUDA Code 做一些事情,我會把 distance 的參數傳進去 ,Pass 會利用這個參數做一些事情。以下是我下的 command opt -load buildDir/CUDAMemPass.so -cudamem -distance 4 main.bc -o main.i.bc </pre>[問題] division-by-constant 非實作在LLVM IRhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1649590913.A.8C4.html2022-04-10T19:41:53+08:002022-04-13T15:13:48+08:00shane87123<pre>如標題 我發現一個優化演算法為 division-by-constant 當除數為常數時 他可以把除法轉換成乘法+算數右移 但他卻是在 backend 階段才應用的 </pre>[討論] 分享 test-suite 建置方法與問題發問https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1647277863.A.285.html2022-03-15T01:11:03+08:002022-03-22T12:48:29+08:00shane87123<pre>最近自己寫了優化演算法, 不過是針對特定情況的 pattern 才會進行優化。 然而我知道 compiler 會有 Phase Ordering Problem, 我想測定應用了我的優化演算法的 O1、O2、O3 與原本的 O1、O2、O3 跑在一個公信的 benchmark 上會不會有問題 </pre>[分享] EuroLLVM 2022https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1647126607.A.30B.html2022-03-13T07:10:07+08:002022-03-17T00:05:30+08:00mshockwave<pre>睽違將近三年,LLVM Dev Meeting 終於要再次恢復實體的了! https://discourse.llvm.org/t/eurollvm-2022-call-for-talk-proposals/60833 這次的 EuroLLVM 2022 會辦在倫敦,日期是大概五月的第二個禮拜 (確切地點和時間還沒確定) 然後CFP也發佈了:https://hotcrp.llvm.org/eurollvm2022/ </pre>[分享] bison and c++https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1645523600.A.B51.html2022-02-22T17:53:20+08:002022-02-24T21:53:09+08:00descent<pre>「yacc/bison 系列 (2) - 輸出 AST, if statement」展示了 bison 和 c++ 的用法, 雖 然可以用, 但不算是正式的用法, bison 有「支援真正的 c++」用法, 輸出的 parser 是 c++ 版本, 還跟上 c++20 的標準, 對於我這個 c++ 愛好者來說, 這樣很棒。 但是我不會用 ... 好不容易花了很大的力氣才有點會用 bison, 突然要改用 c++ 版本, </pre>[討論] 用 opt 時設定 pass 的組態參數https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1645417109.A.537.html2022-02-21T12:18:29+08:002022-02-24T12:04:40+08:00suhorng<pre>最近剛好用到 opt 觀察個別的 pass 最佳化結果時遇到跟 #1XeRxLcp 類似的問題 有的最佳化用 O1 會出現, 但是直接執行對應的 pass 卻沒有效果. 後來剛好查到的討論, 我覺得可能有關 (原本的問題連結: ┌─────────────────────────────────────┐ </pre>[問題] 想請問LLVM演算法是否都來自於某篇論文?https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1644496381.A.1C0.html2022-02-10T20:33:01+08:002022-02-10T22:20:12+08:00shane87123<pre>如題,最近正在找尋特定優化演算法的論文, 但搜尋相關關鍵字也找不到,甚至很少人去討論它。 我認為 LLVM 的演算法應該都會來自於某篇論文(? 還是說當某個貢獻者提交該演算法時,有相關實驗能夠證明其演算法真的能夠優化程式碼 。 </pre>[閒聊] 以前遇到的少見編譯器https://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1643542908.A.0A8.html2022-01-30T19:41:48+08:002022-02-08T13:41:16+08:00yaurtusn<pre> 這是灌水的文章 ***** 以前有電傳視訊,就接個 modem ,然後用 telix 裡頭的 salt 直譯器執行草稿檔 然後就有監控的電視牆 甚麼班機飛航的時刻表,用戶是在房間用有線電視選看哪一頻道 那是telix 裡頭一個直譯器 salt, 很久的東西. </pre>[徵才] Compiler Engineer, Xilinx, Germanyhttps://webptt.com/m.aspx?n=/bbs/CompilerDev/M.1643168240.A.F55.html2022-01-26T11:37:20+08:002022-01-26T21:09:06+08:00nevak<pre>各位compiler同好新年快樂 分享公司徵才訊息,幫這個板灌一點水 目前公司(Xilinx Inc.)正在擴大招募Compiler Engineer,主要以LLVM為基礎 底層除了一般control core以外還有FPGA(HLS), AI Engine,以及其他accelerator 中層除了一般LLVM IR以外,也有專門處理MLIR的職缺 </pre>