2012-07-31 21 views
6

में अनुकूलन को अक्षम कैसे करें I-4 ऑप्टिमाइज़ेशन के साथ clang के साथ कोड संकलित कर रहा हूं। हालांकि, मैं कार्यों की इनलाइनिंग को अक्षम करना चाहता हूं। मेरे पास अपना स्वयं का एलएलवीएम पास है जो जेनरेट कोड पर कुछ कोड इंजेक्ट करता है। मेरे पास जाने के बाद, मैं कार्यों की इनलाइनिंग को सक्षम करना चाहता हूं। मैं उसे कैसे कर सकता हूँ।एलएलवीएम

+0

क्या आप यह सुनिश्चित नहीं कर सकते कि आपका पास पहले अनुकूलन पासों में से एक है? अर्थात। सुनिश्चित करें कि फ़ंक्शन इनलाइनर पास * से पहले * चल रहा है? – Giel

+0

मैं उस गिएल को कैसे कर सकता हूं? – pythonic

उत्तर

6

आप ऑप्ट का उपयोग कर सकते हैं जो says यह किसी भी क्रम में पास चला सकता है।

clang -c main.cpp -O0 -emit-llvm | opt -load yourplugin -yourpass -inline 
4

आप बजना हैकिंग रहे हैं, तो आप बदल सकते हैं फ़ाइल clang/lib/CodeGen/BackendUtil.cpp में आदेश गुजरता है। विधि CreatePasses() में इनलाइनिंग से पहले आपको अपना पास डालना चाहिए।

संबंधित मुद्दे