2012-02-13 49 views
4

我正在研究一種採用LLVM IR並修改它的工具。我有興趣讓程序員給編譯器一些提示。例如,他可以提供一個特定循環是計算密集型的提示。爲此,我想到的一件事就是使用編譯指示。所以我的問題是,我們怎樣才能使編譯指示工作?我可以在LLVM IR中使用編譯指示信息嗎?這類任務有什麼選擇?使用llvm編譯器的提示

回答

5

這個問題可以參考幾個不同的東西:

  • 如果您想了解如何實現pragma,看看鏘是怎麼做的。即各種pragma指令被翻譯成什麼。
  • 如果您想了解現有的提示(例如inlinehintbyval等),請查看屬性 - 例如Function Attributes
  • 如果你想要更靈活和專有的東西,你可以使用元數據。 LLVM本身將其用於各種目的,但在自己的編譯器中,您可以隨意使用它。編譯器提示是一種可能的應用程序。
+0

gcc中有''#pragma hot'「和''__attribute__((hot))'」。在llvm/clang中是否有類似的東西? Gcc使用它們來獲取「配置文件反饋」,而不執行「-fprofile-generate」/「 - fprofile-use」。 – osgx 2012-02-13 18:16:49

+0

@osgx:我不知道答案。將不得不在挖掘源中看到...雖然,通常,鏗鏘編譯幾乎所有海灣合作委員會編譯這些天。但是,不確定它是否複製了所有gcc特定的pragmas的功能 – 2012-02-13 18:25:21

+0

@osgx:爲什麼用俄語? – 2012-02-14 04:06:05

相關問題