Commit Graph

18 Commits

Author SHA1 Message Date
Jonathan G Rennison
6c80944c38 VarAction2: Fix variable propagation when a group had only pending bits 2022-09-20 00:31:07 +01:00
Jonathan G Rennison
f381e45d5b VarAction2: Fix DSE for non-leaf procedure groups 2022-09-19 23:25:50 +01:00
Jonathan G Rennison
2a41854f6b VarAction2: Infer ternary add result is bool if both branches are bool 2022-08-28 11:35:16 +01:00
Jonathan G Rennison
8c94ba0dc8 VarAction2: Infer that multiplying two bools results in bool 2022-08-28 11:27:54 +01:00
Jonathan G Rennison
602ac717aa Initial support for DSE and jumping over procedures with child groups 2022-08-25 00:22:41 +01:00
Jonathan G Rennison
916441d943 VarAction2: Avoid turning skip on zero/LSB set sequences into jumps 2022-08-24 00:58:08 +01:00
Jonathan G Rennison
4fd8634ff9 VarAction2: Remove trivially redundant special stores 2022-08-23 18:37:28 +01:00
Jonathan G Rennison
d9aa2d6138 VarAction2: Extend group cast to bool range elision
Handle opposite arrangement of range and default group
2022-08-22 21:52:15 +01:00
Jonathan G Rennison
df6b9d355f VarAction2: Simplify store, load with bool/invert, ternary sequence in DSE 2022-08-22 21:45:21 +01:00
Jonathan G Rennison
14de8c7f34 VarAction2: Add quick exit case to last-level callback groups if possible 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
35063b2176 VarAction2: Ensure group pruning can't break var 1C via random groups 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
3676b0912d VarAction2: Fix inference handling when pruning ops prior to RST 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
c60e3fed99 VarAction2: Do not re-assign error group
When pruning ranges of group with constant result
2022-08-22 00:13:23 +01:00
Jonathan G Rennison
e335c86e77 VarAction2: Elide group ranges as cast to bool when result is already bool 2022-08-18 19:25:33 +01:00
Jonathan G Rennison
b04d1295cd VarAction2: Infer that unsigned mod 2 results in 0 or 1 2022-08-18 19:24:01 +01:00
Jonathan G Rennison
9c18835bd0 Move ProcessDeterministicSpriteGroupRanges into newgrf.cpp 2022-08-14 21:48:24 +01:00
Jonathan G Rennison
c58b94c376 VarAction2: DSE: Allow setting skip on zero flag on skippable procedures 2022-08-10 19:39:12 +01:00
Jonathan G Rennison
4601a1bfc6 Move NewGRF optimiser functions into a separate file
Create a new header for shared definitions with newgrf.cpp
2022-08-10 19:06:59 +01:00