728x90
반응형

LLVM 5

PGO (Profile-Guided Optimization)

개요PGO(Profile-Guided Optimization)는 프로그램의 실제 실행 시 수집한 정보를 바탕으로 컴파일러가 코드 최적화를 수행하는 기술이다. 전통적인 정적 컴파일 최적화 방식과 달리, PGO는 런타임 데이터를 활용하여 분기 예측, 인라이닝, 루프 최적화 등의 결정을 더 정확하게 수행할 수 있다.1. 개념 및 정의 항목 설명 정의애플리케이션 실행 시 수집한 프로파일 데이터를 이용하여 최적화하는 컴파일 기술목적실행 경로의 특성을 반영한 맞춤형 성능 최적화 수행필요성정적 분석만으로는 알 수 없는 실제 사용 패턴에 기반한 고도화된 성능 개선PGO는 GCC, Clang/LLVM, MSVC 등 다양한 컴파일러에서 지원된다.2. 특징특징설명비교동적 실행 정보 사용분기, 함수 호출 빈도 등 분석정적 ..

Topic 2026.01.09

libFuzzer

개요libFuzzer는 LLVM 프로젝트에 포함된 퍼징(fuzzing) 프레임워크로, 인프로세스(in-process) 방식으로 대상 함수를 반복 호출하며 입력 데이터를 퍼징함으로써 잠재적인 충돌, 취약점, 예외 상황 등을 발견한다. 특히 클로즈드 루프 방식으로 코드 커버리지를 최대화하며, 정적 분석과 연계가 용이하다.1. 개념 및 정의 항목 정의LLVM에서 제공하는 클로즈드 루프 기반의 인프로세스 퍼징 프레임워크목적소프트웨어의 취약점 및 예외 상황 자동 탐지필요성수동 테스트 한계를 극복하고 보안·안정성 확보를 자동화libFuzzer는 C/C++ 코드 테스트에 특히 최적화되어 있다.2. 특징특징설명비교In-Process Fuzzing대상 함수 내에서 직접 호출 및 실행 반복AFL은 fork 기반 외부 실..

Topic 2026.01.09

MLIR (Multi-Level Intermediate Representation)

개요MLIR(Multi-Level Intermediate Representation)은 Google이 TensorFlow/XLA 컴파일러 최적화를 위해 개발한 범용 컴파일러 인프라 구조로, 다양한 수준의 연산(High-Level → Low-Level)을 통합적으로 표현하고 최적화할 수 있는 중간 표현체계(IR)이다. MLIR은 단순히 TensorFlow 전용 기술이 아니라, **모든 도메인별 언어(DSL)**와 하드웨어 타깃 간의 다리 역할을 수행하는 범용 프레임워크로 발전하고 있다.1. 개념 및 정의MLIR은 이름 그대로 **‘다단계 중간 표현(Multi-Level IR)’**을 의미한다. 전통적인 컴파일러의 단일 IR 구조와 달리, MLIR은 서로 다른 수준의 추상화 계층(예: 그래프 수준, 연산 수..

Topic 2025.12.07

eBPF CO-RE (Compile Once – Run Everywhere)

개요eBPF(extended Berkeley Packet Filter)는 리눅스 커널 내부에서 안전하고 고성능으로 사용자 정의 코드를 실행할 수 있게 해주는 기술로, 네트워크, 보안, 성능 모니터링 등에 광범위하게 활용됩니다. 그러나 기존 eBPF 프로그램은 커널 버전과 구조체 변경에 따라 재컴파일이 필요하다는 이식성 한계가 있었습니다.CO-RE(Compile Once – Run Everywhere)는 이러한 문제를 해결하기 위해 등장한 기술로, 단 한 번의 컴파일로 다양한 커널 버전에서 eBPF 프로그램을 안전하게 실행할 수 있도록 지원합니다.1. 개념 및 정의 항목 설명 정의CO-RE는 eBPF 프로그램을 한 번 컴파일하면 여러 커널 버전에서 수정 없이 실행 가능하게 하는 기술입니다.목적커널 구조체..

Topic 2025.09.06

Pointer Authentication (PAC)

개요**Pointer Authentication (PAC)**은 ARMv8.3-A 아키텍처부터 도입된 런타임 메모리 보안 기능으로, 포인터 무결성을 검증하여 메모리 오염 공격을 방지합니다. PAC는 특히 ROP(Return-Oriented Programming), JOP(Jump-Oriented Programming) 같은 제어 흐름 변조 공격(CFI)을 방어하는 데 효과적인 최신 하드웨어 기반 보안 기술입니다.1. 개념 및 정의PAC는 프로그램 실행 중 포인터에 디지털 서명(Signature)을 추가하고, 포인터가 사용될 때 해당 서명을 검증함으로써 포인터 위조를 탐지 및 차단하는 메커니즘입니다. ARM64의 주소 공간에서 사용하지 않는 상위 비트를 활용해 인증 코드를 삽입합니다.PAC는 인증 실패 시..

Topic 2025.05.17
728x90
반응형