| author | |
| committer | |
| log | 76e15418038e708e13189c2ba6d5ac5ab50fc006 |
| tree | d5b390d29b1f4a390016fe1e932ba1b533f82298 |
| parent | 17a36859e75e3cfb9e089c49ff5eed09832edb61 |
8 files changed, 94 insertions(+), 94 deletions(-)
cmake/Findclang.cmake+2-2| ... | @@ -8,14 +8,14 @@ | ... | @@ -8,14 +8,14 @@ |
| 8 | 8 | ||
| 9 | find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h | 9 | find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h |
| 10 | PATHS | 10 | PATHS |
| 11 | /usr/lib/llvm-3.7/include | 11 | /usr/lib/llvm-3.8/include |
| 12 | /mingw64/include) | 12 | /mingw64/include) |
| 13 | 13 | ||
| 14 | macro(FIND_AND_ADD_CLANG_LIB _libname_) | 14 | macro(FIND_AND_ADD_CLANG_LIB _libname_) |
| 15 | string(TOUPPER ${_libname_} _prettylibname_) | 15 | string(TOUPPER ${_libname_} _prettylibname_) |
| 16 | find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} | 16 | find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} |
| 17 | PATHS | 17 | PATHS |
| 18 | /usr/lib/llvm-3.7/lib | 18 | /usr/lib/llvm-3.8/lib |
| 19 | /mingw64/lib) | 19 | /mingw64/lib) |
| 20 | if(CLANG_${_prettylibname_}_LIB) | 20 | if(CLANG_${_prettylibname_}_LIB) |
| 21 | set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB}) | 21 | set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB}) |
cmake/Findllvm.cmake+1-1| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | # LLVM_LIBRARIES | 7 | # LLVM_LIBRARIES |
| 8 | # LLVM_LIBDIRS | 8 | # LLVM_LIBDIRS |
| 9 | 9 | ||
| 10 | find_program(LLVM_CONFIG_EXE NAMES llvm-config llvm-config-3.7) | 10 | find_program(LLVM_CONFIG_EXE NAMES llvm-config llvm-config-3.8) |
| 11 | 11 | ||
| 12 | execute_process( | 12 | execute_process( |
| 13 | COMMAND ${LLVM_CONFIG_EXE} --libs | 13 | COMMAND ${LLVM_CONFIG_EXE} --libs |
src/analyze.cpp+2-4| ... | @@ -658,9 +658,7 @@ TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { | ... | @@ -658,9 +658,7 @@ TypeTableEntry *get_fn_type(CodeGen *g, FnTypeId *fn_type_id) { |
| 658 | fn_type->data.fn.raw_type_ref = LLVMFunctionType(gen_return_type->type_ref, | 658 | fn_type->data.fn.raw_type_ref = LLVMFunctionType(gen_return_type->type_ref, |
| 659 | gen_param_types, gen_param_index, fn_type_id->is_var_args); | 659 | gen_param_types, gen_param_index, fn_type_id->is_var_args); |
| 660 | fn_type->type_ref = LLVMPointerType(fn_type->data.fn.raw_type_ref, 0); | 660 | fn_type->type_ref = LLVMPointerType(fn_type->data.fn.raw_type_ref, 0); |
| 661 | LLVMZigDIFile *di_file = nullptr; | 661 | fn_type->di_type = LLVMZigCreateSubroutineType(g->dbuilder, param_di_types, gen_param_index + 1, 0); |
| 662 | fn_type->di_type = LLVMZigCreateSubroutineType(g->dbuilder, di_file, | ||
| 663 | param_di_types, gen_param_index + 1, 0); | ||
| 664 | 662 | ||
| 665 | g->fn_type_table.put(&fn_type->data.fn.fn_type_id, fn_type); | 663 | g->fn_type_table.put(&fn_type->data.fn.fn_type_id, fn_type); |
| 666 | 664 | ||
| ... | @@ -997,7 +995,7 @@ static void resolve_function_proto(CodeGen *g, AstNode *node, FnTableEntry *fn_t | ... | @@ -997,7 +995,7 @@ static void resolve_function_proto(CodeGen *g, AstNode *node, FnTableEntry *fn_t |
| 997 | import->block_context->di_scope, buf_ptr(&fn_table_entry->symbol_name), "", | 995 | import->block_context->di_scope, buf_ptr(&fn_table_entry->symbol_name), "", |
| 998 | import->di_file, line_number, | 996 | import->di_file, line_number, |
| 999 | fn_type->di_type, fn_table_entry->internal_linkage, | 997 | fn_type->di_type, fn_table_entry->internal_linkage, |
| 1000 | is_definition, scope_line, flags, is_optimized, fn_table_entry->fn_value); | 998 | is_definition, scope_line, flags, is_optimized, nullptr); |
| 1001 | 999 | ||
| 1002 | BlockContext *context = new_block_context(fn_table_entry->fn_def_node, import->block_context); | 1000 | BlockContext *context = new_block_context(fn_table_entry->fn_def_node, import->block_context); |
| 1003 | fn_table_entry->fn_def_node->data.fn_def.block_context = context; | 1001 | fn_table_entry->fn_def_node->data.fn_def.block_context = context; |
src/codegen.cpp+8-12| ... | @@ -3216,21 +3216,18 @@ static void do_code_gen(CodeGen *g) { | ... | @@ -3216,21 +3216,18 @@ static void do_code_gen(CodeGen *g) { |
| 3216 | continue; | 3216 | continue; |
| 3217 | } | 3217 | } |
| 3218 | 3218 | ||
| 3219 | unsigned tag; | ||
| 3220 | unsigned arg_no; | ||
| 3221 | TypeTableEntry *gen_type; | 3219 | TypeTableEntry *gen_type; |
| 3222 | if (var->block_context->node->type == NodeTypeFnDef) { | 3220 | if (var->block_context->node->type == NodeTypeFnDef) { |
| 3223 | tag = LLVMZigTag_DW_arg_variable(); | ||
| 3224 | arg_no = var->gen_arg_index + 1; | ||
| 3225 | |||
| 3226 | var->is_ptr = false; | 3221 | var->is_ptr = false; |
| 3227 | assert(var->gen_arg_index >= 0); | 3222 | assert(var->gen_arg_index >= 0); |
| 3228 | var->value_ref = LLVMGetParam(fn, var->gen_arg_index); | 3223 | var->value_ref = LLVMGetParam(fn, var->gen_arg_index); |
| 3229 | 3224 | ||
| 3230 | gen_type = fn_table_entry->type_entry->data.fn.gen_param_info[var->src_arg_index].type; | 3225 | gen_type = fn_table_entry->type_entry->data.fn.gen_param_info[var->src_arg_index].type; |
| 3226 | |||
| 3227 | var->di_loc_var = LLVMZigCreateParameterVariable(g->dbuilder, var->block_context->di_scope, | ||
| 3228 | buf_ptr(&var->name), import->di_file, var->decl_node->line + 1, | ||
| 3229 | gen_type->di_type, !g->strip_debug_symbols, 0, var->gen_arg_index + 1); | ||
| 3231 | } else { | 3230 | } else { |
| 3232 | tag = LLVMZigTag_DW_auto_variable(); | ||
| 3233 | arg_no = 0; | ||
| 3234 | 3231 | ||
| 3235 | add_debug_source_node(g, var->decl_node); | 3232 | add_debug_source_node(g, var->decl_node); |
| 3236 | var->value_ref = LLVMBuildAlloca(g->builder, var->type->type_ref, buf_ptr(&var->name)); | 3233 | var->value_ref = LLVMBuildAlloca(g->builder, var->type->type_ref, buf_ptr(&var->name)); |
| ... | @@ -3238,12 +3235,11 @@ static void do_code_gen(CodeGen *g) { | ... | @@ -3238,12 +3235,11 @@ static void do_code_gen(CodeGen *g) { |
| 3238 | LLVMSetAlignment(var->value_ref, align_bytes); | 3235 | LLVMSetAlignment(var->value_ref, align_bytes); |
| 3239 | 3236 | ||
| 3240 | gen_type = var->type; | 3237 | gen_type = var->type; |
| 3241 | } | ||
| 3242 | 3238 | ||
| 3243 | var->di_loc_var = LLVMZigCreateLocalVariable(g->dbuilder, tag, | 3239 | var->di_loc_var = LLVMZigCreateAutoVariable(g->dbuilder, var->block_context->di_scope, |
| 3244 | var->block_context->di_scope, buf_ptr(&var->name), | 3240 | buf_ptr(&var->name), import->di_file, var->decl_node->line + 1, |
| 3245 | import->di_file, var->decl_node->line + 1, | 3241 | gen_type->di_type, !g->strip_debug_symbols, 0); |
| 3246 | gen_type->di_type, !g->strip_debug_symbols, 0, arg_no); | 3242 | } |
| 3247 | } | 3243 | } |
| 3248 | 3244 | ||
| 3249 | // create debug variable declarations for parameters | 3245 | // create debug variable declarations for parameters |
src/parseh.cpp+14-2| ... | @@ -370,6 +370,17 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const | ... | @@ -370,6 +370,17 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const |
| 370 | case BuiltinType::OCLImage1dBuffer: | 370 | case BuiltinType::OCLImage1dBuffer: |
| 371 | case BuiltinType::OCLImage2d: | 371 | case BuiltinType::OCLImage2d: |
| 372 | case BuiltinType::OCLImage2dArray: | 372 | case BuiltinType::OCLImage2dArray: |
| 373 | case BuiltinType::OCLImage2dArrayDepth: | ||
| 374 | case BuiltinType::OCLImage2dDepth: | ||
| 375 | case BuiltinType::OCLImage2dMSAA: | ||
| 376 | case BuiltinType::OCLImage2dArrayMSAA: | ||
| 377 | case BuiltinType::OCLImage2dMSAADepth: | ||
| 378 | case BuiltinType::OCLImage2dArrayMSAADepth: | ||
| 379 | case BuiltinType::OCLClkEvent: | ||
| 380 | case BuiltinType::OCLQueue: | ||
| 381 | case BuiltinType::OCLNDRange: | ||
| 382 | case BuiltinType::OCLReserveID: | ||
| 383 | case BuiltinType::OMPArraySection: | ||
| 373 | case BuiltinType::OCLImage3d: | 384 | case BuiltinType::OCLImage3d: |
| 374 | case BuiltinType::OCLSampler: | 385 | case BuiltinType::OCLSampler: |
| 375 | case BuiltinType::OCLEvent: | 386 | case BuiltinType::OCLEvent: |
| ... | @@ -626,6 +637,7 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const | ... | @@ -626,6 +637,7 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const |
| 626 | case Type::Complex: | 637 | case Type::Complex: |
| 627 | case Type::ObjCObjectPointer: | 638 | case Type::ObjCObjectPointer: |
| 628 | case Type::Atomic: | 639 | case Type::Atomic: |
| 640 | case Type::Pipe: | ||
| 629 | emit_warning(c, decl, "missed a '%s' type", ty->getTypeClassName()); | 641 | emit_warning(c, decl, "missed a '%s' type", ty->getTypeClassName()); |
| 630 | return c->codegen->builtin_types.entry_invalid; | 642 | return c->codegen->builtin_types.entry_invalid; |
| 631 | } | 643 | } |
| ... | @@ -1598,9 +1610,9 @@ int parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const ch | ... | @@ -1598,9 +1610,9 @@ int parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const ch |
| 1598 | std::unique_ptr<ASTUnit> ast_unit(ASTUnit::LoadFromCommandLine( | 1610 | std::unique_ptr<ASTUnit> ast_unit(ASTUnit::LoadFromCommandLine( |
| 1599 | &clang_argv.at(0), &clang_argv.last(), | 1611 | &clang_argv.at(0), &clang_argv.last(), |
| 1600 | pch_container_ops, diags, resources_path, | 1612 | pch_container_ops, diags, resources_path, |
| 1601 | only_local_decls, capture_diagnostics, None, true, false, TU_Complete, | 1613 | only_local_decls, capture_diagnostics, None, true, 0, TU_Complete, |
| 1602 | false, false, allow_pch_with_compiler_errors, skip_function_bodies, | 1614 | false, false, allow_pch_with_compiler_errors, skip_function_bodies, |
| 1603 | user_files_are_volatile, false, &err_unit)); | 1615 | user_files_are_volatile, false, None, &err_unit)); |
| 1604 | 1616 | ||
| 1605 | 1617 | ||
| 1606 | // Early failures in LoadFromCommandLine may return with ErrUnit unset. | 1618 | // Early failures in LoadFromCommandLine may return with ErrUnit unset. |
src/target.cpp+14-1| ... | @@ -12,12 +12,14 @@ | ... | @@ -12,12 +12,14 @@ |
| 12 | #include <stdio.h> | 12 | #include <stdio.h> |
| 13 | 13 | ||
| 14 | static const ArchType arch_list[] = { | 14 | static const ArchType arch_list[] = { |
| 15 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_2a}, | ||
| 15 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a}, | 16 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a}, |
| 16 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8}, | 17 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8}, |
| 17 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7}, | 18 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7}, |
| 18 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7em}, | 19 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7em}, |
| 19 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7m}, | 20 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7m}, |
| 20 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7s}, | 21 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7s}, |
| 22 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v7k}, | ||
| 21 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6}, | 23 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6}, |
| 22 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6m}, | 24 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6m}, |
| 23 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6k}, | 25 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v6k}, |
| ... | @@ -29,6 +31,7 @@ static const ArchType arch_list[] = { | ... | @@ -29,6 +31,7 @@ static const ArchType arch_list[] = { |
| 29 | {ZigLLVM_armeb, ZigLLVM_NoSubArch}, | 31 | {ZigLLVM_armeb, ZigLLVM_NoSubArch}, |
| 30 | {ZigLLVM_aarch64, ZigLLVM_NoSubArch}, | 32 | {ZigLLVM_aarch64, ZigLLVM_NoSubArch}, |
| 31 | {ZigLLVM_aarch64_be, ZigLLVM_NoSubArch}, | 33 | {ZigLLVM_aarch64_be, ZigLLVM_NoSubArch}, |
| 34 | {ZigLLVM_avr, ZigLLVM_NoSubArch}, | ||
| 32 | {ZigLLVM_bpfel, ZigLLVM_NoSubArch}, | 35 | {ZigLLVM_bpfel, ZigLLVM_NoSubArch}, |
| 33 | {ZigLLVM_bpfeb, ZigLLVM_NoSubArch}, | 36 | {ZigLLVM_bpfeb, ZigLLVM_NoSubArch}, |
| 34 | {ZigLLVM_hexagon, ZigLLVM_NoSubArch}, | 37 | {ZigLLVM_hexagon, ZigLLVM_NoSubArch}, |
| ... | @@ -84,6 +87,7 @@ static const ZigLLVM_VendorType vendor_list[] = { | ... | @@ -84,6 +87,7 @@ static const ZigLLVM_VendorType vendor_list[] = { |
| 84 | ZigLLVM_MipsTechnologies, | 87 | ZigLLVM_MipsTechnologies, |
| 85 | ZigLLVM_NVIDIA, | 88 | ZigLLVM_NVIDIA, |
| 86 | ZigLLVM_CSR, | 89 | ZigLLVM_CSR, |
| 90 | ZigLLVM_Myriad, | ||
| 87 | }; | 91 | }; |
| 88 | 92 | ||
| 89 | static const ZigLLVM_OSType os_list[] = { | 93 | static const ZigLLVM_OSType os_list[] = { |
| ... | @@ -112,6 +116,9 @@ static const ZigLLVM_OSType os_list[] = { | ... | @@ -112,6 +116,9 @@ static const ZigLLVM_OSType os_list[] = { |
| 112 | ZigLLVM_NVCL, | 116 | ZigLLVM_NVCL, |
| 113 | ZigLLVM_AMDHSA, | 117 | ZigLLVM_AMDHSA, |
| 114 | ZigLLVM_PS4, | 118 | ZigLLVM_PS4, |
| 119 | ZigLLVM_ELFIAMCU, | ||
| 120 | ZigLLVM_TvOS, | ||
| 121 | ZigLLVM_WatchOS, | ||
| 115 | }; | 122 | }; |
| 116 | 123 | ||
| 117 | static const ZigLLVM_EnvironmentType environ_list[] = { | 124 | static const ZigLLVM_EnvironmentType environ_list[] = { |
| ... | @@ -126,6 +133,8 @@ static const ZigLLVM_EnvironmentType environ_list[] = { | ... | @@ -126,6 +133,8 @@ static const ZigLLVM_EnvironmentType environ_list[] = { |
| 126 | ZigLLVM_MSVC, | 133 | ZigLLVM_MSVC, |
| 127 | ZigLLVM_Itanium, | 134 | ZigLLVM_Itanium, |
| 128 | ZigLLVM_Cygnus, | 135 | ZigLLVM_Cygnus, |
| 136 | ZigLLVM_AMDOpenCL, | ||
| 137 | ZigLLVM_CoreCLR, | ||
| 129 | }; | 138 | }; |
| 130 | 139 | ||
| 131 | int target_arch_count(void) { | 140 | int target_arch_count(void) { |
| ... | @@ -293,12 +302,13 @@ void resolve_target_object_format(ZigTarget *target) { | ... | @@ -293,12 +302,13 @@ void resolve_target_object_format(ZigTarget *target) { |
| 293 | target->oformat = ZigLLVM_ELF; | 302 | target->oformat = ZigLLVM_ELF; |
| 294 | } | 303 | } |
| 295 | 304 | ||
| 296 | 305 | // See lib/Support/Triple.cpp in LLVM for the source of this data. | |
| 297 | static int get_arch_pointer_bit_width(ZigLLVM_ArchType arch) { | 306 | static int get_arch_pointer_bit_width(ZigLLVM_ArchType arch) { |
| 298 | switch (arch) { | 307 | switch (arch) { |
| 299 | case ZigLLVM_UnknownArch: | 308 | case ZigLLVM_UnknownArch: |
| 300 | return 0; | 309 | return 0; |
| 301 | 310 | ||
| 311 | case ZigLLVM_avr: | ||
| 302 | case ZigLLVM_msp430: | 312 | case ZigLLVM_msp430: |
| 303 | return 16; | 313 | return 16; |
| 304 | 314 | ||
| ... | @@ -408,6 +418,9 @@ int get_c_type_size_in_bits(const ZigTarget *target, CIntType id) { | ... | @@ -408,6 +418,9 @@ int get_c_type_size_in_bits(const ZigTarget *target, CIntType id) { |
| 408 | case ZigLLVM_NVCL: | 418 | case ZigLLVM_NVCL: |
| 409 | case ZigLLVM_AMDHSA: | 419 | case ZigLLVM_AMDHSA: |
| 410 | case ZigLLVM_PS4: | 420 | case ZigLLVM_PS4: |
| 421 | case ZigLLVM_ELFIAMCU: | ||
| 422 | case ZigLLVM_TvOS: | ||
| 423 | case ZigLLVM_WatchOS: | ||
| 411 | zig_panic("TODO c type size in bits for this target"); | 424 | zig_panic("TODO c type size in bits for this target"); |
| 412 | } | 425 | } |
| 413 | zig_unreachable(); | 426 | zig_unreachable(); |
src/zig_llvm.cpp+31-61| ... | @@ -307,7 +307,7 @@ void LLVMZigReplaceDebugArrays(LLVMZigDIBuilder *dibuilder, LLVMZigDIType *type, | ... | @@ -307,7 +307,7 @@ void LLVMZigReplaceDebugArrays(LLVMZigDIBuilder *dibuilder, LLVMZigDIType *type, |
| 307 | } | 307 | } |
| 308 | 308 | ||
| 309 | LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, | 309 | LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, |
| 310 | LLVMZigDIFile *file, LLVMZigDIType **types_array, int types_array_len, unsigned flags) | 310 | LLVMZigDIType **types_array, int types_array_len, unsigned flags) |
| 311 | { | 311 | { |
| 312 | SmallVector<Metadata *, 8> types; | 312 | SmallVector<Metadata *, 8> types; |
| 313 | for (int i = 0; i < types_array_len; i += 1) { | 313 | for (int i = 0; i < types_array_len; i += 1) { |
| ... | @@ -316,7 +316,6 @@ LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, | ... | @@ -316,7 +316,6 @@ LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, |
| 316 | } | 316 | } |
| 317 | DIBuilder *dibuilder = reinterpret_cast<DIBuilder*>(dibuilder_wrapped); | 317 | DIBuilder *dibuilder = reinterpret_cast<DIBuilder*>(dibuilder_wrapped); |
| 318 | DISubroutineType *subroutine_type = dibuilder->createSubroutineType( | 318 | DISubroutineType *subroutine_type = dibuilder->createSubroutineType( |
| 319 | reinterpret_cast<DIFile*>(file), | ||
| 320 | dibuilder->getOrCreateTypeArray(types), | 319 | dibuilder->getOrCreateTypeArray(types), |
| 321 | flags); | 320 | flags); |
| 322 | DIType *ditype = subroutine_type; | 321 | DIType *ditype = subroutine_type; |
| ... | @@ -351,12 +350,8 @@ unsigned LLVMZigLang_DW_LANG_C99(void) { | ... | @@ -351,12 +350,8 @@ unsigned LLVMZigLang_DW_LANG_C99(void) { |
| 351 | return dwarf::DW_LANG_C99; | 350 | return dwarf::DW_LANG_C99; |
| 352 | } | 351 | } |
| 353 | 352 | ||
| 354 | unsigned LLVMZigTag_DW_auto_variable(void) { | 353 | unsigned LLVMZigTag_DW_variable(void) { |
| 355 | return dwarf::DW_TAG_auto_variable; | 354 | return dwarf::DW_TAG_variable; |
| 356 | } | ||
| 357 | |||
| 358 | unsigned LLVMZigTag_DW_arg_variable(void) { | ||
| 359 | return dwarf::DW_TAG_arg_variable; | ||
| 360 | } | 355 | } |
| 361 | 356 | ||
| 362 | unsigned LLVMZigTag_DW_structure_type(void) { | 357 | unsigned LLVMZigTag_DW_structure_type(void) { |
| ... | @@ -385,21 +380,34 @@ LLVMZigDILexicalBlock *LLVMZigCreateLexicalBlock(LLVMZigDIBuilder *dbuilder, LLV | ... | @@ -385,21 +380,34 @@ LLVMZigDILexicalBlock *LLVMZigCreateLexicalBlock(LLVMZigDIBuilder *dbuilder, LLV |
| 385 | return reinterpret_cast<LLVMZigDILexicalBlock*>(result); | 380 | return reinterpret_cast<LLVMZigDILexicalBlock*>(result); |
| 386 | } | 381 | } |
| 387 | 382 | ||
| 383 | LLVMZigDILocalVariable *LLVMZigCreateAutoVariable(LLVMZigDIBuilder *dbuilder, | ||
| 384 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, | ||
| 385 | LLVMZigDIType *type, bool always_preserve, unsigned flags) | ||
| 386 | { | ||
| 387 | DILocalVariable *result = reinterpret_cast<DIBuilder*>(dbuilder)->createAutoVariable( | ||
| 388 | reinterpret_cast<DIScope*>(scope), | ||
| 389 | name, | ||
| 390 | reinterpret_cast<DIFile*>(file), | ||
| 391 | line_no, | ||
| 392 | reinterpret_cast<DIType*>(type), | ||
| 393 | always_preserve, | ||
| 394 | flags); | ||
| 395 | return reinterpret_cast<LLVMZigDILocalVariable*>(result); | ||
| 396 | } | ||
| 388 | 397 | ||
| 389 | LLVMZigDILocalVariable *LLVMZigCreateLocalVariable(LLVMZigDIBuilder *dbuilder, unsigned tag, | 398 | LLVMZigDILocalVariable *LLVMZigCreateParameterVariable(LLVMZigDIBuilder *dbuilder, |
| 390 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, | 399 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, |
| 391 | LLVMZigDIType *type, bool always_preserve, unsigned flags, unsigned arg_no) | 400 | LLVMZigDIType *type, bool always_preserve, unsigned flags, unsigned arg_no) |
| 392 | { | 401 | { |
| 393 | DILocalVariable *result = reinterpret_cast<DIBuilder*>(dbuilder)->createLocalVariable( | 402 | DILocalVariable *result = reinterpret_cast<DIBuilder*>(dbuilder)->createParameterVariable( |
| 394 | tag, | ||
| 395 | reinterpret_cast<DIScope*>(scope), | 403 | reinterpret_cast<DIScope*>(scope), |
| 396 | name, | 404 | name, |
| 405 | arg_no, | ||
| 397 | reinterpret_cast<DIFile*>(file), | 406 | reinterpret_cast<DIFile*>(file), |
| 398 | line_no, | 407 | line_no, |
| 399 | reinterpret_cast<DIType*>(type), | 408 | reinterpret_cast<DIType*>(type), |
| 400 | always_preserve, | 409 | always_preserve, |
| 401 | flags, | 410 | flags); |
| 402 | arg_no); | ||
| 403 | return reinterpret_cast<LLVMZigDILocalVariable*>(result); | 411 | return reinterpret_cast<LLVMZigDILocalVariable*>(result); |
| 404 | } | 412 | } |
| 405 | 413 | ||
| ... | @@ -447,9 +455,8 @@ LLVMZigDIFile *LLVMZigCreateFile(LLVMZigDIBuilder *dibuilder, const char *filena | ... | @@ -447,9 +455,8 @@ LLVMZigDIFile *LLVMZigCreateFile(LLVMZigDIBuilder *dibuilder, const char *filena |
| 447 | LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigDIScope *scope, | 455 | LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigDIScope *scope, |
| 448 | const char *name, const char *linkage_name, LLVMZigDIFile *file, unsigned lineno, | 456 | const char *name, const char *linkage_name, LLVMZigDIFile *file, unsigned lineno, |
| 449 | LLVMZigDIType *fn_di_type, bool is_local_to_unit, bool is_definition, unsigned scope_line, | 457 | LLVMZigDIType *fn_di_type, bool is_local_to_unit, bool is_definition, unsigned scope_line, |
| 450 | unsigned flags, bool is_optimized, LLVMValueRef function) | 458 | unsigned flags, bool is_optimized, LLVMZigDISubprogram *decl_subprogram) |
| 451 | { | 459 | { |
| 452 | Function *unwrapped_function = reinterpret_cast<Function*>(unwrap(function)); | ||
| 453 | DISubroutineType *di_sub_type = static_cast<DISubroutineType*>(reinterpret_cast<DIType*>(fn_di_type)); | 460 | DISubroutineType *di_sub_type = static_cast<DISubroutineType*>(reinterpret_cast<DIType*>(fn_di_type)); |
| 454 | DISubprogram *result = reinterpret_cast<DIBuilder*>(dibuilder)->createFunction( | 461 | DISubprogram *result = reinterpret_cast<DIBuilder*>(dibuilder)->createFunction( |
| 455 | reinterpret_cast<DIScope*>(scope), | 462 | reinterpret_cast<DIScope*>(scope), |
| ... | @@ -457,7 +464,9 @@ LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigD | ... | @@ -457,7 +464,9 @@ LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigD |
| 457 | reinterpret_cast<DIFile*>(file), | 464 | reinterpret_cast<DIFile*>(file), |
| 458 | lineno, | 465 | lineno, |
| 459 | di_sub_type, | 466 | di_sub_type, |
| 460 | is_local_to_unit, is_definition, scope_line, flags, is_optimized, unwrapped_function); | 467 | is_local_to_unit, is_definition, scope_line, flags, is_optimized, |
| 468 | nullptr, | ||
| 469 | reinterpret_cast<DISubprogram *>(decl_subprogram)); | ||
| 461 | return reinterpret_cast<LLVMZigDISubprogram*>(result); | 470 | return reinterpret_cast<LLVMZigDISubprogram*>(result); |
| 462 | } | 471 | } |
| 463 | 472 | ||
| ... | @@ -509,7 +518,7 @@ void LLVMZigSetFastMath(LLVMBuilderRef builder_wrapped, bool on_state) { | ... | @@ -509,7 +518,7 @@ void LLVMZigSetFastMath(LLVMBuilderRef builder_wrapped, bool on_state) { |
| 509 | if (on_state) { | 518 | if (on_state) { |
| 510 | FastMathFlags fmf; | 519 | FastMathFlags fmf; |
| 511 | fmf.setUnsafeAlgebra(); | 520 | fmf.setUnsafeAlgebra(); |
| 512 | unwrap(builder_wrapped)->SetFastMathFlags(fmf); | 521 | unwrap(builder_wrapped)->setFastMathFlags(fmf); |
| 513 | } else { | 522 | } else { |
| 514 | unwrap(builder_wrapped)->clearFastMathFlags(); | 523 | unwrap(builder_wrapped)->clearFastMathFlags(); |
| 515 | } | 524 | } |
| ... | @@ -563,6 +572,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { | ... | @@ -563,6 +572,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { |
| 563 | switch (sub_arch) { | 572 | switch (sub_arch) { |
| 564 | case ZigLLVM_NoSubArch: | 573 | case ZigLLVM_NoSubArch: |
| 565 | return "(none)"; | 574 | return "(none)"; |
| 575 | case ZigLLVM_ARMSubArch_v8_2a: | ||
| 576 | return "v8_2a"; | ||
| 566 | case ZigLLVM_ARMSubArch_v8_1a: | 577 | case ZigLLVM_ARMSubArch_v8_1a: |
| 567 | return "v8_1a"; | 578 | return "v8_1a"; |
| 568 | case ZigLLVM_ARMSubArch_v8: | 579 | case ZigLLVM_ARMSubArch_v8: |
| ... | @@ -575,6 +586,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { | ... | @@ -575,6 +586,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { |
| 575 | return "v7m"; | 586 | return "v7m"; |
| 576 | case ZigLLVM_ARMSubArch_v7s: | 587 | case ZigLLVM_ARMSubArch_v7s: |
| 577 | return "v7s"; | 588 | return "v7s"; |
| 589 | case ZigLLVM_ARMSubArch_v7k: | ||
| 590 | return "v7k"; | ||
| 578 | case ZigLLVM_ARMSubArch_v6: | 591 | case ZigLLVM_ARMSubArch_v6: |
| 579 | return "v6"; | 592 | return "v6"; |
| 580 | case ZigLLVM_ARMSubArch_v6m: | 593 | case ZigLLVM_ARMSubArch_v6m: |
| ... | @@ -626,51 +639,8 @@ enum FloatAbi { | ... | @@ -626,51 +639,8 @@ enum FloatAbi { |
| 626 | FloatAbiSoftFp, | 639 | FloatAbiSoftFp, |
| 627 | }; | 640 | }; |
| 628 | 641 | ||
| 629 | static int get_arm_sub_arch_version(const Triple &triple) { | ||
| 630 | return ARMTargetParser::parseArchVersion(triple.getArchName()); | ||
| 631 | } | ||
| 632 | |||
| 633 | static FloatAbi get_float_abi(const Triple &triple) { | 642 | static FloatAbi get_float_abi(const Triple &triple) { |
| 634 | switch (triple.getOS()) { | 643 | zig_panic("TODO implement get_float_abi for ARM"); |
| 635 | case Triple::Darwin: | ||
| 636 | case Triple::MacOSX: | ||
| 637 | case Triple::IOS: | ||
| 638 | if (get_arm_sub_arch_version(triple) == 6 || | ||
| 639 | get_arm_sub_arch_version(triple) == 7) | ||
| 640 | { | ||
| 641 | return FloatAbiSoftFp; | ||
| 642 | } else { | ||
| 643 | return FloatAbiSoft; | ||
| 644 | } | ||
| 645 | case Triple::Win32: | ||
| 646 | return FloatAbiHard; | ||
| 647 | case Triple::FreeBSD: | ||
| 648 | switch (triple.getEnvironment()) { | ||
| 649 | case Triple::GNUEABIHF: | ||
| 650 | return FloatAbiHard; | ||
| 651 | default: | ||
| 652 | return FloatAbiSoft; | ||
| 653 | } | ||
| 654 | default: | ||
| 655 | switch (triple.getEnvironment()) { | ||
| 656 | case Triple::GNUEABIHF: | ||
| 657 | return FloatAbiHard; | ||
| 658 | case Triple::GNUEABI: | ||
| 659 | return FloatAbiSoftFp; | ||
| 660 | case Triple::EABIHF: | ||
| 661 | return FloatAbiHard; | ||
| 662 | case Triple::EABI: | ||
| 663 | return FloatAbiSoftFp; | ||
| 664 | case Triple::Android: | ||
| 665 | if (get_arm_sub_arch_version(triple) == 7) { | ||
| 666 | return FloatAbiSoftFp; | ||
| 667 | } else { | ||
| 668 | return FloatAbiSoft; | ||
| 669 | } | ||
| 670 | default: | ||
| 671 | return FloatAbiSoft; | ||
| 672 | } | ||
| 673 | } | ||
| 674 | } | 644 | } |
| 675 | 645 | ||
| 676 | Buf *get_dynamic_linker(LLVMTargetMachineRef target_machine_ref) { | 646 | Buf *get_dynamic_linker(LLVMTargetMachineRef target_machine_ref) { |
src/zig_llvm.hpp+22-11| ... | @@ -87,7 +87,7 @@ void LLVMZigReplaceDebugArrays(LLVMZigDIBuilder *dibuilder, LLVMZigDIType *type, | ... | @@ -87,7 +87,7 @@ void LLVMZigReplaceDebugArrays(LLVMZigDIBuilder *dibuilder, LLVMZigDIType *type, |
| 87 | LLVMZigDIType **types_array, int types_array_len); | 87 | LLVMZigDIType **types_array, int types_array_len); |
| 88 | 88 | ||
| 89 | LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, | 89 | LLVMZigDIType *LLVMZigCreateSubroutineType(LLVMZigDIBuilder *dibuilder_wrapped, |
| 90 | LLVMZigDIFile *file, LLVMZigDIType **types_array, int types_array_len, unsigned flags); | 90 | LLVMZigDIType **types_array, int types_array_len, unsigned flags); |
| 91 | 91 | ||
| 92 | unsigned LLVMZigEncoding_DW_ATE_unsigned(void); | 92 | unsigned LLVMZigEncoding_DW_ATE_unsigned(void); |
| 93 | unsigned LLVMZigEncoding_DW_ATE_signed(void); | 93 | unsigned LLVMZigEncoding_DW_ATE_signed(void); |
| ... | @@ -96,8 +96,7 @@ unsigned LLVMZigEncoding_DW_ATE_boolean(void); | ... | @@ -96,8 +96,7 @@ unsigned LLVMZigEncoding_DW_ATE_boolean(void); |
| 96 | unsigned LLVMZigEncoding_DW_ATE_unsigned_char(void); | 96 | unsigned LLVMZigEncoding_DW_ATE_unsigned_char(void); |
| 97 | unsigned LLVMZigEncoding_DW_ATE_signed_char(void); | 97 | unsigned LLVMZigEncoding_DW_ATE_signed_char(void); |
| 98 | unsigned LLVMZigLang_DW_LANG_C99(void); | 98 | unsigned LLVMZigLang_DW_LANG_C99(void); |
| 99 | unsigned LLVMZigTag_DW_auto_variable(void); | 99 | unsigned LLVMZigTag_DW_variable(void); |
| 100 | unsigned LLVMZigTag_DW_arg_variable(void); | ||
| 101 | unsigned LLVMZigTag_DW_structure_type(void); | 100 | unsigned LLVMZigTag_DW_structure_type(void); |
| 102 | 101 | ||
| 103 | LLVMZigDIBuilder *LLVMZigCreateDIBuilder(LLVMModuleRef module, bool allow_unresolved); | 102 | LLVMZigDIBuilder *LLVMZigCreateDIBuilder(LLVMModuleRef module, bool allow_unresolved); |
| ... | @@ -110,7 +109,11 @@ LLVMZigDIScope *LLVMZigFileToScope(LLVMZigDIFile *difile); | ... | @@ -110,7 +109,11 @@ LLVMZigDIScope *LLVMZigFileToScope(LLVMZigDIFile *difile); |
| 110 | LLVMZigDIScope *LLVMZigSubprogramToScope(LLVMZigDISubprogram *subprogram); | 109 | LLVMZigDIScope *LLVMZigSubprogramToScope(LLVMZigDISubprogram *subprogram); |
| 111 | LLVMZigDIScope *LLVMZigTypeToScope(LLVMZigDIType *type); | 110 | LLVMZigDIScope *LLVMZigTypeToScope(LLVMZigDIType *type); |
| 112 | 111 | ||
| 113 | LLVMZigDILocalVariable *LLVMZigCreateLocalVariable(LLVMZigDIBuilder *dbuilder, unsigned tag, | 112 | LLVMZigDILocalVariable *LLVMZigCreateAutoVariable(LLVMZigDIBuilder *dbuilder, |
| 113 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, | ||
| 114 | LLVMZigDIType *type, bool always_preserve, unsigned flags); | ||
| 115 | |||
| 116 | LLVMZigDILocalVariable *LLVMZigCreateParameterVariable(LLVMZigDIBuilder *dbuilder, | ||
| 114 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, | 117 | LLVMZigDIScope *scope, const char *name, LLVMZigDIFile *file, unsigned line_no, |
| 115 | LLVMZigDIType *type, bool always_preserve, unsigned flags, unsigned arg_no); | 118 | LLVMZigDIType *type, bool always_preserve, unsigned flags, unsigned arg_no); |
| 116 | 119 | ||
| ... | @@ -127,7 +130,7 @@ LLVMZigDIFile *LLVMZigCreateFile(LLVMZigDIBuilder *dibuilder, const char *filena | ... | @@ -127,7 +130,7 @@ LLVMZigDIFile *LLVMZigCreateFile(LLVMZigDIBuilder *dibuilder, const char *filena |
| 127 | LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigDIScope *scope, | 130 | LLVMZigDISubprogram *LLVMZigCreateFunction(LLVMZigDIBuilder *dibuilder, LLVMZigDIScope *scope, |
| 128 | const char *name, const char *linkage_name, LLVMZigDIFile *file, unsigned lineno, | 131 | const char *name, const char *linkage_name, LLVMZigDIFile *file, unsigned lineno, |
| 129 | LLVMZigDIType *fn_di_type, bool is_local_to_unit, bool is_definition, unsigned scope_line, | 132 | LLVMZigDIType *fn_di_type, bool is_local_to_unit, bool is_definition, unsigned scope_line, |
| 130 | unsigned flags, bool is_optimized, LLVMValueRef function); | 133 | unsigned flags, bool is_optimized, LLVMZigDISubprogram *decl_subprogram); |
| 131 | 134 | ||
| 132 | void LLVMZigDIBuilderFinalize(LLVMZigDIBuilder *dibuilder); | 135 | void LLVMZigDIBuilderFinalize(LLVMZigDIBuilder *dibuilder); |
| 133 | 136 | ||
| ... | @@ -152,6 +155,7 @@ enum ZigLLVM_ArchType { | ... | @@ -152,6 +155,7 @@ enum ZigLLVM_ArchType { |
| 152 | ZigLLVM_armeb, // ARM (big endian): armeb | 155 | ZigLLVM_armeb, // ARM (big endian): armeb |
| 153 | ZigLLVM_aarch64, // AArch64 (little endian): aarch64 | 156 | ZigLLVM_aarch64, // AArch64 (little endian): aarch64 |
| 154 | ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be | 157 | ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be |
| 158 | ZigLLVM_avr, // AVR: Atmel AVR microcontroller | ||
| 155 | ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) | 159 | ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) |
| 156 | ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) | 160 | ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) |
| 157 | ZigLLVM_hexagon, // Hexagon: hexagon | 161 | ZigLLVM_hexagon, // Hexagon: hexagon |
| ... | @@ -177,8 +181,8 @@ enum ZigLLVM_ArchType { | ... | @@ -177,8 +181,8 @@ enum ZigLLVM_ArchType { |
| 177 | ZigLLVM_xcore, // XCore: xcore | 181 | ZigLLVM_xcore, // XCore: xcore |
| 178 | ZigLLVM_nvptx, // NVPTX: 32-bit | 182 | ZigLLVM_nvptx, // NVPTX: 32-bit |
| 179 | ZigLLVM_nvptx64, // NVPTX: 64-bit | 183 | ZigLLVM_nvptx64, // NVPTX: 64-bit |
| 180 | ZigLLVM_le32, // le32: generic little-endian 32-bit CPU (PNaCl / Emscripten) | 184 | ZigLLVM_le32, // le32: generic little-endian 32-bit CPU (PNaCl) |
| 181 | ZigLLVM_le64, // le64: generic little-endian 64-bit CPU (PNaCl / Emscripten) | 185 | ZigLLVM_le64, // le64: generic little-endian 64-bit CPU (PNaCl) |
| 182 | ZigLLVM_amdil, // AMDIL | 186 | ZigLLVM_amdil, // AMDIL |
| 183 | ZigLLVM_amdil64, // AMDIL with 64-bit pointers | 187 | ZigLLVM_amdil64, // AMDIL with 64-bit pointers |
| 184 | ZigLLVM_hsail, // AMD HSAIL | 188 | ZigLLVM_hsail, // AMD HSAIL |
| ... | @@ -196,12 +200,14 @@ enum ZigLLVM_ArchType { | ... | @@ -196,12 +200,14 @@ enum ZigLLVM_ArchType { |
| 196 | enum ZigLLVM_SubArchType { | 200 | enum ZigLLVM_SubArchType { |
| 197 | ZigLLVM_NoSubArch, | 201 | ZigLLVM_NoSubArch, |
| 198 | 202 | ||
| 203 | ZigLLVM_ARMSubArch_v8_2a, | ||
| 199 | ZigLLVM_ARMSubArch_v8_1a, | 204 | ZigLLVM_ARMSubArch_v8_1a, |
| 200 | ZigLLVM_ARMSubArch_v8, | 205 | ZigLLVM_ARMSubArch_v8, |
| 201 | ZigLLVM_ARMSubArch_v7, | 206 | ZigLLVM_ARMSubArch_v7, |
| 202 | ZigLLVM_ARMSubArch_v7em, | 207 | ZigLLVM_ARMSubArch_v7em, |
| 203 | ZigLLVM_ARMSubArch_v7m, | 208 | ZigLLVM_ARMSubArch_v7m, |
| 204 | ZigLLVM_ARMSubArch_v7s, | 209 | ZigLLVM_ARMSubArch_v7s, |
| 210 | ZigLLVM_ARMSubArch_v7k, | ||
| 205 | ZigLLVM_ARMSubArch_v6, | 211 | ZigLLVM_ARMSubArch_v6, |
| 206 | ZigLLVM_ARMSubArch_v6m, | 212 | ZigLLVM_ARMSubArch_v6m, |
| 207 | ZigLLVM_ARMSubArch_v6k, | 213 | ZigLLVM_ARMSubArch_v6k, |
| ... | @@ -228,8 +234,9 @@ enum ZigLLVM_VendorType { | ... | @@ -228,8 +234,9 @@ enum ZigLLVM_VendorType { |
| 228 | ZigLLVM_MipsTechnologies, | 234 | ZigLLVM_MipsTechnologies, |
| 229 | ZigLLVM_NVIDIA, | 235 | ZigLLVM_NVIDIA, |
| 230 | ZigLLVM_CSR, | 236 | ZigLLVM_CSR, |
| 237 | ZigLLVM_Myriad, | ||
| 231 | 238 | ||
| 232 | ZigLLVM_LastVendorType = ZigLLVM_CSR | 239 | ZigLLVM_LastVendorType = ZigLLVM_Myriad |
| 233 | }; | 240 | }; |
| 234 | enum ZigLLVM_OSType { | 241 | enum ZigLLVM_OSType { |
| 235 | ZigLLVM_UnknownOS, | 242 | ZigLLVM_UnknownOS, |
| ... | @@ -258,8 +265,11 @@ enum ZigLLVM_OSType { | ... | @@ -258,8 +265,11 @@ enum ZigLLVM_OSType { |
| 258 | ZigLLVM_NVCL, // NVIDIA OpenCL | 265 | ZigLLVM_NVCL, // NVIDIA OpenCL |
| 259 | ZigLLVM_AMDHSA, // AMD HSA Runtime | 266 | ZigLLVM_AMDHSA, // AMD HSA Runtime |
| 260 | ZigLLVM_PS4, | 267 | ZigLLVM_PS4, |
| 268 | ZigLLVM_ELFIAMCU, | ||
| 269 | ZigLLVM_TvOS, // Apple tvOS | ||
| 270 | ZigLLVM_WatchOS, // Apple watchOS | ||
| 261 | 271 | ||
| 262 | ZigLLVM_LastOSType = ZigLLVM_PS4 | 272 | ZigLLVM_LastOSType = ZigLLVM_WatchOS |
| 263 | }; | 273 | }; |
| 264 | enum ZigLLVM_EnvironmentType { | 274 | enum ZigLLVM_EnvironmentType { |
| 265 | ZigLLVM_UnknownEnvironment, | 275 | ZigLLVM_UnknownEnvironment, |
| ... | @@ -276,8 +286,9 @@ enum ZigLLVM_EnvironmentType { | ... | @@ -276,8 +286,9 @@ enum ZigLLVM_EnvironmentType { |
| 276 | ZigLLVM_MSVC, | 286 | ZigLLVM_MSVC, |
| 277 | ZigLLVM_Itanium, | 287 | ZigLLVM_Itanium, |
| 278 | ZigLLVM_Cygnus, | 288 | ZigLLVM_Cygnus, |
| 279 | 289 | ZigLLVM_AMDOpenCL, | |
| 280 | ZigLLVM_LastEnvironmentType = ZigLLVM_Cygnus, | 290 | ZigLLVM_CoreCLR, |
| 291 | ZigLLVM_LastEnvironmentType = ZigLLVM_CoreCLR | ||
| 281 | }; | 292 | }; |
| 282 | enum ZigLLVM_ObjectFormatType { | 293 | enum ZigLLVM_ObjectFormatType { |
| 283 | ZigLLVM_UnknownObjectFormat, | 294 | ZigLLVM_UnknownObjectFormat, |