aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [common] Switch to boost::unordered_flat containers (#4326)crueter2026-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces all instances of ankerl's unordered map/set with boost's `unordered_flat_*` classes. This uses std::hash since boost::hash is actually a lot slower. Also adds an abstraction layer in `Common` so future changes are quicker and easier. Other implementation details: - ankerl provided hash specializations for tuple and pair, so those were ported here - std::erase_if doesn't work on boost, so just used the ADL'd erase_if This should be about equal or superior performance as unordered_dense for everything except iteration. Signed-off-by: crueter <crueter@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326 Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [*] change all std::unordered_map and std::unordered_set into ↵lizzie2026-02-101-4/+10
| | | | | | | | | | | | | | | | | | | ankerl::unordered_dense::map/set variants (#3442) mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* ssa_rewrite_pass: use proper mapsLiam2023-07-231-6/+5
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* shader_recompiler: Reduce unused includesameerj2022-03-201-1/+0
|
* ShaderCache: Fix Phi Nodes Type on OGL.Fernando Sahmkow2021-11-011-0/+24
|
* ShaderCache: Order Phi Arguments from farthest away to nearest.Fernando Sahmkow2021-10-311-0/+7
|
* shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp2021-07-221-4/+6
|
* shader: Move loop safety tests to code emissionReinUsesLisp2021-07-221-30/+2
|
* shader: Fix loop safety to SSA passReinUsesLisp2021-07-221-1/+1
|
* shader: Add shader loop safety check settingslat9nq2021-07-221-19/+47
| | | | Also add a setting for enable Nsight Aftermath.
* glasm: Initial implementation of phi nodes on GLASMReinUsesLisp2021-07-221-5/+1
|
* glasm: Rework control flow introducing a syntax listReinUsesLisp2021-07-221-2/+2
| | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
* shader: Fix forward referencing identity instructions when inserting phiReinUsesLisp2021-07-221-11/+13
|
* shader: Intrusively store in a block if it's sealed or notReinUsesLisp2021-07-221-3/+2
|
* shader: Move microinstruction header to the value headerReinUsesLisp2021-07-221-1/+1
|
* shader: Intrusively store register values in block for SSA passReinUsesLisp2021-07-221-21/+43
|
* shader: Fix Phi node typesReinUsesLisp2021-07-221-0/+4
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-221-2/+2
| | | | | | | | | | | | | | | | | Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
* shader: Move recursive SSA rewrite to the heapReinUsesLisp2021-07-221-29/+89
|
* shader: Address feedbackFernandoS272021-07-221-1/+0
|
* shader: Address FeedbackFernandoS272021-07-221-49/+1
|
* shader: Improve VOTE.VTG stubFernandoS272021-07-221-1/+50
|
* shader: Implement BRXFernandoS272021-07-221-1/+20
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-221-1/+1
|
* shader: Reorder phi nodes when redefined as undefined opcodesReinUsesLisp2021-07-221-1/+9
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-221-3/+2
|
* shader: Implement SELameerj2021-07-221-4/+8
|
* shader: Support SSA loops on IRReinUsesLisp2021-07-221-13/+49
|
* shader: Misc fixesReinUsesLisp2021-07-221-54/+59
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-221-3/+21
|
* shader: Properly store phi on InstReinUsesLisp2021-07-221-10/+12
|
* shader: Add pools and rename filesReinUsesLisp2021-07-221-14/+14
|
* shader: Remove illegal character in SSA passReinUsesLisp2021-07-221-1/+1
|
* shader: Constant propagation and global memory to storage bufferReinUsesLisp2021-07-221-2/+54
|
* shader: SSA and dominanceReinUsesLisp2021-07-221-0/+155