In this talk we propose a dynamic compilation system aimed for domain specific languages. In our system, DSL authors declaratively, at the definition site, state the values that are of interest for dynamic compilation (e.g., array and matrix sizes, vector and matrix sparsity). These values can regularly be used for making compilation decisions throughout the DSL compilation pipeline.
Then the instrumented DSL compiler transparently reifies all computations on the runtime values that will affect compilation decisions. Recompilation guards are introduced automatically based on the stored DSL compilation process. Finally, code caches are automatically managed and addressed with outcomes of the DSL compilation decisions instead of stable values from user programs.