কোনও পৃষ্ঠা নোংরা করার জন্য (পৃষ্ঠার টেবিল এন্ট্রিতে নোংরা বিটটি স্যুইচ করা), পৃষ্ঠার প্রথম বাইটগুলি আমি এটির মতো স্পর্শ করি:
pageptr[0] = pageptr[0];
কিন্তু অনুশীলনে জিসিসি ডেড স্টোর নির্মূলের দ্বারা বিবৃতিটিকে উপেক্ষা করবে। জিসিসি এটি অপ্টিমাইজ করা রোধ করার জন্য, আমি নীচে বিবৃতিটি আবার লিখেছি:
volatile int tmp;
tmp = pageptr[0];
pageptr[0] = tmp;
মনে হয় কৌতুকটি কাজ করে তবে কিছুটা কুৎসিত। আমি জানতে চাই যে কোনও দিকনির্দেশনা বা বাক্য গঠন যা একই প্রভাব ফেলেছে? এবং আমি কোনও -O0
পতাকা ব্যবহার করতে চাই না , যেহেতু এটি দুর্দান্ত পারফরম্যান্সের পেনাল্টিও নিয়ে আসবে।
-O0
ডেড কোড "অপ্টিমাইজেশন" রোধ করেনি, যেমন, যখন জিসিসি সনাক্ত করে যে কোনও কোডের কোনও প্রভাব নেই, এটি কেবল এটিকে সরিয়ে দেয়। আমি যতদূর জানি এই এমনকি সামনে একটি পর্যায় -O0
... কিন্তু যে শুধু আমার অভিজ্ঞতা