Ana içeriğe geç
Programlama

LLVM derleyicisinde MIR için blok argümanları önerildi

Öne çıkanlar

  • LLVM geliştiricisi, MIR katmanında PHI komutları yerine MLIR benzeri blok argümanları kullanılması için RFC yayımladı.
  • Yeni yapıda değerler, öncül bloklara eklenen SUCC_ARGS sahte komutlarıyla ardıl bloklara iletiliyor.
  • Tasarım, AMDGPU mimarisindeki kontrol akışı ve yazmaç tahsisi sorunlarını çözmeyi hedefliyor.
  • Dönüşümün LLVM ana dalına yaklaşık 40-50 parçalık bir yama serisiyle aktarılması planlanıyor.

LLVM geliştiricileri, Makine Ara Temsili (MIR) ve gMIR katmanlarında SSA veri akışını temsil etmek için kullanılan PHI komutlarının yerine blok argümanlarına geçilmesini içeren yeni bir RFC yayımladı. MLIR altyapısında halihazırda kullanılan modele dayanan bu öneri, ardıl bloklardaki PHI komutları yerine öncül bloklarda açıkça tanımlanan aktarım yapılarını getiriyor. Değişikliğin temel gerekçesini AMDGPU gibi mimarilerde yazmaç tahsisi ve kontrol akışı düşürme sırasında karşılaşılan yapısal sorunların çözülmesi oluşturuyor.

Yeni modelde her ardıl blok için öncül bloklara SUCC_ARGS adlı özel bir sahte komut ekleniyor. Bu komut, hedef bloğa iletilecek yazmaç listesini tek seferde kodlayarak PHI komutlarındaki yinelenen temel blok referanslarını ortadan kaldırıyor. Değişiklikle birlikte komut yerleşimleri mantıksal çalışma sırasıyla daha uyumlu hale gelirken LiveIntervals analizleriyle olan tutarsızlıklar gideriliyor. LLVM derleme süresi testlerinde bu yapının kayda değer bir ek maliyet yaratmadığı tespit edildi.

Öneriyi hazırlayan geliştirici, değişikliğin çalışan bir prototipini hazırladı ve Clang derleme testlerini başarıyla tamamladı. Dönüşümün LLVM ana dalına yaklaşık 40 ila 50 parçalık bir çekme isteği serisi halinde aşamalı olarak entegre edilmesi planlanıyor. Sistem geçişi sırasında SelectionDAG ve GlobalISel için yeni bayraklar sunularak uyumluluk adım adım sağlanacak.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.