मैं एक परिभाषा के साथ एक अच्छा लिंक नहीं मिल रही है, लेकिन मुझे लगता है कि मैं एक अच्छा उदाहरण दे सकते हैं। एलएलवीएम में, एलएलवीएम आईआर कई प्रकार के पूर्णांक का समर्थन करता है। क्लैंग समेत अधिकांश सी/सी ++ कंपाइलर्स, लंबे समय तक समर्थन करते हैं और 64 बिट डेटा प्रकार का समर्थन करते हैं। कई 32 बिट प्रोसेसर, जैसे कि एमपीएस (32 बिट), ऐसे निर्देश नहीं हैं जो कर सकते हैं, उदाहरण के लिए, 64 बिट जोड़ें या तुलना करें। एलएलवीएम इन 64 बिट ऑपरेशंस को ऑपरेशंस में "कम" करेगा, आमतौर पर 32 बिट, प्रोसेसर कर सकता है।
एक int64_t के मामले में उदाहरण के लिए तुलना, LLVM
compare the upper 32 bits with a signed comparison
if they are equal, compare the lower 32 bits with an unsigned comparison
कुछ कम करने के लिए यह कम सुंदर कल्पना प्राप्त कर सकते हैं करेंगे। उदाहरण के लिए एक प्रोसेसर पर जो गुणा निर्देश का समर्थन नहीं करता है, सरल गुणों में बदलाव हो सकता है और जोड़ता है जबकि अधिक जटिल लोग रन-टाइम supprt लाइब्रेरी में कॉल कर सकते हैं।
स्रोत
2013-11-28 00:42:54
क्या इसे 'कम करने' कहा जाता है? या शायद यही व्याकरण परिभाषाओं में कहा जाता है, मुझे याद नहीं है। – slugster
सुंदर अस्पष्ट। यही पूरा संकलक करता है। मैं विशिष्ट उदाहरणों की 'ताकत कम करने' कहूंगा, उदाहरण के लिए '* 2' =>' << 1'। – EJP