On 7/4/2017 1:15 PM, Stefan Koch wrote:
Most arm implementation are not as forgiving as contemporary x86 processors when it comes to bad register scheduling and the like.


The backend's scheduler is actually very effective. It mattered with the Pentium and Pentium Pro processors, but not anymore. But the code is still there, and still works, and the algorithm is sound.

  https://github.com/dlang/dmd/blob/master/src/ddmd/backend/cgsched.c

The backend has also been accused of not doing data flow analysis. It does as good a flow analysis as any compiler.

Where the backend has fallen behind are:

1. loop unrolling
2. better inlining
3. SROA
4. vectorization

Reply via email to