디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

LLVM IR 소개 (일종의 통합 가상 어셈블리)

나르시갤로그로 이동합니다. 2025.11.24 14:34:57
조회 89 추천 0 댓글 0

? LLVM IR 소개

LLVM IR(Intermediate Representation)은 LLVM 프로젝트의 핵심 요소로, 다양한 언어와 아키텍처를 연결하는 가상 중간 언어입니다. 내부 표현으로 사용되지만, 사람이 직접 작성하거나 기계가 생성할 수 있으며, 새로운 언어 개발에도 활용됩니다. 


1. LLVM 툴체인 필요함

LLVM IR을 다루려면 LLVM 툴체인이 필요합니다.
- clang : C/C++ 등의 소스를 IR로 변환
- llc : IR을 특정 아키텍처의 어셈블리로 변환
- opt : IR 최적화 패스 적용
- llvm-link : 여러 IR 모듈을 하나로 통합 

참고: 일반적으로 Clang을 설치하면 LLVM 툴체인 전체가 함께 설치됩니다. 


2. 여러 어셈블리를 통합할 수 있는 가상 중간 언어

LLVM IR은 흔히 “portable 어셈블리 language”라고 불립니다.
- CPU 아키텍처에 종속되지 않고, x86, ARM, RISC-V 등 다양한 백엔드로 변환 가능
- 여러 언어(frontend)에서 생성된 IR을 하나로 합쳐 최적화 후 기계어로 변환할 수 있음
- 여러 어셈블리를 통합하는 중간 단계 역할을 수행 


3. 사람이 직접 LLVM IR 작성 가능

LLVM IR은 사람이 직접 작성할 수 있습니다. 예를 들어, 두 수를 더하는 함수는 다음과 같이 표현됩니다:

define i32 @add(i32 %a, i32 %b) {
entry:
  %sum = add i32 %a, %b
  ret i32 %sum
}

4. 기계로 LLVM IR 작성 가능

보통은 사람이 직접 작성하기보다 컴파일러(frontend)가 IR을 자동으로 생성합니다.
- 예: clang -S -emit-llvm add.c -o add.ll
- 이렇게 하면 C 코드가 IR로 변환되어, 이후 최적화와 코드 생성에 활용됩니다. 


5. 신규 프로그래밍 언어 개발에 활용

LLVM IR은 새로운 언어를 만들 때도 사용됩니다.
- 언어 제작자는 문법과 파서를 구현한 뒤, 기계어 대신 IR을 출력하도록 설계
- LLVM이 IR을 다양한 아키텍처용 코드로 변환
- Rust, Swift, Julia 같은 언어들이 LLVM 기반으로 만들어졌습니다. 


6. OOP도 이론적으로 가능

LLVM IR은 함수, 구조체, 타입 시스템 등을 표현할 수 있어 객체지향 프로그래밍(OOP) 개념도 이론적으로 구현 가능합니다.
- 클래스와 메서드는 구조체와 함수 포인터로 모델링 가능
- 가상 함수 테이블(vtable) 같은 패턴도 IR로 표현 가능
- IR 자체는 저수준 중간 표현이므로, OOP는 언어 설계자가 IR 위에 추상화를 얹어 구현하는 방식입니다. 


📌 정리

  • LLVM IR은 LLVM 툴체인을 통해 다루는 가상 중간 언어다.
  • 여러 언어와 아키텍처를 연결하며, 사람이 직접 작성하거나 컴파일러가 생성할 수 있다.
  • Clang 설치 시 LLVM 툴체인도 함께 설치된다.
  • 새로운 언어 개발에도 활용되며, OOP 같은 고수준 개념도 표현 가능하다.

🔗 공식 튜토리얼

LLVM IR을 학습하려면 LLVM 공식 튜토리얼을 참고할 수 있습니다: LLVM Tutorial: Kaleidoscope


