Commit Graph

892 Commits

Author SHA1 Message Date
Andrew Kelley
6ed202ab16 IR: implement defer 2016-12-06 21:26:17 -05:00
Andrew Kelley
0c531d447d remove the boolean argument from setFnTest 2016-12-05 21:39:15 -05:00
Andrew Kelley
bed83bc5a1 IR: implement short circuit bool or, and 2016-12-05 19:12:19 -05:00
Andrew Kelley
24048b2af6 IR: implement break and continue 2016-12-05 18:43:16 -05:00
Andrew Kelley
0541532ed6 IR: implement generic function calls 2016-12-05 05:12:44 -05:00
Andrew Kelley
363606d87b IR: inline function evaluation works on generic functions 2016-12-05 01:08:17 -05:00
Andrew Kelley
25a89e7a36 IR: compile time function evaluation 2016-12-04 23:52:43 -05:00
Andrew Kelley
9f23475b17 add missing copyright notices 2016-12-04 21:06:13 -05:00
Andrew Kelley
2f259b8176 IR: re-organize where state goes to prepare for generics
* Rip out legacy code for generics
 * put scope in instruction instead of AST nodes
 * separate top level decl stuff from AST nodes
   - remove the assumption that there is a 1:1 correspondence
     between an output instruction and an AST node
   - This way we won't have to clone AST nodes for generics.
2016-12-04 03:40:40 -05:00
Andrew Kelley
f6cbb73c74 rewrite scope implementation
* now there are not extra unused hash tables
 * each variable declaration opens a new scope inside a function
2016-12-01 21:08:12 -05:00
Andrew Kelley
c6ace9720c rename BlockContext to Scope 2016-12-01 13:55:56 -05:00
Andrew Kelley
eb5693d91f IR: function call porting progress
also implemented container init
generics is still todo
2016-11-28 02:40:01 -05:00
Andrew Kelley
9e7c475979 IR: silence irrelevant function prototype errors 2016-11-27 01:45:29 -05:00
Andrew Kelley
e5325c7ef3 IR: fix not checking for error in unary bool not 2016-11-27 01:31:09 -05:00
Andrew Kelley
d9329ed389 IR: add ref instruction 2016-11-27 01:22:30 -05:00
Andrew Kelley
bd4d4ee51e IR: detect error for exceeding branch quota 2016-11-27 00:14:19 -05:00
Andrew Kelley
1fba7f3696 IR: add inline goto 2016-11-26 23:33:07 -05:00
Andrew Kelley
b3ff28189c IR: fix crash when duplicate label error 2016-11-26 23:24:43 -05:00
Andrew Kelley
a52ede6494 IR: support goto and labels 2016-11-26 23:16:38 -05:00
Andrew Kelley
a3db60b5d7 IR: fix parsing while loop 2016-11-26 21:16:36 -05:00
Andrew Kelley
84f7805029 IR: support import builtin function 2016-11-26 20:52:22 -05:00
Andrew Kelley
4619b5de06 IR: support inline switch 2016-11-26 15:38:07 -05:00
Andrew Kelley
24b65e41ee IR: add error for non static const on switch case range 2016-11-26 04:37:34 -05:00
Andrew Kelley
697c768730 IR: support switch with range 2016-11-26 04:03:39 -05:00
Andrew Kelley
bbf785bc1d IR: switch expression works with numbers 2016-11-26 00:25:48 -05:00
Andrew Kelley
0c22358cc1 IR: generating a switch statement 2016-11-24 02:44:03 -05:00
Andrew Kelley
a2257e4b81 IR: implement setFnVisible builtin 2016-11-21 15:36:25 -05:00
Andrew Kelley
052cd44588 IR: fix codegen for arrays 2016-11-21 15:01:21 -05:00
Andrew Kelley
e80e8a8099 IR: fix detection of invalid codegen 2016-11-21 13:53:08 -05:00
Andrew Kelley
67d565136a IR: implement ctz and clz builtins 2016-11-21 13:27:44 -05:00
Andrew Kelley
71d95c6597 IR: support unwrap maybe operation 2016-11-21 03:08:24 -05:00
Andrew Kelley
b47e2fa060 IR: support sizeOf builtin 2016-11-20 02:11:36 -05:00
Andrew Kelley
6c8b919d17 IR: implement ir_print for maybe type 2016-11-19 01:56:48 -05:00
Andrew Kelley
2f8dd46174 IR: error for uncasted null lit variable 2016-11-19 01:53:14 -05:00
Andrew Kelley
8a81f8aa13 IR: implement compileVar builtin and more
* implicit array to slice cast
 * fix if statements at global scope
 * implement array type IR
2016-11-19 01:39:51 -05:00
Andrew Kelley
19037014e5 IR: more maybe type support 2016-11-18 23:52:42 -05:00
Andrew Kelley
31565efe9d IR: fix decl references pointerness 2016-11-18 22:44:59 -05:00
Andrew Kelley
d94cb0566b IR: correctly codegening memset and memcpy 2016-11-18 22:24:41 -05:00
Andrew Kelley
bf7cde62c5 IR: support setDebugSafety builtin function 2016-11-18 20:57:27 -05:00
Andrew Kelley
ed31ae8867 IR: inline assembly working 2016-11-18 02:07:40 -05:00
Andrew Kelley
c3b603fdf9 remove AST cloning code and add AST render for while loops 2016-11-17 21:17:58 -05:00
Andrew Kelley
7a2a0672b4 IR: pointers to constants use correct addresses 2016-11-17 21:07:29 -05:00
Andrew Kelley
62d0d88b56 IR: pointers to constants don't copy data 2016-11-17 04:00:02 -05:00
Andrew Kelley
a55555c99e remove superseded eval code 2016-11-17 00:44:14 -05:00
Andrew Kelley
8d1c6138f9 IR: implement pointer dereferencing (even at compile time) 2016-11-15 01:48:36 -05:00
Andrew Kelley
af4d4c882a IR: implement compile time array access 2016-11-14 21:01:48 -05:00
Andrew Kelley
2edc6c1a3f IR: add assembly instruction 2016-11-13 21:07:30 -05:00
Andrew Kelley
04c047463b IR: fix hang for unreachable functions 2016-11-13 16:02:18 -05:00
Andrew Kelley
e2fd3b2b1b IR: fix prefix op eval setting wrong type 2016-11-13 13:42:04 -05:00
Andrew Kelley
d4f2394dcf IR handles global variables correctly 2016-11-13 01:56:28 -05:00