Add effective peephole optimizer for uop traces.
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature or enhancement
Currently we lack an effective peephole optimizer for uops traces.
We do some ad-hoc removal of LOAD/POP pairs, but many enhancements are missed.
For example, this silly program:
def add(a, b):
return a + b
def loop(n=100_000):
t = 0
for _ in range(n):
t += add(1,2)
if __name__ == "__main__":
loop()
generates this trace:
which contains the sequence:
_LOAD_FAST_BORROW 0
_LOAD_FAST_BORROW_1
_LOAD_CONST_INLINE_BORROW K
_RROT_3
_POP_TOP_NOP
_POP_TOP_NOP
which should be reduced to
_LOAD_CONST_INLINE_BORROW K
Linked PRs
- gh-153035
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par localiser le uop trace optimizer et la suppression ad hoc existante de LOAD/POP, puis reproduisez la add/loop trace fournie. Comparez la séquence actuelle à la séquence réduite proposée ; le travail est terminé lorsque l’optimizer gère ce cas et qu’une couverture existe pour la transformation. Consultez le PR lié gh-153035 avant de commencer, puisque le travail lui est déjà associé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100