2010-04-23 73 views
9

我正在嘗試使LLVM內聯函數庫。使LLVM內嵌函數庫

我有LLVM位碼文件(手動生成),我與llvm-link連接在一起,我也有一個庫(用C語言編寫)編入位碼clang和歸檔llvm-ar。我設法將所有內容鏈接在一起並執行,但我無法設法讓LLVM內嵌函數庫。有關如何完成這件事的任何線索?

回答

8

將位代碼文件與庫鏈接在一起之後,是否對鏈接的位代碼運行Internalize傳遞?內部傳遞使得所有函數(除了main()之外)都是靜態的,並告訴優化器/代碼生成器可以安全地內聯函數,而不需要爲某些(不存在的)外部引用保留副本。

我用llvm-ld借用的代碼手動將我的位代碼文件和位代碼庫鏈接在一起,我做了內部化傳遞,但我不確定llvm-link是否執行了內部傳遞。

+0

像魅力一樣工作 – capitrane 2010-04-29 20:30:18

+0

如何開始內部通行證? – osgx 2010-11-23 15:29:32

+0

@osgx:看看'createInternalizePass'('lib/Transforms/IPO/Internalize.cpp')。 – 2013-07-08 16:32:54