Ryan Houdek
2d18156e15
AOT: Convert fstream to fextl and raw files
2023-04-07 17:01:52 -07:00
Ryan Houdek
7180bb1496
GdbServer: Convert fstream to fextl
2023-04-07 17:01:51 -07:00
Ryan Houdek
8a711383bb
fextl/fmt: Adds print helper that takes FD
2023-04-07 17:01:51 -07:00
Ryan Houdek
257a3a54dc
Context: Convert over to a unique_ptr
2023-04-07 17:01:51 -07:00
Ryan Houdek
9e5971b89c
Allocator: Disable glibc sbrk allocations
...
This is done by consuming a single page at the end of the current sbrk
memory region. Then consuming any remaining bytes that could have
potentially ended up in it.
This ensures that glibc won't be able to return 64-bit pointers to
32-bit thunks once the remaining work is in place.
2023-04-06 12:27:44 -07:00
Ryan Houdek
546a1edb55
CodeReview
2023-04-01 09:27:01 -07:00
Ryan Houdek
97daec3dba
Review comments
2023-03-31 06:03:06 -07:00
Ryan Houdek
53bbbd5a4f
Review code
2023-03-30 16:28:34 -07:00
Ryan Houdek
4f66ff6ec4
Paths: Remove unique_ptr usage
2023-03-30 16:28:34 -07:00
Ryan Houdek
067f807405
InternalThreadState: Convert tsl to fextl
2023-03-30 16:28:34 -07:00
Ryan Houdek
463b4b748c
fextl: Add fextl::fmt::print
2023-03-30 16:28:34 -07:00
Ryan Houdek
a14353bc3c
FEXLoader: Convert remaining usages away from glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
1eb36b8b31
Convert a ton of things over to fextl
2023-03-30 16:28:33 -07:00
Ryan Houdek
141dddc83e
CMake: Adds glibc allocator fault option
...
This will be used for CI to ensure FEX doesn't use the glibc allocator
2023-03-30 08:49:26 -07:00
Ryan Houdek
f02a111d33
fextl: add memory for unique_ptr and make_unique
2023-03-30 08:49:26 -07:00
Ryan Houdek
79f7baffe3
fextl: Add pmr default resource
2023-03-30 08:49:26 -07:00
Ryan Houdek
7150c532f3
fextl: add robin_map
2023-03-30 08:49:26 -07:00
Ryan Houdek
e48fb1850e
fextl: add unordered_multimap
2023-03-30 08:49:26 -07:00
Ryan Houdek
7022b3b825
Review c_str() changes
2023-03-23 12:45:14 -07:00
Ryan Houdek
6016c48f98
SourcecodeResolver: Resolve review
2023-03-23 08:19:12 -07:00
Ryan Houdek
bed10000e4
fextl: Add fmt
2023-03-23 08:15:47 -07:00
Ryan Houdek
0ab2a550b1
FEXCore: Convert string to fextl
2023-03-16 03:21:46 -07:00
Ryan Houdek
e5867b89ed
FEXCore: Convert sstream to fextl
2023-03-16 03:21:46 -07:00
Ryan Houdek
3f98eff6e5
AOT: Convert string to fextl
2023-03-16 03:21:46 -07:00
Ryan Houdek
45493ad3ef
fextl: Add sstream
2023-03-16 03:21:46 -07:00
Ryan Houdek
fe886716a4
Config: Convert string to fextl
...
This sprawled out to lots of places as expected
2023-03-16 03:21:45 -07:00
Ryan Houdek
e9a0d95c65
Telemetry: Convert string to fextl
...
Kind of sprawled a bit.
2023-03-16 03:21:45 -07:00
Ryan Houdek
24101d99ac
CPUBackend: Convert string to fextl
2023-03-16 03:21:45 -07:00
Ryan Houdek
7d226a6b18
SourcecodeResolver: Convert string to fextl
2023-03-16 03:21:45 -07:00
Ryan Houdek
5092675179
fextl/string: Add hash so it can exist in hashmaps
2023-03-16 03:21:45 -07:00
Ryan Houdek
8941b8a312
Convert the rest of vector to fextl
2023-03-16 03:03:08 -07:00
Ryan Houdek
a7334608fa
fextl: Move allocator hooks to its own header
2023-03-16 03:03:08 -07:00
Ryan Houdek
54c33b07a2
ELFCodeLoader: Convert to fextl
...
Kind of sprawls all over the place
2023-03-16 03:03:08 -07:00
Ryan Houdek
e30f3bd0c8
fextl: Implement queue
2023-03-15 12:22:04 -07:00
Ryan Houdek
bd3facde63
fextl: Implement stack
2023-03-15 12:22:04 -07:00
Ryan Houdek
92f2dc0737
ThreadPoolAllocator: Convert list to fextl
2023-03-15 12:22:04 -07:00
Ryan Houdek
5b97e6d354
Config: Convert list to fextl
...
Needs #2506 merged first. First commit is cherry-picked from it.
2023-03-15 12:22:04 -07:00
Ryan Houdek
7b790903c9
AOT: Convert set to fextl
...
This worms its way all the way to the frontend
2023-03-15 12:16:03 -07:00
Ryan Houdek
18c9e84543
Config: Convert unordered_map to fextl
...
Needs #2506 merged first. First commit is cherry-picked from it.
2023-03-15 12:11:41 -07:00
Ryan Houdek
97565b68db
LinuxSyscalls: Convert vector to fextl
2023-03-15 12:10:21 -07:00
Ryan Houdek
6b053d298e
VDSOEmulation: Convert vector to fextl
...
Pipes back to thunk definitions in FEXCore as well.
2023-03-15 12:08:58 -07:00
Ryan Houdek
df17f7adbb
JITs: Convert relocations vector to fextl
...
Kind of goes places.
2023-03-15 12:05:12 -07:00
Ryan Houdek
8b0f66d599
FEXCore/Allocator: Adds missing allocation hook pointers
...
Just ones that I missed that are pervasive. At the very least with need
`aligned_alloc` for the fextl allocator.
2023-03-14 11:51:47 -07:00
Ryan Houdek
62b5441d56
fextl: Fix incorrect include path for allocator.h
2023-03-14 11:51:24 -07:00
Ryan Houdek
a8ed2af658
Merge pull request #2498 from Sonicadvance1/begin_the_stl_torment
...
FEXCore: Adds fexctl container alias objects
2023-03-14 07:30:12 -07:00
Ryan Houdek
64c45ed70a
Arm64: Reclaim SRA registers on 32-bit
...
Causes Portal to go from 85FPS to 120FPS on Lenovo X13s.
When running in 32-bit mode we were wasting 8 GPRs and 8 FPRs by still
allocating the top 8 registers of each even though 32-bit can't use
them.
Reallocate them to be register allocated registers when running 32-bit
applications which reduces spills and lowers the cost of
spilling/filling SRA registers.
Quite a significant speed boost for a little bit of work.
2023-03-14 07:15:05 -07:00
Ryan Houdek
afdc037110
FEXCore: Adds fexctl container alias objects
...
Completely unused right now, this will very quickly spread throughout
the entire codebase.
Currently only containers with FEX's global allocator usage.
Any STL class that is allocation free and has been vetted to fit within
the guidelines of not allocating memory will get an alias inside of
`fextl`.
This means that any std:: namespace usage going forward will need to be
scrutinized heavily. As aliasing it will mean it is vetted, otherwise it
needs to be checked with FEX CI (once in place) to ensure it doesn't
allocate memory behind our back.
Aliases everything we allow from std:: reduces mental burden from
needing to check if it is okay to use or not. Additionally it will allow
us to quickly pivot to the EASTL if we find as some point during this
transition that this will in-fact not work.
Once this is committed, we are going to be moving very quickly to
piecemeal convert /everything/ in the codebase over to fextl:: namespace
from std::.
I am sorry for the hellscape that will follow.
2023-03-14 06:56:44 -07:00
Mai
ad332e3c30
Merge pull request #2492 from Sonicadvance1/signaldelegator_remove_unused
...
SignalDelegator: Cleanup unused functions
2023-03-13 16:19:48 -04:00
Mai
7f243ee08a
Merge pull request #2496 from Sonicadvance1/remove_get_nprocs
...
CPUInfo: Switch away from using get_nprocs_conf
2023-03-13 16:16:31 -04:00
Ryan Houdek
1248f3573c
CPUInfo: Switch away from using get_nprocs_conf
...
Allocates memory behind our backs. Needed to make CI glibc allocator
clean.
2023-03-13 10:50:25 -07:00