Unreachable code
ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ, ತಲುಪಲಾಗದ ಕೋಡ್ ಪ್ರೋಗ್ರಾಂನ ಮೂಲ ಕೋಡ್ನ ಭಾಗವಾಗಿದೆ, ಅದನ್ನು ಎಂದಿಗೂ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಉಳಿದ ಪ್ರೋಗ್ರಾಂನಿಂದ ಕೋಡ್ಗೆ ಯಾವುದೇ ನಿಯಂತ್ರಣ ಹರಿವಿನ ಮಾರ್ಗವಿಲ್ಲ. ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ಕೆಲವೊಮ್ಮೆ ಡೆಡ್ ಕೋಡ್ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ, ಆದಾಗ್ಯೂ ಡೆಡ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಕೋಡ್ ಅನ್ನು ಸಹ ಉಲ್ಲೇಖಿಸಬಹುದು ಆದರೆ ಪ್ರೋಗ್ರಾಂನ ಔಟ್ಪುಟ್ ಮೇಲೆ ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ ಅನಪೇಕ್ಷಿತವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆಃ ಇದು ಅನಗತ್ಯವಾಗಿ ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ ಇದು ಸಿಪಿಯುನ ಸೂಚನಾ ಸಂಗ್ರಹದ ಅನಗತ್ಯ ಬಳಕೆಗೆ ಕಾರಣವಾಗಬಹುದು ಇದು ದತ್ತಾಂಶದ ಸ್ಥಳವನ್ನು ಸಹ ಕಡಿಮೆ ಮಾಡಬಹುದು ಸಮಯ ಮತ್ತು ಶ್ರಮವನ್ನು ಎಂದಿಗೂ ಬಳಸದ ಕೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು, ನಿರ್ವಹಿಸಲು ಮತ್ತು ದಾಖಲಿಸಲು ಖರ್ಚು ಮಾಡಬಹುದು. ಆದಾಗ್ಯೂ, ತಲುಪಲಾಗದ ಕೋಡ್ ಕೆಲವು ಕಾನೂನುಬದ್ಧ ಉಪಯೋಗಗಳನ್ನು ಹೊಂದಿರಬಹುದು, ಉದಾಹರಣೆಗೆ ಬ್ರೇಕ್ಪಾಯಿಂಟ್ ನಂತರ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನಿಲ್ಲಿಸಿದಾಗ ಡೀಬಗ್ಗರ್ ಮೂಲಕ ಹಸ್ತಚಾಲಿತವಾಗಿ ಕರೆ ಮಾಡಲು ಅಥವಾ ಜಂಪ್ ಮಾಡಲು ಕಾರ್ಯಗಳ ಗ್ರಂಥಾಲಯವನ್ನು ಒದಗಿಸುವುದು. ಕಾರ್ಯಕ್ರಮದ ಆಂತರಿಕ ಸ್ಥಿತಿಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಸುಂದರವಾಗಿ ಮುದ್ರಿಸಲು ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ರವಾನೆಯಾದ ಉತ್ಪನ್ನದಲ್ಲಿ ಅಂತಹ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುವುದು ಅರ್ಥಪೂರ್ಣವಾಗಬಹುದು, ಇದರಿಂದಾಗಿ ಡೆವಲಪರ್ ಕ್ಲೈಂಟ್ನ ಚಾಲನೆಯಲ್ಲಿರುವ ನಿದರ್ಶನಕ್ಕೆ ಡೀಬಗ್ಗರ್ ಅನ್ನು ಲಗತ್ತಿಸಬಹುದು. ತಲುಪಲಾಗದ ಕೋಡ್ ಅನೇಕ ಕಾರಣಗಳಿಗಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬಹುದು, ಉದಾಹರಣೆಗೆಃ ಸಂಕೀರ್ಣ ಷರತ್ತುಬದ್ಧ ಶಾಖೆಗಳಲ್ಲಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ದೋಷಗಳು-ಆಪ್ಟಿಮೈಸಿಂಗ್ ಕಂಪೈಲರ್ ನಡೆಸಿದ ಆಂತರಿಕ ರೂಪಾಂತರಗಳ ಪರಿಣಾಮ; ಹೊಸ ಅಥವಾ ಮಾರ್ಪಡಿಸಿದ ಕೋಡ್ ಲೆಗಸಿ ಕೋಡ್ ಕೋಡ್ನ ಅಪೂರ್ಣ ಪರೀಕ್ಷೆಯನ್ನು ಮತ್ತೊಂದು ಅನುಷ್ಠಾನದಿಂದ ಬದಲಾಯಿಸಲಾಯಿತು-ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮರ್ ಅಳಿಸದಿರಲು ನಿರ್ಧರಿಸಿದರು ಏಕೆಂದರೆ ಇದು ತಲುಪಬಹುದಾದ ಕೋಡ್ನೊಂದಿಗೆ ಬೆರೆತಿದೆ-ಸಂಭಾವ್ಯವಾಗಿ ತಲುಪಬಹುದಾದ ಕೋಡ್ ಪ್ರಸ್ತುತ ಬಳಕೆಯ ಪ್ರಕರಣಗಳಿಗೆ ಎಂದಿಗೂ ಸುಪ್ತ ಕೋಡ್ ಅಗತ್ಯವಿಲ್ಲ, ಅದನ್ನು ನಂತರ ಅಗತ್ಯವಿದ್ದರೆ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಇಡಲಾಗುತ್ತದೆ ಕೋಡ್ ಅನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ. ಲೆಗಸಿ ಕೋಡ್ ಒಂದು ಕಾಲದಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿತ್ತು ಆದರೆ ಇನ್ನು ಮುಂದೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಅಗತ್ಯವಿಲ್ಲ. ಆದರೆ ತಲುಪಲಾಗದ ಕೋಡ್ ಸಂಕೀರ್ಣ ಲೈಬ್ರರಿ, ಮಾಡ್ಯೂಲ್ ಅಥವಾ ವಾಡಿಕೆಯ ಭಾಗವಾಗಿರಬಹುದು, ಅಲ್ಲಿ ಅದು ಇತರರಿಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಸನ್ನಿವೇಶದಲ್ಲಿ ಪೂರೈಸದ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಅಂತಹ ಷರತ್ತುಬದ್ಧವಾಗಿ ತಲುಪಲಾಗದ ಕೋಡ್ಗೆ ಒಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಕಂಪೈಲರ್ನ ರನ್ಟೈಮ್ ಲೈಬ್ರರಿಯಲ್ಲಿ ಸಾಮಾನ್ಯ ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಕಾರ್ಯವನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವುದು, ಇದು ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಂಕೀರ್ಣ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಅದರಲ್ಲಿ ಕೇವಲ ಒಂದು ಸಣ್ಣ ಉಪವಿಭಾಗವನ್ನು ಮಾತ್ರ ವಾಸ್ತವವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಕಂಪೈಲರ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಕೆಯಾಗದ ಕೋಡ್ ವಿಭಾಗಗಳನ್ನು ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ನಡವಳಿಕೆಯು ಚಾಲನೆಯಲ್ಲಿರುವ ಸಮಯದಲ್ಲಿ ವಾದಗಳ ಮೌಲ್ಯಗಳಿಂದ ಹೆಚ್ಚಾಗಿ ನಿರ್ಧರಿಸಲ್ಪಡುತ್ತದೆ. ಉದಾಹರಣೆಗಳು ಸಿ ಕೋಡ್ನ ಈ ತುಣುಕಿನಲ್ಲಿಃ ಇಂಟೂ (ಇಂಟು X, ಇಂಟು Y) {ರಿಟರ್ನ್ X + Y; ಇಂಟು Z = X * Y;} ವ್ಯಾಖ್ಯಾನವನ್ನು ಎಂದಿಗೂ ತಲುಪಲಾಗುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಕಾರ್ಯವು ಯಾವಾಗಲೂ ಅದರ ಮೊದಲು ಹಿಂತಿರುಗುತ್ತದೆ. ಆದ್ದರಿಂದ, ಸಂಗ್ರಹಣೆಯನ್ನು ನಿಗದಿಪಡಿಸುವ ಅಗತ್ಯವಿಲ್ಲ ಅಥವಾ ಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಫೆಬ್ರವರಿ 2014 ರಿಂದ ಆಪಲ್ನ ಎಸ್ಎಸ್ಎಲ್/ಟಿಎಲ್ಎಸ್ನಲ್ಲಿ ಗೊಟೊ ಫೇಲ್ ದೋಷವು ಔಪಚಾರಿಕವಾಗಿ ಮತ್ತು ಅನೌಪಚಾರಿಕವಾಗಿ "ಗೊಟೊ ಫೇಲ್ ದೋಷ" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಪ್ರಮುಖ ಭದ್ರತಾ ದೋಷವನ್ನು ಹೊಂದಿತ್ತು. ಸಂಬಂಧಿತ ಕೋಡ್ ತುಣುಕು ಹೀಗಿದೆಃ ಸ್ಥಿರವಾದ ಒಎಸ್ಎಸ್ಸ್ಟಾಟಸ್ ಎಸ್ಎಸ್ಎಲ್ವಿಎರಿಫೈಸೈನ್ಡ್ ಸರ್ವರ್ ಕೀಎಕ್ಸ್ಚೇಂಜ್ (ಎಸ್ಎಸ್ಎಲ್ಸಿ ಕಾಂಟೆಕ್ಸ್ಟ್ * ಸಿಟಿಎಕ್ಸ್, ಬೂಲ್ ಈಸ್ಆರ್ಎಸ್ಎ, ಎಸ್ಎಸ್ಎಲ್ಬಫರ್ ಸೈನ್ಡ್ ಪರಾಮ್ಸ್, ಯುಯಿನ್ಟ್8ಟಿ * ಸಿಗ್ನೇಚರ್, ಯುಐನ್ಟ್16 ಸಿಗ್ನೇಚರ್ ಲೆನ್) {ಒಎಸ್ಎಸ್ಸ್ಟಾಟಸ್ ಎರ್;. ((ಇಆರ್ಆರ್ = SSLHashSHA1.update (& ಹ್ಯಾಶ್ ಸಿಟಿಎಕ್ಸ್, & ಸರ್ವರ್ ರಾಂಡಮ್)! = 0) ವಿಫಲವಾದರೆ; (ಇಆರ್ಆರ್ = SSLHashSHA1.update (& ಹ್ಯಾಶ್ ಸಿಟಿಎಕ್ಸ್, & ಸೈನ್ಡ್ ಪರಾಮ್ಸ್)! = 0) ವಿಫಲವಾದರೆ; ವಿಫಲವಾದರೆ; ವಿಫಲವಾದರೆ (ಇಆರ್ಆರ್ = SSLHashSHA1.final) ಸಿ ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯಲ್ಲಿ, ಎರಡನೆಯದು ಬೇಷರತ್ತಾಗಿದೆ, ಆದ್ದರಿಂದ ಯಾವಾಗಲೂ ಕರೆಯನ್ನು SSLHashSHA1.final ಗೆ ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಇದರ ಪರಿಣಾಮವಾಗಿ, ದೋಷವು SHA1 ನವೀಕರಣ ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಥಿತಿಯನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಸಹಿ ಪರಿಶೀಲನೆಯು ಎಂದಿಗೂ ವಿಫಲವಾಗುವುದಿಲ್ಲ. ಇಲ್ಲಿ, ತಲುಪಲಾಗದ ಕೋಡ್ ಅಂತಿಮ ಕಾರ್ಯಕ್ಕೆ ಕರೆಯಾಗಿದೆ. ಕ್ಲಾಂಗ್ ಕಂಪೈಲರ್ ಅನ್ನು-ವೆವೆರಿಥಿಂಗ್ ಆಯ್ಕೆಯೊಂದಿಗೆ ಅನ್ವಯಿಸುವುದು ತಲುಪಲಾಗದ ಕೋಡ್ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಈ ಕೋಡ್ಗೆ ಎಚ್ಚರಿಕೆಯನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ. ಸಿ + + ನಲ್ಲಿ, ಕೆಲವು ರಚನೆಗಳು ವಿವರಿಸಲಾಗದ ನಡವಳಿಕೆಯನ್ನು ಹೊಂದಿವೆ ಎಂದು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ. ಕಂಪೈಲರ್ ಯಾವುದೇ ನಡವಳಿಕೆಯನ್ನು ಅಥವಾ ಯಾವುದನ್ನೂ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮುಕ್ತವಾಗಿದೆ, ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಆಪ್ಟಿಮೈಸಿಂಗ್ ಕಂಪೈಲರ್ ಕೋಡ್ ಅನ್ನು ತಲುಪಲಾಗುವುದಿಲ್ಲ ಎಂದು ಭಾವಿಸುತ್ತದೆ. ತಲುಪಲಾಗದ ಕೋಡ್ನ ವಿಶ್ಲೇಷಣೆ ಪತ್ತೆಹಚ್ಚುವಿಕೆಯು ಯಾವುದೇ ಸಂಭವನೀಯ ಪ್ರೋಗ್ರಾಂ ಸ್ಥಿತಿಯಲ್ಲಿ ಎಂದಿಗೂ ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು ನಿಯಂತ್ರಣ ಹರಿವಿನ ವಿಶ್ಲೇಷಣೆಯ ಒಂದು ರೂಪವಾಗಿದೆ. ಕೆಲವು ಭಾಷೆಗಳಲ್ಲಿ (ಉದಾ. ಜಾವಾ) ತಲುಪಲಾಗದ ಕೋಡ್ನ ಕೆಲವು ರೂಪಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಡೆಡ್ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಆಪ್ಟಿಮೈಸಿಂಗ್ ಕಂಪೈಲರ್ (ಉದಾಹರಣೆಗೆ, ಸಾಮಾನ್ಯ ಸಬ್ಎಕ್ಸ್ಪ್ರೆಷನ್ ಎಲಿಮಿನೇಷನ್) ನಡೆಸಿದ ರೂಪಾಂತರಗಳ ಪರಿಣಾಮವಾಗಿ ಕೋಡ್ ಅನ್ನು ತಲುಪಲಾಗುವುದಿಲ್ಲ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ವಿಶ್ಲೇಷಣೆಯ ಉತ್ಕೃಷ್ಟತೆಯು ಪತ್ತೆಹಚ್ಚಲಾಗದ ಕೋಡ್ಗಳ ಪ್ರಮಾಣದ ಮೇಲೆ ಗಮನಾರ್ಹ ಪರಿಣಾಮವನ್ನು ಬೀರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸ್ಥಿರವಾದ ಮಡಿಸುವಿಕೆ ಮತ್ತು ಸರಳವಾದ ಹರಿವಿನ ವಿಶ್ಲೇಷಣೆಯು ಈ ಕೆಳಗಿನ ಕೋಡ್ನಲ್ಲಿನ ಐಎಫ್-ಹೇಳಿಕೆಯ ಒಳಭಾಗವನ್ನು ತಲುಪಲಾಗುವುದಿಲ್ಲ ಎಂದು ತೋರಿಸುತ್ತದೆಃ ಐಎನ್ = 2 + 1; (ಎನ್ = = 4) {/* ತಲುಪಲಾಗದಿದ್ದರೆ */} ಆದಾಗ್ಯೂ, ಈ ಕೆಳಗಿನ ಕೋಡ್ನಲ್ಲಿ ಅನುಗುಣವಾದ ಬ್ಲಾಕ್ ಅನ್ನು ತಲುಪಲಾಗುವುದಿಲ್ಲ ಎಂದು ಕಂಡುಹಿಡಿಯಲು ಹೆಚ್ಚಿನ ಅತ್ಯಾಧುನಿಕತೆಯ ಅಗತ್ಯವಿದೆಃ ಡಬಲ್ ಎಕ್ಸ್ = ಎಸ್. ಕ್ಯು. ಆರ್. ಟಿ (2); (ಎಕ್ಸ್> 5) {/* ತಲುಪಿಸಲಾಗದಿದ್ದರೆ */} ತಲುಪಿಸಲಾಗದ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್ ತಂತ್ರವು ಡೆಡ್ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್ ಮತ್ತು ಅನಗತ್ಯ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್ನಂತಹ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳ ಅದೇ ವರ್ಗದಲ್ಲಿದೆ. ತಲುಪಲಾಗದಿರುವಿಕೆ ವರ್ಸಸ್ ಪ್ರೊಫೈಲಿಂಗ್ ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಪ್ರಾಯೋಗಿಕ ವಿಧಾನವು ಸರಳವಾದ ತಲುಪಲಾಗದ ಮಾನದಂಡಗಳ ಸಂಯೋಜನೆಯಾಗಿರಬಹುದು ಮತ್ತು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಪ್ರಕರಣಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪ್ರೊಫೈಲರ್ನ ಬಳಕೆಯಾಗಿರಬಹುದು. ಪ್ರೊಫೈಲಿಂಗ್ ಸಾಮಾನ್ಯವಾಗಿ ಕೋಡ್ ತುಣುಕಿನ ತಲುಪಲಾಗದ ಬಗ್ಗೆ ಏನನ್ನೂ ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಸಂಭಾವ್ಯವಾಗಿ ತಲುಪಲಾಗದ ಕೋಡ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು ಉತ್ತಮ ಹ್ಯೂರಿಸ್ಟಿಕ್ ಆಗಿರಬಹುದು. ಅನುಮಾನಾಸ್ಪದ ಕೋಡ್ ತುಣುಕು ಕಂಡುಬಂದ ನಂತರ, ಕೋಡ್ ಅನ್ನು ನಿಜವಾಗಿಯೂ ತಲುಪಲಾಗುವುದಿಲ್ಲವೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಹೆಚ್ಚು ಶಕ್ತಿಯುತವಾದ ಕೋಡ್ ವಿಶ್ಲೇಷಣೆ ಸಾಧನ ಅಥವಾ ಕೈಯಿಂದ ವಿಶ್ಲೇಷಣೆಯಂತಹ ಇತರ ವಿಧಾನಗಳನ್ನು ಬಳಸಬಹುದು. ಕೋಡ್ ಕವರೇಜ್ ರಿಡಂಡೆಂಟ್ ಕೋಡ್ ಡೆಡ್ ಕೋಡ್ ಆಕ್ಸ್ಬೋ ಕೋಡ್ ರೆಫರೆನ್ಸಸ್ ಅಪ್ಪೆಲ್, ಎ. ಡಬ್ಲ್ಯೂ. 1998 ಮಾಡರ್ನ್ ಕಂಪೈಲರ್ ಇಂಪ್ಲಿಮೆಂಟೇಶನ್ ಇನ್ ಜಾವಾವನ್ನು ಸಹ ನೋಡಿ. ಕೇಂಬ್ರಿಡ್ಜ್ ಯೂನಿವರ್ಸಿಟಿ ಪ್ರೆಸ್. ಮಚ್ನಿಕ್ ಎಸ್. ಎಸ್. 1997 ಅಡ್ವಾನ್ಸ್ಡ್ ಕಂಪೈಲರ್ ಡಿಸೈನ್ ಅಂಡ್ ಇಂಪ್ಲಿಮೆಂಟೇಶನ್. ಮಾರ್ಗನ್ ಕೌಫ್ಮನ್. ಕಂಪೈಲರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ ಸಾಫ್ಟ್ವೇರ್ ವೈಪರೀತ್ಯಗಳು ಮೂಲ ಕೋಡ್