Interesuje mnie optymalizacja wykresów przepływu danych i kontroli przepływu, a w szczególności bardziej złożonych obliczeniowo. Interesujące będzie jednak także zapoznanie się z najnowszymi wynalazkami w dziedzinie optymalizacji wizjerów.
optimization
compilers
Evgeny Gavrin
źródło
źródło
Odpowiedzi:
Nie jestem pewien, czy jest nowatorski, czy nie jest zbyt interesujący, ale Hoopl pokazuje, w jaki sposób można zoptymalizować kontrolę / optymalizację przepływu danych, a propagacja faktów o wierzchołkach wykresu kontrolnego jest niezależna od język i konkretna optymalizacja.
Odwołują się do algorytmu Lernera, Grove i Chambersa z 2002 r., Który łączy proste optymalizacje w „superoptymalizację”.
źródło
Podejrzewam, że technika Równości Nasycenia , jako inne podejście do problemu optymalizacji przebiegów optymalizacji, byłaby odpowiednia. O ile mi wiadomo, nie zostało to jeszcze sprawdzone w praktyce dzięki konkretnej implementacji w pełnoprawnym kompilatorze. Interesujące mogą być również następujące generowanie optymalizacji kompilatora na podstawie dowodów .
źródło
W zweryfikowanych kompilatorach optymalizacyjnych nastąpiło ożywienie. Oprócz artykułu Lernera (wspomnianego w poprzednim komentarzu) możesz przyjrzeć się projektowi CompCert prowadzonemu przez Xaviera Leroya. Zrobili kilka fajnych rzeczy, określając optymalizacje jako dowody sprawdzalne maszynowo (za pomocą Coq ). Nie czytałem jeszcze artykułów, ale wydaje się, że projekt Verified Software Toolchain w Princeton przynosi interesujące wyniki w tej dziedzinie.
źródło
Rozpoznanie, że baz [i] + = force (foo [i], foo [j]) w podwójnej pętli FOR ma niezależne wyniki dla (i, j) i zmianę kolejności wywołań na krzywą wypełniania spacji na (i, j), aby zmniejszyć straty w pamięci podręcznej.
Niezupełnie „wizjer”, ale nieświadome zachowanie pamięci podręcznej dla „darmowego” jest miłe.
źródło