CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
35 lines
1.4 KiB
TeX
35 lines
1.4 KiB
TeX
\section{Introduction}
|
|
\label{sec:intro}
|
|
|
|
DataFlowAPI aggregates a collection of dataflow analysis algorithms that are
|
|
useful in Dyninst development into a single library. These algorithms can also
|
|
be foundations for users to build customized analyses. Currently, these algorithms include:
|
|
|
|
\begin{itemize}[leftmargin=0pt,label=$\circ$]
|
|
|
|
{\item {\scshape Slicing}
|
|
takes a program location as input and can either slice
|
|
backward to determine which instructions affect the results of the given program location, or
|
|
slice forward to determine which instructions are affected by the results of the
|
|
given program location. One key feature of our slicing implementation is that
|
|
users can control where and when to stop slicing through a set of call back
|
|
functions.
|
|
}
|
|
|
|
{\item {\scshape Stack Analysis}
|
|
determines whether or not a register or memory location points to the stack. If it does point to the stack, Stack Analysis may be able to determine the exact stack location that is pointed to.
|
|
}
|
|
|
|
{\item {\scshape Symbolic Expansion and Evaluation}
|
|
convert instructions to
|
|
several symbolic expressions. Each symbolic expression represents the overall effects of
|
|
these instructions on a register or a memory location.
|
|
}
|
|
|
|
{\item {\scshape Register Liveness}
|
|
determines whether a register is live or not at a program
|
|
location. A register is live at a program location if it will be used later in the program before its
|
|
content is overwritten.
|
|
}
|
|
\end{itemize}
|