8 ŞUBAT 2010, PAZARTESİ
Nasıl gcc C Bazı ifadeleri optimize önlemek için?
Bir kirli sayfa (sayfa tablosu girdisi kirli bit geçiş) yapmak için, ben bu sayfanın ilk bayt dokunun:
pageptr[0] = pageptr[0];
Ama pratikte gcc ölü mağaza eleme tarafından ifadesi göz ardı eder. Gcc optimizasyon önlemek için, ben yeniden yazmak deyimi aşağıdaki gibi
volatile int tmp;
tmp = pageptr[0];
pageptr[0] = tmp;
Hile çalışıyor gibi görünüyor, ama biraz çirkin. Orada herhangi bir Direktif bilmek istiyorum ya da aynı etkiye sahip olan varmıdır? Ve harika bir performans cezası da getirecektir beri -O0
bir bayrak kullanmak istemiyorum.
CEVAP
28 Ocak 2012, CUMARTESİ
Yeni parametreleri kullanmak yerine, aynı zamanda ihtiyaçları için __attribute__((optimize("O0")))
kullanabilirsiniz. Bu sadece tek bir işlevi ve tüm fonksiyonları aynı dosya içinde tanımlanan uygulama avantajı vardır.
Kullanım örneği:
void __attribute__((optimize("O0"))) foo(unsigned char data) {
// unmodifiable compiler code
}
Bunu Paylaş:
Nasıl JSP dosyaları Java kod önlemek i...
Nasıl MUAYENE dosyası tersine mühendis...
Nasıl bir düğmeye tıklandığında bir il...
Nasıl form gönderme düğmeleri önlemek ...
Nasıl Java kod bazı bölümleri için Ecl...