  Loop compilation for Tightly Coupled Processor Arrays (TCPAs), a class of
massively parallel loop accelerators, entails solving NP-hard problems, yet
depends on the loop bounds and number of available processing elements (PEs),
parameters known only at runtime because of dynamic resource management and
input sizes. Therefore, this article proposes a two-phase approach called
symbolic loop compilation: At compile time, the necessary NP-complete problems
are solved and the solutions compiled into a space-efficient symbolic
configuration. At runtime, a concrete configuration is generated from the
symbolic configuration according to the parameters values. We show that the
latter phase, called instantiation, runs in polynomial time with its most
complex step, program instantiation, not depending on the number of PEs. As
validation, we performed symbolic loop compilation on real-world loops and
measured time and space requirements. Our experiments confirm that a symbolic
configuration is space-efficient and suited for systems with little memory --
often, a symbolic configuration is smaller than a single concrete configuration
-- and that program instantiation scales well with the number of PEs -- for
example, when instantiating a symbolic configuration of a matrix-matrix
multiplication, the execution time is similar for $4\times 4$ and $32\times 32$
PEs.
