Firm 라이브러리는 Firm 중간 표현(ir)을 구현합니다. [TLB:99]에서 Firm에 대한 이전 설명을 찾을 수 있습니다.
libFirm에는 특성 구문 트리에서 직접 SSA 형식을 구성하기 위한 알고리즘이 포함되어 있습니다. 일련의 분석 및 최적화 단계가 제공됩니다. 이 버전에는 IA32 및 SPARC 아키텍처를 위한 완전한 백엔드와 MIPS, ARM 및 AMD64를 위한 미완성 백엔드가 포함되어 있습니다.
빌드 전제 조건:
소스 디렉토리에 'make'를 입력하기만 하면 됩니다. 결과는 "build"라는 디렉터리에 저장됩니다. 'config.mak' 파일을 생성하여 기존 전처리기, 컴파일러 및 링커 플래그를 재정의할 수 있습니다.
libFirm에는 추가 cmake 빌드 시스템이 있습니다. CMake는 make 기반 시스템보다 더 복잡한 빌드 시스템이며 대부분의 libFirm 개발자는 이를 사용하지 않습니다. 그러나 컴파일러 및 링커 플래그를 적용하여 더 넓은 범위의 시스템에 대한 공유 라이브러리를 구축할 수 있고 설치 대상을 제공하며 배포용 패키지를 준비하는 사람들에게 더 친숙한 경우가 많습니다.
include/libfirm/ # public API
ir/ # nearly all the code
ir/adt/ # containers and other generic data types
ir/ana/ # analysis (for optimizations)
ir/be/ # backends (x86, sparc, amd64, etc)
ir/common/ # utility stuff
ir/ident/ # identifier data structure
ir/ir/ # core data types of intermediate representation
ir/kaps/ # PBQP solver
ir/libcore/ # utility stuff
ir/lower/ # lowering phases from high-level to low-level mechanisms
ir/lpp/ # interface for external ILP solvers
ir/obstack/ # arena memory allocator
ir/opt/ # optimization phases
ir/stat/ # statistics
ir/tr/ # type representation
ir/tv/ # target values (architecture-independent arithmetic)
scripts/ # generator scripts, firm node specification
unittests/ # unittests
build/ # build system generates stuff here
공식 홈페이지: http://libfirm.org/
이메일 문의: [email protected]
메일링 리스트: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
버그 추적기: http://pp.ipd.kit.edu/~firm/bugs
인터넷 중계채팅: #firm
on irc.libera.chat