1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
// Test --ftime-trace functionality
// RUN: %ldc --ftime-trace --ftime-trace-file=%t.1 --ftime-trace-granularity=1 %s && FileCheck --check-prefix=ALL --check-prefix=FINE %s < %t.1
// RUN: %ldc --ftime-trace --ftime-trace-file=%t.2 --ftime-trace-granularity=20000 %s && FileCheck --check-prefix=ALL --check-prefix=COARSE %s < %t.2
// RUN: %ldc --ftime-trace --ftime-trace-file=- --ftime-trace-granularity=20000 %s | FileCheck --check-prefix=ALL --check-prefix=COARSE %s
// ALL: traceEvents
module ftimetrace;
// FINE: stdio
// FINE: ftime-trace.d:[[@LINE+1]]
import std.stdio;
int ctfe()
{
int sum;
foreach (i; 0..100)
{
sum += i;
}
return sum;
}
// COARSE-NOT: foo
// FINE: foo
// FINE: ftime-trace.d:[[@LINE+1]]
int foo()
{
enum s = ctfe();
return s;
}
void main()
{
foo();
}
// ALL-DAG: ExecuteCompiler
// FINE-DAG: Linking executable
|