看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《flypaper (一直飛)》之銘言: : 標題: [問題] llvm 有API可以求得PDF嗎? : 時間: Thu Dec 20 08:11:40 2018 : 肥宅 我想問的PDF是 PostDominatorTreeFrontier : 因為我有找到一般的DF (DominanceFrontierWrapperPass) : 好奇PDF 有沒有對應的pass : 還是只能自己刻一個呢? : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.193.157 : ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1545264705.A.8B6.html : ※ 編輯: flypaper (111.251.193.157), 12/20/2018 08:17:56 : → MartinJ40: 你可能需要先了解compiler和library甚至和OS之間的關係 12/20 11:06 : → MartinJ40: 之前版上有一個問了一年的Qt 大部份跟Qt無關 12/20 11:07 : → MOONRAKER: 每次看他問qt都想哇塞 qt這麼厲害嗎 12/20 19:19 : 謝謝 大大的指導 : by the way : 我早上的時候有看到有人寫說 : 因為有CFG和j-Edge就可以輕鬆的生出DF 所以沒有必要再做專門分析DF的pass 我是覺得透過這個機會去摸索學習一個 framework 也是很重要的事, 而且基於 open source project 開發的好處之一就是有人幫你測幫你驗幫你修, 會自已寫和知道怎麼順著一個 framework 開發一樣重要.. 你如果有稍微 trace 一下 DominatorTree/PostDomTreeBase 應該就會發現他們 只是 DominatorTreeBase 的不同方而已而 template <typename NodeT, bool IsPostDom> class DominatorTreeBase; using DomTreeBase = DominatorTreeBase<T, false>; using PostDomTreeBase = DominatorTreeBase<T, true>; 同樣去 trace DominanceFrontier 的話, 應該也可以發現他也是基於 DominanceFrontierBase 的 IsPostDom=flase, 所以你應該可以參考原本的做法, 加一個 IsPostDom=true 就是你要的 PostDominanceFrontier了 class DominanceFrontier : public ForwardDominanceFrontierBase<BasicBlock> { template <class BlockT> class ForwardDominanceFrontierBase : public DominanceFrontierBase<BlockT, false> { template <class BlockT, bool IsPostDom> class DominanceFrontierBase; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.120.217 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1545444721.A.743.html
a27417332: 推推,好回覆 12/23 19:50