DOI: 10.5281/zenodo.13760421
title: Safe Automated Refactoring for Efficient Migration of Imperative Deep Learning Programs to Graph Execution

description: Files




File
Description




result.csv
Aggregated result summary of the analysis and transformation.


functions.csv
All functions in the study.


candidate_functions.csv
Functions considered for transformation; subset of functions.csv.


failed_preconditions.csv
Functions with refactoring precondition failures.


tranformations.csv
Refactored functions and their transformations.


optimizable.csv
Functions that are considered for optimization; subset of candidate_functions.csv.


nonoptimizable.csv
Functions that cannot be optimized; subset of candidate_functions.csv.


statuses.csv
All functions statuses, including failures and warnings; superset of failed_preconditions.csv.


decorators.csv
Full-qualified names (FQNs) of the original function decorators.


subjects.csv
Subject names and their corresponding repositories.




Columns

result.csv




Column
Description




subject
Subject name.


functions
Total number of functions.


optimization available functions
Candidate functions.


optimizable functions
Functions that can be optimized.


failed preconditions
Functions with refactoring precondition failures.


CONVERT_EAGER_FUNCTION_TO_HYBRID
Number of functions used in the "Convert eager function to hybrid" refactoring.


OPTIMIZE_HYBRID_FUNCTION
Number of functions used in the "Optimize hybrid function" refactoring.


P1
Number of functions passing refactoring precondition P1.


P2
Number of functions passing refactoring precondition P2.


P3
Number of functions passing refactoring precondition P3.


CONVERT_TO_EAGER
Number of hybrid functions converted to eager.


CONVERT_TO_HYBRID
Number of eager functions converted to hybrid.


RECONFIGURE
Number of functions reconfigured.


side-effects
Option to always analyze side-effects, regardless of any previous precondition failures (good for "analysis-only" runs).


recursion
Option to always consider recursion, regardless of any previous precondition failures (good for "analysis-only" runs).


type hints
Option to always consider type hints, regardless of tf.function decorator flags (e.g., experimental_follow_type_hints).


parallel
Whether to process the functions in parallel.


speculative
Whether to use speculative analysis when inferring tensor parameter.


test entrypoints
Whether to automatically discover test entrypoints.


time (s)
Total time in seconds.




functions.csv




Column
Description




subject
Subject name.


function
Function name.


module
The enclosing module.


relative path
The relative path to the module, relative to the project.


method reference
The WALA method reference identifier.


type reference
The WALA enclosing type reference identifier.


method
True iff the function is a (instance) method.


parameters
Number of parameters.


tensor parameter
True iff the function has a tensor parameter.


primitive parameter
True iff the function has a primitive parameter.


hybrid
True iff the function is a hybrid function.


side-effects
True iff the function has side-effects.


recursive
True iff the function is recursive.


autograph
True iff the function is decorated with tf.autograph.


experimental_autograph_options
True iff the original function is decorated with tf.function and specifies a tf.experimental.autograph_options decorator parameter.


experimental_follow_type_hints
True iff the original function is decorated with tf.function and specifies a tf.experimental.follow_type_hints decorator parameter.


experimental_implements
True iff the original function is decorated with tf.function and specifies a tf.experimental.implements decorator parameter.


func
True iff the function is decorated with tf.function and specifies a func decorator parameter.


input_signature
True iff the function is decorated with tf.function and specifies an input_signature decorator parameter.


jit_compile
True iff the function is decorated with tf.function and specifies a jit_compile decorator parameter.


reduce_retracing
True iff the function is decorated with tf.function and specifies a reduce_retracing decorator parameter.


refactoring
The applied refactoring.


passing precondition
The refactoring precondition that the function passes.


status
The function's refactoring status.




failed_preconditions.csv




Column
Description




subject
Subject name.


function
Function name.


module
The enclosing module.


relative path
The relative path to the module, relative to the project.


refactoring
The applied refactoring.


severity
The refactoring precondition severity.


code
A unique refactoring precondition failure category code. Groups refactoring failures.


message
The refactoring precondition failure message.