ಜಿಸಿಸಿ ಕಂಪೈಲರ್ನ ಈ ಹೊಸ ಆವೃತ್ತಿ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ದೋಷ ಪರಿಹಾರಗಳೊಂದಿಗೆ ಕೆಲವು ದಿನಗಳ ಹಿಂದೆ ಲಭ್ಯವಾಯಿತು.
ಗ್ನೂ ಜಿಸಿಸಿ ಪ್ರಾಜೆಕ್ಟ್ ತಂಡದ ಪ್ರಕಾರ, ಈ ಹೊಸ ಆವೃತ್ತಿ, ಆವೃತ್ತಿ 9.1 ಪ್ರಮುಖ ಕಂಪೈಲರ್ ಆವೃತ್ತಿಯಾಗಿದೆ ಜಿಸಿಸಿ 8.x ಅಥವಾ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದ ಪ್ರಮುಖ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಜಿಸಿಸಿ 9.1 ಹೊಸ ಭಾಷೆಯ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ತರಬೇಕು, ಹೊಸ ಆಪ್ಟಿಮೈಸೇಷನ್ಗಳು ಮತ್ತು ಸಾಫ್ಟ್ವೇರ್ಗೆ ಕೆಲವು ಕಾರ್ಯಕ್ಷಮತೆ ಸುಧಾರಣೆಗಳು.
ಜಿಸಿಸಿ ಬಗ್ಗೆ
GCC ಕಂಪೈಲರ್ ಸಂಗ್ರಹವಾಗಿದೆ ಗ್ನು ಯೋಜನೆಯಿಂದ ರಚಿಸಲಾಗಿದೆ. ಇದು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಉಚಿತ ಸಾಫ್ಟ್ವೇರ್ ಆಗಿದೆ ಸಿ, ಸಿ ++, ಆಬ್ಜೆಕ್ಟಿವ್-ಸಿ, ಜಾವಾ, ಅದಾ, ಮತ್ತು ಫೋರ್ಟ್ರಾನ್ ಸೇರಿದಂತೆ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ ಹೊಂದಿದೆ.
ಅದನ್ನೂ ಗಮನಿಸಬೇಕು ಹೆಚ್ಚಿನ ಉಚಿತ ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ. ಇತ್ತೀಚಿನ ಪ್ರಮುಖ ಕಂಪೈಲರ್ ಬಿಡುಗಡೆಯು ಮೇ 2018, ಆವೃತ್ತಿ 8.1 ರ ಹಿಂದಿನದು.
ಜಿಸಿಸಿ 8.1 ಪ್ರಮುಖ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಅದು ಜಿಸಿಸಿ 7.x ಮತ್ತು ಜಿಸಿಸಿಯ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದ ಪ್ರಮುಖ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ತರುತ್ತದೆ ಎಂದು ರೆಡ್ ಹ್ಯಾಟ್ ಡೆವಲಪರ್ ಜಕುಬ್ ಜೆಲಿನೆಕ್ ವಿವರಿಸಿದರು.
ಈ ಸಮಯದಲ್ಲಿ, ಸಿ ++ ಫ್ರಂಟ್-ಎಂಡ್ -std = c ++ 2a ಮತ್ತು -std = gnu ++ 2a ಆಯ್ಕೆಗಳೊಂದಿಗೆ ಕೆಲವು C ++ 2a ಕಾರ್ಯಗಳಿಗೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು ಒದಗಿಸಿದೆ.
ಸಾಮಾನ್ಯ ವರ್ಧನೆಯ ಮಟ್ಟದಲ್ಲಿ ಆವೃತ್ತಿ 8.2 ರಲ್ಲಿ, ದೊಡ್ಡ ಬೈನರಿ ಫೈಲ್ಗಳ ರಚನೆಯ ಸಮಯದಲ್ಲಿ ವಿಭಜನಾ ಅಲ್ಗಾರಿದಮ್ನಲ್ಲಿ ಉಕ್ಕಿ ಹರಿಯುವುದರಿಂದ ಎಲ್ಟಿಒ (ಲಿಂಕ್ ಟೈಮ್ ಆಪ್ಟಿಮೈಸೇಶನ್) ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ.
ಕಳೆದ ಫೆಬ್ರವರಿಯಲ್ಲಿ ಕಂಪೈಲರ್ ಆವೃತ್ತಿ 8 ಬಿಡುಗಡೆಯೊಂದಿಗೆ 8.3.x ಶಾಖೆಯಲ್ಲಿ ಪರಿಹಾರಗಳು ಮುಂದುವರೆದವು. ಈ ಬಿಡುಗಡೆಯು ಬಗ್ಫಿಕ್ಸ್ ಬಿಡುಗಡೆಯಾಗಿದ್ದು, ಇದು ಜಿಸಿಸಿ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಜಿಸಿಸಿ 8.2 ರಲ್ಲಿನ ಹಿಂಜರಿತಗಳಿಗೆ ಪ್ಯಾಚ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಜಿಸಿಸಿ ತಂಡವು ಮೇ 3 ರಂದು ಹೊಸ ಶಾಖೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿತು, ಆವೃತ್ತಿ 9 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿತು.
ಜಿಸಿಸಿ 9.1 ರಲ್ಲಿ ಹೊಸದೇನಿದೆ?
ಈ ಆವೃತ್ತಿಯಲ್ಲಿ, ಕಂಪೈಲರ್ ಆವೃತ್ತಿ 17 ಇನ್ನು ಮುಂದೆ ಅನುಭವವಿಲ್ಲದ ಕಾರಣ ಸಿ ++ 8.1 ಬೆಂಬಲವನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆl. ಆದ್ದರಿಂದ, ಸಿ ++ 17 ಗೆ ಬೆಂಬಲ ಈಗ ಸ್ಥಿರವಾಗಿದೆ.
ನ ಇಂಟರ್ಫೇಸ್ ಸಿ ++ ಸಿ ++ 17 ರ ಸಂಪೂರ್ಣ ಭಾಷೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಸಿ ++ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಗೆ ಬೆಂಬಲವು ಪೂರ್ಣಗೊಳ್ಳುವ ಹಂತದಲ್ಲಿದೆ.
El ಫ್ರಂಟ್-ಎಂಡ್ ಮತ್ತು ಸಿ ++ ಲೈಬ್ರರಿಯು ಸಿ ++ 2 ಎ ಯಿಂದ ಕೋಡ್ ಮಾಡಲಾದ ಇತರ ಹಲವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಹ ಹೊಂದಿದೆ. ಅಲ್ಲದೆ, ಜಿಸಿಸಿ ಡಿ ಭಾಷೆಗೆ ಹೊಸ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಈಗ ಓಪನ್ ಎಂಪಿ 5.0 ಅನ್ನು ಭಾಗಶಃ ಬೆಂಬಲಿಸುತ್ತದೆ ಮತ್ತು ಓಪನ್ ಎಸಿಸಿ 2.5 ಗೆ ಬೆಂಬಲವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸಂಯೋಜಿಸುತ್ತದೆ.
ಅನೇಕರಿಗೆ, ಜಿಸಿಸಿ 9 ಕಂಪೈಲರ್ನ ಬಲವಾದ ಆವೃತ್ತಿಯಾಗಿದ್ದು ಅದು ಡೆವಲಪರ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಉತ್ತಮ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ವರ್ಧನೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಜಿಸಿಸಿ 9.1 ರಲ್ಲಿನ ಹಲವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳೆಂದರೆ:
- ಡಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯೊಂದಿಗೆ ಬರೆಯಲಾದ ಕೋಡ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ಬೆಂಬಲಕ್ಕಾಗಿ ಬೆಂಬಲ;
- ಜಿಸಿಸಿಗೆ ಹೊಸ ಎಎಮ್ಡಿ ಜಿಸಿಎನ್ ಜಿಪಿಯು ಬ್ಯಾಕೆಂಡ್ ಸೇರಿಸಲಾಗಿದೆ. ಅನುಷ್ಠಾನವು ಪ್ರಸ್ತುತ ಏಕ ಥ್ರೆಡ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ಸೀಮಿತವಾಗಿದೆ.
- ARC ಗುರಿಗಾಗಿ LRA ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಇದನ್ನು -mlra ನಿಂದ ನಿಯಂತ್ರಿಸಬಹುದು.
- ಇಮೇಜ್ ಕೋಡ್ ಮತ್ತು ಶಾಖೆ ಮತ್ತು ಸೂಚ್ಯಂಕ ಸಾಂದ್ರತೆಯ ಹೇಳಿಕೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ಸಿ-ಎಸ್ಕೆವೈ ವಿ 2 ಪ್ರೊಸೆಸರ್ಗಳನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡು ಹೊಸ ಬ್ಯಾಕ್-ಎಂಡ್ ಅನ್ನು ಜಿಸಿಸಿಗೆ ಸೇರಿಸಲಾಗಿದೆ.
- ಇಂಟೆಲ್ ಎಂಪಿಎಕ್ಸ್ ಬೆಂಬಲವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.
- OpenRISC ಪ್ರೊಸೆಸರ್ ಬೆಂಬಲಕ್ಕಾಗಿ ಹೊಸ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ಓಪನ್ಎಸಿಸಿ 2.5 ವಿವರಣೆಗೆ ಬೆಂಬಲ ಬಹುತೇಕ ಪೂರ್ಣಗೊಂಡಿದೆ.
- ಜಿಸಿಸಿಯ ಆಂತರಿಕ "ಸೆಲ್ಫ್ಟೆಸ್ಟ್" ಪ್ಯಾಕೇಜ್ ಈಗ ಸಿ ++ ಮತ್ತು ಸಿ (ಕಂಪೈಲರ್ನ ಡೀಬಗ್ ಆವೃತ್ತಿಗಳಲ್ಲಿ) ಗಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
- ಜಿಸಿಸಿ ಯಲ್ಲಿ ಫೋರ್ಟ್ರಾನ್ ಬೆಂಬಲವನ್ನು ಸಹ ಸುಧಾರಿಸಲಾಗಿದೆ. ಇದು ಈಗ ಅಸಮಕಾಲಿಕ I / O ಮತ್ತು ಇತರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
- ಉತ್ತಮ ಕೋಡ್ ಗುಣಮಟ್ಟವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇಂಟರ್ ಪ್ರೊಸೀಜರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (ಒಪಿಐ), ಪ್ರೊಫೈಲ್-ಬೇಸ್ಡ್ ಆಪ್ಟಿಮೈಸೇಶನ್, ಲಿಂಕ್ ಟೈಮ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (ಎಲ್ಟಿಒ), ಮತ್ತು ಇತರ ಹಲವು ಆಪ್ಟಿಮೈಸೇಶನ್.
- 66-ಕೋರ್ ಯಂತ್ರದಲ್ಲಿ ಫೈರ್ಫಾಕ್ಸ್ 6.2.3 ಮತ್ತು ಲಿಬ್ರೆ ಆಫೀಸ್ 8 ರ ಒಟ್ಟು ಕಂಪೈಲ್ ಸಮಯವನ್ನು ಜಿಸಿಸಿ 5 ಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಸುಮಾರು 8.3% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ. LTO ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ಗಳ ಗಾತ್ರವನ್ನು 7% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ.
- ಎಲ್ಟಿಒ ಲಿಂಕ್ ಸಮಯವು 11 ಕೋರ್ ಯಂತ್ರಗಳಲ್ಲಿ 8% ರಷ್ಟು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಸಮಾನಾಂತರ ನಿರ್ಮಾಣ ಪರಿಸರಕ್ಕಾಗಿ ನಾಟಕೀಯವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತದೆ. ಲಿಂಕ್ ಸಮಯ ಆಪ್ಟಿಮೈಸೇಶನ್ನ ಸರಣಿ ಹಂತವು 28% ವೇಗವಾಗಿರುತ್ತದೆ ಮತ್ತು 20% ಕಡಿಮೆ ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಸಮಾನಾಂತರ ಹಂತವು ಈಗ 128 ರ ಬದಲು 32 ವಿಭಾಗಗಳನ್ನು ವಿಭಜಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು 30% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- ಯಂತ್ರವನ್ನು ಓದಬಲ್ಲ ಸ್ವರೂಪದಲ್ಲಿ ರೋಗನಿರ್ಣಯಕ್ಕಾಗಿ "-fdiagnostics-format = json" ಎಂಬ ಹೊಸ ಆಯ್ಕೆಯನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ.
ಮೂಲ: https://gcc.gnu.org