Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Σχετικά έγγραφα
Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

Βελτιστοποίηση Κώδικα. Γιώργος Μανής

να βελτιώσει βρόχους να αντικαθιστά κλήσεις σχέση κόστους υλοποίησης και ωφέλειας χρήσης

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Θέματα Μεταγλωττιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Θέματα Μεταγλωττιστών

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών

Αρχιτεκτονική Υπολογιστών

Σειρά Προβλημάτων 1 Λύσεις

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Υπολογιστικό Πρόβληµα

Αρχιτεκτονική Υπολογιστών

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Προσεγγιστικοί Αλγόριθμοι

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

Αρχιτεκτονική Υπολογιστών

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Γραμμικός Προγραμματισμός

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Αλγόριθμοι και Πολυπλοκότητα

Προσεγγιστικοί Αλγόριθμοι

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

9. Συστολικές Συστοιχίες Επεξεργαστών

Βασικές Έννοιες Θεωρίας Γραφημάτων

Βασικές Έννοιες Θεωρίας Γραφημάτων

Περιεχόμενα. Περιεχόμενα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Γλώσσες Προγραμματισμού Μεταγλωττιστές

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μη γράφετε στο πίσω μέρος της σελίδας

Ενδεικτικές Ερωτήσεις Θεωρίας

Διδάσκοντας με τη βοήθεια λογισμικού υπολογιστικών φύλλων

ΘΕΜΑ 1ο Α. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων;

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

5. (Λειτουργικά) Δομικά Διαγράμματα

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μη γράφετε στο πίσω μέρος της σελίδας

Συνδετικότητα γραφήματος (graph connectivity)

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2006

Προγραμματισμός Ι (HY120)

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Επίπεδα Γραφήματα (planar graphs)

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Προγραμματισμός Ι (ΗΥ120)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Αλγόριθµοι και Πολυπλοκότητα

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Transcript:

Γιώργος Δημητρίου Μάθημα 12 ο

Βελτιστοποίηση Μετασχηματισμός κώδικα σε άλλον πιο αποδοτικό Ασφάλεια βελτιστοποίησης Ορθότητα μετασχηματισμών! Πολυπλοκότητα μετασχηματισμών Εντοπισμός πιθανά προβληματικού κώδικα Στατιστικοί αναλυτές μπορούν να δείξουν ποια μέρη ενός προγράμματος το καθυστερούν Επιλογή εσωτερικών βρόχων

Φάσεις Βελτιστοποίησης Πάνω στον ενδιάμεσο κώδικα Βελτιστοποίηση εκφράσεων Βελτιστοποίηση βασικών ενοτήτων Μετασχηματισμοί βρόχων Μετασχηματισμοί κλήσεων υποπρογραμμάτων Κατά την παραγωγή τελικού κώδικα Βέλτιστη δέσμευση καταχωρητών και επιλογή εντολών Πάνω στον τελικό κώδικα Τοπικοί μετασχηματισμοί

Ανάλυση Ροής Ελέγχου Εύρεση βασικών ενοτήτων Εύρεση οδηγών Η πρώτη εντολή του προγράμματος Κάθε στόχος άλματος Κάθε εντολή που ακολουθεί άλμα Κατασκευή γραφήματος ροής Ακμές που συνδέουν βασικές ενότητες Άλμα από μια βασική ενότητα σε μια άλλη Διαδοχή βασικών ενοτήτων όταν η δεύτερη δεν τελειώνει με άλμα χωρίς συνθήκη

Ανάλυση Ροής Δεδομένων Ανάλυση χρόνου ζωής μεταβλητών: Σύνολα def, use για κάθε βασική ενότητα Το πρώτο περιέχει τις μεταβλητές που ορίζονται πριν χρησιμοποιηθούν Το δεύτερο περιέχει μεταβλητές που χρησιμοποιούνται πιθανά χωρίς να έχουν οριστεί in(b) = use(b) (out(b) - def(b)) out(b) = in(s) S ακολουθεί B Κατασκευή γραφήματος εξαρτήσεων δεδομένων

Βελτιστοποιήσεις Δομής Μετακίνηση κώδικα Απαλοιφή άχρηστου κώδικα Βελτιστοποιήσεις βρόχων Μετακίνηση αναλλοίωτου κώδικα Απαλοιφή επαγωγικών μεταβλητών Αναδιοργάνωση: ξετύλιγμα, αντιστροφή, αποδιακλάδωση Απαλοιφή ελέγχου ορίων πίνακα Βελτιστοποιήσεις κλήσεων υποπρογραμμάτων

Βελτιστοποιήσεις Αποτίμησης Αποτίμηση σταθερών εκφράσεων Εύρεση κοινών υποεκφράσεων a[i-1] = b[i-1] + x*a[i-1] Διάδοση αντιγράφων Υποβιβασμός ισχύος x*5 x<<2 + x Αλγεβρικοί μετασχηματισμοί Αλλαγή σειράς αποτίμησης υποεκφράσεων

Συμβολική Ανάλυση Συμβολική παρακολούθηση τιμών μεταβλητών με κατάλληλη τροποποίηση του κώδικα Επέκταση διάρκειας ζωής των μεταβλητών για εύρεση περισσότερων κοινών υποεκφράσεων και περισσότερη διάδοση αντιγράφων A[x+1] = A[x++] + 1; A[x+1] = A[x] + 1; A[x+1] = A[x] + 1; A[x+2] = A[x+1] + 1; x = x+1;

Δέσμευση Καταχωρητών (με κοινές υποεκφράσεις) Ο ίδιος αλγόριθμος χρωματισμού γραφήματος Τώρα ένας κόμβος με πολλαπλούς πατρικούς κόμβους έχει διάρκεια ζωής μέχρι τον πιο μακρινό πατέρα του Πυκνότερο γράφημα αλληλεπιδράσεων! Αποτέλεσμα: μικρότερος κώδικας, αλλά με χρήση περισσότερων καταχωρητών

Δέσμευση Καταχωρητών (με μεταβλητές προγράμματος) Ο ίδιος αλγόριθμος χρωματισμού γραφήματος Τώρα χρησιμοποιούμε πληροφορία από την ανάλυση ροής δεδομένων για την κατασκευή του γραφήματος αλληλεπιδράσεων Προσωρινές μεταβλητές διαφορετικών εκφράσεων δεν έχουν αλληλεπίδραση Αποτέλεσμα: μείωση προσπελάσεων μνήμης, αλλά με χρήση περισσότερων καταχωρητών

Βέλτιστη Επιλογή Εντολών Επιλογή εντολών για την αποτίμηση μιας έκφρασης που: (α) έχει ελάχιστο κόστος, (β) χρησιμοποιεί τον ελάχιστο αριθμό καταχωρητών και (γ) εφαρμόζει διαδοχική αποτίμηση υποεκφράσεων Εφαρμογή δυναμικού προγραμματισμού για την εύρεση του χαμηλότερου κόστους στην επιλογή των εντολών

Μετασχηματισμοί Χαμηλού Επιπέδου Τοπικοί μετασχηματισμοί (peephole): Αφαίρεση εντολών Απλοποιήσεις αλμάτων Μαθηματικές απλοποιήσεις Βελτιστοποιήσεις σε ειδικές εντολές Βελτιστοποιήσεις δρομολόγησης εντολών Ξεδίπλωμα βρόχων Μετακίνηση εντολών