2014-10-13 14 views
8

मैं एक बड़े प्रदर्शन महत्वपूर्ण कोड बेस पर काम कर रहा हूं, जहां जीसीसी के नवीनतम संस्करणों के साथ संकलन टाइपिंग पनिंग के बारे में कई चेतावनियां देता है, जिससे मुझे -fno-strict-aliasing के साथ संकलित करने की ओर अग्रसर किया जाता है। मुझे विश्वास नहीं है कि यहां कोई प्रदर्शन नुकसान है जिसे किसी भी तरह से बचा जा सकता है। हालांकि मुझे विश्वास है कि एक ही प्रकार के एलियासिंग पॉइंटर्स के साथ और अधिक महत्वपूर्ण मुद्दे हो सकते हैं।संभावित एलियासिंग उल्लंघनों के कारण लोड सूचीबद्ध करना संभव है?

क्या जीसीसी, या कोड कोड में सभी स्थानों को सूचीबद्ध करने के लिए कोई अन्य उपकरण प्राप्त करने का कोई तरीका है जहां संभावित एलियासिंग उल्लंघनों के कारण अतिरिक्त लोड/स्टोर हो रहे हैं, जो कि जीसीसी का पता नहीं लगा सकता है, क्या पॉइंटर्स समान हैं टाइप करें या नहीं? इस तरह, मैं एक कोड प्रोफाइलर के साथ तुलना कर सकता हूं और देख सकता हूं कि उन स्थानों में स्थिति में सुधार किया जा सकता है जहां वास्तव में restrict, स्थानीय चर, रीफैक्टरिंग इत्यादि के उपयोग से महत्वपूर्ण है। अनुमान लगाने की कोशिश कर रहा है कि संकलक जेनरेट असेंबलर को देखकर क्या सोच रहा है विशेष रूप से इसके लिए, दोनों समय लेने वाली और त्रुटि प्रवण है। यदि वे अलग हैं तो मुझे सी और सी ++ दोनों के जवाबों में दिलचस्पी है।

+2

सख्त-एलियासिंग के कारण चेतावनियों को ठीक करने के लिए सुरक्षित लगता है और '-फनो-सख्त-एलियासिंग' का उपयोग न करें। – Jarod42

+1

दिलचस्प सवाल। यदि जीसीसी ऐसी चीज नहीं पेश करता है, तो आप कम से कम परिणामों को समाप्त करने के लिए कम से कम जांचने के लिए जेनरेट असेंबली या मशीन कोड के विश्लेषण का उपयोग करके तकनीकों पर विचार कर सकते हैं। मैंने जीसीसी के साथ बिल्ड विकल्पों के दो अलग-अलग सेटों के लिए ऐसा कुछ किया और पाया कि सेटिंग्स के लिए मैं परीक्षण कर रहा था, वस्तुतः कोई अंतर नहीं था! –

उत्तर

1

GCC Debug options

-ftree-डंप-उर्फ आज़माएं (ऊपर के लिंक में अन्य नाम के लिए खोज)।

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