LLVM 코어 라이브러리 (LLVM 필수 기능 및 고급 툴 개발을 위한 사용법)

LLVM 코어 라이브러리 (LLVM 필수 기능 및 고급 툴 개발을 위한 사용법)

$25.00
Description
[제대로 배우는 LLVM 코어 라이브러리]는 처음 사용을 위해 LLVM 라이브러리, 툴과 외부 프로젝트에 대한 구성 방법, 구축 방법, 그리고 설치 방법을 보여준다. 다음으로 LLVM 디자인에 대해 소개하고 프론트엔드, IR, 백엔드, JIT 엔진, 크로스 컴파일 기능 그리고 플러그인 인터페이스와 같은 각각의 LLVM 컴파일러 단계를 통해 실제 컴파일러 동작 방법에 대해서도 소개한다. 다양한 예제와 소스 코드 조작들을 통해 LLVM 컴파일러 개발 환경에 대해 부드러우면서도 탄탄한 기반을 제공한다.
저자

부르노카도소로페즈

부르노카도소로페즈BrunoCardosoLopes
브라질캄피나스대학(UniversityofCampinas)에서컴퓨터사이언스박사학위를받았다.2007년부터LLVM에참여했으며몇년동안유지해온MIPS백엔드를처음부터다시구현했다.그의다른공헌중하나는x86AVX지원을작성하고ARM어셈블러를향상시켰다는점이다.그의연구관심사는코드압축기술및감소된비트폭ISA다.과거에는Linux용과FreeBSD운영체제용드라이버도개발했다.

목차

1장.LLVM의빌드와설치
-LLVM버전의이해
-프리빌트패키지얻기
-소스를사용한빌드

2장.외부프로젝트
-Clangextras의소개
-DragonEgg플러그인의사용

3장.툴과디자인
-LLVM의기본적인설계원칙과역사에대한소개
-오늘날의LLVM의이해
-컴파일드라이버와의상효작용
-독립툴의사용
-LLVM내부설계살펴보기
-첫번째LLVM프로젝트의작성
-LLVM소스탐색?보편적충고

4장.프론트엔드
-Clang의소개
-Clang을이용한프론트엔드단계학습하기
-전체코드

5장.LLVM중간표현
-IR포멧을다루기위해기본툴연습하기
-LLVMIR언어구문의소개
-커스텀LLVMIR생성기의작성
-IR레벨에서의최적화

6장.백엔드
-백엔드코드구조의학습
-백엔드라이브러리의이해
-LLVM백엔드를위한TableGen의사용방법에대한학습
-명령어선택단계의이해
-스케줄러
-머신명령어
-레지스터할당
-프롤로그와에필로그
-머신코드프레임워크의이해
-자신의머신패스작성

7장.Just-In-Time컴파일러
-LLVMJIT엔진기본기익히기
-llvm::JIT프레임워크에대한소개
-llvm::MCJIT프레임워크에대한소개
-LLVMJIT컴파일툴의사용
-다른리소스

8장.크로스플랫폼컴파일
-GCC와LLVM의비교
-타겟트리플의이해
-툴체인의준비
-Clang커맨드라인인수를사용한크로스컴파일
-Clang크로스컴파일러의생성
-자신만의Clang기반크로스컴파일러의구축과설치
-테스트
-추가리소스

9장.Clang정적분석기
-정적분석기의역할에대한이해
-전통적인경고와Clang정적분석기의비교
-정적분석기의테스트
-자신의체커를사용한정적분석기의확장
-추가리소스

10장.LibTooling를사용한ClangTools
-컴파일커맨드데이터베이스의생성
-clang-tidy툴
-리팩토링툴
-자신의툴작성
-콜백작성하기
-추가리소스

출판사 서평

LLVM필수기능및고급툴개발을위한사용법

LLVM은최첨단컴파일러기술프레임워크다.다양한라이브러리로쉽게확장되도록설계되었으며컴파일러에대한원활한경험을제공하며새로접하는개발자들이쉽게학습할수있도록해준다.

이책에서배우게될내용
-Clang툴을포함한소스프로젝트,정적분석기,Compiler-RT,LLDB,DragonEgg,libc++및LLVM테스트슈트를포함한외부LLVM오픈소스프로젝트의설정,빌드,그리고설치
-라이브러리와독립실행형툴사이의LLVM라이브러리설계와상호작용이해
-Clang프론트엔드가lexer,파서,그리고구문분석을사용하는방법을배움으로써소스코드처리단계에대한지식을향상시킨다.
-커스텀IR분석과변환패스를작성하는동안LLVMIR파일을사용하여조작,생성및재생한다.
-LLVMJIT(Just-In-Time)컴파일기능을사용하기위한툴을작성한다.
-정적분석기를사용하여버그를찾고코드를개선한다.
-LibClang,LibTooling,그리고Clang플러그인인터페이스를사용하여소스코드분석과변환툴을설계한다.

이책의대상독자
이책은LLVM프레임워크를배우고싶은사람들,컴퓨터사이언스관련학생및컴파일러엔지니어를대상으로한다.C++에대한배경지식이필요하며,필수는아니지만적어도약간의컴파일러이론에대해서는알고있는것이좋다.LLVM에대한실질적인소개를제공하고복잡한시나리오를피하고있기때문에초보자든컴파일러전문가든이기술에대해흥미만가지고있다면분명여러분에게적합할것이다.