이 글은 LLM으로 생산한 글입니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
2906129 李대통령 "쿠데타 등 국가범죄, 나치 전범처럼 처벌해야" 발명도둑잡기(39.7) 12.02 25 0
2906128 아 진짜 나는 바보야. [5] 재현갤로그로 이동합니다. 12.02 37 0
2906127 “결제 정보는 안전하단 쿠팡 말, 다 믿으면 안 돼요” 발명도둑잡기(39.7) 12.02 21 0
2906126 英 노동·보수당원 46만... 규모보다 "게이트키핑 통한 균형" 필요 발명도둑잡기(39.7) 12.02 12 0
2906125 '음모론' 끌어안은 극우, 누가 이들을 고통스럽게 만들었나 발명도둑잡기(39.7) 12.02 18 0
2906122 통일교 민주당 커넥션 발각 ♥발라당냥덩♥갤로그로 이동합니다. 12.02 25 0
2906121 냥덩이가 인용하는 가짜뉴스는 반대로 보면 된다 발명도둑잡기(211.246) 12.02 25 0
2906120 요즘 뭐 볼게 없냐 프갤러(211.196) 12.02 26 0
2906119 국회방송 쿠팡 생중계 개꿀잼이누 타이밍뒷.통수한방(1.213) 12.02 41 0
2906118 1월 2일까지만 회사 나가기로 오늘 이야기 했습니다. [1] ㅇㅇ(118.235) 12.02 32 0
2906117 [단독]국힘, 서울 조직위원장에 '허경영 최측근' 발명도둑잡기(211.246) 12.02 24 0
2906116 [사설]쿠팡, 5년간 고위 공무원 44명 영입… ‘할 일’ 않고 로비 매 발명도둑잡기(211.246) 12.02 36 0
2906114 [단독] 조작 정황 정영학, 법정 제출 검사는 '쿠팡 불기소' 엄희준 발명도둑잡기(211.246) 12.02 20 0
2906113 형들 커뮤니티 사이트 만들었는데 어떻게 유입 높이지? [3] 탱스갤로그로 이동합니다. 12.02 70 0
2906112 군사기밀 빼낸 '일본인' 간첩은 집행유예... 황당한 법 누가 만들 발명도둑잡기(211.246) 12.02 31 0
2906111 동남아 보다 못한 극좌 재명이 [1] ♥발라당냥덩♥갤로그로 이동합니다. 12.02 31 0
2906110 라이시테(Laïcité)는 프랑스식 세속주의, 정교분리 사상 발명도둑잡기(211.246) 12.02 21 0
2906108 "돈 필요 없다…쿠팡 中개발자, 앙심 품고 털었다?" 발명도둑잡기(211.246) 12.02 28 0
2906107 쿠팡 안되겠네. 국유화 해야겠네 [2] 프갤러(121.133) 12.02 48 0
2906106 WPF에 해답을 줘 이 프레임워크의 가치는 어디서옴? [4] 거북이속이거북갤로그로 이동합니다. 12.02 38 0
2906103 원래 쿠팡 김범석이 한국인 증오하는 사람이다 발명도둑잡기(211.246) 12.02 33 1
2906102 쿠팡 중국인 개발자가 인증 시스템 개발햇다고 함 [2] 헬마스터갤로그로 이동합니다. 12.02 55 1
2906100 chironpractor 얼마 받고 그러는건지 [5] 발명도둑잡기(211.246) 12.02 78 0
2906099 나님이 돈 벌 수 있는것도 다 우매한 좌파 덕분인듯? [3] ♥발라당냥덩♥갤로그로 이동합니다. 12.02 62 0
2906098 슈카 다시봤다 이건 엄청난 용기임 [5] ♥발라당냥덩♥갤로그로 이동합니다. 12.02 110 1
2906096 안타 달라스갤로그로 이동합니다. 12.02 25 0
2906095 nextjs가 김치 프론트 대세가 된건 재앙인듯 [2] ㅇㅇ(182.228) 12.02 58 0
2906094 신입 퇴사 고소 예정 [5] 프갤러(106.102) 12.02 85 0
2906091 윤석열에 베팅 발명도둑잡기(118.235) 12.02 40 0
2906088 대학원 면접 때 양복 입어야 되나? [3] 나르시갤로그로 이동합니다. 12.02 44 0
2906086 ‘왕초 윤석열과 권력층 도둑들’ 또 나라 삼킬 수 있다 발명도둑잡기(118.235) 12.02 33 0
2906085 늦지 않게 도착했군 [7] 개멍청한유라갤로그로 이동합니다. 12.02 66 0
2906084 [대한민국] 악의 무리들과 싸우는 위대한 미국 ㅇㅇ(121.172) 12.02 36 1
2906083 윤석열 3년간 국가적 손실 300조씩 발생했다 [2] 발명도둑잡기(118.235) 12.02 44 0
2906082 일하는 척 하는 웹사이트ㅡ관심부ㅏㄱ탁드립ㄴ다 프갤러(58.72) 12.02 28 0
2906081 쿠팡 it직원 대부분이 중국인이라고 하네 [6] 헬마스터갤로그로 이동합니다. 12.02 95 0
2906080 나 어떤 프로그램 하나 짰는데 [2] 프갤러(85.12) 12.02 86 0
2906079 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [1] ♥발라당냥덩♥갤로그로 이동합니다. 12.02 45 0
2906078 라이브코딩 테스트는 뭐 보는거임? [2] ㅇㅇ(182.228) 12.02 49 0
2906077 가장 작은 냥덩이❤+ ♥발라당냥덩♥갤로그로 이동합니다. 12.02 46 0
2906076 보안 사고마다 벌금 먹여서 파산시키고 정부가 인수해야 [2] 프갤러(110.8) 12.02 61 0
2906075 안녕하세요. [2] ㅇㅇ(211.169) 12.02 49 0
2906074 인지과학조져라 손발이시립디다갤로그로 이동합니다. 12.02 45 0
2906073 그냥 말하는거 딱 들어보면 알어 ㅇㅇ갤로그로 이동합니다. 12.02 78 0
2906071 모바일 앱 제작 크몽 의뢰 질문 [5] 프갤러(118.221) 12.02 92 0
2906070 ??? ㅇㅅㅇ [4] 헤르 미온느갤로그로 이동합니다. 12.02 62 0
2906069 GPT 나온 뒤로 해킹이 많아진듯 프갤러(223.194) 12.02 57 0
2906068 쿠팡은 안 망해 다른 곳도 보안이슈 터지겠지 [1] ㅇㅇ(114.30) 12.02 58 0
2906067 내가 만든 커뮤니티인데 잘됐으면 좋겠다 ㅜㅜ 프갤러(223.194) 12.02 66 0
2906064 오리 ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 12.02 51 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2