Derleyici optimizasyonlarını elle yazmak (Zynq7000 + GCC, -O0) yazısı#147
Draft
Mavrikant wants to merge 2 commits into
Draft
Derleyici optimizasyonlarını elle yazmak (Zynq7000 + GCC, -O0) yazısı#147Mavrikant wants to merge 2 commits into
Mavrikant wants to merge 2 commits into
Conversation
Temel derleyici optimizasyonlarini ARM Cortex-A9 (Zynq7000) ve GCC ornegi uzerinden anlatan, bunlari -O0'da elle nasil yazacagini gerçek assembly ciktilariyla gosteren kapsamli bir Turkce yazi. CSE, LICM, enduksiyon degiskeni/strength reduction, dongu acma, always_inline, bellek trafigi ve PMU ile olcum konularini icerir. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjUvxRGLdExFGnzGPpPagB
Sik kullanilan terimlerin Turkce cevirileri yerine yazilimcilarin yaygin kullandigi Ingilizce karsiliklari kullanildi (sabit->const/constant, yigin->stack, isaretci->pointer, satir ici->inline, dallanma->branch, guc indirgeme->strength reduction, donguyu acma->loop unrolling vb.). Yerlesik Turkce kelimeler (dongu, dizi, fonksiyon, bellek, komut, derleyici) korundu. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjUvxRGLdExFGnzGPpPagB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Özet
Temel derleyici optimizasyonlarını Zynq7000 (ARM Cortex-A9) ve GCC örneği üzerinden anlatan, bu optimizasyonları
-O0seviyesinde elle nasıl yazacağını kod örnekleriyle gösteren yeni bir Türkçe blog yazısı.Yeni dosya:
_posts/2026-06-19-gcc-derleyici-optimizasyonlari-zynq7000.mdÇerçeve
Saf pedagojik / performans odaklı: "derleyici senin için ne yapıyor,
-O0'da bunu elle nasıl taklit edersin". Mevcut Renode/Zynq7000 ve MISRA C:2025 yazılarına çapraz referans verir.İçerik
-O0'ın temel davranışı (her yerel değişken yığında; süreklildr/str)-O0'da bile yaptıkları (sabit×kuvvet→lsl, sabit÷→sihirli çarpma,unsigned%kuvvet→and, ifade-içi katlama) — boşuna uğraşılmayacak optimizasyonlarstrlentuzağı dâhil), endüksiyon değişkeni / strength reduction (indeks→işaretçi, sınırı dışarı alma), bellek trafiği, döngü açma,always_inline, büyük struct'ı işaretçiyle geçirme, arama tablosu-O0'da yapılır/yapılmaz, elle nasıl, risk)Doğrulama
arm-none-eabi-gcc 13.2(-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -O0) ile üretilip doğrulandı. Öğretici bir bulgu: naif işaretçi yeniden yazımı (p < a + n)-O0'da hiçbir kazanç sağlamıyor — sınır da dışarı alınmalı.bundle exec jekyll buildbaşarılı (exit 0); sayfa/2026/06/19/...htmlolarak üretildi._siteveGemfile.lockcommit edilmedi.🤖 Generated with Claude Code
https://claude.ai/code/session_01RjUvxRGLdExFGnzGPpPagB
Generated by Claude Code