authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-05-07 23:25:36-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-05-07 23:25:36-04:00
log2f20fe6ecd15581e356b3dcd3b254611b132c096
treef48d3bc80ce4c620f27733245eadba2b28d60021
parent8abcd94eceef08402f86c774c0f484cb51c6905a

delete @generatedCode builtin function

good riddance

5 files changed, 4 insertions(+), 78 deletions(-)

src/all_types.hpp-8
...@@ -1182,7 +1182,6 @@ enum BuiltinFnId {...@@ -1182,7 +1182,6 @@ enum BuiltinFnId {
1182 BuiltinFnIdCUndef,1182 BuiltinFnIdCUndef,
1183 BuiltinFnIdCompileErr,1183 BuiltinFnIdCompileErr,
1184 BuiltinFnIdCompileLog,1184 BuiltinFnIdCompileLog,
1185 BuiltinFnIdGeneratedCode,
1186 BuiltinFnIdCtz,1185 BuiltinFnIdCtz,
1187 BuiltinFnIdClz,1186 BuiltinFnIdClz,
1188 BuiltinFnIdImport,1187 BuiltinFnIdImport,
...@@ -1739,7 +1738,6 @@ enum IrInstructionId {...@@ -1739,7 +1738,6 @@ enum IrInstructionId {
1739 IrInstructionIdEnumTag,1738 IrInstructionIdEnumTag,
1740 IrInstructionIdClz,1739 IrInstructionIdClz,
1741 IrInstructionIdCtz,1740 IrInstructionIdCtz,
1742 IrInstructionIdGeneratedCode,
1743 IrInstructionIdImport,1741 IrInstructionIdImport,
1744 IrInstructionIdCImport,1742 IrInstructionIdCImport,
1745 IrInstructionIdCInclude,1743 IrInstructionIdCInclude,
...@@ -2153,12 +2151,6 @@ struct IrInstructionEnumTag {...@@ -2153,12 +2151,6 @@ struct IrInstructionEnumTag {
2153 IrInstruction *value;2151 IrInstruction *value;
2154};2152};
21552153
2156struct IrInstructionGeneratedCode {
2157 IrInstruction base;
2158
2159 IrInstruction *value;
2160};
2161
2162struct IrInstructionImport {2154struct IrInstructionImport {
2163 IrInstruction base;2155 IrInstruction base;
21642156
src/codegen.cpp-2
...@@ -3007,7 +3007,6 @@ static LLVMValueRef ir_render_instruction(CodeGen *g, IrExecutable *executable,...@@ -3007,7 +3007,6 @@ static LLVMValueRef ir_render_instruction(CodeGen *g, IrExecutable *executable,
3007 case IrInstructionIdAlignOf:3007 case IrInstructionIdAlignOf:
3008 case IrInstructionIdFnProto:3008 case IrInstructionIdFnProto:
3009 case IrInstructionIdTestComptime:3009 case IrInstructionIdTestComptime:
3010 case IrInstructionIdGeneratedCode:
3011 case IrInstructionIdCheckSwitchProngs:3010 case IrInstructionIdCheckSwitchProngs:
3012 case IrInstructionIdCheckStatementIsVoid:3011 case IrInstructionIdCheckStatementIsVoid:
3013 case IrInstructionIdTestType:3012 case IrInstructionIdTestType:
...@@ -4413,7 +4412,6 @@ static void define_builtin_fns(CodeGen *g) {...@@ -4413,7 +4412,6 @@ static void define_builtin_fns(CodeGen *g) {
4413 create_builtin_fn(g, BuiltinFnIdCInclude, "cInclude", 1);4412 create_builtin_fn(g, BuiltinFnIdCInclude, "cInclude", 1);
4414 create_builtin_fn(g, BuiltinFnIdCDefine, "cDefine", 2);4413 create_builtin_fn(g, BuiltinFnIdCDefine, "cDefine", 2);
4415 create_builtin_fn(g, BuiltinFnIdCUndef, "cUndef", 1);4414 create_builtin_fn(g, BuiltinFnIdCUndef, "cUndef", 1);
4416 create_builtin_fn(g, BuiltinFnIdGeneratedCode, "generatedCode", 1);
4417 create_builtin_fn(g, BuiltinFnIdCtz, "ctz", 1);4415 create_builtin_fn(g, BuiltinFnIdCtz, "ctz", 1);
4418 create_builtin_fn(g, BuiltinFnIdClz, "clz", 1);4416 create_builtin_fn(g, BuiltinFnIdClz, "clz", 1);
4419 create_builtin_fn(g, BuiltinFnIdImport, "import", 1);4417 create_builtin_fn(g, BuiltinFnIdImport, "import", 1);
src/ir.cpp-55
...@@ -333,10 +333,6 @@ static constexpr IrInstructionId ir_instruction_id(IrInstructionEnumTag *) {...@@ -333,10 +333,6 @@ static constexpr IrInstructionId ir_instruction_id(IrInstructionEnumTag *) {
333 return IrInstructionIdEnumTag;333 return IrInstructionIdEnumTag;
334}334}
335335
336static constexpr IrInstructionId ir_instruction_id(IrInstructionGeneratedCode *) {
337 return IrInstructionIdGeneratedCode;
338}
339
340static constexpr IrInstructionId ir_instruction_id(IrInstructionImport *) {336static constexpr IrInstructionId ir_instruction_id(IrInstructionImport *) {
341 return IrInstructionIdImport;337 return IrInstructionIdImport;
342}338}
...@@ -1435,17 +1431,6 @@ static IrInstruction *ir_build_enum_tag_from(IrBuilder *irb, IrInstruction *old_...@@ -1435,17 +1431,6 @@ static IrInstruction *ir_build_enum_tag_from(IrBuilder *irb, IrInstruction *old_
1435 return new_instruction;1431 return new_instruction;
1436}1432}
14371433
1438static IrInstruction *ir_build_generated_code(IrBuilder *irb, Scope *scope, AstNode *source_node,
1439 IrInstruction *value)
1440{
1441 IrInstructionGeneratedCode *instruction = ir_build_instruction<IrInstructionGeneratedCode>(irb, scope, source_node);
1442 instruction->value = value;
1443
1444 ir_ref_instruction(value, irb->current_basic_block);
1445
1446 return &instruction->base;
1447}
1448
1449static IrInstruction *ir_build_import(IrBuilder *irb, Scope *scope, AstNode *source_node, IrInstruction *name) {1434static IrInstruction *ir_build_import(IrBuilder *irb, Scope *scope, AstNode *source_node, IrInstruction *name) {
1450 IrInstructionImport *instruction = ir_build_instruction<IrInstructionImport>(irb, scope, source_node);1435 IrInstructionImport *instruction = ir_build_instruction<IrInstructionImport>(irb, scope, source_node);
1451 instruction->name = name;1436 instruction->name = name;
...@@ -2466,13 +2451,6 @@ static IrInstruction *ir_instruction_ctz_get_dep(IrInstructionCtz *instruction,...@@ -2466,13 +2451,6 @@ static IrInstruction *ir_instruction_ctz_get_dep(IrInstructionCtz *instruction,
2466 }2451 }
2467}2452}
24682453
2469static IrInstruction *ir_instruction_generatedcode_get_dep(IrInstructionGeneratedCode *instruction, size_t index) {
2470 switch (index) {
2471 case 0: return instruction->value;
2472 default: return nullptr;
2473 }
2474}
2475
2476static IrInstruction *ir_instruction_import_get_dep(IrInstructionImport *instruction, size_t index) {2454static IrInstruction *ir_instruction_import_get_dep(IrInstructionImport *instruction, size_t index) {
2477 switch (index) {2455 switch (index) {
2478 case 0: return instruction->name;2456 case 0: return instruction->name;
...@@ -2964,8 +2942,6 @@ static IrInstruction *ir_instruction_get_dep(IrInstruction *instruction, size_t...@@ -2964,8 +2942,6 @@ static IrInstruction *ir_instruction_get_dep(IrInstruction *instruction, size_t
2964 return ir_instruction_clz_get_dep((IrInstructionClz *) instruction, index);2942 return ir_instruction_clz_get_dep((IrInstructionClz *) instruction, index);
2965 case IrInstructionIdCtz:2943 case IrInstructionIdCtz:
2966 return ir_instruction_ctz_get_dep((IrInstructionCtz *) instruction, index);2944 return ir_instruction_ctz_get_dep((IrInstructionCtz *) instruction, index);
2967 case IrInstructionIdGeneratedCode:
2968 return ir_instruction_generatedcode_get_dep((IrInstructionGeneratedCode *) instruction, index);
2969 case IrInstructionIdImport:2945 case IrInstructionIdImport:
2970 return ir_instruction_import_get_dep((IrInstructionImport *) instruction, index);2946 return ir_instruction_import_get_dep((IrInstructionImport *) instruction, index);
2971 case IrInstructionIdCImport:2947 case IrInstructionIdCImport:
...@@ -3931,15 +3907,6 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo...@@ -3931,15 +3907,6 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo
39313907
3932 return ir_build_clz(irb, scope, node, arg0_value);3908 return ir_build_clz(irb, scope, node, arg0_value);
3933 }3909 }
3934 case BuiltinFnIdGeneratedCode:
3935 {
3936 AstNode *arg0_node = node->data.fn_call_expr.params.at(0);
3937 IrInstruction *arg0_value = ir_gen_node(irb, arg0_node, scope);
3938 if (arg0_value == irb->codegen->invalid_instruction)
3939 return arg0_value;
3940
3941 return ir_build_generated_code(irb, scope, node, arg0_value);
3942 }
3943 case BuiltinFnIdImport:3910 case BuiltinFnIdImport:
3944 {3911 {
3945 AstNode *arg0_node = node->data.fn_call_expr.params.at(0);3912 AstNode *arg0_node = node->data.fn_call_expr.params.at(0);
...@@ -11227,25 +11194,6 @@ static TypeTableEntry *ir_analyze_instruction_enum_tag(IrAnalyze *ira, IrInstruc...@@ -11227,25 +11194,6 @@ static TypeTableEntry *ir_analyze_instruction_enum_tag(IrAnalyze *ira, IrInstruc
11227 return new_instruction->value.type;11194 return new_instruction->value.type;
11228}11195}
1122911196
11230static TypeTableEntry *ir_analyze_instruction_generated_code(IrAnalyze *ira, IrInstructionGeneratedCode *instruction) {
11231 IrInstruction *value = instruction->value->other;
11232 if (type_is_invalid(value->value.type))
11233 return ira->codegen->builtin_types.entry_invalid;
11234
11235 if (instr_is_comptime(value)) {
11236 ConstExprValue *val = ir_resolve_const(ira, value, UndefOk);
11237 if (!val)
11238 return ira->codegen->builtin_types.entry_invalid;
11239
11240 ConstExprValue *out_val = ir_build_const_from(ira, &instruction->base);
11241 *out_val = *val;
11242 return value->value.type;
11243 }
11244
11245 instruction->base.other = value;
11246 return value->value.type;
11247}
11248
11249static TypeTableEntry *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructionImport *import_instruction) {11197static TypeTableEntry *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructionImport *import_instruction) {
11250 IrInstruction *name_value = import_instruction->name->other;11198 IrInstruction *name_value = import_instruction->name->other;
11251 Buf *import_target_str = ir_resolve_str(ira, name_value);11199 Buf *import_target_str = ir_resolve_str(ira, name_value);
...@@ -13362,8 +13310,6 @@ static TypeTableEntry *ir_analyze_instruction_nocast(IrAnalyze *ira, IrInstructi...@@ -13362,8 +13310,6 @@ static TypeTableEntry *ir_analyze_instruction_nocast(IrAnalyze *ira, IrInstructi
13362 return ir_analyze_instruction_switch_var(ira, (IrInstructionSwitchVar *)instruction);13310 return ir_analyze_instruction_switch_var(ira, (IrInstructionSwitchVar *)instruction);
13363 case IrInstructionIdEnumTag:13311 case IrInstructionIdEnumTag:
13364 return ir_analyze_instruction_enum_tag(ira, (IrInstructionEnumTag *)instruction);13312 return ir_analyze_instruction_enum_tag(ira, (IrInstructionEnumTag *)instruction);
13365 case IrInstructionIdGeneratedCode:
13366 return ir_analyze_instruction_generated_code(ira, (IrInstructionGeneratedCode *)instruction);
13367 case IrInstructionIdImport:13313 case IrInstructionIdImport:
13368 return ir_analyze_instruction_import(ira, (IrInstructionImport *)instruction);13314 return ir_analyze_instruction_import(ira, (IrInstructionImport *)instruction);
13369 case IrInstructionIdArrayLen:13315 case IrInstructionIdArrayLen:
...@@ -13601,7 +13547,6 @@ bool ir_has_side_effects(IrInstruction *instruction) {...@@ -13601,7 +13547,6 @@ bool ir_has_side_effects(IrInstruction *instruction) {
13601 case IrInstructionIdSwitchVar:13547 case IrInstructionIdSwitchVar:
13602 case IrInstructionIdSwitchTarget:13548 case IrInstructionIdSwitchTarget:
13603 case IrInstructionIdEnumTag:13549 case IrInstructionIdEnumTag:
13604 case IrInstructionIdGeneratedCode:
13605 case IrInstructionIdRef:13550 case IrInstructionIdRef:
13606 case IrInstructionIdMinValue:13551 case IrInstructionIdMinValue:
13607 case IrInstructionIdMaxValue:13552 case IrInstructionIdMaxValue:
src/ir_print.cpp-9
...@@ -481,12 +481,6 @@ static void ir_print_enum_tag(IrPrint *irp, IrInstructionEnumTag *instruction) {...@@ -481,12 +481,6 @@ static void ir_print_enum_tag(IrPrint *irp, IrInstructionEnumTag *instruction) {
481 ir_print_other_instruction(irp, instruction->value);481 ir_print_other_instruction(irp, instruction->value);
482}482}
483483
484static void ir_print_generated_code(IrPrint *irp, IrInstructionGeneratedCode *instruction) {
485 fprintf(irp->f, "@generatedCode(");
486 ir_print_other_instruction(irp, instruction->value);
487 fprintf(irp->f, ")");
488}
489
490static void ir_print_import(IrPrint *irp, IrInstructionImport *instruction) {484static void ir_print_import(IrPrint *irp, IrInstructionImport *instruction) {
491 fprintf(irp->f, "@import(");485 fprintf(irp->f, "@import(");
492 ir_print_other_instruction(irp, instruction->name);486 ir_print_other_instruction(irp, instruction->name);
...@@ -1011,9 +1005,6 @@ static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) {...@@ -1011,9 +1005,6 @@ static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) {
1011 case IrInstructionIdEnumTag:1005 case IrInstructionIdEnumTag:
1012 ir_print_enum_tag(irp, (IrInstructionEnumTag *)instruction);1006 ir_print_enum_tag(irp, (IrInstructionEnumTag *)instruction);
1013 break;1007 break;
1014 case IrInstructionIdGeneratedCode:
1015 ir_print_generated_code(irp, (IrInstructionGeneratedCode *)instruction);
1016 break;
1017 case IrInstructionIdImport:1008 case IrInstructionIdImport:
1018 ir_print_import(irp, (IrInstructionImport *)instruction);1009 ir_print_import(irp, (IrInstructionImport *)instruction);
1019 break;1010 break;
test/cases/null.zig+4-4
...@@ -1,7 +1,7 @@...@@ -1,7 +1,7 @@
1const assert = @import("std").debug.assert;1const assert = @import("std").debug.assert;
22
3test "nullableType" {3test "nullableType" {
4 const x : ?bool = @generatedCode(true);4 const x : ?bool = true;
55
6 if (x) |y| {6 if (x) |y| {
7 if (y) {7 if (y) {
...@@ -13,13 +13,13 @@ test "nullableType" {...@@ -13,13 +13,13 @@ test "nullableType" {
13 unreachable;13 unreachable;
14 }14 }
1515
16 const next_x : ?i32 = @generatedCode(null);16 const next_x : ?i32 = null;
1717
18 const z = next_x ?? 1234;18 const z = next_x ?? 1234;
1919
20 assert(z == 1234);20 assert(z == 1234);
2121
22 const final_x : ?i32 = @generatedCode(13);22 const final_x : ?i32 = 13;
2323
24 const num = final_x ?? unreachable;24 const num = final_x ?? unreachable;
2525
...@@ -38,7 +38,7 @@ test "test maybe object and get a pointer to the inner value" {...@@ -38,7 +38,7 @@ test "test maybe object and get a pointer to the inner value" {
3838
3939
40test "rhsMaybeUnwrapReturn" {40test "rhsMaybeUnwrapReturn" {
41 const x: ?bool = @generatedCode(true);41 const x: ?bool = true;
42 const y = x ?? return;42 const y = x ?? return;
43}43}
4444