Code Generation


Download 223.53 Kb.
bet17/19
Sana11.10.2023
Hajmi223.53 Kb.
#1699031
1   ...   11   12   13   14   15   16   17   18   19
Bog'liq
7037035 (1)

getreg dan foydalanish:

  • uchun := y op z;
  • x uchun := y;
    • Yagona yuk, registr deskriptori x ham, y ham R da ekanligini bildiradi.
  • Blokdan chiqishda jonli qiymatlarni o'z ichiga olgan registrlarni saqlang

Asosiy blokdagi bog'liqliklarni hisoblash: dag

  • Umumiy pastki ifodalarni aniqlash va ortiqcha to'rtliklarni olib tashlash uchun yo'naltirilgan asiklik grafikdan (dag) foydalaning .
  • Oraliq kodni optimallashtirish:
    • asosiy blok => dag => takomillashtirilgan blok => yig'ish
  • Barglar identifikatorlar va doimiylar bilan belgilanadi.
  • Ichki tugunlar operatorlar va identifikatorlar bilan belgilanadi

Dag qurilishi

  • Asosiy blokdan oldinga o'tish
  • x uchun := y op z;
    • Y etiketli tugunni toping yoki bittasini yarating
    • z etiketli tugunni toping yoki bittasini yarating
    • op uchun yangi tugun yarating yoki y, z avlodlari bilan mavjud tugunni toping ( xesh sxemasi kerak )
    • Yangi tugun uchun teglar ro'yxatiga x qo'shing
    • X yorlig'i paydo bo'lgan tugundan olib tashlang
  • uchun := y;
    • Hozirda y ga ega bo'lgan tugun yorliqlari ro'yxatiga x qo'shing

Misol: nuqta mahsuloti

mahsulot := 0;

j uchun 1 .. 20 tsiklda

ishlab chiqarish := ishlab chiqarish + a (j) * b (j); -- 4 baytlik butun sonni qabul qiling

end loop ;

1   ...   11   12   13   14   15   16   17   18   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling