neil henning
1e1123b24b
Add some UObject tests to AutoRTFMTests.
...
#rb Robert.Manuszewski
[CL 29805974 by neil henning in ue5-main branch]
2023-11-17 09:02:34 -05:00
brandon schaefer
692c32fdee
Disable AutoRTFM runtime by default
...
Enable Tests to default AutoRTFM on
#rb Brandon.Schaefer
[FYI] Michael.Nicolella, Neil.Henning
[CL 29724121 by brandon schaefer in ue5-main branch]
2023-11-14 15:52:36 -05:00
neil henning
2d871e9540
Add a cascading abort to AutoRTFM to abort an entire nest of transactions.
...
[FYI] michael.nicolella
[CL 27705122 by neil henning in ue5-main branch]
2023-09-08 04:08:50 -04:00
neil henning
1fce643050
Detect when we try to run a new transaction nest from within an open-commit or open-abort, and abort if so.
...
[CL 27437726 by neil henning in ue5-main branch]
2023-08-29 03:43:55 -04:00
neil henning
4ee0dfd67b
Add a [[clang::noautortfm]] attribute to allow marking of functions that should not be cloned for AutoRTFM.
...
[CL 26149499 by neil henning in ue5-main branch]
2023-06-21 10:42:37 -04:00
neil henning
b189676d68
Fix that in AutoRTFM we need open aborts inside a nested transaction to be appended to the parent in reverse order.
...
[CL 26015685 by neil henning in ue5-main branch]
2023-06-15 11:20:21 -04:00
neil henning
54e1348d9c
Fix for AutoRTFM cloning functions it shouldn't when using unity builds.
...
[CL 25891296 by neil henning in ue5-main branch]
2023-06-09 09:44:26 -04:00
neil henning
08fc7777a6
Remove DeferUntilCommit / DeferUntilAbort from the AutoRTFM API (use OpenCommit / OpenAbort instead).
...
#preflight 646c6afd1b241f0748614b9d
[CL 25579609 by neil henning in ue5-main branch]
2023-05-23 07:48:03 -04:00
neil henning
76d1859b4e
Use the new AutoRTFM instrumentation path which lets us cut down on the number of modules we need to compile with transactional support.
...
#preflight 64677cc6434f5536a35d2889
[CL 25548137 by neil henning in ue5-main branch]
2023-05-19 13:50:23 -04:00
neil henning
87ba132d21
[autortfm] Use UE_LOG with a new LogAutoRTFM category for all our logging.
...
#preflight 645bb3818f4d53ff229fb9f4
[CL 25423338 by neil henning in ue5-main branch]
2023-05-11 05:22:24 -04:00
brandon schaefer
547593db87
Move to adding a TargetRules bool for using AutoRTFM Compiler
...
#rb Neil.Henning
[FYI] Michael.Nicolella
#preflight 6421fdc6973e609670b97622
[CL 24824162 by brandon schaefer in ue5-main branch]
2023-03-28 15:14:44 -04:00
neil henning
9352673963
Make the AutoRTFM LLVM compiler pass not elide transactional calls to AutoRTFM::Open, and only elide the non-transactional ones.
...
#preflight 64230d4d973e609670137dd9
[CL 24824080 by neil henning in ue5-main branch]
2023-03-28 15:07:48 -04:00
neil henning
2e2588c428
Add tests for a bunch of cstring functions in AutoRTFM.
...
#preflight 64229fe65e52099fe3b402d1
[CL 24816140 by neil henning in ue5-main branch]
2023-03-28 05:57:35 -04:00
brandon schaefer
8344a94621
Fix compiler errors with -nopch, to include Catch you need to use Catch2Includes to prevent catch headers for including windows to before our overrides
...
#rb none
[FYI] Neil.Henning
#preflight none
[CL 24790379 by brandon schaefer in ue5-main branch]
2023-03-24 19:09:38 -04:00
brandon schaefer
b27291844a
Fix nodiscard warnings for clang
...
#rb Jason.Weiler, Michael.Nicolella
#preflight 641dedab973e609670ea12ed
[CL 24789573 by brandon schaefer in ue5-main branch]
2023-03-24 18:18:15 -04:00
neil henning
92b421ce5a
Add a test with a dumb little VM showing how the AutoRTFM calls will work.
...
#preflight 641d94bc974dfaa53ce0ed85
[CL 24780579 by neil henning in ue5-main branch]
2023-03-24 12:04:10 -04:00
michael nicolella
2fe7eda1f0
autortfm:
...
- remove explicit operator new/delete instrumentation. these operators can be instrumented directly by the application by overriding them, otherwise calling one from transactional code will abort when trying to find the instrumented version
- add auto rtfm instrumentation to the FMemory allocator
- remove 'will_deallocate' since it does nothing and required the runtime to be able to get the alloced size which isn't easy to do from the runtime
- Transact now executes the work item when it's compiled away, assuming that we will wrap this around existing code that we still want to execute when non-instrumented
#preflight 641cc32b973e60967084811d
[CL 24773875 by michael nicolella in ue5-main branch]
2023-03-23 23:28:18 -04:00
jason weiler
7a7d71868f
First go at the AutoRTFM Open API for the VM. This is definitely crunchy.
...
Adds StartTransaction, RecordOpenWrite, WriteMemory, and some others.
Replaces Abort with AbortTransaction
#preflight 641b559da6092dfb8dc39cf3
[CL 24756491 by jason weiler in ue5-main branch]
2023-03-22 19:46:30 -04:00
neil henning
597523122e
Harden the AutoRTFMification LLVM pass against a few obvious compiler bugs. The removed files were all dead as they've been moved to the public area in a previous CL.
...
#preflight 6419dab132723d4a20a7cbb4
[CL 24739037 by neil henning in ue5-main branch]
2023-03-21 16:37:54 -04:00
brandon schaefer
f830c75c8f
Re-enable disabling unity and remove including LaunchEngineLoop.cpp many times
...
#rb none
#preflight none
[CL 24725790 by brandon schaefer in ue5-main branch]
2023-03-20 18:39:52 -04:00
brandon schaefer
fc2d361cf0
Re-enable unity to fix linker errors
...
#rb none
#preflight none
[CL 24725698 by brandon schaefer in ue5-main branch]
2023-03-20 18:36:06 -04:00
brandon schaefer
688e678773
Disable Unity by default for AutoRTFMTests
...
#rb none
[FYI] Neil.Henning
#preflight none
[CL 24723935 by brandon schaefer in ue5-main branch]
2023-03-20 17:16:49 -04:00
brandon schaefer
3e8cf406a6
Add a header to ensure we include our MinWindows and Windows type headers *before* catch_amalgamated.hpp includes its Windows.h stuff
...
Fix GraphBenchmark shadow warnings
#rb Neil.Henning, Jason.Weiler
#preflight none
[CL 24723829 by brandon schaefer in ue5-main branch]
2023-03-20 17:13:55 -04:00
brandon schaefer
0bcdb88774
Fix missing semi-colon
...
#preflight none
[CL 24702034 by brandon schaefer in ue5-main branch]
2023-03-18 01:40:34 -04:00
brandon schaefer
e339abb40b
Dont enable ClangRTFM when doing GPF
...
#rb none
#preflight none
[CL 24702031 by brandon schaefer in ue5-main branch]
2023-03-18 01:40:04 -04:00