Commit graph

85 commits

Author SHA1 Message Date
dword64
81144e520a fix(optimizer): prevent unsafe thunk folding from deleting valid blocks ( #80 ) 2026-04-04 20:31:21 +02:00
dword64
667eea2b1e unique_ptr ownership, safer virtual interfaces, and pch/unity speedups and more 2026-04-04 20:13:26 +02:00
dword64
4292245507 possible fix tracer stack overflow vulnerabilities (#52 , #78 ), cap/keystone version bump, #79 and #81 2026-04-01 16:57:42 +02:00
zZzetaS
e8ab45e1db Added more test cases, added fix for synthetic bug described by wallds, added exhaust_pass to apply_all 2022-01-20 03:45:19 +01:00
z3t4s
4120ebeab8 Fixed invalid pointer from deleting blocks while in recursive call 2022-01-14 17:01:04 +01:00
z3t4s
e9e5df0941 Fixed nullptr and added handling for js with identical destinations 2022-01-14 00:15:48 +01:00
z3t4s
617df086bf Applied fixes that are not yet available in master. Also added a new thunk removal pass 2022-01-12 23:42:06 +01:00
Can Bölük
bf80720098
Merge pull request #58 from abay12676/master
fix register corrupt
2021-10-30 19:30:49 +03:00
Alah
1a2355cb79
fix register corrupt 2021-09-25 16:55:13 -04:00
windy
566d2a998c Fix constexpr compile error 2021-08-18 22:05:41 +08:00
windy
57fda60379 Fix all warning in x86 2021-08-17 23:24:32 +08:00
windy
4c465af036 Fix x86 optimizers, demo-tests:
```
:: After:
 | | Entry point VIP:       0x1337
 | | Stack pointer:         -0x8
 | | Already visited?:      N
 | | ------------------------
 | | 0000: [ PSEUDO ]     -0x8     movd     eax          0x1
 | | 0001: [ PSEUDO ]     -0x8     strd     $sp          -0x4         0x0
 | | 0002: [ PSEUDO ]     -0x8     strd     $sp          -0x8         0x1
 | | 0003: [ PSEUDO ]     -0x8     vpinrd   eax
 | | 0004: [ PSEUDO ]     -0x8     vexitq   0x0
```
2021-08-16 02:54:00 +08:00
Can Bölük
4f9abc25c0 Removing some redundancies. 2020-08-28 07:11:08 +02:00
Can Bölük
a25ce864fe Routine uses unordered_map now, other minor changes. 2020-08-24 04:38:15 +02:00
Can Bölük
6cbead72cc Minor logic fixes. 2020-08-23 06:40:55 +02:00
Can Bölük
eb82631fd6 Implementing parallel-df DCE. 2020-08-23 05:44:25 +02:00
Can Bölük
0bbc82b8f8 Implemented optimizer::execution_order. 2020-08-23 05:44:11 +02:00
Can Bölük
c0e26276ab Moved is_semantic_nop and remove_nops to auxiliaries. 2020-08-23 02:07:16 +02:00
Can Bölük
fac4c68236 Removed vector allocating ::recurse, replacing with ::enum_paths. 2020-08-22 03:47:49 +02:00
Can Bölük
fe1b7fc7e1 Implemented auto-scope ref and exception-less stack cleanup. 2020-08-01 21:21:16 +02:00
Can Bölük
ccd1969997 Added CustomHashable concept overload for std::hash. 2020-07-29 06:47:21 +02:00
Can Bölük
8a79ca03ba Fixed everything else to work with the changes. 2020-07-29 02:36:10 +02:00
Can Bölük
6b647f8db6 Fixing minor redundancies. 2020-07-28 21:44:53 +02:00
Can Bölük
091973723a Removing redundant code. 2020-07-27 20:28:05 +02:00
Can Bölük
0ac7649f15 Minor fixes, adjusted pool config. 2020-07-27 01:04:23 +02:00
Can Bölük
2938d31782 Fixed sym-rewrite not purging sym cache after destroying a basic block. 2020-07-25 15:29:04 +02:00
Can Bölük
5b4767acf1 vtil::zip and vtil::numeric_range can now be constructed constexpr. 2020-07-24 08:28:48 +02:00
Can Bölük
ace235b13c symbolic_vm now uses symbolic::context. 2020-07-24 07:10:46 +02:00
Can Bölük
22a6aca8a7 Fixing interfaces for the new deferred_value. 2020-07-24 07:01:47 +02:00
Can Bölük
7dd19292ff Reworked VM interface. 2020-07-23 04:46:54 +02:00
Can Bölük
d661711c8d Fully switched to the new CTX[] and MEMORY[] syntax. 2020-07-17 10:18:20 +02:00
Can Bölük
bedf29168d Minor deferred value changes. 2020-07-15 03:20:48 +02:00
Can Bölük
d6f6b5a8be Fixing recursive pointer tracing with a hack for now. 2020-07-14 15:28:37 +02:00
Can Bölük
af37f9d80f Implemented an _alright_ stack propagation for now. 2020-07-13 01:03:47 +02:00
Can Bölük
bc6dc89429 Prefer slow stack propagation for now, will be reworked soon. 2020-07-13 00:52:03 +02:00
Can Bölük
02e2271822 Fixed a concurrency issue with stack_propagation. 2020-07-13 00:42:21 +02:00
Can Bölük
715735b5ac Further reference usage, added [[nodiscard]] attributes. 2020-07-12 15:34:30 +02:00
Can Bölük
00d5c2c6cb Further pushing use of expression references. 2020-07-12 14:17:46 +02:00
Can Bölük
cb395a2b66 Symbolic VM now uses references, implemented special unique ptr for dirs 2020-07-12 08:00:52 +02:00
Can Bölük
caf1133aaf Implement simple filtering to mov prop. to improve speed. 2020-07-11 17:31:02 +02:00
Can Bölük
3ae0571c96 Change map to unordered_map. 2020-07-11 17:21:18 +02:00
Can Bölük
6304c98989 Fixing minor stack prop issues. 2020-07-11 17:20:37 +02:00
Can Bölük
6bc8fe6f85 Apply symex rewrite once more after propagation, ignore dup in apply_each. 2020-07-11 13:07:00 +02:00
Can Bölük
3d34c08b39 Fixing narrow casting issues in experimental fast prop. 2020-07-11 09:39:33 +02:00
Can Bölük
533d9e7059 Prefer single emplace over contains && insert when safe-recursing. 2020-07-11 07:35:07 +02:00
Can Bölük
9cef750626 Implement path helpers to routine. 2020-07-11 07:12:12 +02:00
Can Bölük
80793d9d04 Replacing ::null_expression with the new make_default. 2020-07-11 06:53:15 +02:00
Can Bölük
f9ed64d579 Fixing minor typo. 2020-07-11 02:34:45 +02:00
Can Bölük
0081496346 Fixed optimizer for improperly terminated routines. 2020-07-09 08:34:14 +02:00
Can Bölük
d77015977a Removing unnecessary tracer. 2020-07-09 07:21:34 +02:00