Andrew Kelley aac6e8c418 self-hosted: AST flattening, astgen improvements, result locations, and more
* AST: flatten ControlFlowExpression into Continue, Break, and Return.
 * AST: unify identifiers and literals into the same AST type: OneToken
 * AST: ControlFlowExpression uses TrailerFlags to optimize storage
   space.
 * astgen: support `var` as well as `const` locals, and support
   explicitly typed locals. Corresponding Module and codegen code is not
   implemented yet.
 * astgen: support result locations.
 * ZIR: add the following instructions (see the corresponding doc
   comments for explanations of semantics):
   - alloc
   - alloc_inferred
   - bitcast_result_ptr
   - coerce_result_block_ptr
   - coerce_result_ptr
   - coerce_to_ptr_elem
   - ensure_result_used
   - ensure_result_non_error
   - ret_ptr
   - ret_type
   - store
   - param_type
 * the skeleton structure for result locations is set up. It's looking
   pretty clean so far.
 * add compile error for unused result and compile error for discarding
   errors.
 * astgen: split builtin calls up to implemented manually, and implement
   `@as`, `@bitCast` (and others) with respect to result locations.
 * add CLI support for hex and raw object formats. They are not
   supported by the self-hosted compiler yet, and emit errors.
 * rename `--c` CLI to `-ofmt=[objectformat]` which can be any of the
   object formats. Only ELF and C are supported so far. Also added missing
   help to the help text.
 * Remove hard tabs from C backend test cases. Shame on you Noam, you
   are grounded, you should know better, etc. Bad boy.
 * Delete C backend code and test case that relied on comptime_int
   incorrectly making it all the way to codegen.
2020-07-23 23:05:26 -07:00
..
2020-07-11 20:41:19 +03:00
2020-04-28 19:11:31 -06:00
2020-07-17 17:55:55 +03:00
2020-06-07 22:39:35 +10:00
2020-07-22 17:26:27 -04:00
2020-06-26 13:34:48 -06:00
2019-09-25 23:35:41 -04:00
2019-09-25 23:35:41 -04:00
2020-07-05 21:11:42 +00:00
2020-07-11 20:41:19 +03:00
2020-07-11 20:41:19 +03:00
2020-02-16 13:25:30 -05:00
2020-06-09 13:36:17 -04:00
2020-07-13 00:34:02 +10:00
2019-10-11 18:13:24 -04:00
2020-07-12 21:45:25 +00:00
2019-09-25 23:35:41 -04:00
2020-06-09 13:36:17 -04:00
2020-05-24 10:04:09 -04:00
2020-02-22 12:44:21 +01:00
2020-07-17 00:15:34 +03:00
2020-07-14 17:19:17 -07:00
2020-07-11 20:41:19 +03:00
2020-07-22 17:26:27 -04:00
2020-07-13 00:34:02 +10:00
2020-06-01 14:43:13 -04:00
2020-06-18 20:35:03 -04:00