Commit a49ce5b
authored
Bytecode parity - exception (RustPython#7557)
* Fix exception handling: except* chaining, finally cleanup, RERAISE
- Align except* bytecode chaining
- Fix exception state model and finally handler cleanup
- Fix RERAISE to only pop exception, preserve values below
* Port IR optimization passes from flowgraph.c
- BUILD_TUPLE n + UNPACK_SEQUENCE n elimination
- Dead store elimination within basic blocks
- apply_static_swaps for SWAP reduction
* Add bytecode comparison and disassembly dump scripts
- compare_bytecode.py: compare CPython vs RustPython bytecode output
- dis_dump.py: extract disassembly in normalized JSON format1 parent 7b5ac61 commit a49ce5b
8 files changed
Lines changed: 1724 additions & 205 deletions
File tree
- Lib/test
- crates
- codegen/src
- snapshots
- vm/src
- vm
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
148 | 147 | | |
149 | 148 | | |
150 | 149 | | |
| |||
158 | 157 | | |
159 | 158 | | |
160 | 159 | | |
161 | | - | |
| 160 | + | |
162 | 161 | | |
163 | 162 | | |
164 | 163 | | |
| |||
873 | 872 | | |
874 | 873 | | |
875 | 874 | | |
876 | | - | |
877 | 875 | | |
878 | 876 | | |
879 | 877 | | |
| |||
928 | 926 | | |
929 | 927 | | |
930 | 928 | | |
931 | | - | |
932 | 929 | | |
933 | 930 | | |
934 | 931 | | |
| |||
940 | 937 | | |
941 | 938 | | |
942 | 939 | | |
943 | | - | |
944 | 940 | | |
945 | 941 | | |
946 | 942 | | |
| |||
0 commit comments