2016-10-10 22 views
8

我讀過this LWN article很感興趣。執行摘要:GCC 6.x支持一種稱爲功能多版本的功能,它構建了針對不同指令集進行優化的相同功能的多個版本。假設您有一臺支持AVX2的機器,另一臺機器沒有。可以在兩個版本上運行相同的二進制文件,函數foo()存在兩個版本,其中一個版本使用AVX2指令。但是,只有在CPU支持它的情況下才會調用帶有AVX2指令的功能。叮噹提供類似於GCC 6.x的多版本(target_clones)功能嗎?

我的問題是:clang是否支持類似的東西?它看起來不像世界上最先進的功能。

+1

應該有一些東西,我注意到在Xcode Instruments分析器調用像_platform_memmove $ VARIANT $ Haswell這暗示應該有一個選項。雖然文檔是完全沉默的; target_clones不起作用,也不能使用標有不同目標屬性的單獨函數 –

回答

0

他們said大約三年前它正在開發中。但顯然,它仍在發展中。之後他們從來沒有提到過(據我所知),文檔沒有提到它。

儘管使用ifunctarget屬性,但您可以通過一些手動操作完成此操作。

相關問題