作者查詢 / Lipraxde
作者 Lipraxde 在 PTT [ CompilerDev ] 看板的留言(推文), 共148則
限定看板:CompilerDev
看板排序:
8F→: 研究 compiler 相關的實驗室沒有 SPEC2006... 這我是不06/24 14:30
9F→: 信的XD06/24 14:30
10F→: 一些比較常見的:Dhrystone、CoreMark、EEMBC 吧,關鍵06/24 14:33
11F→: 字拿去搜尋一下應該能越找越多06/24 14:33
8F→: 文章應該是說 long data dependencies 會使 ILP 變糟,05/05 06:06
9F→: 跟你轉換過的說法有些不太一樣?05/05 06:06
10F→: 「然而在 "insn per cycle" 則直接輸給了 more.c,導致05/05 06:13
11F→: 實際 cycles 數量 less.c 比 more.c 還要多」<- 因果關05/05 06:13
12F→: 係怪怪的,而且因為 more 有更多 cycle 短的指令去攤平05/05 06:13
13F→: insn per cycle,比較 insn per cycle 不合適。05/05 06:13
15F→: 單核跟多核比能造成影響的因素蠻多的...通常可以先考慮05/15 16:20
16F→: 差異的量級再針對可能的原因找05/15 16:20
17F→: 還有個方式是換舊舊的 CPU,比較不用考慮特殊的因素XD05/15 16:22
4F→: 文件、社群活躍人數也有影響吧?04/16 11:37
3F→: IR 表示語意,codegen 的時候決定怎麼生不是嗎?04/11 09:05
4F→: 你問為什麼不是實作在 LLVM IR 上,我猜是指 InstCombi04/11 09:14
5F→: ne?理論上有拿到 target 資訊當然都可以做,可是提前04/11 09:14
6F→: 做有特別的好處?進到 codegen 階段時在做順理成章的拿04/11 09:14
7F→: 資訊,也只需要看是不是 div by const,做在後面應該是04/11 09:14
8F→: 蠻合理的選擇04/11 09:14
9F→: 有更好嗎,我不確定XD,不過看你回說會乘 magic number04/11 12:27
10F→: ,我想到有沒有可能是因為會有 poison value 的關係?04/11 12:27
11F→: #1U-Edzwa (CompilerDev)、#1V0N0xoL (CompilerDev) 恩04/12 13:39
12F→: ...優化是有分 target-dependent/independent,有各自04/12 13:39
13F→: 的分類,不過我是覺得不必那麼考究,在哪方便做就在哪04/12 13:39
14F→: 做。像是你這篇的例子,如果不會遇到些數值計算上的問04/12 13:39
15F→: 題,要當 peephole 來做應該也沒什麼不行04/12 13:39
4F→: 看很久沒看出來到底是要跑測試還是跑 benchmark03/22 12:48
2F→: https://llvm.org/docs/DeveloperPolicy.html02/10 22:20
3F→: 應該是有些是在 mail list 上討論過、或是做一做在 con02/10 22:20
4F→: ference 上報告吧02/10 22:20
1F→: 以前學 OS 看過一個有趣的,nesC02/08 13:41
1F→: 這跟 compiler 有什麼關聯嗎?還有你怎麼沒把 source c01/22 04:07
2F→: ommit 到 repo 裡?01/22 04:07
3F→: 「載下來解壓縮後才能知道內容為是啥」,個人經驗是蠻01/27 19:26
4F→: 久以前的 open source 才有純以壓縮檔的方式讓人載,然01/27 19:26
5F→: 而這實際上是需要充足的信用 & 信任才能讓人想載下來的01/27 19:26
6F→: 。沒頭沒尾的說明,純說要人載下來安裝,batch file 可01/27 19:26
7F→: 以做的壞事可多了,你還是包在壓縮檔裡給人載01/27 19:26
8F→: 當然看得出來你不是來做壞事的,這並不是在指責你,另01/27 19:31
9F→: 外 git 是個好工具,加油吧~01/27 19:31
2F推: 推推~01/26 15:43
1F→: Instruction sink 記得是為何可以在有 conditional bra01/07 22:58
2F→: nch 時避免執行到不用的指令,另一個附帶的好處是可以01/07 22:58
3F→: 減少 live range (對 compilation time 有幫助)。只要01/07 22:58
4F→: IR 上還保有 data dependency 應該就還能做。不過...這01/07 22:58
5F→: 是做在 instcombine 裡面的!?01/07 22:58
6F→: 其實可以用 git blame 的功能 (github 好用) 看看當初01/08 13:24
7F→: 的源頭為什麼會有 sink pass以及為什麼會在 instructio01/08 13:24
8F→: n combine 裡做 sink (我猜是因為 2004 年還沒有 sink01/08 13:24
9F→: pass,作者直接做在 instruction combine 裡圖個方便)01/08 13:24
10F→: ,至於為什麼 sink pass 做到後來沒出現在 o3 pass、為01/08 13:24
11F→: 什麼有了獨立的 pass 大家還是繼續改在 instruction co01/08 13:24
12F→: mbine 裡呢...這就需要更深的考古學功力了,LLVM 可不01/08 13:24
13F→: 止這兩個地方有實作 sink,而且看起來可能也不是同時/01/08 13:24
14F→: 人做的,都有他們個自的理由,作為一個擁有大量貢獻者01/08 13:24
15F→: 的開源專案來說,採用理想中最好的方案並不是唯一且必01/08 13:24
16F→: 要的考量,因此建議是不必太細究這些。01/08 13:24
17F→: 「IR 上還保有 data dependency 應該就還能做」算是一01/08 13:35
18F→: 個比較簡略的說法,你想想:將某一個 IR 指令搬移,使01/08 13:35
19F→: 「需要用到他的時候」才去執行他。想知道什麼時候需要01/08 13:35
20F→: 用到它自然是需要知道 data dependency 的,總不能不看01/08 13:35
21F→: 就搬XD01/08 13:35