1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-26 12:49:21 +00:00
Commit Graph

1851 Commits

Author SHA1 Message Date
Jesper Gravgaard
002c498810 Rewrote calling convention PHI return value pass. 2020-03-07 19:11:33 +01:00
jespergravgaard
f32f44cd92 Added missing test data. 2020-03-07 08:44:36 +01:00
jespergravgaard
2e934a7a30 Created StatementExprSideEffect. Converted call prepare to pushes. 2020-03-07 08:44:02 +01:00
jespergravgaard
7baacebc3d Created StatementExprSideEffect. Converted stack operations to this. 2020-03-07 08:08:54 +01:00
jespergravgaard
9e2e38e671 Moving __Stackcall stack operations back to pass 1/2 from pass 4 ASM code generation. 2020-03-07 00:33:07 +01:00
jespergravgaard
689aeb0ca6 Fixed problem with passing struck values to __stackcall. Closes #366 2020-03-06 09:38:09 +01:00
jespergravgaard
797c3bbd21 Moved calling convention stack handling to pass 1. Passing structs to __stackcall does not work atm. 2020-03-05 09:13:52 +01:00
jespergravgaard
c6f81595fb Added support for %E in linker scripts expanding to the name of the entry point label starting the program (ie. __bbegin). __bbegin handling could still use some love. 2020-03-03 08:58:31 +01:00
jespergravgaard
2c177dd45f Fixed passing of value lists as return values. Fixed problems with clobbering in return/call return value fetch. 2020-03-03 01:25:02 +01:00
jespergravgaard
2427720581 Fixed problem where unused parameters were eliminated. 2020-03-02 20:56:04 +01:00
jespergravgaard
25279aead3 Fixed problem with live variables and stack calls. 2020-03-02 09:21:31 +01:00
jespergravgaard
5d7533de5d Added test illustrating variable alive range propagation problem when using call stack. 2020-03-01 23:02:07 +01:00
jespergravgaard
7720eb8c13 Added tests illustrating stack call live range problems. 2020-03-01 17:05:54 +01:00
jespergravgaard
648d08a13d Added proper clobber check to call prepare sub-statements. Fixed stack clean-up after stack call return. 2020-03-01 16:00:42 +01:00
jespergravgaard
4346790c43 Fixed failing test. 2020-02-28 00:16:12 +01:00
jespergravgaard
ce7e6d29cb Added missing fragments. Handling inlined procedures. 2020-02-28 00:11:33 +01:00
Jesper Gravgaard
378798d6ba Added missing stack fragments. 2020-02-27 19:35:43 +01:00
Jesper Gravgaard
c44cb02b96 Fixed parameter offsets on stack by reversing order. 2020-02-27 13:26:30 +01:00
Jesper Gravgaard
c3c2999381 Refactored dominator calculation to happen scope by scope. 2020-02-27 12:48:23 +01:00
jespergravgaard
4ef4d178b6 Added commandline option for specifying calling convention. 2020-02-27 07:22:22 +01:00
jespergravgaard
e1e17f6152 Fixed type inference for StackIdxValue. Added a few missing stack fragments for __stackcall with pointers. 2020-02-26 11:44:15 +01:00
jespergravgaard
ee18c2c414 Added some missing fragments. 2020-02-26 11:00:08 +01:00
jespergravgaard
5e6ac1a0cd Fixed error in vae_model settings parser. 2020-02-26 00:13:03 +01:00
jespergravgaard
7135c08d6f Updated version number. 2020-02-25 22:16:54 +01:00
jespergravgaard
946144135a Added command line support for var_model(). 2020-02-25 22:15:39 +01:00
Jesper Gravgaard
b05a321d85 Merge remote-tracking branch 'origin/master' 2020-02-25 21:38:53 +01:00
Jesper Gravgaard
827f63c315 Added support for full var_models and var_models with default setting applied pre/post. 2020-02-25 21:38:29 +01:00
jespergravgaard
e9eeafd170 Fixed a few errors introduced by condition simplification rewrite. Added a fragment. 2020-02-25 09:26:05 +01:00
jespergravgaard
5fd74a8d39 Improved tetris code by inlining two kickasm-arrays. 2020-02-24 22:39:09 +01:00
jespergravgaard
19b145c207 Implemented immediate variables for preserving the value of load/store variables used in simple conditions that are inlined. #359 2020-02-23 20:57:53 +01:00
jespergravgaard
6862698fb7 Eliminated redundant methods got getting assignments/usages in Pass2SsaOptimization. 2020-02-23 19:26:53 +01:00
jespergravgaard
2961c84bd7 Working on improving the condition simplification. 2020-02-23 10:04:51 +01:00
jespergravgaard
5ffae4d92a Added C-source to generated test ASM. 2020-02-23 09:44:36 +01:00
jespergravgaard
dc6175a0b6 Working on fixing #359 problem with load/store variables and simple-conditionals. 2020-02-22 20:45:35 +01:00
jespergravgaard
d33c84488a Fixed a few tests. 2020-02-22 12:06:47 +01:00
jespergravgaard
7dacbb2c75 Fixed code for __ma. 2020-02-15 09:30:27 +01:00
jespergravgaard
f45ba8eb10 Fixed early constant identification. Added test for constant initValue. 2020-02-15 09:00:57 +01:00
jespergravgaard
7b8488ef29 Fixed the last __ma exceptions. 2020-02-14 23:01:56 +01:00
jespergravgaard
3770874860 Unrolled condition variables are now converted to SSA automatically in pass 1. 2020-02-14 15:55:04 +01:00
jespergravgaard
d0bc5af94b Now identifying USE's that are also DEFINE's as unused. 2020-02-14 10:57:29 +01:00
jespergravgaard
0beeab9be2 Refactored live ranges to work for multiple-assign variables. The price is that a few unused variables are no longer optimized away since they depend only on them selves. See duplace-loop-problem.kc. 2020-02-14 00:32:19 +01:00
Jesper Gravgaard
a5d14105d8 Fixed const in test. 2020-02-13 18:26:52 +01:00
Jesper Gravgaard
f92e750b61 Fixed removal of unused vars. 2020-02-13 13:46:54 +01:00
jespergravgaard
f106f953a8 Working on memory model ma_mem. Added some support for local static variables. 2020-02-13 11:36:27 +01:00
jespergravgaard
600a80dbcc Fixed last errors for ssa_mem var-model. 2020-02-12 23:26:20 +01:00
jespergravgaard
687705f5d2 Eliminated old getAssignment() method. 2020-02-12 22:24:29 +01:00
jespergravgaard
3d7914c31f Eliminated old getAssignment() methods. 2020-02-12 22:09:43 +01:00
jespergravgaard
6c4a99240d Eliminated old getAssignment() methods. 2020-02-12 08:21:48 +01:00
jespergravgaard
92acd45493 Eliminated old getAssignment() methods. 2020-02-12 00:47:01 +01:00
jespergravgaard
45019c1116 Fixed test 2020-02-11 22:04:01 +01:00