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