https://github.com/saffron-health/libretto #AItoolkit #BrowserAutomation #CodingStruggles #TechHumor #HackerNews #ngated

Granlund and Montgomery proposed an optimization method for unsigned integer division by constants [3]. Their method (called the GM method in this paper) was further improved in part by works such as [1] and [7], and is now adopted by major compilers including GCC, Clang, Microsoft Compiler, and Apple Clang. However, for example, for x/7, the generated code is designed for 32-bit CPUs and therefore does not fully exploit 64-bit capabilities. This paper proposes an optimization method for 32-bit unsigned division by constants targeting 64-bit CPUs. We implemented patches for LLVM/GCC and achieved speedups of 1.67x on Intel Xeon w9-3495X (Sapphire Rapids) and 1.98x on Apple M4 (Apple M-series SoC) in the microbenchmark described later. The LLVM patch has already been merged into llvm:main [6], demonstrating the practical applicability of the proposed method.
oh shit, je viens _tout juste_ de découvrir que l'opération modulo % n'a pas la même implémentation en C qu'en python 😮 . Je tentais de l'utiliser pour évaluer un delta entre deux valeurs successives d'un compteur cyclique (systick_hw sur le RP2040 ). Pour ré-obtenir le résultat attendu, il me faut augmenter l'écart de "1 modulo" :
delta = (big_val - small_val + N)%N
sans oublier que N = max_val + 1 😏