-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Open
Labels
backend-llvmThe LLVM backend outputs an LLVM IR Module.The LLVM backend outputs an LLVM IR Module.optimizationregressionIt worked in a previous version of Zig, but stopped working.It worked in a previous version of Zig, but stopped working.
Milestone
Description
Zig Version
0.12.0-dev.876+aaf46187a
Steps to Reproduce and Observed Behavior
I noticed a regression on my project's benchmark and bisected it via nightlies - zig-macos-aarch64-0.12.0-dev.866+3a47bc715 produces code that runs ~10% faster than zig-macos-aarch64-0.12.0-dev.876+aaf46187a:
$ git clone https://github.com/pkmn/engine.git
<snip>
$ cd engine
$ git reset --hard 12e7292c9df3ad73c9681205fb3acfee1536c425
$ zig version
0.12.0-dev.866+3a47bc715
$ zig build benchmark -- 1 1000/10000 281483566841860
122294722,1232901,1471351722788935846
# change zig versions
$ zig version
0.12.0-dev.876+aaf46187a
$ zig build benchmark -- 1 1000/10000 281483566841860
137394552,1232901,1471351722788935846The benchmark tool uses std.time.Timer to perform its own internal timing which it prints out as the first number there (second two numbers are for confirming the benchmarks are computing the same results).
Alternatively, since the regression is large enough you can literally just use time (though this is measuring a different thing than the internal benchmark timer, but thats kind of unimportant from Zig's POV):
$ zig version
0.12.0-dev.866+3a47bc715
$ zig build --verbose benchmark -- 1 1000/10000 281483566841860
<grab actual binary from output to run>
$ time ./zig-cache/o/7cb294da313404bb8f51f4c304d47793/benchmark 1 1000/10000 281483566841860
124231503,1232901,1471351722788935846
real 0m0.178s
user 0m0.168s
sys 0m0.005s
# change zig versions
$ zig version
0.12.0-dev.876+aaf46187a
$ zig build --verbose benchmark -- 1 1000/10000 281483566841860
<grab actual binary from output to run>
$ time ./zig-cache/o/30082df782561e9cee72e116248d663a/benchmark 1 1000/10000 281483566841860
136831126,1232901,1471351722788935846
real 0m0.198s
user 0m0.182s
sys 0m0.006sExpected Behavior
There not to be a regression :)
From 3a47bc7...aaf4618 I'm guessing #17391 is a likely suspect?
maxmilton and Ev1lT3rm1nal
Metadata
Metadata
Assignees
Labels
backend-llvmThe LLVM backend outputs an LLVM IR Module.The LLVM backend outputs an LLVM IR Module.optimizationregressionIt worked in a previous version of Zig, but stopped working.It worked in a previous version of Zig, but stopped working.