Commit Graph

49 Commits

Author SHA1 Message Date
Ben Vanik
fa1693d3a3 ADD_CARRY constant prop for load-CA cases. 2014-08-07 13:23:44 -07:00
Ben Vanik
b02ce5e95e Adding control flow simplification pass to compensate for lack of phi. 2014-08-06 14:19:42 -07:00
Ben Vanik
bba3315f58 Make context promotion pass use bitmaps. 2014-08-06 14:19:07 -07:00
Ben Vanik
a53ee330ce Marking branches/calls as volatile. 2014-08-06 11:41:37 -07:00
Ben Vanik
646b32ad4f Prevent context promotion across instructions marked volatile. 2014-08-06 11:40:10 -07:00
Ben Vanik
9efd372d92 Reset CFG edge tracking on re-run. 2014-08-06 11:38:36 -07:00
Ben Vanik
19274ef26d Better validation that values aren't moving between blocks. 2014-08-06 09:00:59 -07:00
Ben Vanik
810c256f21 Fix register allocator with STORE_LOCAL. May indicate redundant stores. 2014-08-05 11:48:45 -07:00
Ben Vanik
19b6e90b63 Alloy now builds on clang.
Hopefully not just bouncing back to MSVC failures…
2014-07-17 20:43:30 -07:00
Ben Vanik
0a250d5e91 C++11ing some things. 2014-07-13 21:53:31 -07:00
Ben Vanik
29e4c35c38 Removing alloy::tracing, as it's unused. 2014-07-13 21:25:58 -07:00
Ben Vanik
bf882714d0 Cleaning up asserts and file/line macros. 2014-07-12 16:51:52 -07:00
Ben Vanik
9031d5f4a4 Fix clang warnings / move some plat code into poly. 2014-07-10 22:51:27 -07:00
Ben Vanik
7daa85179c Running clang-format on alloy.
All except x64_sequences, which needs work.
2014-07-10 20:20:00 -07:00
Ben Vanik
5343cab851 Support constant CALL_INDIRECT. 2014-06-09 21:15:13 -07:00
Ben Vanik
0b42c72ec5 Fixing const propagated DID_CARRY. 2014-05-30 20:09:00 -07:00
Ben Vanik
c1812406f5 Adding a bunch of profiling tracers. 2014-05-28 19:19:39 -07:00
Ben Vanik
b0034f3b4d Fix cntlz. 2014-05-27 15:15:52 -07:00
Ben Vanik
5a85263e5f Trying out a new style of JIT pattern matching. 2014-05-26 20:28:21 -07:00
Ben Vanik
1bb0b08a14 Fixing WIN32 build. 2014-05-21 10:38:41 -07:00
Anthony Pesch
f01609c5aa replace usage of itoa with snprintf 2014-05-14 00:39:47 -07:00
Anthony Pesch
60a7e79e1a assume c++11
clang didn't like static members in anonymous structures, gave them names
WriteEvent template wouldn't resolve for temporary values without const decl in clang
added a few missing headers
added -fno-operator-names for xbyak compilation under gcc/clang
2014-05-14 00:35:21 -07:00
Ben Vanik
9a2d99d652 Fixing CFA. 2014-03-28 20:39:21 -07:00
Ben Vanik
74c9df6697 Re-enabling x64 backend, fixing many bugs. 2014-02-10 23:24:46 -08:00
Ben Vanik
4a584129d2 A probably-working register allocator. 2014-02-10 21:16:38 -08:00
Ben Vanik
6bd214af0b Adding a shared scratch arena for compiler passes. 2014-02-08 22:01:51 -08:00
Ben Vanik
bca349b302 Oh my. Basic CFA/DFA, local variable support, misc fixes, etc. 2014-02-02 00:33:57 -08:00
Ben Vanik
465c3a41dd Hacking. 2014-01-28 00:19:05 -08:00
Ben Vanik
c74f35552a (air quotes) "register allocation" without spills. 2014-01-25 23:36:59 -08:00
Ben Vanik
c4d6c7a526 Reducing value count. IVM could take advantage of this. 2014-01-25 22:47:21 -08:00
Ben Vanik
05432242ff Removing block continuation branches. 2014-01-25 21:35:59 -08:00
Ben Vanik
0cca23cdd7 Source map in DebugInfo. IVM needs to port its stuff over eventually. 2014-01-25 21:20:28 -08:00
Ben Vanik
4609339c5a JIT hackery. Not quite working. 2014-01-25 20:30:41 -08:00
Ben Vanik
8ae6053d0f Deleting LIR and such, wiring up for HIR->x64. 2014-01-24 22:26:15 -08:00
Ben Vanik
50587974b5 Not sure why I thought I could do this. 2014-01-14 00:39:31 -08:00
Ben Vanik
e7a31c78bf Simplifying byteswap(byteswap(a)) to a. 2014-01-08 18:47:39 -08:00
Ben Vanik
d1528e24bb Removing REM, adding MUL_HI, renaming MULADD/MULSUB. 2014-01-06 22:17:49 -08:00
Ben Vanik
e362a65189 Simplification pass handles redundant truncate/extend & extend/truncate. 2014-01-04 11:56:32 -08:00
Ben Vanik
4db1b13e98 DCE pass removes assigns. 2014-01-04 11:56:05 -08:00
Ben Vanik
3d01efffac LIR skeleton, renaming some types to prevent conflict. 2013-12-29 14:28:46 -08:00
Ben Vanik
abc5aac7ee Removing unused code, via jdarpinian. 2013-12-25 20:57:07 -08:00
Ben Vanik
f2348301ea More aggressive constant propagation pass. 2013-12-15 14:40:18 -08:00
Ben Vanik
e5d867a92f Removing comments. 2013-12-07 06:29:58 -08:00
Ben Vanik
3b268f07ef Basic constant propagation. 2013-12-07 05:52:51 -08:00
Ben Vanik
57432d5996 Making ContextPromotion actually remove dead stores. 2013-12-07 04:57:37 -08:00
Ben Vanik
329b554c7a Basic ContextPromotionPass and some opcode info rearranging. 2013-12-07 04:39:48 -08:00
Ben Vanik
51d0be0f0a Basic DCE pass. 2013-12-07 02:18:26 -08:00
Ben Vanik
c2113c116d Starting compiler work. Adding pass TODOs. 2013-12-07 01:36:13 -08:00
Ben Vanik
fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00