рдПрд▓рдПрд▓рд╡реАрдПрдо 3.0 рд░рд┐рд▓реАрдЬ

1 рджрд┐рд╕рдВрдмрд░ рдХреЛ, рдПрд▓рдПрд▓рд╡реАрдПрдо 3.0 (рд▓реЛ рд▓реЗрд╡рд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - "рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░" рдЬреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдЗрдВрдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реНрдб рд▓реЛ-рд▓реЗрд╡рд▓ рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ (рд╣реИрдмреЗ рдкрд░ рд╕рдореАрдХреНрд╖рд╛ рджреЗрдЦреЗрдВ)ред рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдФрд░ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЯреВрд▓ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрд▓рдПрд▓рд╡реАрдПрдо 2.9 рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рдмрд╛рдж рдЫрд╣ рдорд╣реАрдиреЗ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ, рдирдП "рд▓рд╛рд▓рдЪреА" рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рдВрдЯрди рд╕рд╣рд┐рдд рдХрд╛рдлреА рдХреБрдЫ рдирд╡рд╛рдЪрд╛рд░ ред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рдЕрдиреНрдп рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╕реА ++ рдореЗрдореЛрд░реА рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди, рдПрдХ рдмрд╣реБрдд рд╣реА рдмреЗрд╣рддрд░ рдПрдордЖрдЗрдкреА рдмреИрдХрдПрдВрдб, рдФрд░ рд▓рд╛рднрдХрд╛рд░реА рдФрд░ рдЬреАрд╕реАрдУрд╡реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░рд┐рд▓реАрдЬ рд╣реИ, рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ "рдкреБрд░рд╛рдиреЗ рд╕рд╛рдорд╛рди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред" рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, LLVM 3.0 рдЕрдм рдлреНрд░рдВрдЯ-рдПрдВрдб llvm-gcc рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ Clang рдпрд╛ Dragonegg рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рд╕реА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдЬреЛ рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрд╕реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдбреНрд░реИрдЧрдиреЗрдЧред рдЬреАрд╕реАрд╕реА рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рд╕реЗ рдмрдВрдбрд▓ рд╕реА, рд╕реА ++, рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рдПрдбрд╛, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА ++ рдФрд░ рдЧреВрдЧрд▓ рдЧреЛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

LLVM 3.0 рднреА LLVM 2.8 рдпрд╛ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреА .bc рдпрд╛ .ll рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдирдП рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдХреЗ рдмрд╛рдж рдпрд╣ рдЕрдм рдФрд░ рди рдмрджрд▓реЗред

LLVM 3.0 рдХреНрд▓реИрдВрдЧ 3.0 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ рд╣реИ ( рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рджреЗрдЦреЗрдВ), рдЬрд┐рд╕рдореЗрдВ C'1x рдФрд░ C ++ '11 (C ++ '0x) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

рдирддреАрдЬрддрди, рдХреНрд▓реИрдВрдЧ рдЦреБрдж рд╕реЗ рддреЗрдЬ рдЪрд▓рддрд╛ рд╣реИ, рддреЗрдЬ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреАрд╕реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп LLVM 2.9 рд╕реЗ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In133939/


All Articles