LLVM 13.0 מגיע עם שיפורי תמיכה ועוד

Llvm

לאחר שישה חודשים של פיתוח, השקת הגרסה החדשה של הפרויקט «LLVM 13.0» הוצגה זה עתה תואם GCC (קומפילרים, אופטימיזציה ומחוללי קוד) שמאגד תוכניות לקוד סיביות ביניים של הוראות וירטואליות בדומה ל- RISC (מכונה וירטואלית ברמה נמוכה עם מערכת אופטימיזציה מרובת רמות).

בגרסה חדשה זו נוספו שינויים וחידושים שונים, מתוכם שיפורי התמיכה מודגשים כמו גם יישום התכונות החדשות של C ++ 20 ו- C ++ 2b בין היתר.

התכונות החדשות העיקריות של LLVM 13.0

בגרסה חדשה זו אנו יכולים למצוא שוהוסיף אפשרות "-contcontard" לשימוש בטכנולוגיית CET (טכנולוגיית האכיפה של זרימת בקרה של Windows) כדי להגן בשלב הטיפול החריג של ביצוע ניצולים שנבנו בטכניקות תכנות מוכווני החזרה (ROP).

חוץ מזה, ופרוייקט הבדיקה debuginfo שונה לשם לבדיקות בין פרויקטים והיא נועדה לבדוק רכיבים מפרויקטים מרובים, לא רק מידע על ניפוי באגים, ומערכת הבנייה מספקת תמיכה בבניית הפצות מרובות, למשל אחת עם שירותים והשנייה עם ספריות מפתחים.

מאידך גיסא Libc ++ ממשיכה ליישם תכונות חדשות מהתקנים C ++ 20 ו- C ++ 2b, כולל השלמת ספריית 'מושגים', פלוס תמיכה נוספת עבור מערכת הקבצים std: Windows המבוססת על MinGW, גם קבצי כותרות נפרדים , ו ואפשרות לבנות LIBCXX_ENABLE_INCOMPLETE_FEATURES נוספה להשבתת קבצי כותרות עם פונקציונליות שהוטמעה באופן מלא.

בעוד backend עבור ארכיטקטורת AArch64 תומך בהרחבות Armv9-A RME (הרחבת ניהול ממלכת) ו- SME (הרחבת מטריקס מדרגית) במכלול, נוספה תמיכה ב- ISA V68 / HVX ל- backend של הארכיטקטורה המשושה ול backend x86 תאימות משופרת למעבדי AMD Zen 3 והוסיף תמיכה ב- GFX1013 RDNA2 APUs backend של AMDGPU.

היכולות של מקשר LLD, המיישם תמיכה במעבדי Aarch64 Big-endian, הורחבו גם הם, ותמיכת ה- Mach-O הובאה למצב המאפשר קישור של תוכניות רגילות. הוא כולל את השיפורים הדרושים לקישור Glibc באמצעות LLD.

כלי ה- lvm-mca (Machine Code Analyzer) מוסיף תמיכה במעבדי צינור על-קשתיים, כגון ARM Cortex-A55.

מאתר LLDB לפלטפורמת AArch64 מספק תמיכה מלאה לאימות מצביע, מאגרי MTE (MemTag, Memory Tagging Extension) ו- SVE, ועוד נוספו פקודות המאפשרות לאגד תגים לכל פעולת הקצאת זיכרון ולארגן, בעת גישה לזיכרון, לבדוק את המצביע שאמור להיות קשור לתג הנכון.
הבאגר LLDB וממשק פורטראן - פלאנג נוספו למכלולים הבינאריים שנוצרו על ידי הפרויקט.

כ Clang 13.0 מדגיש שיפורים:

  • תמיכה בשיחות תורים מובטחות (קריאת שגרת משנה בסוף פונקציה, היוצרת רקורציה של תור אם תת -השיחה קוראת לעצמה) יושמה.
  • הוסיף את הדגלים "-Wunused-but-set-parameter" ו- "-Wunused-but-set-variable" כדי להציג אזהרה אם נקבע פרמטר או משתנה אך לא נעשה בהם שימוש.
  • נוסף דגל "-Wnull-pointer-subtraction" כדי להציג אזהרה אם הקוד עלול להוביל להתנהגות לא מוגדרת עקב שימוש במצביע null בפעולות חיסור.
  • הוסיף את הדגל "-ערימה לשימוש" כדי ליצור עבור כל קובץ קוד קובץ ".su" נוסף המכיל מידע על גודל מסגרות הערימה עבור כל פונקציה המוגדרת בקובץ המעובד.
  • סוג חדש של פלט נוסף למנתח הסטטי, "sarif-html", מה שמביא ליצירת דוחות במקביל בפורמטים של HTML ו- Sarif.
  • נוסף צ'ק חדש עבור allocClassWithName. כאשר מצוינת האפשרות "-מנתח-תצוגה-התקדמות", מוצג זמן הניתוח לכל פונקציה. מנתח המצביע החכם (alpha.cplusplus.SmartPtr) כמעט מוכן.
  • יושמה תמיכה בהנחיות הטרנספורמציה של הלולאה ("#pragma omp unrol" ו- "#pragma omp אריח"), המוגדרות במפרט OpenMP 5.1.
  • חלק גדול מההמחאות החדשות נוספו ללינטר קלאנג-מסודר.

בסופו של דבר אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.