diff options
Diffstat (limited to 'Tools/cases_generator/tier2_generator.py')
-rw-r--r-- | Tools/cases_generator/tier2_generator.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Tools/cases_generator/tier2_generator.py b/Tools/cases_generator/tier2_generator.py index abd9b8d..dd16a1a 100644 --- a/Tools/cases_generator/tier2_generator.py +++ b/Tools/cases_generator/tier2_generator.py @@ -39,7 +39,14 @@ def declare_variable( required.remove(var.name) type, null = type_and_null(var) space = " " if type[-1].isalnum() else "" - out.emit(f"{type}{space}{var.name};\n") + if var.condition: + out.emit(f"{type}{space}{var.name} = {null};\n") + if uop.replicates: + # Replicas may not use all their conditional variables + # So avoid a compiler warning with a fake use + out.emit(f"(void){var.name};\n") + else: + out.emit(f"{type}{space}{var.name};\n") def declare_variables(uop: Uop, out: CWriter) -> None: @@ -208,6 +215,9 @@ def generate_tier2( for name, uop in analysis.uops.items(): if uop.properties.tier == 1: continue + if uop.properties.oparg_and_1: + out.emit(f"/* {uop.name} is split on (oparg & 1) */\n\n") + continue if uop.is_super(): continue why_not_viable = uop.why_not_viable() |