diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
| commit | f2ec263023649e596c5076df32c2d328bc9393d2 (patch) | |
| tree | 5dd86caab46e552bd2e62bf9c4fb1a7504a44db4 /results/scraper/fex/1511 | |
| parent | 63d2e9d409831aa8582787234cae4741847504b7 (diff) | |
| download | qemu-analysis-main.tar.gz qemu-analysis-main.zip | |
Diffstat (limited to 'results/scraper/fex/1511')
| -rw-r--r-- | results/scraper/fex/1511 | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/results/scraper/fex/1511 b/results/scraper/fex/1511 new file mode 100644 index 000000000..fbee94a2f --- /dev/null +++ b/results/scraper/fex/1511 @@ -0,0 +1,26 @@ +IREmitter can't fail gracefully on large code blocks +If a code block overruns the 16MB(8MB times two) of temporary IR space we allocate per thread then FEX throws an assert and doesn't fallback gracefully. + +Investigate how we can fail gracefully. +Reject superblock and force upper limit on superblock size? +Expand the working IR size? + +16MB is fairly large already and if we supported resizing the temp space then this could be quite a bit nicer on memory consumption. +8MB goes to OrderedNode tracking, which gives 524288 possible IR ops. +The other 8MB goes to the OpData tracking, which obviously can't get anywhere near that 524k number. + +Simple asm test to trigger this case. Make sure to set blocksize to -1 to allow infinite block size. +```asm +%ifdef CONFIG +{ +} +%endif + +mov eax, 0 + +%rep 65537 +and eax, 0 +%endrep + +hlt +``` \ No newline at end of file |