Skip to content

lack of Data Flow Propagation (데이터 흐름 전파 누락) #1

@kminha22

Description

@kminha22

문제 상황

현재 BcelBytecodeCFG.java의 DFG 추출 로직은 명령어 수준의 단편적인 연결(Direct Mapping)만 수행하고 있습니다.
순방향 연결은 이루어지지만, 분기나 반복의 경우 연결이 이루어지지 않습니다.
이로 인해 정확한 데이터 흐름 그래프(DFG)를 구성하지 못하고 있습니다.

  • 고정점 분석(Fixed-point Analysis) 부재: 제어 흐름의 합류 지점에서 변수 상태를 병합하는 로직이 없습니다.
  • Reaching Definitions 미구현: 특정 로컬 변수 슬롯에 쓰인 값이 어떤 경로를 통해 어디까지 도달 가능한지에 대한 전역적 추적이 불가능합니다.

보완책

  • 전역적 데이터 흐름 추적 (Global Data Flow Tracking) : If-Else의 합류 지점이나 Loop의 회귀 경로에서도 데이터 의존성이 유지되도록 전역 분석으로 전환이 필요
  • 반복적 고정점 분석 (Iterative Fixed-point Analysis) 도입 : 각 블록의 입구(IN)와 출구(OUT)에서 유효한 변수 정의(Definitions)가 더 이상 변하지 않을 때까지 반복 계산하여, 루프 내에서도 데이터 흐름이 유실되지 않도록 보장

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdfgissue about data flow graphenhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions