  The von-Neumann architecture has a bottleneck which limits the speed at which
data can be made available for computation. To combat this problem, novel
paradigms for computing are being developed. One such paradigm, known as
in-memory computing, interleaves computation with the storage of data within
the same circuits. MAGIC, or Memristor Aided Logic, is an approach which uses
memory circuits which physically perform computation through write operations
to memory. Sequencing these operations is a computationally difficult problem
which is directly correlated with the cost of solutions using MAGIC based
in-memory computation. SAGA models the execution sequences as a topological
sorting problem which makes the optimization well-suited for genetic
algorithms. We then detail the formation and implementation of these genetic
algorithms and evaluate them over a number of open circuit implementations. The
memory-footprint needed for evaluating each of these circuits is decreased by
up to 52% from existing, greedy-algorithm-based optimization solutions. Over
the 10 benchmark circuits evaluated, these modifications lead to an overall
improvement in the efficiency of in-memory circuit evaluation of 128% in the
best case and 27.5% on average.
