Go to the documentation of this file.
8 #ifndef LLVM_ADT_DAGDELTAALGORITHM_H
9 #define LLVM_ADT_DAGDELTAALGORITHM_H
39 virtual void anchor();
43 using edge_ty = std::pair<change_ty, change_ty>;
65 const std::vector<edge_ty> &Dependencies);
78 #endif // LLVM_ADT_DAGDELTAALGORITHM_H
This is an optimization pass for GlobalISel generic memory operations.
virtual ~DAGDeltaAlgorithm()=default
DAGDeltaAlgorithm - Implements a "delta debugging" algorithm for minimizing directed acyclic graphs u...
virtual void UpdatedSearchState(const changeset_ty &Changes, const changesetlist_ty &Sets, const changeset_ty &Required)
UpdatedSearchState - Callback used when the search state changes.
virtual bool ExecuteOneTest(const changeset_ty &S)=0
ExecuteOneTest - Execute a single test predicate on the change set S.
std::pair< change_ty, change_ty > edge_ty
changeset_ty Run(const changeset_ty &Changes, const std::vector< edge_ty > &Dependencies)
Run - Minimize the DAG formed by the Changes vertices and the Dependencies edges by executing.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
std::vector< changeset_ty > changesetlist_ty
std::set< change_ty > changeset_ty