Selective dynamic compilation of source code is performed using run-time
information. A system is disclosed that implements a declarative,
annotation based dynamic compilation of the source code, employing a
partial evaluation, binding-time analysis (BTA), and including
program-point-specific polyvariant division and specialization and dynamic
versions of traditional global and peephole optimizations. The system
allows programmers to declaratively specify policies that govern the
aggressiveness of specialization and caching, providing fine control over
the dynamic compilation process. The policies include directions for
controlling specialization at promotion points and merge points, and
further define caching policies, and speculative-specialization policies.
The system also enables programmers to specialize programs across
arbitrary edges, both at traditional locations, such as procedure
boundaries, but also within procedures. Programmers are enabled to
conditionally specialize programs based on evaluation of arbitrary
compile-time and run-time conditions.
Выполнено селективное динамическое составление Кодего источника использующ информацию продолжитеную по времени. Показана система что инструменты составление декларативное, припиской основанное динамическое Кодего источника, используя частично оценку, анализ связывать-vremeni (BTA), и вклюая программ-пункт-speqificeski polyvariant разделение и специализацию и динамические варианты традиционных оптимизирований гловальных и peephole. Система позволяет программники declaratively определить политики управляют агрессивностью специализации и прятать в тайнике, предусматривая точное управление над динамическим процессом составления. Политики вклюают направления для контролируя специализации на этапы промотирования и сливают пункты, и более добавочно определяют прятать политики в тайнике, и политики умозрительн-speqializaqii. Система также позволяет программники специализировать программы через произвольные края, оба на традиционных положениях, such as границы процедуры, но также в пределах процедур. Программники позволены условно специализировать программы основанные на оценке произвольных compile-time и условий продолжитеных по времени.