জিসিসি বনাম ঝনঝন / এলএলভিএম - প্রত্যেকের পক্ষে ভাল এবং বুদ্ধি [বন্ধ]


20

জিসিসি বনাম ঝনঝন / এলএলভিএমের কী কী উপকারিতা রয়েছে?


3
কার পক্ষে / কনস? আপনার যদি একটি হাস্যকর পরিমাণের সমর্থিত আর্কিটেকচারের প্রয়োজন না হয় তবে LLVM সংকলকগুলির জন্য ব্যাকএন্ড হিসাবে স্পষ্টতই সেরা। তবে আমি ধরে নিচ্ছি আপনি শেষ ব্যবহারকারীদের সম্পর্কে কথা বলছেন।

উত্তর:


19

জিসিসি অত্যন্ত পরিপক্ক, ইনস্টল করা সহজ (কমপক্ষে বেশিরভাগ সিস্টেমে), এবং প্রচুর সিস্টেমের জন্য এটি ডিফল্ট সংকলক তাই অনেক ক্ষেত্রে লোকেরা এটি প্রায় উপলব্ধি না করে প্রায় ইনস্টল করে ফেলেছে। এটি একটি জিলিয়ন আর্কিটেকচারে পোর্ট করা হয়েছে, সুতরাং আপনার যদি অস্পষ্ট হার্ডওয়্যার লক্ষ্য করতে হয় তবে বাক্সের বাইরে কাজ করার সম্ভাবনা অনেক বেশি।

ঝনঝনানি অনেক নতুন। এটি প্রায়শই অনেক ভাল ত্রুটি বার্তা উত্পাদন করে, বিশেষত সি ++ টেম্পলেটগুলির জন্য। অনেক ক্ষেত্রে এটি অনেক দ্রুত চলে। এটি প্রাথমিকভাবে গ্রন্থাগারের একটি সেট হিসাবে নির্মিত, সুতরাং বেশ কয়েকটি অন্যান্য প্রকল্প রয়েছে (যেমন, কোড বিশ্লেষক) যা একই ফ্রন্ট-এন্ড ব্যবহার করে, একই ইনপুটগুলি বুঝতে পারে ইত্যাদি। এলএলভিএমকে এর পিছনের প্রান্ত হিসাবে ব্যবহার করা এতে কিছুটা অতিরিক্ত নমনীয়তা দেয় আপনি এটি থেকে কোড তৈরি কিভাবে।


17
  1. ঝাঁকুনির মধ্যে আরও ভাল ত্রুটির প্রতিবেদন রয়েছে। উদাহরণস্বরূপ, আপনি যে ফাংশনটির নামে কল করেছেন তাতে টাইপ তৈরি করলে, কলং জানায় যে এটি সম্ভবত একটি টাইপো (এবং সঠিক নামটি প্রস্তাব করবে), অন্যদিকে GCC অজানা ফাংশনটির নাম সম্পর্কে অভিযোগ করবে।

  2. আপনি যদি x86 / x86-64 লক্ষ্য করে থাকেন তবে জিসিসি সাধারণত দ্রুত কোড তৈরি করে। এআরএমের জন্য পরিস্থিতি অস্পষ্ট, প্রায়শই ঝাঁকুনি আরও ভাল করে। এছাড়াও, এএফআইএকে কলং কোড আকারের জন্য অনুকূলিতকরণ সমর্থন করে না।

  3. জিসিসি প্রচুর হিউরিস্টিক্স ব্যবহার করে। এটি পারফরম্যান্সের জন্য (একটি সাধারণ ক্ষেত্রে) ভাল তবে আপনি যদি কিছু উত্স-স্তরের অপ্টিমাইজেশন করতে চান (যেমন লুপ আনরোলিং) aw এমনকি ছোট উত্স কোড পরিবর্তনগুলি জিসিসিকে সম্পূর্ণ আলাদা আউটপুট উত্পন্ন করতে পারে। ঝনঝন বেশি অনুমানযোগ্য এবং সাধারণত এটি আপনার প্রত্যাশিত কোড উত্পন্ন করে।

  4. জেরি কফিনের বিপরীতে, আমি উত্স থেকে কলিংয়ের চেয়ে শক্ত শক্তির জিসিসি তৈরি করতে পাই। ক্ল্যাংয়ের শুরু করা পৃষ্ঠাটি থেকে প্রক্রিয়াটি সর্বদা আমার পক্ষে কাজ করে। জিসিসির জন্য অনুরূপ ম্যানুয়াল প্রথমবারে কখনও কাজ করেনি। জিএমসির জিএমপি, এমপিএফআর, এমপিসি, পারমা পলিহেড্রা গ্রন্থাগার, এবং সিএলজি-র নির্দিষ্ট সংস্করণগুলির উপর নির্ভরশীলতা রয়েছে এবং নির্দিষ্ট জিসিসি রিলিজের জন্য যে সংস্করণগুলি কাজ করে তা অনুসন্ধান করার জন্য আমার বেশ কয়েকটি পুনরাবৃত্তি প্রয়োজন (হ্যাঁ, those লাইব্রেরির সর্বশেষ সংস্করণগুলি ব্যবহার করে না) )।

  5. আমার একটা অনুভূতি আছে যে জঙ্গির তুলনায় ক্ল্যাং আরও ভাল পরীক্ষিত। যদিও আমি কেবল জিসিসির অফিশিয়াল রিলিজ ব্যবহার করি, এটি কখনও কখনও ত্রুটিযুক্ত কোড তৈরি করে। ক্ল্যাংয়ের জন্য আমি সাধারণত ট্রাঙ্ক সংস্করণ ব্যবহার করি (আবার, কারণ এটি নির্মাণ করা সহজ) তবে আমি কখনই এটি ভুল আউটপুট তৈরি করতে দেখিনি।

  6. জিসিসি লিনাক্স বিশ্বে প্রায় আদর্শ, এবং এটি প্রচুর পরিমাণে অ-মানক বৈশিষ্ট্য যুক্ত করে যা লিনাক্স সফ্টওয়্যারগুলিতে বহুল ব্যবহৃত হয়। কলং জিসিসির সাথে সামঞ্জস্যপূর্ণ হওয়ার চেষ্টা করে তবে কখনও কখনও এটি কেবল চুপচাপ তাদের উপেক্ষা করে। সবচেয়ে বড় কথা, কলং ওপেনএমপি সমর্থন করে না। তবে, এর এক্সটেনশানগুলিও রয়েছে যা জিসিসি দ্বারা সমর্থিত নয়, তবে এটি কার্যকর হতে পারে (যেমন-অ্যাড-ওয়ে-ক্যারি ইন্টারসনিক ফাংশন __buildin_addc)।

  7. আপনি যদি সংকলক গবেষণা করতে চান, বা এটি কীভাবে কাজ করে সে সম্পর্কে কেবল আগ্রহী, আপনি কলং / এলএলভিএম উত্স কোডটি আরও অ্যাক্সেসযোগ্য পাবেন। ঝনঝন / এলএলভিএম কোড হ'ল মানব-পঠনযোগ্য, কেবল সংকলক-পঠনযোগ্য নয়।

  8. (আইন ঘোষক প্রযোজ্য প্রযোজ্য) ঝাঁকুনি / এলএলভিএম লাইসেন্স আপনাকে কোড দিয়ে কী করতে পারে সে সম্পর্কে আরও স্বাধীনতা দেয়, উদাহরণস্বরূপ বাণিজ্যিক বা বদ্ধ-উত্স পণ্যটিতে ব্যবহার। জিসিসি রানটাইম লাইব্রেরির জন্য লাইসেন্স বিধিনিষেধের আরও একটি স্তর যুক্ত করে যখন ক্ল্যাং সংকলক রানটাইম (সংকলক-আরটি লাইব্রেরি) অনুমতিযুক্ত এমআইটি লাইসেন্সের অধীনে।

