4 # Convert several .gr files (from the same GUM run) into a single
5 # .gr file with all times adjusted relative to the earliest start
12 open(GR, $i) || die "Can't read $i\n";
16 ($pe, $timestamp) = ($start =~ /PE\s+(\d+) \[(\d+)\]/);
17 die "PE $pe too high\n" if $pe > $#ARGV;
18 $proc[$count++] = $pe;
20 $time[$pe] = $timestamp;
26 for($i = 0; $i < $count; $i++) {
28 die "PE $pe missing?\n" if !defined($time[$pe]);
29 die "Mismatched .gr files\n" if $pe > 0 && $prog[$pe] ne $prog[$pe - 1];
30 $basetime = $time[$pe] if $basetime == 0 || $basetime > $time[$pe];
36 for($i = 0; $i < $count; $i++) {
38 $delta = $time[$pe] - $basetime;
39 open(GR, $ARGV[$i]) || die "Can't read $ARGV[i]\n";
44 /PE\s+(\d+) \[(\d+)\]/;
45 printf "PE %2u [%lu]%s", $1, $2 + $delta, $';