-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate_golden.sh
More file actions
executable file
·44 lines (34 loc) · 1.03 KB
/
generate_golden.sh
File metadata and controls
executable file
·44 lines (34 loc) · 1.03 KB
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
42
43
44
#!/bin/bash
# Generate Golden IR Test Files
# Extracts IR output from compiler for regression testing
set -e
COMPILER="./build/tools/yac"
FIXTURES_DIR="test/fixtures"
GOLDEN_DIR="test/golden"
echo "=== Generating Golden IR Files ==="
echo ""
# Test files to generate golden outputs for
test_files=(
"simple.c"
"two_vars.c"
"simple_loop.c"
"loop_test.c"
)
# Optimization levels
opt_levels=("O0" "O1" "O2" "O3")
for file in "${test_files[@]}"; do
basename="${file%.c}"
echo "Generating golden files for $file..."
for opt in "${opt_levels[@]}"; do
opt_flag="-${opt}"
golden_file="$GOLDEN_DIR/$opt/${basename}.ir"
# Run compiler and extract just the IR section
$COMPILER $opt_flag "$FIXTURES_DIR/$file" 2>&1 | \
sed -n '/^=== IR Module ===/,/^---/p' | \
sed '$ d' > "$golden_file"
echo " ✓ $opt/${basename}.ir ($(wc -l < "$golden_file" | tr -d ' ') lines)"
done
done
echo ""
echo "Golden files generated successfully!"
echo "Location: $GOLDEN_DIR/"