जब मैं -funroll-all-loops
विकल्प मिला तो optimization options for GCC पढ़ रहा था।जीसीसी एक लूप को अनलोल कैसे कर सकता है यदि इसकी पुनरावृत्ति संख्या संकलन समय पर अज्ञात है?
इसका वर्णन पढ़ता है:
उतारना सभी छोरों, भले ही दोहराव हैं उनकी संख्या अनिश्चित है जब पाश दर्ज किया गया है। यह आमतौर पर प्रोग्राम धीरे-धीरे चलाता है। '-funroll-सभी छोरों' का अर्थ है के रूप में ही विकल्प '-funroll-छोरों'
कैसे संकलक एक पाश उतारना कर सकते हैं अगर पुनरावृत्तियों की संख्या संकलन समय पर अज्ञात है? क्या संकलक को इस जानकारी को अनलोल करने की आवश्यकता नहीं है? यह कौन सी संबंधित सी कोड उत्पन्न करता है, और यह कौन सा संदर्भ उपयोगी हो सकता है यदि यह आम तौर पर प्रोग्राम धीरे-धीरे चलाता है?
@ ओलाफ यह एक विशिष्ट प्रश्न नहीं है? ओपी स्पष्ट रूप से पूछ रहा है कि कैसे जीसीसी (एक विशिष्ट सी कंपाइलर) यह जानने में सक्षम है कि लूप को अनलॉक करने के तरीके को कैसे अनलॉक किया जाए। –
@ ओलाफ यह कितना व्यापक है यदि मैं जानना चाहता हूं कि एक विशिष्ट कंपाइलर विकल्प क्या करता है? –
@ paulsm4 मुझे ऐसा नहीं लगता है। यदि संकलक पहले से ही सीमाओं को जानता है, तो निर्णय वास्तव में इसे अनलॉक करने के लिए कितना आता है। यह सवाल यह नहीं पूछ रहा है। –