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 {
11821182 BuiltinFnIdCUndef,
11831183 BuiltinFnIdCompileErr,
11841184 BuiltinFnIdCompileLog,
1185 BuiltinFnIdGeneratedCode,
11861185 BuiltinFnIdCtz,
11871186 BuiltinFnIdClz,
11881187 BuiltinFnIdImport,
......@@ -1739,7 +1738,6 @@ enum IrInstructionId {
17391738 IrInstructionIdEnumTag,
17401739 IrInstructionIdClz,
17411740 IrInstructionIdCtz,
1742 IrInstructionIdGeneratedCode,
17431741 IrInstructionIdImport,
17441742 IrInstructionIdCImport,
17451743 IrInstructionIdCInclude,
......@@ -2153,12 +2151,6 @@ struct IrInstructionEnumTag {
21532151 IrInstruction *value;
21542152};
21552153
2156struct IrInstructionGeneratedCode {
2157 IrInstruction base;
2158
2159 IrInstruction *value;
2160};
2161
21622154struct IrInstructionImport {
21632155 IrInstruction base;
21642156
src/codegen.cpp-2
......@@ -3007,7 +3007,6 @@ static LLVMValueRef ir_render_instruction(CodeGen *g, IrExecutable *executable,
30073007 case IrInstructionIdAlignOf:
30083008 case IrInstructionIdFnProto:
30093009 case IrInstructionIdTestComptime:
3010 case IrInstructionIdGeneratedCode:
30113010 case IrInstructionIdCheckSwitchProngs:
30123011 case IrInstructionIdCheckStatementIsVoid:
30133012 case IrInstructionIdTestType:
......@@ -4413,7 +4412,6 @@ static void define_builtin_fns(CodeGen *g) {
44134412 create_builtin_fn(g, BuiltinFnIdCInclude, "cInclude", 1);
44144413 create_builtin_fn(g, BuiltinFnIdCDefine, "cDefine", 2);
44154414 create_builtin_fn(g, BuiltinFnIdCUndef, "cUndef", 1);
4416 create_builtin_fn(g, BuiltinFnIdGeneratedCode, "generatedCode", 1);
44174415 create_builtin_fn(g, BuiltinFnIdCtz, "ctz", 1);
44184416 create_builtin_fn(g, BuiltinFnIdClz, "clz", 1);
44194417 create_builtin_fn(g, BuiltinFnIdImport, "import", 1);
src/ir.cpp-55
......@@ -333,10 +333,6 @@ static constexpr IrInstructionId ir_instruction_id(IrInstructionEnumTag *) {
333333 return IrInstructionIdEnumTag;
334334}
335335
336static constexpr IrInstructionId ir_instruction_id(IrInstructionGeneratedCode *) {
337 return IrInstructionIdGeneratedCode;
338}
339
340336static constexpr IrInstructionId ir_instruction_id(IrInstructionImport *) {
341337 return IrInstructionIdImport;
342338}
......@@ -1435,17 +1431,6 @@ static IrInstruction *ir_build_enum_tag_from(IrBuilder *irb, IrInstruction *old_
14351431 return new_instruction;
14361432}
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
14491434static IrInstruction *ir_build_import(IrBuilder *irb, Scope *scope, AstNode *source_node, IrInstruction *name) {
14501435 IrInstructionImport *instruction = ir_build_instruction<IrInstructionImport>(irb, scope, source_node);
14511436 instruction->name = name;
......@@ -2466,13 +2451,6 @@ static IrInstruction *ir_instruction_ctz_get_dep(IrInstructionCtz *instruction,
24662451 }
24672452}
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
24762454static IrInstruction *ir_instruction_import_get_dep(IrInstructionImport *instruction, size_t index) {
24772455 switch (index) {
24782456 case 0: return instruction->name;
......@@ -2964,8 +2942,6 @@ static IrInstruction *ir_instruction_get_dep(IrInstruction *instruction, size_t
29642942 return ir_instruction_clz_get_dep((IrInstructionClz *) instruction, index);
29652943 case IrInstructionIdCtz:
29662944 return ir_instruction_ctz_get_dep((IrInstructionCtz *) instruction, index);
2967 case IrInstructionIdGeneratedCode:
2968 return ir_instruction_generatedcode_get_dep((IrInstructionGeneratedCode *) instruction, index);
29692945 case IrInstructionIdImport:
29702946 return ir_instruction_import_get_dep((IrInstructionImport *) instruction, index);
29712947 case IrInstructionIdCImport:
......@@ -3931,15 +3907,6 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo
39313907
39323908 return ir_build_clz(irb, scope, node, arg0_value);
39333909 }
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 }
39433910 case BuiltinFnIdImport:
39443911 {
39453912 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
1122711194 return new_instruction->value.type;
1122811195}
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
1124911197static TypeTableEntry *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructionImport *import_instruction) {
1125011198 IrInstruction *name_value = import_instruction->name->other;
1125111199 Buf *import_target_str = ir_resolve_str(ira, name_value);
......@@ -13362,8 +13310,6 @@ static TypeTableEntry *ir_analyze_instruction_nocast(IrAnalyze *ira, IrInstructi
1336213310 return ir_analyze_instruction_switch_var(ira, (IrInstructionSwitchVar *)instruction);
1336313311 case IrInstructionIdEnumTag:
1336413312 return ir_analyze_instruction_enum_tag(ira, (IrInstructionEnumTag *)instruction);
13365 case IrInstructionIdGeneratedCode:
13366 return ir_analyze_instruction_generated_code(ira, (IrInstructionGeneratedCode *)instruction);
1336713313 case IrInstructionIdImport:
1336813314 return ir_analyze_instruction_import(ira, (IrInstructionImport *)instruction);
1336913315 case IrInstructionIdArrayLen:
......@@ -13601,7 +13547,6 @@ bool ir_has_side_effects(IrInstruction *instruction) {
1360113547 case IrInstructionIdSwitchVar:
1360213548 case IrInstructionIdSwitchTarget:
1360313549 case IrInstructionIdEnumTag:
13604 case IrInstructionIdGeneratedCode:
1360513550 case IrInstructionIdRef:
1360613551 case IrInstructionIdMinValue:
1360713552 case IrInstructionIdMaxValue:
src/ir_print.cpp-9
......@@ -481,12 +481,6 @@ static void ir_print_enum_tag(IrPrint *irp, IrInstructionEnumTag *instruction) {
481481 ir_print_other_instruction(irp, instruction->value);
482482}
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
490484static void ir_print_import(IrPrint *irp, IrInstructionImport *instruction) {
491485 fprintf(irp->f, "@import(");
492486 ir_print_other_instruction(irp, instruction->name);
......@@ -1011,9 +1005,6 @@ static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) {
10111005 case IrInstructionIdEnumTag:
10121006 ir_print_enum_tag(irp, (IrInstructionEnumTag *)instruction);
10131007 break;
1014 case IrInstructionIdGeneratedCode:
1015 ir_print_generated_code(irp, (IrInstructionGeneratedCode *)instruction);
1016 break;
10171008 case IrInstructionIdImport:
10181009 ir_print_import(irp, (IrInstructionImport *)instruction);
10191010 break;
test/cases/null.zig+4-4
......@@ -1,7 +1,7 @@
11const assert = @import("std").debug.assert;
22
33test "nullableType" {
4 const x : ?bool = @generatedCode(true);
4 const x : ?bool = true;
55
66 if (x) |y| {
77 if (y) {
......@@ -13,13 +13,13 @@ test "nullableType" {
1313 unreachable;
1414 }
1515
16 const next_x : ?i32 = @generatedCode(null);
16 const next_x : ?i32 = null;
1717
1818 const z = next_x ?? 1234;
1919
2020 assert(z == 1234);
2121
22 const final_x : ?i32 = @generatedCode(13);
22 const final_x : ?i32 = 13;
2323
2424 const num = final_x ?? unreachable;
2525
......@@ -38,7 +38,7 @@ test "test maybe object and get a pointer to the inner value" {
3838
3939
4040test "rhsMaybeUnwrapReturn" {
41 const x: ?bool = @generatedCode(true);
41 const x: ?bool = true;
4242 const y = x ?? return;
4343}
4444