diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-09-19 12:57:58 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-09-19 12:57:58 -0400 |
| commit | 15301504e2a0f46a482f4d73abe482bd1eb63357 (patch) | |
| tree | f4714b1f248f338a4941ae41ff119796c6ba5873 /src | |
| parent | 5eeef1f5ed5912d03bb8e744c6618734073af2ed (diff) | |
| parent | 0ab7cfa023416f2cea22d7b5db1121c938560757 (diff) | |
| download | zig-15301504e2a0f46a482f4d73abe482bd1eb63357.tar.gz zig-15301504e2a0f46a482f4d73abe482bd1eb63357.zip | |
Merge remote-tracking branch 'origin/llvm7'
Diffstat (limited to 'src')
| -rw-r--r-- | src/codegen.cpp | 107 | ||||
| -rw-r--r-- | src/target.cpp | 17 | ||||
| -rw-r--r-- | src/target.hpp | 3 | ||||
| -rw-r--r-- | src/translate_c.cpp | 58 | ||||
| -rw-r--r-- | src/zig_llvm.cpp | 21 | ||||
| -rw-r--r-- | src/zig_llvm.h | 17 |
6 files changed, 105 insertions, 118 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp index b1915ae45a..91e7c8dde9 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -933,25 +933,6 @@ static void gen_safety_crash(CodeGen *g, PanicMsgId msg_id) { gen_panic(g, get_panic_msg_ptr_val(g, msg_id), nullptr); } -static LLVMValueRef get_memcpy_fn_val(CodeGen *g) { - if (g->memcpy_fn_val) - return g->memcpy_fn_val; - - LLVMTypeRef param_types[] = { - LLVMPointerType(LLVMInt8Type(), 0), - LLVMPointerType(LLVMInt8Type(), 0), - LLVMIntType(g->pointer_size_bytes * 8), - LLVMInt32Type(), - LLVMInt1Type(), - }; - LLVMTypeRef fn_type = LLVMFunctionType(LLVMVoidType(), param_types, 5, false); - Buf *name = buf_sprintf("llvm.memcpy.p0i8.p0i8.i%d", g->pointer_size_bytes * 8); - g->memcpy_fn_val = LLVMAddFunction(g->module, buf_ptr(name), fn_type); - assert(LLVMGetIntrinsicID(g->memcpy_fn_val)); - - return g->memcpy_fn_val; -} - static LLVMValueRef get_stacksave_fn_val(CodeGen *g) { if (g->stacksave_fn_val) return g->stacksave_fn_val; @@ -1537,15 +1518,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) { LLVMValueRef len_field_ptr = LLVMBuildStructGEP(g->builder, err_name_val, slice_len_index, ""); LLVMValueRef err_name_len = gen_load_untyped(g, len_field_ptr, 0, false, ""); - LLVMValueRef params[] = { - offset_buf_ptr, // dest pointer - err_name_ptr, // source pointer - err_name_len, // size bytes - LLVMConstInt(LLVMInt32Type(), u8_align_bytes, false), // align bytes - LLVMConstNull(LLVMInt1Type()), // is volatile - }; - - LLVMBuildCall(g->builder, get_memcpy_fn_val(g), params, 5, ""); + ZigLLVMBuildMemCpy(g->builder, offset_buf_ptr, u8_align_bytes, err_name_ptr, u8_align_bytes, err_name_len, false); LLVMValueRef const_prefix_len = LLVMConstInt(LLVMTypeOf(err_name_len), strlen(unwrap_err_msg_text), false); LLVMValueRef full_buf_len = LLVMBuildNUWAdd(g->builder, const_prefix_len, err_name_len, ""); @@ -1817,18 +1790,8 @@ static LLVMValueRef gen_assign_raw(CodeGen *g, LLVMValueRef ptr, ZigType *ptr_ty assert(size_bytes > 0); assert(align_bytes > 0); - LLVMValueRef volatile_bit = ptr_type->data.pointer.is_volatile ? - LLVMConstAllOnes(LLVMInt1Type()) : LLVMConstNull(LLVMInt1Type()); - - LLVMValueRef params[] = { - dest_ptr, // dest pointer - src_ptr, // source pointer - LLVMConstInt(usize->type_ref, size_bytes, false), - LLVMConstInt(LLVMInt32Type(), align_bytes, false), - volatile_bit, - }; - - LLVMBuildCall(g->builder, get_memcpy_fn_val(g), params, 5, ""); + ZigLLVMBuildMemCpy(g->builder, dest_ptr, align_bytes, src_ptr, align_bytes, LLVMConstInt(usize->type_ref, size_bytes, false), + ptr_type->data.pointer.is_volatile); return nullptr; } @@ -3190,25 +3153,6 @@ static LLVMValueRef ir_render_bool_not(CodeGen *g, IrExecutable *executable, IrI return LLVMBuildICmp(g->builder, LLVMIntEQ, value, zero, ""); } -static LLVMValueRef get_memset_fn_val(CodeGen *g) { - if (g->memset_fn_val) - return g->memset_fn_val; - - LLVMTypeRef param_types[] = { - LLVMPointerType(LLVMInt8Type(), 0), - LLVMInt8Type(), - LLVMIntType(g->pointer_size_bytes * 8), - LLVMInt32Type(), - LLVMInt1Type(), - }; - LLVMTypeRef fn_type = LLVMFunctionType(LLVMVoidType(), param_types, 5, false); - Buf *name = buf_sprintf("llvm.memset.p0i8.i%d", g->pointer_size_bytes * 8); - g->memset_fn_val = LLVMAddFunction(g->module, buf_ptr(name), fn_type); - assert(LLVMGetIntrinsicID(g->memset_fn_val)); - - return g->memset_fn_val; -} - static LLVMValueRef ir_render_decl_var(CodeGen *g, IrExecutable *executable, IrInstructionDeclVar *decl_var_instruction) { @@ -3248,16 +3192,7 @@ static LLVMValueRef ir_render_decl_var(CodeGen *g, IrExecutable *executable, LLVMValueRef fill_char = LLVMConstInt(LLVMInt8Type(), 0xaa, false); LLVMValueRef dest_ptr = LLVMBuildBitCast(g->builder, var->value_ref, ptr_u8, ""); LLVMValueRef byte_count = LLVMConstInt(usize->type_ref, size_bytes, false); - LLVMValueRef align_in_bytes = LLVMConstInt(LLVMInt32Type(), var->align_bytes, false); - LLVMValueRef params[] = { - dest_ptr, - fill_char, - byte_count, - align_in_bytes, - LLVMConstNull(LLVMInt1Type()), // is volatile - }; - - LLVMBuildCall(g->builder, get_memset_fn_val(g), params, 5, ""); + ZigLLVMBuildMemSet(g->builder, dest_ptr, fill_char, byte_count, var->align_bytes, false); } } @@ -4275,21 +4210,7 @@ static LLVMValueRef ir_render_memset(CodeGen *g, IrExecutable *executable, IrIns ZigType *ptr_type = instruction->dest_ptr->value.type; assert(ptr_type->id == ZigTypeIdPointer); - LLVMValueRef is_volatile = ptr_type->data.pointer.is_volatile ? - LLVMConstAllOnes(LLVMInt1Type()) : LLVMConstNull(LLVMInt1Type()); - - uint32_t alignment = get_ptr_align(g, ptr_type); - LLVMValueRef align_val = LLVMConstInt(LLVMInt32Type(), alignment, false); - - LLVMValueRef params[] = { - dest_ptr_casted, - char_val, - len_val, - align_val, - is_volatile, - }; - - LLVMBuildCall(g->builder, get_memset_fn_val(g), params, 5, ""); + ZigLLVMBuildMemSet(g->builder, dest_ptr_casted, char_val, len_val, get_ptr_align(g, ptr_type), ptr_type->data.pointer.is_volatile); return nullptr; } @@ -4309,21 +4230,9 @@ static LLVMValueRef ir_render_memcpy(CodeGen *g, IrExecutable *executable, IrIns assert(dest_ptr_type->id == ZigTypeIdPointer); assert(src_ptr_type->id == ZigTypeIdPointer); - LLVMValueRef is_volatile = (dest_ptr_type->data.pointer.is_volatile || src_ptr_type->data.pointer.is_volatile) ? - LLVMConstAllOnes(LLVMInt1Type()) : LLVMConstNull(LLVMInt1Type()); - - uint32_t min_align_bytes = min(get_ptr_align(g, src_ptr_type), get_ptr_align(g, dest_ptr_type)); - LLVMValueRef align_val = LLVMConstInt(LLVMInt32Type(), min_align_bytes, false); - - LLVMValueRef params[] = { - dest_ptr_casted, - src_ptr_casted, - len_val, - align_val, - is_volatile, - }; - - LLVMBuildCall(g->builder, get_memcpy_fn_val(g), params, 5, ""); + bool is_volatile = (dest_ptr_type->data.pointer.is_volatile || src_ptr_type->data.pointer.is_volatile); + ZigLLVMBuildMemCpy(g->builder, dest_ptr_casted, get_ptr_align(g, dest_ptr_type), + src_ptr_casted, get_ptr_align(g, src_ptr_type), len_val, is_volatile); return nullptr; } diff --git a/src/target.cpp b/src/target.cpp index f657af8af3..5cc5f789fb 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -148,7 +148,6 @@ static const Os os_list[] = { OsRTEMS, OsNaCl, // Native Client OsCNK, // BG/P Compute-Node Kernel - OsBitrig, OsAIX, OsCUDA, // NVIDIA CUDA OsNVCL, // NVIDIA OpenCL @@ -159,9 +158,11 @@ static const Os os_list[] = { OsWatchOS, // Apple watchOS OsMesa3D, OsContiki, + OsAMDPAL, OsZen, }; +// Coordinate with zig_llvm.h static const ZigLLVM_EnvironmentType environ_list[] = { ZigLLVM_UnknownEnvironment, @@ -181,9 +182,7 @@ static const ZigLLVM_EnvironmentType environ_list[] = { ZigLLVM_MSVC, ZigLLVM_Itanium, ZigLLVM_Cygnus, - ZigLLVM_AMDOpenCL, ZigLLVM_CoreCLR, - ZigLLVM_OpenCL, ZigLLVM_Simulator, }; @@ -280,8 +279,6 @@ static ZigLLVM_OSType get_llvm_os_type(Os os_type) { return ZigLLVM_NaCl; case OsCNK: return ZigLLVM_CNK; - case OsBitrig: - return ZigLLVM_Bitrig; case OsAIX: return ZigLLVM_AIX; case OsCUDA: @@ -302,6 +299,8 @@ static ZigLLVM_OSType get_llvm_os_type(Os os_type) { return ZigLLVM_Mesa3D; case OsContiki: return ZigLLVM_Contiki; + case OsAMDPAL: + return ZigLLVM_AMDPAL; } zig_unreachable(); } @@ -349,8 +348,6 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) { return OsNaCl; case ZigLLVM_CNK: return OsCNK; - case ZigLLVM_Bitrig: - return OsBitrig; case ZigLLVM_AIX: return OsAIX; case ZigLLVM_CUDA: @@ -371,6 +368,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) { return OsMesa3D; case ZigLLVM_Contiki: return OsContiki; + case ZigLLVM_AMDPAL: + return OsAMDPAL; } zig_unreachable(); } @@ -400,7 +399,6 @@ const char *get_target_os_name(Os os_type) { case OsRTEMS: case OsNaCl: // Native Client case OsCNK: // BG/P Compute-Node Kernel - case OsBitrig: case OsAIX: case OsCUDA: // NVIDIA CUDA case OsNVCL: // NVIDIA OpenCL @@ -411,6 +409,7 @@ const char *get_target_os_name(Os os_type) { case OsWatchOS: // Apple watchOS case OsMesa3D: case OsContiki: + case OsAMDPAL: return ZigLLVMGetOSTypeName(get_llvm_os_type(os_type)); } zig_unreachable(); @@ -772,7 +771,6 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) { case OsRTEMS: case OsNaCl: case OsCNK: - case OsBitrig: case OsAIX: case OsCUDA: case OsNVCL: @@ -784,6 +782,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) { case OsMesa3D: case OsFuchsia: case OsContiki: + case OsAMDPAL: zig_panic("TODO c type size in bits for this target"); } zig_unreachable(); diff --git a/src/target.hpp b/src/target.hpp index c8658bf352..0e0b1f2dc5 100644 --- a/src/target.hpp +++ b/src/target.hpp @@ -17,6 +17,7 @@ struct ArchType { ZigLLVM_SubArchType sub_arch; }; +// Synchronize with target.cpp::os_list enum Os { OsFreestanding, OsAnanas, @@ -38,7 +39,6 @@ enum Os { OsRTEMS, OsNaCl, // Native Client OsCNK, // BG/P Compute-Node Kernel - OsBitrig, OsAIX, OsCUDA, // NVIDIA CUDA OsNVCL, // NVIDIA OpenCL @@ -49,6 +49,7 @@ enum Os { OsWatchOS, // Apple watchOS OsMesa3D, OsContiki, + OsAMDPAL, OsZen, }; diff --git a/src/translate_c.cpp b/src/translate_c.cpp index 12c474cd53..df48c9e4a2 100644 --- a/src/translate_c.cpp +++ b/src/translate_c.cpp @@ -773,6 +773,7 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou case BuiltinType::Char_U: case BuiltinType::UChar: case BuiltinType::Char_S: + case BuiltinType::Char8: return trans_create_node_symbol_str(c, "u8"); case BuiltinType::SChar: return trans_create_node_symbol_str(c, "i8"); @@ -823,6 +824,12 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou case BuiltinType::UnknownAny: case BuiltinType::BuiltinFn: case BuiltinType::ARCUnbridgedCast: + case BuiltinType::ShortAccum: + case BuiltinType::Accum: + case BuiltinType::LongAccum: + case BuiltinType::UShortAccum: + case BuiltinType::UAccum: + case BuiltinType::ULongAccum: case BuiltinType::OCLImage1dRO: case BuiltinType::OCLImage1dArrayRO: @@ -865,6 +872,24 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou case BuiltinType::OCLClkEvent: case BuiltinType::OCLQueue: case BuiltinType::OCLReserveID: + case BuiltinType::ShortFract: + case BuiltinType::Fract: + case BuiltinType::LongFract: + case BuiltinType::UShortFract: + case BuiltinType::UFract: + case BuiltinType::ULongFract: + case BuiltinType::SatShortAccum: + case BuiltinType::SatAccum: + case BuiltinType::SatLongAccum: + case BuiltinType::SatUShortAccum: + case BuiltinType::SatUAccum: + case BuiltinType::SatULongAccum: + case BuiltinType::SatShortFract: + case BuiltinType::SatFract: + case BuiltinType::SatLongFract: + case BuiltinType::SatUShortFract: + case BuiltinType::SatUFract: + case BuiltinType::SatULongFract: emit_warning(c, source_loc, "unsupported builtin type"); return nullptr; } @@ -1109,6 +1134,7 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou case Type::ObjCTypeParam: case Type::DeducedTemplateSpecialization: case Type::DependentAddressSpace: + case Type::DependentVector: emit_warning(c, source_loc, "unsupported type: '%s'", ty->getTypeClassName()); return nullptr; } @@ -2376,6 +2402,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope * case BuiltinType::Float128: case BuiltinType::LongDouble: case BuiltinType::WChar_U: + case BuiltinType::Char8: case BuiltinType::Char16: case BuiltinType::Char32: case BuiltinType::WChar_S: @@ -2438,6 +2465,30 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope * case BuiltinType::OCLClkEvent: case BuiltinType::OCLQueue: case BuiltinType::OCLReserveID: + case BuiltinType::ShortAccum: + case BuiltinType::Accum: + case BuiltinType::LongAccum: + case BuiltinType::UShortAccum: + case BuiltinType::UAccum: + case BuiltinType::ULongAccum: + case BuiltinType::ShortFract: + case BuiltinType::Fract: + case BuiltinType::LongFract: + case BuiltinType::UShortFract: + case BuiltinType::UFract: + case BuiltinType::ULongFract: + case BuiltinType::SatShortAccum: + case BuiltinType::SatAccum: + case BuiltinType::SatLongAccum: + case BuiltinType::SatUShortAccum: + case BuiltinType::SatUAccum: + case BuiltinType::SatULongAccum: + case BuiltinType::SatShortFract: + case BuiltinType::SatFract: + case BuiltinType::SatLongFract: + case BuiltinType::SatUShortFract: + case BuiltinType::SatUFract: + case BuiltinType::SatULongFract: return res; } break; @@ -2523,6 +2574,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope * case Type::ObjCTypeParam: case Type::DeducedTemplateSpecialization: case Type::DependentAddressSpace: + case Type::DependentVector: return res; } zig_unreachable(); @@ -3587,6 +3639,9 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const Stmt *stmt, case Stmt::SEHTryStmtClass: emit_warning(c, stmt->getLocStart(), "TODO handle C SEHTryStmtClass"); return ErrorUnexpected; + case Stmt::FixedPointLiteralClass: + emit_warning(c, stmt->getLocStart(), "TODO handle C FixedPointLiteralClass"); + return ErrorUnexpected; } zig_unreachable(); } @@ -4712,7 +4767,6 @@ int parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const ch std::shared_ptr<PCHContainerOperations> pch_container_ops = std::make_shared<PCHContainerOperations>(); - bool skip_function_bodies = false; bool only_local_decls = true; bool capture_diagnostics = true; bool user_files_are_volatile = true; @@ -4725,7 +4779,7 @@ int parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const ch &clang_argv.at(0), &clang_argv.last(), pch_container_ops, diags, resources_path, only_local_decls, capture_diagnostics, None, true, 0, TU_Complete, - false, false, allow_pch_with_compiler_errors, skip_function_bodies, + false, false, allow_pch_with_compiler_errors, SkipFunctionBodiesScope::None, single_file_parse, user_files_are_volatile, for_serialization, None, &err_unit, nullptr)); diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 61287f620c..ad8edb4cda 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -38,6 +38,7 @@ #include <llvm/Transforms/IPO/PassManagerBuilder.h> #include <llvm/Transforms/IPO/AlwaysInliner.h> #include <llvm/Transforms/Scalar.h> +#include <llvm/Transforms/Utils.h> #include <lld/Common/Driver.h> @@ -165,7 +166,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM abort(); } - if (target_machine->addPassesToEmitFile(MPM, dest, ft)) { + if (target_machine->addPassesToEmitFile(MPM, dest, nullptr, ft)) { *error_message = strdup("TargetMachine can't emit a file of this type"); return true; } @@ -214,6 +215,20 @@ LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *A return wrap(unwrap(B)->Insert(call_inst)); } +LLVMValueRef ZigLLVMBuildMemCpy(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, + LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size, bool isVolatile) +{ + CallInst *call_inst = unwrap(B)->CreateMemCpy(unwrap(Dst), DstAlign, unwrap(Src), SrcAlign, unwrap(Size), isVolatile); + return wrap(call_inst); +} + +LLVMValueRef ZigLLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Size, + unsigned Align, bool isVolatile) +{ + CallInst *call_inst = unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Size), Align, isVolatile); + return wrap(call_inst); +} + void ZigLLVMFnSetSubprogram(LLVMValueRef fn, ZigLLVMDISubprogram *subprogram) { assert( isa<Function>(unwrap(fn)) ); Function *unwrapped_function = reinterpret_cast<Function*>(unwrap(fn)); @@ -704,6 +719,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { switch (sub_arch) { case ZigLLVM_NoSubArch: return "(none)"; + case ZigLLVM_ARMSubArch_v8_4a: + return "v8_4a"; case ZigLLVM_ARMSubArch_v8_3a: return "v8_3a"; case ZigLLVM_ARMSubArch_v8_2a: @@ -847,7 +864,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_ return lld::elf::link(array_ref_args, false, diag); case ZigLLVM_MachO: - return lld::mach_o::link(array_ref_args, diag); + return lld::mach_o::link(array_ref_args, false, diag); case ZigLLVM_Wasm: return lld::wasm::link(array_ref_args, false, diag); diff --git a/src/zig_llvm.h b/src/zig_llvm.h index 5cdc6cc041..a005b3157e 100644 --- a/src/zig_llvm.h +++ b/src/zig_llvm.h @@ -68,6 +68,12 @@ enum ZigLLVM_FnInline { ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, unsigned CC, enum ZigLLVM_FnInline fn_inline, const char *Name); +ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildMemCpy(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, + LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size, bool isVolatile); + +ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Size, + unsigned Align, bool isVolatile); + ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp, LLVMValueRef new_val, LLVMAtomicOrdering success_ordering, LLVMAtomicOrdering failure_ordering, bool is_weak); @@ -267,6 +273,7 @@ enum ZigLLVM_ArchType { enum ZigLLVM_SubArchType { ZigLLVM_NoSubArch, + ZigLLVM_ARMSubArch_v8_4a, ZigLLVM_ARMSubArch_v8_3a, ZigLLVM_ARMSubArch_v8_2a, ZigLLVM_ARMSubArch_v8_1a, @@ -311,8 +318,9 @@ enum ZigLLVM_VendorType { ZigLLVM_AMD, ZigLLVM_Mesa, ZigLLVM_SUSE, + ZigLLVM_OpenEmbedded, - ZigLLVM_LastVendorType = ZigLLVM_SUSE + ZigLLVM_LastVendorType = ZigLLVM_OpenEmbedded }; enum ZigLLVM_OSType { @@ -338,7 +346,6 @@ enum ZigLLVM_OSType { ZigLLVM_RTEMS, ZigLLVM_NaCl, // Native Client ZigLLVM_CNK, // BG/P Compute-Node Kernel - ZigLLVM_Bitrig, ZigLLVM_AIX, ZigLLVM_CUDA, // NVIDIA CUDA ZigLLVM_NVCL, // NVIDIA OpenCL @@ -349,10 +356,12 @@ enum ZigLLVM_OSType { ZigLLVM_WatchOS, // Apple watchOS ZigLLVM_Mesa3D, ZigLLVM_Contiki, + ZigLLVM_AMDPAL, // AMD PAL Runtime - ZigLLVM_LastOSType = ZigLLVM_Contiki + ZigLLVM_LastOSType = ZigLLVM_AMDPAL }; +// Synchronize with target.cpp::environ_list enum ZigLLVM_EnvironmentType { ZigLLVM_UnknownEnvironment, @@ -373,9 +382,7 @@ enum ZigLLVM_EnvironmentType { ZigLLVM_MSVC, ZigLLVM_Itanium, ZigLLVM_Cygnus, - ZigLLVM_AMDOpenCL, ZigLLVM_CoreCLR, - ZigLLVM_OpenCL, ZigLLVM_Simulator, ZigLLVM_LastEnvironmentType = ZigLLVM_Simulator |
