4 个仓库
Analysis of program control flow to find blocks of code that cannot be executed during runtime.
Distinct from Static Code Analysis: Specifically targets unreachable execution paths, whereas static code analysis is a broader category for all non-executing checks.
Explore 4 awesome GitHub repositories matching testing & quality assurance · Unreachable Code Analysis. Refine with filters or upvote what's useful.
Vulture is a static analysis tool and linter designed to find unused variables, functions, and classes in Python source code. It operates as a dead code detector and unused code finder that scans source files to identify unreachable expressions and imports without executing the code. The tool employs a confidence-based heuristic scoring system to assign probability values to detections, helping to distinguish truly unused symbols from potential false positives. It further assists in pruning dead logic by sorting detected unused classes and functions by line count to prioritize the removal of
Analyzes program flow to identify specific code blocks and expressions that can never be executed.
Simplify 是一个 Android 虚拟机沙箱、字节码执行追踪器和静态分析框架。它作为 Dalvik 字节码去混淆器,旨在通过模拟程序行为(无需物理设备)从二进制文件中恢复可读代码。 该项目的特色在于使用执行图分析来解析反射调用,并通过常量传播和死代码消除来简化混淆代码。它采用多路径执行模拟来跟踪所有可能的条件分支结果,并将指令流映射以识别常量值。 该系统涵盖了广泛的分析功能,包括异常传播追踪、方法副作用分类和 Java API 调用模拟。它还提供了通过自定义钩子拦截方法执行的机制,以监控或覆盖虚拟机状态。
Maps instruction flow and register ancestry to identify constant values and remove unreachable dead code.
onnxsim 是一个深度学习图优化器和模型简化器,旨在降低 ONNX 计算图的复杂度。它充当模型压缩器,用简化的常量输出替换复杂的算子序列,以减少操作开销。 该项目通过常量折叠推理实现简化,将常量算子的子图替换为预计算的常量张量。它利用基于模式的图重写和静态计算图分析来识别并删除冗余节点或不可达操作。 该工具涵盖了广泛的模型优化功能,包括算子冗余消除以及删除不必要的 reshape 或 identity 节点。这些过程简化了执行流程并减少了模型的内存占用。
Analyzes the execution graph to identify unreachable operations and redundant nodes for removal.
SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references, variable aliases, and data dependencies across whole programs. The platform translates compiled intermediate code formats into unified internal representations, constructing constraint graphs, call graphs, and control-flow graphs to model interprocedural execution behavior and memory state. The framework incorporates specialized engines for flow-sensitive, flow-insensitive, and context-sensitive pointer analysis alongside sparse value-flow graph generation. It features memory
Produces call graphs and control flow graphs to visualize program structure and data dependencies.