1450 Commits

Author SHA1 Message Date
Andrew Kelley
69132bdeda IR: progress toward compiling standard library
* comptime fn call
 * is_comptime doesn't count as an instruction dependency
 * update more std code to latest zig
2016-12-31 17:10:29 -05:00
Andrew Kelley
5f89393acb IR: implement binary not instruction 2016-12-31 02:23:39 -05:00
Andrew Kelley
2ccdaee101 IR: add error for goto jumping over variable declaration 2016-12-31 01:58:37 -05:00
Andrew Kelley
76fa6cdce3 eradicate use of zeroes in std 2016-12-31 01:31:23 -05:00
Andrew Kelley
29bb175f4f IR: handle phi instruction with 0 resulting incoming values 2016-12-30 18:47:54 -05:00
Andrew Kelley
6bbee194b9 IR: better basic block dependency detection 2016-12-30 18:34:05 -05:00
Andrew Kelley
a9acc8cb45 IR: error for returning from defer expression
also fix peer type resolution for pure error mixed with error union
2016-12-28 03:47:02 -05:00
Andrew Kelley
f6ac2fa70e IR: pass pointerToVoidReturnType test 2016-12-28 01:31:46 -05:00
Andrew Kelley
25a5fc32fe IR: pass passSliceOfEmptyStructToFn test 2016-12-28 01:15:09 -05:00
Andrew Kelley
15f843e70f IR: pass castSliceToU8Slice test 2016-12-26 17:11:36 -05:00
Andrew Kelley
66a83d8738 IR: pass intToEnum test 2016-12-26 16:34:18 -05:00
Andrew Kelley
c8a7ab7eff IR: pass cStringConcatenation test 2016-12-26 16:04:14 -05:00
Andrew Kelley
735cdbfdac IR: pass intToPtrCast test 2016-12-26 15:45:50 -05:00
Andrew Kelley
3ef6663b72 IR: pass genericMallocFree test 2016-12-26 03:02:20 -05:00
Andrew Kelley
110a6f39ca IR: pass explicitCastMaybePointers test 2016-12-26 02:53:42 -05:00
Andrew Kelley
4664f793dc IR: pass enumToInt test 2016-12-26 02:36:04 -05:00
Andrew Kelley
f47dea2a2e IR: support compile time global pointer reinterpret
this required moving the place we store types to ConstExprValue
2016-12-25 04:15:23 -05:00
Andrew Kelley
6f91fb4c37 IR: support const ref 2016-12-22 10:39:10 -05:00
Andrew Kelley
ba8af0f1e2 IR: fix missing implicit casts in init expressions
and implement runtime struct init instruction
2016-12-22 09:35:07 -05:00
Andrew Kelley
3e25ff65c3 IR: fix switch enum variable for void enum field 2016-12-22 08:05:37 -05:00
Andrew Kelley
5fc95c2a53 IR: port some tests 2016-12-22 00:55:21 -05:00
Andrew Kelley
d544672ed4 IR: fix compile time evaluation of else prong in switch 2016-12-21 23:48:02 -05:00
Andrew Kelley
43be6ccb03 IR: fix phi instruction when one of the predecessors is unreachable 2016-12-21 23:04:04 -05:00
Andrew Kelley
9b61682037 IR: implement runtime enum init and switch on enum with variable 2016-12-21 21:49:05 -05:00
Andrew Kelley
1f6dacbb2f IR: enum init support 2016-12-20 01:50:32 -05:00
Andrew Kelley
c10ae8622b IR: fix lazy eval of enum field access 2016-12-19 21:06:55 -05:00
Andrew Kelley
3ea4f264ff IR: update all error messages to be useful if generic instantiation 2016-12-19 19:54:51 -05:00
Andrew Kelley
2419f0c914 IR: support maybe defers 2016-12-19 17:25:09 -05:00
Andrew Kelley
09d50e35a4 IR: support error defers 2016-12-19 16:45:15 -05:00
Andrew Kelley
09c34352f8 IR: if and switch guaranteed compile time if target expr is 2016-12-19 00:04:51 -05:00
Andrew Kelley
956ff8a7f9 better error message generic instantiations 2016-12-18 21:15:40 -05:00
Andrew Kelley
132e2fa5d9 errors from inline fn calls include stack trace 2016-12-18 20:52:40 -05:00
Andrew Kelley
cfc9f7422f IR: add MaybeOkOr instruction 2016-12-18 20:22:28 -05:00
Andrew Kelley
82101198f1 workaround for Arch being a primitive type 2016-12-18 20:09:34 -05:00
Andrew Kelley
a71fbe49cb IR: add FnProto instruction 2016-12-18 19:40:26 -05:00
Andrew Kelley
f12fbce0f5 IR: memoize compile-time evaluated fn invocations 2016-12-18 18:23:46 -05:00
Andrew Kelley
4816121e00 remove duplicate definition of container_string 2016-12-18 17:53:12 -05:00
Andrew Kelley
ba008fb9d7 IR: ability to return a container from a function 2016-12-18 17:50:47 -05:00
Andrew Kelley
37b13bf151 hello.zig working with all structs anonymous 2016-12-18 17:24:52 -05:00
Andrew Kelley
e50ced44a2 IR: all structs anonymous 2016-12-18 16:56:50 -05:00
Andrew Kelley
2e6aa6d813 IR: fix codegen of ref instruction 2016-12-18 13:55:34 -05:00
Andrew Kelley
a76b048354 IR: phi instruction handles unreachable values correctly 2016-12-18 13:37:50 -05:00
Andrew Kelley
b59841a80f IR: fix err variable in ErrOkOr instruction 2016-12-18 13:20:19 -05:00
Andrew Kelley
0cdfd5c141 IR: fix container field access via container pointer 2016-12-18 02:13:07 -05:00
Andrew Kelley
0d2f2b79ea IR: basic support for implicit casting to const pointer 2016-12-18 01:54:27 -05:00
Andrew Kelley
69cf0ea568 IR: fix type of decls accessed via namespace 2016-12-18 00:53:29 -05:00
Andrew Kelley
3e4194bf9e IR: add runime negation 2016-12-18 00:36:11 -05:00
Andrew Kelley
83a668b9ca IR: unreachable has lowest priority when resolving peer types 2016-12-18 00:25:07 -05:00
Andrew Kelley
85b6d14637 IR: support var type args and fix phi peer type resolution 2016-12-18 00:09:43 -05:00
Andrew Kelley
e73faf9a9e IR: allow undefined compile time values sometimes 2016-12-17 22:13:15 -05:00