Teknik Kompilasi
Dosen: Utami Dewi W.,S.Kom
Dependensi Optimasi
A := 2 + 3 + B
Bisa diganti menjadi
A := 5 + B
dimana 5, menggantikan ekspresi 2 + 3
Menggunakan
hasil
komputasi
terdahulu
daripada
melakukan
komputasi ulang
A := B + C
X := Y + B + C
Kemunculan B + C
Loop Unrolling
Menggantikan suatu loop dengan menulis statement dalam loop beberapa kali
Hal ini karena sebuah iterasi pada implementasi level rendah akan memerlukan
operasi :
Loop Unrolling
Contoh instruksi :
Dioptimasi menjadi
A [1] := 0 ;
FOR I := 1 to 2 DO
A [I] := 0 ;
Terdapat instruksi untuk inisialisasi I menjadi 1. Serta
operasi
penambahan
pengecekan
nilai
nilai/increment
variabel
pada
dan
setiap
A [2] := 0 ;
Sehingga
haya
memerlukan 2 instruksi
assignment saja
Frequency Reduction
Contoh :
Variabel
X dapat dikeluarkan
FOR I := 1 TO 10 DO
FOR I := 1 TO 10 DO
BEGIN
BEGIN
X := 5 ;
A := A + I ;
END ;
A := A + I ;
END ;
Mengganti suatu operasi dengan jenis operasi lain yang lebih cepat
dieksekusi.
Contoh lainnya :
A := A + 1
Misalnya :
Procedure Jumlah (a,b,c : integer)
var x : integer
begin
x := a + b
end ;
Parameter c tidak pernah digunakan di dalam prosedur, sehingga seharusnya
Unused variabel
Misalnya :
Program pendek;
var a, b : integer;
begin
a := 5;
end ;
Variabel b tidak pernah dipergunakan di dalam program, sehingga bias
dihilangkan.
Misalnya :
Program awal;
var a, b : integer;
begin
a := 5;
a := a + b;
end ;