Skip to content
Closed

Test #51

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ jobs:
--host-dmd "$HOST_DMD" \
--out "$GITHUB_WORKSPACE/results.json"
- name: Show results
run: cat "$GITHUB_WORKSPACE/results.json"

# perf-comment.yml picks this up and posts the comment.
- name: Upload results
if: github.event_name == 'pull_request'
Expand Down
31 changes: 31 additions & 0 deletions compiler/src/dmd/main.d
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,37 @@ private int tryMain(const(char)[][] argv, out Param params)
Strings libmodules;
global._init();

// TESTING ONLY — deliberate busy loop to verify perf bot detects regressions.
// Uses ldc.llvmasm optimization barrier so LLVM cannot constant-fold or delete
// the loop. Same technique as Google Benchmark's DoNotOptimize.
// Remove before merging.
{
version (LDC)
{
import ldc.llvmasm;
long dummy = 1;
foreach (i; 0 .. 500_000)
{
dummy ^= (dummy << 13);
dummy ^= (dummy >>> 7);
dummy ^= (dummy << 17);
__asm!void("", "r,~{memory}", dummy);
}
}
else
{
long dummy = 1;
foreach (i; 0 .. 500_000)
{
dummy ^= (dummy << 13);
dummy ^= (dummy >>> 7);
dummy ^= (dummy << 17);
}
if (dummy == 0)
fputs("", stderr);
}
}

ErrorSink eSink = global.errorSink;

scope(exit)
Expand Down
Loading