Ryan Houdek
f161e3bfb0
Massive amount of IWYU cleanup
...
This isn't quite a 100% clean sweep of IWYU.
There are some false positives where clang fails.
Additionally there are still a few missed in the frontend side of things
that I didn't get to
2021-08-28 00:32:15 -07:00
Ryan Houdek
e6c4f9aad1
IRParser: Removes static initialization of map
...
This didn't need to be global
2021-08-10 18:16:49 -07:00
Lioncash
9ed0572fa4
IRParser: Make use of unique_ptr for Parse()
...
Communicates ownership semantics to the user of the API a little better,
and makes it harder to accidentally leak memory.
2021-06-09 21:00:30 -04:00
Lioncash
00b0222129
IRParser: Make use of find character overloads
...
Results in a tiny bit better codegen. May as well, since the changes are
essentially 'free'.
2021-06-09 21:00:30 -04:00
Lioncash
32cc98856f
IRParser: Add missing default return in DecodeErrorToString()
...
Prevents undefined behavior in the event anything actually reaches this.
2021-06-09 21:00:30 -04:00
Lioncash
dee7441795
IRParser: Make input string to DecodeValue a const reference
...
No specializations modify this, and even if they did, it would be a
little confusing to statefully modify the string this way.
Instead, we can make it read-only.
2021-06-09 21:00:29 -04:00
Lioncash
05ee4c363b
IRParser: Make use of fmt where applicable
2021-06-08 09:47:13 -04:00
Lioncash
35f3777797
IRParser: Make use of insert_or_assign where applicable
...
Avoids some minor potential default constructions that get overwritten
immediately.
2021-06-05 06:43:17 -04:00
Lioncash
d73b79470e
IRParser: Mark parameter of CheckPrintError as a const reference
...
Def is only ever accessed to read members, so we can signify to the
reader to not expect it to be modified.
2021-06-05 06:43:16 -04:00
Lioncash
676d9cb665
IRParser: std::move elements where advantageous
...
e.g. LineDefinitions are moderately beefy, they contain
two strings and a vector of strings among other things,
so we can move instances into their containing vector to avoid some
allocation churn.
2021-06-05 06:43:13 -04:00
Lioncash
993b4513d9
IRParser: Convert array of std::string over to array of std::string_view
...
Same behavior, but allows the arrays to be constexpr (and use less
space; 16 bytes vs 32 bytes per element).
2021-06-05 06:16:42 -04:00
Ryan Houdek
6255eba524
Memory layout optimizations
...
Some of these memory layouts weren't optimal for ARM loading.
This is now significantly improved
2021-04-26 23:48:22 -07:00
Stefanos Kornilios Mitsis Poiitidis
b45b7c3441
IR: Remove Entry from OP_HEADER, pass as parameter to CompileCode
2021-04-25 13:15:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
942b8549c6
Docs: Add tags to the source code
2021-03-30 12:21:18 +03:00
Stefanos Kornilios Mitsis Poiitidis
56d10dcbbb
IR: Make OP_THUNK use an inline sha256 hash of the thunk name, update thunk scripts
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
63507f5ece
IR: Fix int64_t parsing
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
6615d5972f
x87: Support for FCW, rounding, truncation, precision control
2021-02-17 05:16:53 +02:00
Stefanos Kornilios Mitsis Poiitidis
07bd2244c7
IR: Remove ShouldInterpret & related logic
2021-02-12 14:21:47 +02:00
Scott Mansell
93d5cdde1f
Fix missing libc++ includes
...
gnu's libc++ is lenient and allows you to miss includes at times.
Android's binoic is more strict and needs these fixes to build.
2021-02-01 21:08:45 +13: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
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