Ο μεταγλωττιστής GCC 10.1 είναι εδώ και αυτές είναι οι κύριες καινοτομίες του

Μετά από ένα χρόνο ανάπτυξης δημοσιεύθηκε η κυκλοφορία της νέας έκδοσης από το δωρεάν σετ Μεταγλωττιστές GCC 10.1, αυτή είναι η πρώτη σημαντική κυκλοφορία στον νέο κλάδο του GCC 10.x.

Σύμφωνα με το νέο σχήμα αρίθμησης έκδοσης, η έκδοση 10.0 χρησιμοποιήθηκε κατά τη διαδικασία ανάπτυξης και λίγο πριν από την κυκλοφορία του GCC 10.1, ο κλάδος GCC 11.0 είχε ήδη διακλαδωθεί, βάσει του οποίου θα σχηματιστεί η επόμενη έκδοση. σημασία του GCC 11.1.

Για όσους δεν είναι εξοικειωμένοι με το GCC (Συλλογή GNU Compiler), πρέπει να γνωρίζετε ότι π.χ.Αυτό είναι ένα σύνολο μεταγλωττιστών που δημιουργήθηκαν από το έργο GNU, είναι ελεύθερο λογισμικό και διανέμεται από το Ίδρυμα Ελεύθερου Λογισμικού (FSF) με άδεια γενικού κοινού GPL.

Αυτοί οι μεταγλωττιστές χρησιμοποιούνται ευρέως στα περισσότερα συστήματα Unix σε τέτοιο βαθμό που θεωρούνται πρότυπο για λειτουργικά συστήματα Unix και παράγωγα ανοιχτού κώδικα και επίσης ιδιόκτητα, όπως το Mac OS X.

Το GCC απαιτεί το σύνολο εφαρμογών γνωστών ως binutils για την εκτέλεση εργασιών όπως ο εντοπισμός αρχείων αντικειμένων ή η απόκτηση του μεγέθους τους για αντιγραφή, μετάφραση ή δημιουργία λιστών, σύνδεση τους ή αφαίρεση περιττών συμβόλων.

Τι νέο υπάρχει στο GCC 10.1

Το GCC 10.1 ξεχωρίζει για την εφαρμογή πολλών καινοτομιών της γλώσσας C ++ αναπτύχθηκε για το πρότυπο C ++ 20, βελτιώσεις που σχετίζονται με το μελλοντικό πρότυπο γλώσσας C (C2x), νέες βελτιστοποιήσεις στο backend του μεταγλωττιστή και την πειραματική υποστήριξη για λειτουργία στατικής ανάλυσης.

Για τις γλώσσες C, C ++ και Fortran, εφαρμόζεται η προδιαγραφή παράλληλου προγραμματισμού OpenACC 2.6, το οποίο ορίζει εργαλεία λήψης σε GPU και εξειδικευμένους επεξεργαστές όπως το NVIDIA PTX.

Η εφαρμογή του προτύπου Ανοίξτε το MP 5.0 (Open Multi-Processing), το οποίο καθορίζει το API και τις μεθόδους χρήσης παράλληλων μεθόδων προγραμματισμού σε συστήματα πολλαπλών πυρήνων και υβριδίων (CPU + GPU / DSP) με κοινόχρηστες μονάδες μνήμης και διανύσματος (SIMD), έχει σχεδόν τελειώσει.

Τα χαρακτηριστικά προστίθενται ως εκφράσεις υπό όρους οδηγίες τελευταίας ιδιωτικής χρήσης, σάρωσης και βρόχου, παραγγελίες και εκφράσεις_εφαρμογής_συσκευής Για OpenMP και OpenACC, προστέθηκε υποστήριξη για λήψη σε GPU XNUMXης και XNUMXης γενιάς AMD Radeon.

Για τις γλώσσες C, η συνάρτηση "πρόσβασης" έχει προστεθεί για να περιγράψει την πρόσβαση στη συνάρτηση αντικειμένων που διέρχονται από αναφορά ή δείκτη και για να συσχετίσει αυτά τα αντικείμενα με ακέραια ορίσματα που περιέχουν πληροφορίες σχετικά με το μέγεθος των αντικειμένων.

Για να λειτουργήσει σε συνδυασμό με την "πρόσβαση", το χαρακτηριστικό "type" εφαρμόζεται για την ανίχνευση εσφαλμένης πρόσβασης από τις λειτουργίες του χρήστη, για παράδειγμα, όταν γράφετε τιμές σε μια περιοχή έξω από τα όρια του πίνακα. Το χαρακτηριστικό symver έχει επίσης προστεθεί για τη σύνδεση χαρακτήρων στο αρχείο ELF σε συγκεκριμένους αριθμούς έκδοσης.

Για το C ++, έχουν εφαρμοστεί περίπου 16 αλλαγές και καινοτομίες αναπτύχθηκε στο πρότυπο C ++ 20 συμπεριλαμβανομένης της λέξης-κλειδιού "constinit" πρόσθεσε και υλοποίησε υποστήριξη για επέκταση προτύπων «έννοια»Αυτό σας επιτρέπει να ορίσετε ένα σύνολο απαιτήσεων για παραμέτρους προτύπου, οι οποίες κατά τη σύνταξη περιορίζουν το σύνολο ορισμάτων που μπορούν να ληφθούν ως παράμετροι προτύπου.

Επίσης επισημαίνονται βελτιωμένες διαδικαστικές βελτιστοποιήσεις, Το IPA-SRA έχει επανασχεδιαστεί για να λειτουργεί κατά τη διάρκεια της δέσμευσης και, μεταξύ άλλων, αφαιρεί πλέον τις μη χρησιμοποιημένες υπολογισμένες και επιστρεφόμενες τιμές.

Στη λειτουργία βελτιστοποίησης "-O2", είναι ενεργοποιημένη η επιλογή "-finline-functions", η οποία επαναδιαμορφώνεται για πιο συμπαγή κώδικα παρά για απόδοση.

ο βελτιωμένη βελτιστοποίηση συνδέσμου (LTO), sκαι πρόσθεσε ένα νέο εκτελέσιμο αρχείο lto-dump για την απόρριψη πληροφοριών σε αρχεία αντικειμένου με κωδικοποίηση byte LTO. Σε παράλληλες μεταβιβάσεις LTO, ο αριθμός των ταυτόχρονων εργασιών εκτέλεσης μπορεί να προσδιοριστεί αυτόματα και, εάν αυτό δεν μπορεί να προσδιοριστεί, χρησιμοποιήστε πληροφορίες σχετικά με τον αριθμό των πυρήνων CPU ως παράγοντας παραλληλοποίησης.

Ο μηχανισμός βελτιστοποίησης βελτιώθηκε και βασίζεται στα αποτελέσματα του Code Profiling (PGO), το οποίο δημιουργεί πιο βέλτιστο κώδικα με βάση την ανάλυση των χαρακτηριστικών της εκτέλεσης κώδικα.

Αν θέλετε να μάθετε περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες αυτής της έκδοσης Στον ακόλουθο σύνδεσμο. 


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.