HaxeFoundation / HaxeFoundation/haxe

Compiler not optimizing away multiply by zero

Open
#5,763 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haxe
Stars
6.9k
Forks
715
Avg merge
2d 2h
Merged PRs (30d)
11

Description

Thanks to inlining I get some pretty straight matrix multiplication code, but for something standard like gluPerspective where you have a lot of zeros in the matrix, Haxe generates JavaScript like:

```
self.a11 = a11 * b11 + a12 * 0 + a13 * 0 + a14 * 0;
self.a12 = a11 * 0 + a12 * f + a13 * 0 + a14 * 0;
self.a13 = a11 * 0 + a12 * 0 + a13 * b33 + a14 * -1;
self.a14 = a11 * 0 + a12 * 0 + a13 * b34 + a14 * 0;
self.a21 = a21 * b11 + a22 * 0 + a23 * 0 + a24 * 0;
self.a22 = a21 * 0 + a22 * f + a23 * 0 + a24 * 0;
self.a23 = a21 * 0 + a22 * 0 + a23 * b33 + a24 * -1;
self.a24 = a21 * 0 + a22 * 0 + a23 * b34 + a24 * 0;
self.a31 = a31 * b11 + a32 * 0 + a33 * 0 + a34 * 0;
self.a32 = a31 * 0 + a32 * f + a33 * 0 + a34 * 0;
self.a33 = a31 * 0 + a32 * 0 + a33 * b33 + a34 * -1;
self.a34 = a31 * 0 + a32 * 0 + a33 * b34 + a34 * 0;
self.a41 = a41 * b11 + a42 * 0 + a43 * 0 + a44 * 0;
self.a42 = a41 * 0 + a42 * f + a43 * 0 + a44 * 0;
self.a43 = a41 * 0 + a42 * 0 + a43 * b33 + a44 * -1;
self.a44 = a41 * 0 + a42 * 0 + a43 * b34 + a44 * 0;
```

Any reason the multiply by zeros can't go drop out, and the var \* -1 can't become -var?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.