Ryan Houdek
|
d4ffea5c31
|
Merge pull request #670 from FEX-Emu/skmp/faster-ra
IR: Optimize runtime of optimization passes
|
2021-01-22 04:54:08 -08:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
0546da7a75
|
Address review feedback
|
2021-01-22 11:01:36 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
8b025d4c26
|
IRLoader: Actually set EntryRIP if the IR was parsed
|
2021-01-21 22:19:16 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
13613c6de1
|
IR: Change ValidateCode to use two uint64_t instead of __uint128_t
|
2021-01-21 21:37:58 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
1177c375ff
|
IR: Further parser cleanups, add fence types
|
2021-01-21 21:17:27 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
072067b5fd
|
IR: Split parser from IRLoader, add IR::Parse()
|
2021-01-21 19:17:51 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
00ca576644
|
IRCompaction: Only memset in debug
|
2021-01-21 13:06:43 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
036771d825
|
IR: Fix Printing and Parsing for float conds
|
2021-01-21 10:16:08 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
0e7db64ac7
|
RA: Run compation after spilling, not before
|
2021-01-21 01:01:02 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
ac1036ac92
|
IR: Sync Invalid class with RA
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
9c462eb400
|
ConsProp: Revert to ordered set for identical codegen
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
8aef9cb6a7
|
RA: Exit after first spill per iteration is found
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
d3fc85e18d
|
RA: Make spans at least 1 offset long
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
9f3ce47917
|
RA: Expire ending intervals before starting new ones
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
e7e6b6654f
|
RA: Cleanups
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
c3682f9a3b
|
RA: Fix several bugs, get rid of virtual registers, remove unused complexity
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
47ee9af96c
|
ConstProp: Keep pools in heap
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
10b6fb02c4
|
RA: Rename CalculatePrecessors to CalculatePredecessors
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
9c760ff83b
|
RA: Get OP_JUMP/CONDJUMP without loop in CalculatePrecessors
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
f3e19ef015
|
DSE: No need to loop to find branching op
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
6bdf785223
|
DSE: Optimize map lookups
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
997650bafc
|
DSE: Merge logic more for perf
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
56ca73191d
|
DSE: Merge Flag/GPR/FPR passes for perf
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
900fc6d2a7
|
ConstProp: Switch maps to unordred_maps
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
af94e24ba3
|
RA: Simplify and optimize data structures
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
6380ab6bfd
|
RA: Optimize register conflict handling
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
91ddc1dd38
|
RCLSE: Optimize FindMemberInfo to be O(1)
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
77d072e35c
|
RA: Switch active set to also use BucketList
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
e847f94b69
|
RA: rework ConstrainedRAPass::CalculateNodeInterference
|
2021-01-20 04:26:06 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
c42c57af35
|
IR: Pretty print %Invalid, don't print invalid regs
|
2021-01-20 04:06:37 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
567e315854
|
Frontend, OpDisp: Don't assert on invalid instructions
|
2021-01-18 17:19:11 +02:00 |
|
Ryan Houdek
|
108992de80
|
Merge pull request #653 from Sonicadvance1/add_O0
Adds an option to disable optimization passes
|
2021-01-18 00:10:48 -08:00 |
|
Ryan Houdek
|
544a1f307f
|
Adds an option to disable optimization passes
Instead of forcing someone to test by modifying code, allow a -O0 option
to be passed in.
Also added to FEXConfig GUI for easily touching.
Fixes #652
|
2021-01-17 23:51:22 -08:00 |
|
Ryan Houdek
|
e7315d9a97
|
Merge pull request #339 from FEX-Emu/skmp/ir-constant-pooling
ConstProp: Allocate constants once per block
|
2021-01-17 23:49:31 -08:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
b322dcb3f6
|
RA: Spill any node that we can as a last resort
|
2021-01-16 17:15:35 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
279a4f3c33
|
ConstProp: Allocate constants once per block
|
2021-01-16 17:11:46 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
2e038c788b
|
IREmitter: Fix CreateNewCodeBlockAfter to append at the end when asked so, don't order block storage
|
2021-01-15 22:22:50 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
41d0f84710
|
OpDisp: Improve block ordering interface, optimize branching order and conds
|
2021-01-15 21:05:29 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
5fdbb8a9b2
|
OpDisp: Improve block ordering for multi-block ops
|
2021-01-15 21:05:29 +02:00 |
|
Ryan Houdek
|
96b2c6ca8b
|
Merge pull request #637 from FEX-Emu/skmp/unsyncronized-rip
Dispatch: ExitFunction InlineConstant & unsynchronized rip
|
2021-01-13 10:58:58 -08:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
8758348dfd
|
Dispatch: Support constant Rips, don't syncronize on context on ddisp
|
2021-01-13 17:26:40 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
f34f8981ab
|
Merge pull request #638 from Sonicadvance1/irvalidation_memoryleak
Fixes a memory leak in IRValidation
|
2021-01-13 12:07:33 +02:00 |
|
duck
|
c690e65365
|
Make sure to only record when necessary
|
2021-01-12 12:49:49 -05:00 |
|
duck
|
4e3934eddd
|
Make DeadContextStoreElimination aware of OP_INVALIDATEFLAGS
|
2021-01-12 12:47:32 -05:00 |
|
Ryan Houdek
|
8d2eebd644
|
Fixes a memory leak in IRValidation
|
2021-01-11 08:47:45 -08:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
f3d5635182
|
IR: Make ExitFunction take NewRip as an argument, instead of implicit ctx store
|
2021-01-08 18:41:33 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
dd71a45175
|
Merge branch 'main' into skmp/static-ra
|
2021-01-07 01:04:16 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
101b29c5ee
|
ConstProp: Fix build breakage w/ operator ==
|
2021-01-06 23:31:50 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
94fb009f4b
|
SRA: Address review feedback
|
2021-01-05 17:14:57 +02:00 |
|
Stefanos Kornilios Mitsis Poiitidis
|
82545796b8
|
static-ra: Use LogMan::* instead of assert/printf
|
2021-01-05 17:14:57 +02:00 |
|