সংক্ষিপ্তসার: আপনি যখন প্রোগ্রামটি বিকাশ করবেন তখন কলঙ্কের সাথে এবং চূড়ান্ত বিল্ডিংয়ের জন্য জিসিসি দিয়ে সংকলন করুন (তবে এটি দ্রুত এবং ব্রেকটি না ঘটে তা নিশ্চিত করুন)। আপনি যদি সংকলক গবেষণা করেন তবে ঝনঝন / এলএলভিএম দিয়ে আটকে যান।


আকর্ষণীয়, আমি কখনই জানতে পারি না যে ক্ল্যাংয়ের সাথে অ্যাড-ক্যারি ইনটারনিক রয়েছে। তবে তা হওয়া উচিত __builtin_add, নয় __buildin_addc। যাইহোক, addcযখন ক্যারি হিসাবে তুলনা করে একটি বিস্তৃত
অ্যাডের

আমার অর্থ __builtin_addcনয়__buildin_addc
ফুচলভ

এখানে পারফরম্যান্সের তুলনা পুরানো। আরো সাম্প্রতিক benchmarks মতে, ঝনঝন সামান্য বেশি অর্ধেক পরীক্ষার (যেমন দ্রুত, x86 / 64 তে জিসিসি চেয়ে openbenchmarking.org/result/1605071-HA-GCCCLANG568 )
জুল

3

আপনার যদি নতুন সিপিইউ আর্কিটেকচার বা নতুন অপ্টিমাইজেশান রয়েছে এবং জিপিএল এর অধীনে সেগুলি উত্স খুলতে চান তবে আপনি তাদেরকে জিসিসিতে অবদান রাখতে পারেন। তবে, জিসিসি কম মডুলার নয়, সুতরাং এতে কারওর পরিবর্তন / সংযোজন যুক্ত করতে আরও কাজ জড়িত থাকতে পারে। আপনি যদি ওপেন সোর্স প্রকল্পে নতুন আর্কিটেকচার বা অপ্টিমাইজেশান অবদান রাখতে চান, তবে একটি জিপিএলবিহীন লাইসেন্সের অধীনে, আপনি এগুলি এলএলভিএম / ঝনঝনিতে অবদান রাখতে পারেন। এমন কর্পোরেশন রয়েছে যার আইনী বিভাগগুলি কেবলমাত্র পরবর্তীদের অনুমতি দেয়।


-3

আজ (8/11/2011), জিসিসি ক্ল্যাংয়ের চেয়ে অনেক বেশি সি ++ 0x বৈশিষ্ট্য সমর্থন করে। আপনি যদি এই বৈশিষ্ট্যগুলি চান তবে এটি কোনও বুদ্ধিমান নয়; জিসিসি আপনার বিকল্প।


এই উত্তরটি আমার গবেষণা অনুসারে নির্দিষ্ট সময়সীমার মধ্যে সঠিক এবং তথ্যবহুল।

8
তবে সত্যিই খুব ভাল উত্তর নয় কারণ আজকের (28/07/2012) হিসাবে এটি পয়েন্টটি আর কার্যকর নয়। বিড়ম্বনা জিসিসির চেয়ে আরও কিছু সমর্থন করে, যদি কিছু থাকে।
ডেডএমজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.