timfuz: ALLOW_ZERO_EQN

Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
John McMaster 2018-09-12 14:03:33 -07:00
parent e148ed5f91
commit 2ad0bf82fc
4 changed files with 10 additions and 1 deletions

View File

@ -2,6 +2,7 @@
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
CORNER=slow_max
ALLOW_ZERO_EQN?=N
all: build/$(CORNER)/tilea.json
@ -20,6 +21,9 @@ clean:
build/$(CORNER):
mkdir build/$(CORNER)
build/checksub:
false
build/$(CORNER)/leastsq.csv: build/sub.json build/grouped.csv build/checksub build/$(CORNER)
# Create a rough timing model that approximately fits the given paths
python3 $(TIMFUZ_DIR)/solve_leastsq.py --sub-json build/sub.json build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/leastsq.csv.tmp
@ -27,7 +31,7 @@ build/$(CORNER)/leastsq.csv: build/sub.json build/grouped.csv build/checksub bui
build/$(CORNER)/linprog.csv: build/$(CORNER)/leastsq.csv build/grouped.csv
# Tweak rough timing model, making sure all constraints are satisfied
python3 $(TIMFUZ_DIR)/solve_linprog.py --sub-json build/sub.json --sub-csv build/$(CORNER)/leastsq.csv --massage build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/linprog.csv.tmp
ALLOW_ZERO_EQN=$(ALLOW_ZERO_EQN) python3 $(TIMFUZ_DIR)/solve_linprog.py --sub-json build/sub.json --sub-csv build/$(CORNER)/leastsq.csv --massage build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/linprog.csv.tmp
mv build/$(CORNER)/linprog.csv.tmp build/$(CORNER)/linprog.csv
build/$(CORNER)/flat.csv: build/$(CORNER)/linprog.csv

View File

@ -1,2 +1,4 @@
# so simple that likely no linprog adjustments will be needed
ALLOW_ZERO_EQN?=Y
include ../project.mk

View File

@ -7,6 +7,7 @@ SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
CSVS := $(addsuffix /timing3.csv,$(SPECIMENS))
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
RREF_CORNER=slow_max
ALLOW_ZERO_EQN?=N
TILEA_JSONS=build/fast_max/tilea.json build/fast_min/tilea.json build/slow_max/tilea.json build/slow_min/tilea.json

View File

@ -142,6 +142,8 @@ def run(fns_in, corner, run_corner, sub_json=None, sub_csv=None, dedup=True, mas
try:
Ads, b = massage_equations(Ads, b, corner=corner)
except SimplifiedToZero:
if os.getenv('ALLOW_ZERO_EQN', 'N') != 'Y':
raise
print('WARNING: simplified to zero equations')
Ads = []
b = []