{"ground_truth": ["", "inline", "bool", "vgpr_1reg_mode_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "VECTOR_MODE_P", "(", "mode", ")", ")", "mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "return", "(", "mode", "==", "SImode", "||", "mode", "==", "SFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "HFmode", "||", "mode", "==", "QImode", "||", "mode", "==", "BImode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "1", "VGPR", "register", "."], "TS_V_token": ["gcn"], "File": "gcn-protos3", "Func": "vgpr_1reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29866, "Length": 50}
{"ground_truth": ["", "inline", "bool", "vgpr_2reg_mode_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "VECTOR_MODE_P", "(", "mode", ")", ")", "mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "return", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "pair", "of", "VGPR", "registers", "."], "TS_V_token": ["gcn"], "File": "gcn-protos3", "Func": "vgpr_2reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29867, "Length": 34}
{"ground_truth": ["", "inline", "bool", "vgpr_vector_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "VECTOR_MODE_P", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "can", "be", "handled", "directly", "by", "VGPR", "operations", "."], "TS_V_token": ["gcn"], "File": "gcn-protos3", "Func": "vgpr_vector_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29868, "Length": 15}
{"ground_truth": ["", "inline", "bool", "sgpr_1reg_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "(", "mode", "==", "SImode", "||", "mode", "==", "SFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "QImode", "||", "mode", "==", "BImode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "1", "SGPR", "register", "."], "TS_V_token": ["gcn"], "File": "gcn-protos", "Func": "sgpr_1reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29869, "Length": 32}
{"ground_truth": ["", "inline", "bool", "sgpr_2reg_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "pair", "of", "SGPR", "registers", "."], "TS_V_token": ["gcn"], "File": "gcn-protos", "Func": "sgpr_2reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29870, "Length": 18}
{"ground_truth": ["", "inline", "bool", "vgpr_1reg_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "(", "mode", "==", "SImode", "||", "mode", "==", "SFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "QImode", "||", "mode", "==", "V64QImode", "||", "mode", "==", "V64HImode", "||", "mode", "==", "V64SImode", "||", "mode", "==", "V64HFmode", "||", "mode", "==", "V64SFmode", "||", "mode", "==", "BImode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "1", "VGPR", "register", "."], "TS_V_token": ["gcn"], "File": "gcn-protos", "Func": "vgpr_1reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29871, "Length": 52}
{"ground_truth": ["", "inline", "bool", "vgpr_2reg_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", "||", "mode", "==", "V64DImode", "||", "mode", "==", "V64DFmode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "is", "valid", "for", "pair", "of", "VGPR", "registers", "."], "TS_V_token": ["gcn"], "File": "gcn-protos", "Func": "vgpr_2reg_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29872, "Length": 28}
{"ground_truth": ["", "inline", "bool", "vgpr_vector_mode_p", "(", "machine_mode", "mode", ")", "{", "return", "(", "mode", "==", "V64QImode", "||", "mode", "==", "V64HImode", "||", "mode", "==", "V64SImode", "||", "mode", "==", "V64DImode", "||", "mode", "==", "V64HFmode", "||", "mode", "==", "V64SFmode", "||", "mode", "==", "V64DFmode", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "MODE", "can", "be", "handled", "directly", "by", "VGPR", "operations", "."], "TS_V_token": ["gcn"], "File": "gcn-protos", "Func": "vgpr_vector_mode_p", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29873, "Length": 40}
{"ground_truth": ["", "static", "void", "*", "device_malloc", "(", "size_t", "size", ")", "{", "void", "*", "result", ";", "XHSA", "(", "hsa_fns", ".", "hsa_memory_allocate_fn", "(", "kernargs_region", ",", "size", ",", "&", "result", ")", ",", "\"Allocate device memory\"", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Allocate", "some", "device", "memory", "from", "the", "kernargs", "region", ".", "The", "returned", "address", "will", "be", "32-bit", "(", "with", "excess", "zeroed", "on", "64-bit", "host", ")", ",", "and", "accessible", "via", "the", "same", "address", "on", "both", "host", "and", "target", "(", "via", "__flat_scalar", "GCN", "address", "space", ")", "."], "TS_V_token": ["gcn", "\"Allocate device memory\""], "File": "gcn-run2", "Func": "device_malloc", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29874, "Length": 34}
{"ground_truth": ["", "static", "hsa_status_t", "get_kernarg_region", "(", "hsa_region_t", "region", ",", "void", "*", "data", "__attribute__", "(", "(", "unused", ")", ")", ")", "{", "hsa_region_segment_t", "segment", ";", "hsa_fns", ".", "hsa_region_get_info_fn", "(", "region", ",", "HSA_REGION_INFO_SEGMENT", ",", "&", "segment", ")", ";", "if", "(", "HSA_REGION_SEGMENT_GLOBAL", "!=", "segment", ")", "return", "HSA_STATUS_SUCCESS", ";", "hsa_region_global_flag_t", "flags", ";", "hsa_fns", ".", "hsa_region_get_info_fn", "(", "region", ",", "HSA_REGION_INFO_GLOBAL_FLAGS", ",", "&", "flags", ")", ";", "if", "(", "flags", "&", "HSA_REGION_GLOBAL_FLAG_KERNARG", ")", "{", "kernargs_region", "=", "region", ";", "return", "HSA_STATUS_INFO_BREAK", ";", "}", "return", "HSA_STATUS_SUCCESS", ";", "}", ""], "natrual_language": ["Callback", "of", "hsa_iterate_regions", ".", "Called", "once", "for", "each", "available", "memory", "region", ",", "and", "returns", "``", "break", "''", "when", "a", "suitable", "one", "has", "been", "found", "."], "TS_V_token": ["gcn"], "File": "gcn-run2", "Func": "get_kernarg_region", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29875, "Length": 76}
{"ground_truth": ["", "static", "void", "init_device", "(", ")", "{", "init_hsa_runtime_functions", "(", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_init_fn", "(", ")", ",", "\"Initialize run-time\"", ")", ";", "XHSA_CMP", "(", "hsa_fns", ".", "hsa_iterate_agents_fn", "(", "get_gpu_agent", ",", "NULL", ")", ",", "status", "==", "HSA_STATUS_SUCCESS", "||", "status", "==", "HSA_STATUS_INFO_BREAK", ",", "\"Find a device\"", ")", ";", "uint32_t", "queue_size", "=", "0", ";", "XHSA", "(", "hsa_fns", ".", "hsa_agent_get_info_fn", "(", "device", ",", "HSA_AGENT_INFO_QUEUE_MAX_SIZE", ",", "&", "queue_size", ")", ",", "\"Find max queue size\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_queue_create_fn", "(", "device", ",", "queue_size", ",", "HSA_QUEUE_TYPE_SINGLE", ",", "NULL", ",", "NULL", ",", "UINT32_MAX", ",", "UINT32_MAX", ",", "&", "queue", ")", ",", "\"Set up a device queue\"", ")", ";", "XHSA_CMP", "(", "hsa_fns", ".", "hsa_agent_iterate_regions_fn", "(", "device", ",", "get_kernarg_region", ",", "NULL", ")", ",", "status", "==", "HSA_STATUS_SUCCESS", "||", "status", "==", "HSA_STATUS_INFO_BREAK", ",", "\"Locate kernargs memory\"", ")", ";", "}", ""], "natrual_language": ["Initialize", "the", "HSA", "Runtime", "library", "and", "GPU", "device", "."], "TS_V_token": ["gcn", "\"Initialize run-time\"", "\"Find a device\"", "0", "\"Find max queue size\"", "\"Set up a device queue\"", "\"Locate kernargs memory\""], "File": "gcn-run2", "Func": "init_device", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29876, "Length": 117}
{"ground_truth": ["", "static", "void", "run", "(", "void", "*", "kernargs", ")", "{", "hsa_signal_t", "signal", ";", "XHSA", "(", "hsa_fns", ".", "hsa_signal_create_fn", "(", "1", ",", "0", ",", "NULL", ",", "&", "signal", ")", ",", "\"Create signal\"", ")", ";", "uint64_t", "index", "=", "hsa_fns", ".", "hsa_queue_load_write_index_relaxed_fn", "(", "queue", ")", ";", "const", "uint32_t", "queueMask", "=", "queue", "->", "size", "-", "1", ";", "hsa_kernel_dispatch_packet_t", "*", "dispatch_packet", "=", "&", "(", "(", "(", "hsa_kernel_dispatch_packet_t", "*", ")", "(", "queue", "->", "base_address", ")", ")", "[", "index", "&", "queueMask", "]", ")", ";", "dispatch_packet", "->", "setup", "|=", "3", "<<", "HSA_KERNEL_DISPATCH_PACKET_SETUP_DIMENSIONS", ";", "dispatch_packet", "->", "workgroup_size_x", "=", "(", "uint16_t", ")", "1", ";", "dispatch_packet", "->", "workgroup_size_y", "=", "(", "uint16_t", ")", "64", ";", "dispatch_packet", "->", "workgroup_size_z", "=", "(", "uint16_t", ")", "1", ";", "dispatch_packet", "->", "grid_size_x", "=", "1", ";", "dispatch_packet", "->", "grid_size_y", "=", "64", ";", "dispatch_packet", "->", "grid_size_z", "=", "1", ";", "dispatch_packet", "->", "completion_signal", "=", "signal", ";", "dispatch_packet", "->", "kernel_object", "=", "kernel", ";", "dispatch_packet", "->", "kernarg_address", "=", "(", "void", "*", ")", "kernargs", ";", "dispatch_packet", "->", "private_segment_size", "=", "private_segment_size", ";", "dispatch_packet", "->", "group_segment_size", "=", "group_segment_size", ";", "uint16_t", "header", "=", "0", ";", "header", "|=", "HSA_FENCE_SCOPE_SYSTEM", "<<", "HSA_PACKET_HEADER_ACQUIRE_FENCE_SCOPE", ";", "header", "|=", "HSA_FENCE_SCOPE_SYSTEM", "<<", "HSA_PACKET_HEADER_RELEASE_FENCE_SCOPE", ";", "header", "|=", "HSA_PACKET_TYPE_KERNEL_DISPATCH", "<<", "HSA_PACKET_HEADER_TYPE", ";", "__atomic_store_n", "(", "(", "uint32_t", "*", ")", "dispatch_packet", ",", "header", "|", "(", "dispatch_packet", "->", "setup", "<<", "16", ")", ",", "__ATOMIC_RELEASE", ")", ";", "if", "(", "debug", ")", "fprintf", "(", "stderr", ",", "\"Launch kernel\\n\"", ")", ";", "hsa_fns", ".", "hsa_queue_store_write_index_relaxed_fn", "(", "queue", ",", "index", "+", "1", ")", ";", "hsa_fns", ".", "hsa_signal_store_relaxed_fn", "(", "queue", "->", "doorbell_signal", ",", "index", ")", ";", "while", "(", "hsa_fns", ".", "hsa_signal_wait_relaxed_fn", "(", "signal", ",", "HSA_SIGNAL_CONDITION_LT", ",", "1", ",", "1000000", ",", "HSA_WAIT_STATE_ACTIVE", ")", "!=", "0", ")", "{", "usleep", "(", "10000", ")", ";", "gomp_print_output", "(", "kernargs", ",", "false", ")", ";", "}", "gomp_print_output", "(", "kernargs", ",", "true", ")", ";", "if", "(", "debug", ")", "fprintf", "(", "stderr", ",", "\"Kernel exited\\n\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_signal_destroy_fn", "(", "signal", ")", ",", "\"Clean up signal\"", ")", ";", "}", ""], "natrual_language": ["Execute", "an", "already-loaded", "kernel", "on", "the", "device", "."], "TS_V_token": ["gcn", "1", "0", "\"Create signal\"", "1", "3", "1", "64", "1", "1", "64", "1", "0", "16", "\"Launch kernel\\n\"", "1", "1", "1000000", "0", "10000", "\"Kernel exited\\n\"", "\"Clean up signal\""], "File": "gcn-run2", "Func": "run", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29877, "Length": 303}
{"ground_truth": ["", "static", "void", "*", "device_malloc", "(", "size_t", "size", ",", "hsa_region_t", "region", ")", "{", "void", "*", "result", ";", "XHSA", "(", "hsa_fns", ".", "hsa_memory_allocate_fn", "(", "region", ",", "size", ",", "&", "result", ")", ",", "\"Allocate device memory\"", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Allocate", "some", "device", "memory", "from", "the", "kernargs", "region", ".", "The", "returned", "address", "will", "be", "32-bit", "(", "with", "excess", "zeroed", "on", "64-bit", "host", ")", ",", "and", "accessible", "via", "the", "same", "address", "on", "both", "host", "and", "target", "(", "via", "__flat_scalar", "GCN", "address", "space", ")", "."], "TS_V_token": ["gcn", "\"Allocate device memory\""], "File": "gcn-run", "Func": "device_malloc", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29878, "Length": 37}
{"ground_truth": ["", "static", "hsa_status_t", "get_gpu_agent", "(", "hsa_agent_t", "agent", ",", "void", "*", "data", "__attribute__", "(", "(", "unused", ")", ")", ")", "{", "hsa_device_type_t", "device_type", ";", "XHSA", "(", "hsa_fns", ".", "hsa_agent_get_info_fn", "(", "agent", ",", "HSA_AGENT_INFO_DEVICE", ",", "&", "device_type", ")", ",", "\"Get agent type\"", ")", ";", "if", "(", "HSA_DEVICE_TYPE_GPU", "==", "device_type", ")", "{", "device", "=", "agent", ";", "return", "HSA_STATUS_INFO_BREAK", ";", "}", "return", "HSA_STATUS_SUCCESS", ";", "}", ""], "natrual_language": ["Callback", "of", "hsa_iterate_agents", ".", "Called", "once", "for", "each", "available", "device", ",", "and", "returns", "``", "break", "''", "when", "a", "suitable", "one", "has", "been", "found", "."], "TS_V_token": ["gcn", "\"Get agent type\""], "File": "gcn-run", "Func": "get_gpu_agent", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29879, "Length": 57}
{"ground_truth": ["", "static", "hsa_status_t", "get_kernarg_region", "(", "hsa_region_t", "region", ",", "void", "*", "data", "__attribute__", "(", "(", "unused", ")", ")", ")", "{", "return", "get_memory_region", "(", "region", ",", "&", "kernargs_region", ",", "HSA_REGION_GLOBAL_FLAG_KERNARG", ")", ";", "}", ""], "natrual_language": ["Callback", "of", "hsa_iterate_regions", ".", "Called", "once", "for", "each", "available", "memory", "region", ",", "and", "returns", "``", "break", "''", "when", "a", "suitable", "one", "has", "been", "found", "."], "TS_V_token": ["gcn"], "File": "gcn-run", "Func": "get_kernarg_region", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29880, "Length": 30}
{"ground_truth": ["", "static", "hsa_status_t", "get_memory_region", "(", "hsa_region_t", "region", ",", "hsa_region_t", "*", "retval", ",", "hsa_region_global_flag_t", "kind", ")", "{", "hsa_region_segment_t", "segment", ";", "hsa_fns", ".", "hsa_region_get_info_fn", "(", "region", ",", "HSA_REGION_INFO_SEGMENT", ",", "&", "segment", ")", ";", "if", "(", "HSA_REGION_SEGMENT_GLOBAL", "!=", "segment", ")", "return", "HSA_STATUS_SUCCESS", ";", "hsa_region_global_flag_t", "flags", ";", "hsa_fns", ".", "hsa_region_get_info_fn", "(", "region", ",", "HSA_REGION_INFO_GLOBAL_FLAGS", ",", "&", "flags", ")", ";", "if", "(", "flags", "&", "kind", ")", "{", "*", "retval", "=", "region", ";", "return", "HSA_STATUS_INFO_BREAK", ";", "}", "return", "HSA_STATUS_SUCCESS", ";", "}", ""], "natrual_language": ["Callback", "of", "hsa_iterate_regions", ".", "Called", "once", "for", "each", "available", "memory", "region", ",", "and", "returns", "``", "break", "''", "when", "a", "suitable", "one", "has", "been", "found", "."], "TS_V_token": ["gcn"], "File": "gcn-run", "Func": "get_memory_region", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29881, "Length": 74}
{"ground_truth": ["", "void", "gomp_print_output", "(", "struct", "kernargs", "*", "kernargs", ",", "bool", "final", ")", "{", "unsigned", "int", "limit", "=", "(", "sizeof", "(", "kernargs", "->", "output_data", ".", "queue", ")", "/", "sizeof", "(", "kernargs", "->", "output_data", ".", "queue", "[", "0", "]", ")", ")", ";", "unsigned", "int", "from", "=", "__atomic_load_n", "(", "&", "kernargs", "->", "output_data", ".", "consumed", ",", "__ATOMIC_ACQUIRE", ")", ";", "unsigned", "int", "to", "=", "kernargs", "->", "output_data", ".", "next_output", ";", "if", "(", "from", ">", "to", ")", "{", "if", "(", "final", ")", "printf", "(", "\"GCN print buffer overflowed.\\n\"", ")", ";", "return", ";", "}", "unsigned", "int", "i", ";", "for", "(", "i", "=", "from", ";", "i", "<", "to", ";", "i", "++", ")", "{", "struct", "printf_data", "*", "data", "=", "&", "kernargs", "->", "output_data", ".", "queue", "[", "i", "%", "limit", "]", ";", "if", "(", "!", "data", "->", "written", "&&", "!", "final", ")", "break", ";", "switch", "(", "data", "->", "type", ")", "{", "case", "0", ":", "printf", "(", "\"%.128s%ld\\n\"", ",", "data", "->", "msg", ",", "data", "->", "ivalue", ")", ";", "break", ";", "case", "1", ":", "printf", "(", "\"%.128s%f\\n\"", ",", "data", "->", "msg", ",", "data", "->", "dvalue", ")", ";", "break", ";", "case", "2", ":", "printf", "(", "\"%.128s%.128s\\n\"", ",", "data", "->", "msg", ",", "data", "->", "text", ")", ";", "break", ";", "case", "3", ":", "printf", "(", "\"%.128s%.128s\"", ",", "data", "->", "msg", ",", "data", "->", "text", ")", ";", "break", ";", "default", ":", "printf", "(", "\"GCN print buffer error!\\n\"", ")", ";", "break", ";", "}", "data", "->", "written", "=", "0", ";", "__atomic_store_n", "(", "&", "kernargs", "->", "output_data", ".", "consumed", ",", "i", "+", "1", ",", "__ATOMIC_RELEASE", ")", ";", "}", "fflush", "(", "stdout", ")", ";", "}", ""], "natrual_language": ["Print", "any", "console", "output", "from", "the", "kernel", ".", "We", "print", "all", "entries", "from", "``", "consumed", "''", "to", "the", "next", "entry", "without", "a", "``", "written", "''", "flag", ",", "or", "``", "next_output", "''", "is", "reached", ".", "The", "buffer", "is", "circular", ",", "but", "the", "indices", "are", "absolute", ".", "It", "is", "assumed", "the", "kernel", "will", "stop", "writing", "data", "if", "``", "next_output", "''", "wraps", "(", "becomes", "smaller", "than", "``", "consumed", "''", ")", "."], "TS_V_token": ["gcn", "0", "\"GCN print buffer overflowed.\\n\"", "0", "\"%.128s%ld\\n\"", "1", "\"%.128s%f\\n\"", "2", "\"%.128s%.128s\\n\"", "3", "\"%.128s%.128s\"", "\"GCN print buffer error!\\n\"", "0", "1"], "File": "gcn-run", "Func": "gomp_print_output", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29882, "Length": 249}
{"ground_truth": ["", "static", "void", "hsa_fatal", "(", "const", "char", "*", "str", ",", "hsa_status_t", "status", ")", "{", "const", "char", "*", "hsa_error_msg", ";", "hsa_fns", ".", "hsa_status_string_fn", "(", "status", ",", "&", "hsa_error_msg", ")", ";", "fprintf", "(", "stderr", ",", "\"%s: FAILED\\nHSA Runtime message: %s\\n\"", ",", "str", ",", "hsa_error_msg", ")", ";", "exit", "(", "1", ")", ";", "}", ""], "natrual_language": ["Report", "a", "fatal", "error", "STR", "together", "with", "the", "HSA", "error", "corresponding", "to", "STATUS", "and", "terminate", "execution", "of", "the", "current", "process", "."], "TS_V_token": ["gcn", "\"%s: FAILED\\nHSA Runtime message: %s\\n\"", "1"], "File": "gcn-run", "Func": "hsa_fatal", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29883, "Length": 45}
{"ground_truth": ["", "static", "void", "init_device", "(", ")", "{", "init_hsa_runtime_functions", "(", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_init_fn", "(", ")", ",", "\"Initialize run-time\"", ")", ";", "XHSA_CMP", "(", "hsa_fns", ".", "hsa_iterate_agents_fn", "(", "get_gpu_agent", ",", "NULL", ")", ",", "status", "==", "HSA_STATUS_SUCCESS", "||", "status", "==", "HSA_STATUS_INFO_BREAK", ",", "\"Find a device\"", ")", ";", "uint32_t", "queue_size", "=", "0", ";", "XHSA", "(", "hsa_fns", ".", "hsa_agent_get_info_fn", "(", "device", ",", "HSA_AGENT_INFO_QUEUE_MAX_SIZE", ",", "&", "queue_size", ")", ",", "\"Find max queue size\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_queue_create_fn", "(", "device", ",", "queue_size", ",", "HSA_QUEUE_TYPE_SINGLE", ",", "NULL", ",", "NULL", ",", "UINT32_MAX", ",", "UINT32_MAX", ",", "&", "queue", ")", ",", "\"Set up a device queue\"", ")", ";", "XHSA_CMP", "(", "hsa_fns", ".", "hsa_agent_iterate_regions_fn", "(", "device", ",", "get_kernarg_region", ",", "NULL", ")", ",", "status", "==", "HSA_STATUS_SUCCESS", "||", "status", "==", "HSA_STATUS_INFO_BREAK", ",", "\"Locate kernargs memory\"", ")", ";", "XHSA_CMP", "(", "hsa_fns", ".", "hsa_agent_iterate_regions_fn", "(", "device", ",", "get_heap_region", ",", "NULL", ")", ",", "status", "==", "HSA_STATUS_SUCCESS", "||", "status", "==", "HSA_STATUS_INFO_BREAK", ",", "\"Locate device memory\"", ")", ";", "}", ""], "natrual_language": ["Initialize", "the", "HSA", "Runtime", "library", "and", "GPU", "device", "."], "TS_V_token": ["gcn", "\"Initialize run-time\"", "\"Find a device\"", "0", "\"Find max queue size\"", "\"Set up a device queue\"", "\"Locate kernargs memory\"", "\"Locate device memory\""], "File": "gcn-run", "Func": "init_device", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29884, "Length": 141}
{"ground_truth": ["", "static", "void", "load_image", "(", "const", "char", "*", "filename", ")", "{", "size_t", "image_size", ";", "Elf64_Ehdr", "*", "image", "=", "(", "void", "*", ")", "read_file", "(", "filename", ",", "&", "image_size", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_create_fn", "(", "HSA_PROFILE_FULL", ",", "HSA_EXECUTABLE_STATE_UNFROZEN", ",", "\"\"", ",", "&", "executable", ")", ",", "\"Initialize GCN executable\"", ")", ";", "hsa_code_object_t", "co", "=", "{", "0", "}", ";", "XHSA", "(", "hsa_fns", ".", "hsa_code_object_deserialize_fn", "(", "image", ",", "image_size", ",", "NULL", ",", "&", "co", ")", ",", "\"Deserialize GCN code object\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_load_code_object_fn", "(", "executable", ",", "device", ",", "co", ",", "\"\"", ")", ",", "\"Load GCN code object\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_freeze_fn", "(", "executable", ",", "\"\"", ")", ",", "\"Freeze GCN executable\"", ")", ";", "hsa_executable_symbol_t", "symbol", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_get_symbol_fn", "(", "executable", ",", "NULL", ",", "\"_init_array.kd\"", ",", "device", ",", "0", ",", "&", "symbol", ")", ",", "\"Find '_init_array' function\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_OBJECT", ",", "&", "init_array_kernel", ")", ",", "\"Extract '_init_array' kernel object kernel object\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_get_symbol_fn", "(", "executable", ",", "NULL", ",", "\"_fini_array.kd\"", ",", "device", ",", "0", ",", "&", "symbol", ")", ",", "\"Find '_fini_array' function\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_OBJECT", ",", "&", "fini_array_kernel", ")", ",", "\"Extract '_fini_array' kernel object kernel object\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_get_symbol_fn", "(", "executable", ",", "NULL", ",", "\"main.kd\"", ",", "device", ",", "0", ",", "&", "symbol", ")", ",", "\"Find 'main' function\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_OBJECT", ",", "&", "main_kernel", ")", ",", "\"Extract 'main' kernel object\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_SIZE", ",", "&", "kernarg_segment_size", ")", ",", "\"Extract kernarg segment size\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_GROUP_SEGMENT_SIZE", ",", "&", "group_segment_size", ")", ",", "\"Extract group segment size\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_executable_symbol_get_info_fn", "(", "symbol", ",", "HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_PRIVATE_SEGMENT_SIZE", ",", "&", "private_segment_size", ")", ",", "\"Extract private segment size\"", ")", ";", "}", ""], "natrual_language": ["Read", "a", "HSA", "Code", "Object", "(", "HSACO", ")", "from", "file", ",", "and", "load", "it", "into", "the", "device", "."], "TS_V_token": ["gcn", "\"\"", "\"Initialize GCN executable\"", "0", "\"Deserialize GCN code object\"", "\"\"", "\"Load GCN code object\"", "\"\"", "\"Freeze GCN executable\"", "\"_init_array.kd\"", "0", "\"Find '_init_array' function\"", "\"Extract '_init_array' kernel object kernel object\"", "\"_fini_array.kd\"", "0", "\"Find '_fini_array' function\"", "\"Extract '_fini_array' kernel object kernel object\"", "\"main.kd\"", "0", "\"Find 'main' function\"", "\"Extract 'main' kernel object\"", "\"Extract kernarg segment size\"", "\"Extract group segment size\"", "\"Extract private segment size\""], "File": "gcn-run", "Func": "load_image", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29885, "Length": 281}
{"ground_truth": ["", "static", "char", "*", "read_file", "(", "const", "char", "*", "filename", ",", "size_t", "*", "plen", ")", "{", "size_t", "alloc", "=", "16384", ";", "size_t", "base", "=", "0", ";", "char", "*", "buffer", ";", "FILE", "*", "stream", "=", "fopen", "(", "filename", ",", "\"rb\"", ")", ";", "if", "(", "!", "stream", ")", "{", "perror", "(", "filename", ")", ";", "exit", "(", "1", ")", ";", "}", "if", "(", "!", "fseek", "(", "stream", ",", "0", ",", "SEEK_END", ")", ")", "{", "long", "s", "=", "ftell", "(", "stream", ")", ";", "if", "(", "s", ">=", "0", ")", "alloc", "=", "s", "+", "100", ";", "fseek", "(", "stream", ",", "0", ",", "SEEK_SET", ")", ";", "}", "buffer", "=", "malloc", "(", "alloc", ")", ";", "for", "(", ";", ";", ")", "{", "size_t", "n", "=", "fread", "(", "buffer", "+", "base", ",", "1", ",", "alloc", "-", "base", "-", "1", ",", "stream", ")", ";", "if", "(", "!", "n", ")", "break", ";", "base", "+=", "n", ";", "if", "(", "base", "+", "1", "==", "alloc", ")", "{", "alloc", "*=", "2", ";", "buffer", "=", "realloc", "(", "buffer", ",", "alloc", ")", ";", "}", "}", "buffer", "[", "base", "]", "=", "0", ";", "*", "plen", "=", "base", ";", "fclose", "(", "stream", ")", ";", "return", "buffer", ";", "}", ""], "natrual_language": ["Read", "the", "whole", "input", "file", ".", "It", "will", "be", "NUL", "terminated", "(", "but", "remember", ",", "there", "could", "be", "a", "NUL", "in", "the", "file", "itself", "."], "TS_V_token": ["gcn", "16384", "0", "\"rb\"", "1", "0", "0", "100", "0", "1", "1", "1", "2", "0"], "File": "gcn-run", "Func": "read_file", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29886, "Length": 189}
{"ground_truth": ["", "static", "void", "run", "(", "uint64_t", "kernel", ",", "void", "*", "kernargs", ")", "{", "hsa_signal_t", "signal", ";", "XHSA", "(", "hsa_fns", ".", "hsa_signal_create_fn", "(", "1", ",", "0", ",", "NULL", ",", "&", "signal", ")", ",", "\"Create signal\"", ")", ";", "uint64_t", "index", "=", "hsa_fns", ".", "hsa_queue_load_write_index_relaxed_fn", "(", "queue", ")", ";", "const", "uint32_t", "queueMask", "=", "queue", "->", "size", "-", "1", ";", "hsa_kernel_dispatch_packet_t", "*", "dispatch_packet", "=", "&", "(", "(", "(", "hsa_kernel_dispatch_packet_t", "*", ")", "(", "queue", "->", "base_address", ")", ")", "[", "index", "&", "queueMask", "]", ")", ";", "dispatch_packet", "->", "setup", "|=", "3", "<<", "HSA_KERNEL_DISPATCH_PACKET_SETUP_DIMENSIONS", ";", "dispatch_packet", "->", "workgroup_size_x", "=", "(", "uint16_t", ")", "1", ";", "dispatch_packet", "->", "workgroup_size_y", "=", "(", "uint16_t", ")", "64", ";", "dispatch_packet", "->", "workgroup_size_z", "=", "(", "uint16_t", ")", "1", ";", "dispatch_packet", "->", "grid_size_x", "=", "1", ";", "dispatch_packet", "->", "grid_size_y", "=", "64", ";", "dispatch_packet", "->", "grid_size_z", "=", "1", ";", "dispatch_packet", "->", "completion_signal", "=", "signal", ";", "dispatch_packet", "->", "kernel_object", "=", "kernel", ";", "dispatch_packet", "->", "kernarg_address", "=", "(", "void", "*", ")", "kernargs", ";", "dispatch_packet", "->", "private_segment_size", "=", "private_segment_size", ";", "dispatch_packet", "->", "group_segment_size", "=", "group_segment_size", ";", "uint16_t", "header", "=", "0", ";", "header", "|=", "HSA_FENCE_SCOPE_SYSTEM", "<<", "HSA_PACKET_HEADER_ACQUIRE_FENCE_SCOPE", ";", "header", "|=", "HSA_FENCE_SCOPE_SYSTEM", "<<", "HSA_PACKET_HEADER_RELEASE_FENCE_SCOPE", ";", "header", "|=", "HSA_PACKET_TYPE_KERNEL_DISPATCH", "<<", "HSA_PACKET_HEADER_TYPE", ";", "__atomic_store_n", "(", "(", "uint32_t", "*", ")", "dispatch_packet", ",", "header", "|", "(", "dispatch_packet", "->", "setup", "<<", "16", ")", ",", "__ATOMIC_RELEASE", ")", ";", "if", "(", "debug", ")", "fprintf", "(", "stderr", ",", "\"Launch kernel\\n\"", ")", ";", "hsa_fns", ".", "hsa_queue_store_write_index_relaxed_fn", "(", "queue", ",", "index", "+", "1", ")", ";", "hsa_fns", ".", "hsa_signal_store_relaxed_fn", "(", "queue", "->", "doorbell_signal", ",", "index", ")", ";", "while", "(", "hsa_fns", ".", "hsa_signal_wait_relaxed_fn", "(", "signal", ",", "HSA_SIGNAL_CONDITION_LT", ",", "1", ",", "1000000", ",", "HSA_WAIT_STATE_ACTIVE", ")", "!=", "0", ")", "{", "usleep", "(", "10000", ")", ";", "gomp_print_output", "(", "kernargs", ",", "false", ")", ";", "}", "gomp_print_output", "(", "kernargs", ",", "true", ")", ";", "if", "(", "debug", ")", "fprintf", "(", "stderr", ",", "\"Kernel exited\\n\"", ")", ";", "XHSA", "(", "hsa_fns", ".", "hsa_signal_destroy_fn", "(", "signal", ")", ",", "\"Clean up signal\"", ")", ";", "}", ""], "natrual_language": ["Execute", "an", "already-loaded", "kernel", "on", "the", "device", "."], "TS_V_token": ["gcn", "1", "0", "\"Create signal\"", "1", "3", "1", "64", "1", "1", "64", "1", "0", "16", "\"Launch kernel\\n\"", "1", "1", "1000000", "0", "10000", "\"Kernel exited\\n\"", "\"Clean up signal\""], "File": "gcn-run", "Func": "run", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29887, "Length": 306}
{"ground_truth": ["", "static", "tree", "gcn_goacc_get_worker_red_decl", "(", "tree", "type", ",", "unsigned", "offset", ")", "{", "machine_function", "*", "machfun", "=", "cfun", "->", "machine", ";", "tree", "existing_decl", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "REFERENCE_TYPE", ")", "type", "=", "TREE_TYPE", "(", "type", ")", ";", "tree", "var_type", "=", "build_qualified_type", "(", "type", ",", "(", "TYPE_QUALS", "(", "type", ")", "|", "ENCODE_QUAL_ADDR_SPACE", "(", "ADDR_SPACE_LDS", ")", ")", ")", ";", "if", "(", "machfun", "->", "reduc_decls", "&&", "offset", "<", "machfun", "->", "reduc_decls", "->", "length", "(", ")", "&&", "(", "existing_decl", "=", "(", "*", "machfun", "->", "reduc_decls", ")", "[", "offset", "]", ")", ")", "{", "gcc_assert", "(", "TREE_TYPE", "(", "existing_decl", ")", "==", "var_type", ")", ";", "return", "existing_decl", ";", "}", "else", "{", "char", "name", "[", "50", "]", ";", "sprintf", "(", "name", ",", "\".oacc_reduction_%u\"", ",", "offset", ")", ";", "tree", "decl", "=", "create_tmp_var_raw", "(", "var_type", ",", "name", ")", ";", "DECL_CONTEXT", "(", "decl", ")", "=", "NULL_TREE", ";", "TREE_STATIC", "(", "decl", ")", "=", "1", ";", "varpool_node", "::", "finalize_decl", "(", "decl", ")", ";", "vec_safe_grow_cleared", "(", "machfun", "->", "reduc_decls", ",", "offset", "+", "1", ",", "true", ")", ";", "(", "*", "machfun", "->", "reduc_decls", ")", "[", "offset", "]", "=", "decl", ";", "return", "decl", ";", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Return", "a", "temporary", "variable", "decl", "to", "use", "for", "an", "OpenACC", "worker", "reduction", "."], "TS_V_token": ["gcn", "50", "\".oacc_reduction_%u\"", "1", "1"], "File": "gcn-tree1", "Func": "gcn_goacc_get_worker_red_decl", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29888, "Length": 184}
{"ground_truth": ["", "virtual", "unsigned", "int", "execute", "(", "function", "*", ")", "{", "return", "execute_omp_gcn", "(", ")", ";", "}", ""], "natrual_language": ["Main", "entry", "point", "for", "this", "pass", "."], "TS_V_token": ["gcn"], "File": "gcn-tree", "Func": "execute", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29889, "Length": 15}
{"ground_truth": ["", "unsigned", "int", "execute_omp_gcn", "(", "void", ")", "{", "tree", "thr_num_tree", "=", "builtin_decl_explicit", "(", "BUILT_IN_OMP_GET_THREAD_NUM", ")", ";", "tree", "thr_num_id", "=", "DECL_NAME", "(", "thr_num_tree", ")", ";", "tree", "team_num_tree", "=", "builtin_decl_explicit", "(", "BUILT_IN_OMP_GET_TEAM_NUM", ")", ";", "tree", "team_num_id", "=", "DECL_NAME", "(", "team_num_tree", ")", ";", "basic_block", "bb", ";", "gimple_stmt_iterator", "gsi", ";", "unsigned", "int", "todo", "=", "0", ";", "FOR_EACH_BB_FN", "(", "bb", ",", "cfun", ")", "for", "(", "gsi", "=", "gsi_start_bb", "(", "bb", ")", ";", "!", "gsi_end_p", "(", "gsi", ")", ";", "gsi_next", "(", "&", "gsi", ")", ")", "{", "gimple", "*", "call", "=", "gsi_stmt", "(", "gsi", ")", ";", "tree", "decl", ";", "if", "(", "is_gimple_call", "(", "call", ")", "&&", "(", "decl", "=", "gimple_call_fndecl", "(", "call", ")", ")", ")", "{", "tree", "decl_id", "=", "DECL_NAME", "(", "decl", ")", ";", "tree", "lhs", "=", "gimple_get_lhs", "(", "call", ")", ";", "if", "(", "decl_id", "==", "thr_num_id", ")", "{", "if", "(", "dump_file", "&&", "(", "dump_flags", "&", "TDF_DETAILS", ")", ")", "fprintf", "(", "dump_file", ",", "\"Replace '%s' with __builtin_gcn_dim_pos.\\n\"", ",", "IDENTIFIER_POINTER", "(", "decl_id", ")", ")", ";", "tree", "fn", "=", "targetm", ".", "builtin_decl", "(", "GCN_BUILTIN_OMP_DIM_POS", ",", "0", ")", ";", "tree", "fnarg", "=", "build_int_cst", "(", "unsigned_type_node", ",", "1", ")", ";", "gimple", "*", "stmt", "=", "gimple_build_call", "(", "fn", ",", "1", ",", "fnarg", ")", ";", "gimple_call_set_lhs", "(", "stmt", ",", "lhs", ")", ";", "gsi_replace", "(", "&", "gsi", ",", "stmt", ",", "true", ")", ";", "todo", "|=", "TODO_update_ssa", ";", "}", "else", "if", "(", "decl_id", "==", "team_num_id", ")", "{", "if", "(", "dump_file", "&&", "(", "dump_flags", "&", "TDF_DETAILS", ")", ")", "fprintf", "(", "dump_file", ",", "\"Replace '%s' with __builtin_gcn_dim_pos.\\n\"", ",", "IDENTIFIER_POINTER", "(", "decl_id", ")", ")", ";", "tree", "fn", "=", "targetm", ".", "builtin_decl", "(", "GCN_BUILTIN_OMP_DIM_POS", ",", "0", ")", ";", "tree", "fnarg", "=", "build_zero_cst", "(", "unsigned_type_node", ")", ";", "gimple", "*", "stmt", "=", "gimple_build_call", "(", "fn", ",", "1", ",", "fnarg", ")", ";", "gimple_call_set_lhs", "(", "stmt", ",", "lhs", ")", ";", "gsi_replace", "(", "&", "gsi", ",", "stmt", ",", "true", ")", ";", "todo", "|=", "TODO_update_ssa", ";", "}", "}", "}", "return", "todo", ";", "}", ""], "natrual_language": ["{", "{", "{", "OMP", "GCN", "pass", ".", "This", "pass", "is", "intended", "to", "make", "any", "GCN-specfic", "transformations", "to", "OpenMP", "target", "regions", ".", "At", "present", ",", "its", "only", "purpose", "is", "to", "convert", "some", "``", "omp", "''", "built-in", "functions", "to", "use", "closer-to-the-metal", "``", "gcn", "''", "built-in", "functions", "."], "TS_V_token": ["gcn", "0", "\"Replace '%s' with __builtin_gcn_dim_pos.\\n\"", "0", "1", "1", "\"Replace '%s' with __builtin_gcn_dim_pos.\\n\"", "0", "1"], "File": "gcn-tree", "Func": "execute_omp_gcn", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29890, "Length": 301}
{"ground_truth": ["", "static", "tree", "gcn_global_lock_addr", "(", ")", "{", "tree", "v", "=", "global_lock_var", ";", "if", "(", "!", "v", ")", "{", "tree", "name", "=", "get_identifier", "(", "\"__reduction_lock\"", ")", ";", "tree", "type", "=", "build_qualified_type", "(", "unsigned_type_node", ",", "TYPE_QUAL_VOLATILE", ")", ";", "v", "=", "build_decl", "(", "BUILTINS_LOCATION", ",", "VAR_DECL", ",", "name", ",", "type", ")", ";", "global_lock_var", "=", "v", ";", "DECL_ARTIFICIAL", "(", "v", ")", "=", "1", ";", "DECL_EXTERNAL", "(", "v", ")", "=", "1", ";", "TREE_STATIC", "(", "v", ")", "=", "1", ";", "TREE_PUBLIC", "(", "v", ")", "=", "1", ";", "TREE_USED", "(", "v", ")", "=", "1", ";", "mark_addressable", "(", "v", ")", ";", "mark_decl_referenced", "(", "v", ")", ";", "}", "return", "build_fold_addr_expr", "(", "v", ")", ";", "}", ""], "natrual_language": ["Lazily", "generate", "the", "global_lock_var", "decl", "and", "return", "its", "address", "."], "TS_V_token": ["gcn", "\"__reduction_lock\"", "1", "1", "1", "1", "1"], "File": "gcn-tree", "Func": "gcn_global_lock_addr", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29891, "Length": 105}
{"ground_truth": ["", "tree", "gcn_goacc_adjust_propagation_record", "(", "tree", "record_type", ",", "bool", "sender", ",", "const", "char", "*", "name", ")", "{", "tree", "type", "=", "record_type", ";", "TYPE_ADDR_SPACE", "(", "type", ")", "=", "ADDR_SPACE_LDS", ";", "if", "(", "!", "sender", ")", "type", "=", "build_pointer_type", "(", "type", ")", ";", "tree", "decl", "=", "create_tmp_var_raw", "(", "type", ",", "name", ")", ";", "if", "(", "sender", ")", "{", "DECL_CONTEXT", "(", "decl", ")", "=", "NULL_TREE", ";", "TREE_STATIC", "(", "decl", ")", "=", "1", ";", "}", "if", "(", "sender", ")", "varpool_node", "::", "finalize_decl", "(", "decl", ")", ";", "return", "decl", ";", "}", ""], "natrual_language": ["Implement", "TARGET_GOACC_ADJUST_PROPAGATION_RECORD", ".", "Tweak", "(", "worker", ")", "propagation", "record", ",", "e.g", ".", "to", "put", "it", "in", "shared", "memory", "."], "TS_V_token": ["gcn", "1"], "File": "gcn-tree", "Func": "gcn_goacc_adjust_propagation_record", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29892, "Length": 84}
{"ground_truth": ["", "tree", "gcn_goacc_create_worker_broadcast_record", "(", "tree", "record_type", ",", "bool", "sender", ",", "const", "char", "*", "name", ",", "unsigned", "HOST_WIDE_INT", "offset", ")", "{", "tree", "type", "=", "build_qualified_type", "(", "record_type", ",", "TYPE_QUALS_NO_ADDR_SPACE", "(", "record_type", ")", "|", "ENCODE_QUAL_ADDR_SPACE", "(", "ADDR_SPACE_LDS", ")", ")", ";", "if", "(", "!", "sender", ")", "{", "tree", "ptr_type", "=", "build_pointer_type", "(", "type", ")", ";", "return", "create_tmp_var_raw", "(", "ptr_type", ",", "name", ")", ";", "}", "if", "(", "record_type", "==", "char_type_node", ")", "offset", "=", "1", ";", "tree", "ptr_type", "=", "build_pointer_type", "(", "type", ")", ";", "return", "build_int_cst", "(", "ptr_type", ",", "offset", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD", ".", "Create", "OpenACC", "worker", "state", "propagation", "record", "in", "shared", "memory", "."], "TS_V_token": ["gcn", "1"], "File": "gcn-tree", "Func": "gcn_goacc_create_worker_broadcast_record", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29893, "Length": 87}
{"ground_truth": ["", "static", "tree", "gcn_goacc_get_worker_red_decl", "(", "tree", "type", ",", "unsigned", "offset", ")", "{", "machine_function", "*", "machfun", "=", "cfun", "->", "machine", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "REFERENCE_TYPE", ")", "type", "=", "TREE_TYPE", "(", "type", ")", ";", "tree", "var_type", "=", "build_qualified_type", "(", "type", ",", "(", "TYPE_QUALS", "(", "type", ")", "|", "ENCODE_QUAL_ADDR_SPACE", "(", "ADDR_SPACE_LDS", ")", ")", ")", ";", "gcc_assert", "(", "offset", "<", "(", "machfun", "->", "reduction_limit", "-", "machfun", "->", "reduction_base", ")", ")", ";", "tree", "ptr_type", "=", "build_pointer_type", "(", "var_type", ")", ";", "tree", "addr", "=", "build_int_cst", "(", "ptr_type", ",", "machfun", "->", "reduction_base", "+", "offset", ")", ";", "return", "build_simple_mem_ref", "(", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "a", "temporary", "variable", "decl", "to", "use", "for", "an", "OpenACC", "worker", "reduction", "."], "TS_V_token": ["gcn"], "File": "gcn-tree", "Func": "gcn_goacc_get_worker_red_decl", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29894, "Length": 99}
{"ground_truth": ["", "void", "gcn_goacc_reduction", "(", "gcall", "*", "call", ")", "{", "int", "level", "=", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "3", ")", ")", ";", "if", "(", "level", "==", "GOMP_DIM_VECTOR", ")", "{", "default_goacc_reduction", "(", "call", ")", ";", "return", ";", "}", "unsigned", "code", "=", "(", "unsigned", ")", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "0", ")", ")", ";", "switch", "(", "code", ")", "{", "case", "IFN_GOACC_REDUCTION_SETUP", ":", "gcn_goacc_reduction_setup", "(", "call", ")", ";", "break", ";", "case", "IFN_GOACC_REDUCTION_INIT", ":", "gcn_goacc_reduction_init", "(", "call", ")", ";", "break", ";", "case", "IFN_GOACC_REDUCTION_FINI", ":", "gcn_goacc_reduction_fini", "(", "call", ")", ";", "break", ";", "case", "IFN_GOACC_REDUCTION_TEARDOWN", ":", "gcn_goacc_reduction_teardown", "(", "call", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Implement", "TARGET_GOACC_REDUCTION", ".", "Expand", "calls", "to", "the", "GOACC", "REDUCTION", "internal", "function", ",", "into", "a", "sequence", "of", "gimple", "instructions", "."], "TS_V_token": ["gcn", "3", "0"], "File": "gcn-tree", "Func": "gcn_goacc_reduction", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29895, "Length": 105}
{"ground_truth": ["", "static", "void", "gcn_goacc_reduction_fini", "(", "gcall", "*", "call", ")", "{", "gimple_stmt_iterator", "gsi", "=", "gsi_for_stmt", "(", "call", ")", ";", "tree", "lhs", "=", "gimple_call_lhs", "(", "call", ")", ";", "tree", "ref_to_res", "=", "gimple_call_arg", "(", "call", ",", "1", ")", ";", "tree", "var", "=", "gimple_call_arg", "(", "call", ",", "2", ")", ";", "int", "level", "=", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "3", ")", ")", ";", "enum", "tree_code", "op", "=", "(", "enum", "tree_code", ")", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "4", ")", ")", ";", "gimple_seq", "seq", "=", "NULL", ";", "tree", "r", "=", "NULL_TREE", ";", ";", "push_gimplify_context", "(", "true", ")", ";", "tree", "accum", "=", "NULL_TREE", ";", "if", "(", "level", "==", "GOMP_DIM_WORKER", ")", "{", "tree", "var_type", "=", "TREE_TYPE", "(", "var", ")", ";", "tree", "offset", "=", "gimple_call_arg", "(", "call", ",", "5", ")", ";", "tree", "decl", "=", "gcn_goacc_get_worker_red_decl", "(", "var_type", ",", "TREE_INT_CST_LOW", "(", "offset", ")", ")", ";", "accum", "=", "build_fold_addr_expr", "(", "decl", ")", ";", "}", "else", "if", "(", "integer_zerop", "(", "ref_to_res", ")", ")", "r", "=", "var", ";", "else", "accum", "=", "ref_to_res", ";", "if", "(", "accum", ")", "{", "gsi_insert_seq_before", "(", "&", "gsi", ",", "seq", ",", "GSI_SAME_STMT", ")", ";", "seq", "=", "NULL", ";", "r", "=", "gcn_reduction_update", "(", "gimple_location", "(", "call", ")", ",", "&", "gsi", ",", "accum", ",", "var", ",", "op", ")", ";", "}", "if", "(", "lhs", ")", "gimplify_assign", "(", "lhs", ",", "r", ",", "&", "seq", ")", ";", "pop_gimplify_context", "(", "NULL", ")", ";", "gsi_replace_with_seq", "(", "&", "gsi", ",", "seq", ",", "true", ")", ";", "}", ""], "natrual_language": ["Expand", "IFN_GOACC_REDUCTION_FINI", "."], "TS_V_token": ["gcn", "1", "2", "3", "4", "5"], "File": "gcn-tree", "Func": "gcn_goacc_reduction_fini", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29896, "Length": 229}
{"ground_truth": ["", "static", "void", "gcn_goacc_reduction_init", "(", "gcall", "*", "call", ")", "{", "gimple_stmt_iterator", "gsi", "=", "gsi_for_stmt", "(", "call", ")", ";", "tree", "lhs", "=", "gimple_call_lhs", "(", "call", ")", ";", "tree", "var", "=", "gimple_call_arg", "(", "call", ",", "2", ")", ";", "int", "level", "=", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "3", ")", ")", ";", "enum", "tree_code", "rcode", "=", "(", "enum", "tree_code", ")", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "4", ")", ")", ";", "tree", "init", "=", "omp_reduction_init_op", "(", "gimple_location", "(", "call", ")", ",", "rcode", ",", "TREE_TYPE", "(", "var", ")", ")", ";", "gimple_seq", "seq", "=", "NULL", ";", "push_gimplify_context", "(", "true", ")", ";", "if", "(", "level", "==", "GOMP_DIM_GANG", ")", "{", "tree", "ref_to_res", "=", "gimple_call_arg", "(", "call", ",", "1", ")", ";", "if", "(", "integer_zerop", "(", "ref_to_res", ")", ")", "init", "=", "var", ";", "}", "if", "(", "lhs", ")", "gimplify_assign", "(", "lhs", ",", "init", ",", "&", "seq", ")", ";", "pop_gimplify_context", "(", "NULL", ")", ";", "gsi_replace_with_seq", "(", "&", "gsi", ",", "seq", ",", "true", ")", ";", "}", ""], "natrual_language": ["Expand", "IFN_GOACC_REDUCTION_INIT", "."], "TS_V_token": ["gcn", "2", "3", "4", "1"], "File": "gcn-tree", "Func": "gcn_goacc_reduction_init", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29897, "Length": 153}
{"ground_truth": ["", "static", "void", "gcn_goacc_reduction_setup", "(", "gcall", "*", "call", ")", "{", "gimple_stmt_iterator", "gsi", "=", "gsi_for_stmt", "(", "call", ")", ";", "tree", "lhs", "=", "gimple_call_lhs", "(", "call", ")", ";", "tree", "var", "=", "gimple_call_arg", "(", "call", ",", "2", ")", ";", "int", "level", "=", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "3", ")", ")", ";", "gimple_seq", "seq", "=", "NULL", ";", "push_gimplify_context", "(", "true", ")", ";", "if", "(", "level", "!=", "GOMP_DIM_GANG", ")", "{", "tree", "ref_to_res", "=", "gimple_call_arg", "(", "call", ",", "1", ")", ";", "if", "(", "!", "integer_zerop", "(", "ref_to_res", ")", ")", "var", "=", "build_simple_mem_ref", "(", "ref_to_res", ")", ";", "}", "if", "(", "level", "==", "GOMP_DIM_WORKER", ")", "{", "tree", "var_type", "=", "TREE_TYPE", "(", "var", ")", ";", "tree", "offset", "=", "gimple_call_arg", "(", "call", ",", "5", ")", ";", "tree", "decl", "=", "gcn_goacc_get_worker_red_decl", "(", "var_type", ",", "TREE_INT_CST_LOW", "(", "offset", ")", ")", ";", "gimplify_assign", "(", "decl", ",", "var", ",", "&", "seq", ")", ";", "}", "if", "(", "lhs", ")", "gimplify_assign", "(", "lhs", ",", "var", ",", "&", "seq", ")", ";", "pop_gimplify_context", "(", "NULL", ")", ";", "gsi_replace_with_seq", "(", "&", "gsi", ",", "seq", ",", "true", ")", ";", "}", ""], "natrual_language": ["Expand", "IFN_GOACC_REDUCTION_SETUP", "."], "TS_V_token": ["gcn", "2", "3", "1", "5"], "File": "gcn-tree", "Func": "gcn_goacc_reduction_setup", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29898, "Length": 170}
{"ground_truth": ["", "static", "void", "gcn_goacc_reduction_teardown", "(", "gcall", "*", "call", ")", "{", "gimple_stmt_iterator", "gsi", "=", "gsi_for_stmt", "(", "call", ")", ";", "tree", "lhs", "=", "gimple_call_lhs", "(", "call", ")", ";", "tree", "var", "=", "gimple_call_arg", "(", "call", ",", "2", ")", ";", "int", "level", "=", "TREE_INT_CST_LOW", "(", "gimple_call_arg", "(", "call", ",", "3", ")", ")", ";", "gimple_seq", "seq", "=", "NULL", ";", "push_gimplify_context", "(", "true", ")", ";", "if", "(", "level", "==", "GOMP_DIM_WORKER", ")", "{", "tree", "var_type", "=", "TREE_TYPE", "(", "var", ")", ";", "tree", "offset", "=", "gimple_call_arg", "(", "call", ",", "5", ")", ";", "tree", "decl", "=", "gcn_goacc_get_worker_red_decl", "(", "var_type", ",", "TREE_INT_CST_LOW", "(", "offset", ")", ")", ";", "var", "=", "decl", ";", "}", "if", "(", "level", "!=", "GOMP_DIM_GANG", ")", "{", "tree", "ref_to_res", "=", "gimple_call_arg", "(", "call", ",", "1", ")", ";", "if", "(", "!", "integer_zerop", "(", "ref_to_res", ")", ")", "gimplify_assign", "(", "build_simple_mem_ref", "(", "ref_to_res", ")", ",", "var", ",", "&", "seq", ")", ";", "}", "if", "(", "lhs", ")", "gimplify_assign", "(", "lhs", ",", "unshare_expr", "(", "var", ")", ",", "&", "seq", ")", ";", "pop_gimplify_context", "(", "NULL", ")", ";", "gsi_replace_with_seq", "(", "&", "gsi", ",", "seq", ",", "true", ")", ";", "}", ""], "natrual_language": ["Expand", "IFN_GOACC_REDUCTION_TEARDOWN", "."], "TS_V_token": ["gcn", "2", "3", "5", "1"], "File": "gcn-tree", "Func": "gcn_goacc_reduction_teardown", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29899, "Length": 173}
{"ground_truth": ["", "static", "tree", "gcn_lockfull_update", "(", "location_t", "loc", ",", "gimple_stmt_iterator", "*", "gsi", ",", "tree", "ptr", ",", "tree", "var", ",", "tree_code", "op", ")", "{", "tree", "var_type", "=", "TREE_TYPE", "(", "var", ")", ";", "tree", "swap_fn", "=", "gcn_builtin_decl", "(", "GCN_BUILTIN_CMP_SWAP", ",", "true", ")", ";", "tree", "uns_unlocked", "=", "build_int_cst", "(", "unsigned_type_node", ",", "0", ")", ";", "tree", "uns_locked", "=", "build_int_cst", "(", "unsigned_type_node", ",", "1", ")", ";", "gimple", "*", "nop", "=", "gimple_build_nop", "(", ")", ";", "gsi_insert_before", "(", "gsi", ",", "nop", ",", "GSI_SAME_STMT", ")", ";", "basic_block", "entry_bb", "=", "gsi_bb", "(", "*", "gsi", ")", ";", "edge", "entry_edge", "=", "split_block", "(", "entry_bb", ",", "nop", ")", ";", "basic_block", "lock_bb", "=", "entry_edge", "->", "dest", ";", "*", "gsi", "=", "gsi_for_stmt", "(", "gsi_stmt", "(", "*", "gsi", ")", ")", ";", "gimple_seq", "lock_seq", "=", "NULL", ";", "tree", "lock_var", "=", "make_ssa_name", "(", "unsigned_type_node", ")", ";", "tree", "lock_expr", "=", "gcn_global_lock_addr", "(", ")", ";", "lock_expr", "=", "build_call_expr_loc", "(", "loc", ",", "swap_fn", ",", "3", ",", "lock_expr", ",", "uns_unlocked", ",", "uns_locked", ")", ";", "gimplify_assign", "(", "lock_var", ",", "lock_expr", ",", "&", "lock_seq", ")", ";", "gcond", "*", "cond", "=", "gimple_build_cond", "(", "EQ_EXPR", ",", "lock_var", ",", "uns_unlocked", ",", "NULL_TREE", ",", "NULL_TREE", ")", ";", "gimple_seq_add_stmt", "(", "&", "lock_seq", ",", "cond", ")", ";", "gimple", "*", "lock_end", "=", "gimple_seq_last", "(", "lock_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "lock_seq", ",", "GSI_SAME_STMT", ")", ";", "edge", "locked_edge", "=", "split_block", "(", "lock_bb", ",", "lock_end", ")", ";", "basic_block", "update_bb", "=", "locked_edge", "->", "dest", ";", "lock_bb", "=", "locked_edge", "->", "src", ";", "*", "gsi", "=", "gsi_for_stmt", "(", "gsi_stmt", "(", "*", "gsi", ")", ")", ";", "locked_edge", "->", "flags", "^=", "EDGE_TRUE_VALUE", "|", "EDGE_FALLTHRU", ";", "locked_edge", "->", "probability", "=", "profile_probability", "::", "even", "(", ")", ";", "edge", "loop_edge", "=", "make_edge", "(", "lock_bb", ",", "lock_bb", ",", "EDGE_FALSE_VALUE", ")", ";", "loop_edge", "->", "probability", "=", "profile_probability", "::", "even", "(", ")", ";", "set_immediate_dominator", "(", "CDI_DOMINATORS", ",", "lock_bb", ",", "entry_bb", ")", ";", "set_immediate_dominator", "(", "CDI_DOMINATORS", ",", "update_bb", ",", "lock_bb", ")", ";", "loop", "*", "lock_loop", "=", "alloc_loop", "(", ")", ";", "lock_loop", "->", "header", "=", "lock_bb", ";", "lock_loop", "->", "latch", "=", "lock_bb", ";", "lock_loop", "->", "nb_iterations_estimate", "=", "1", ";", "lock_loop", "->", "any_estimate", "=", "true", ";", "add_loop", "(", "lock_loop", ",", "entry_bb", "->", "loop_father", ")", ";", "gimple_seq", "red_seq", "=", "NULL", ";", "tree", "acc_in", "=", "make_ssa_name", "(", "var_type", ")", ";", "tree", "ref_in", "=", "build_simple_mem_ref", "(", "ptr", ")", ";", "TREE_THIS_VOLATILE", "(", "ref_in", ")", "=", "1", ";", "gimplify_assign", "(", "acc_in", ",", "ref_in", ",", "&", "red_seq", ")", ";", "tree", "acc_out", "=", "make_ssa_name", "(", "var_type", ")", ";", "tree", "update_expr", "=", "fold_build2", "(", "op", ",", "var_type", ",", "ref_in", ",", "var", ")", ";", "gimplify_assign", "(", "acc_out", ",", "update_expr", ",", "&", "red_seq", ")", ";", "tree", "ref_out", "=", "build_simple_mem_ref", "(", "ptr", ")", ";", "TREE_THIS_VOLATILE", "(", "ref_out", ")", "=", "1", ";", "gimplify_assign", "(", "ref_out", ",", "acc_out", ",", "&", "red_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "red_seq", ",", "GSI_SAME_STMT", ")", ";", "gimple_seq", "unlock_seq", "=", "NULL", ";", "tree", "unlock_expr", "=", "gcn_global_lock_addr", "(", ")", ";", "unlock_expr", "=", "build_call_expr_loc", "(", "loc", ",", "swap_fn", ",", "3", ",", "unlock_expr", ",", "uns_locked", ",", "uns_unlocked", ")", ";", "gimplify_and_add", "(", "unlock_expr", ",", "&", "unlock_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "unlock_seq", ",", "GSI_SAME_STMT", ")", ";", "return", "acc_out", ";", "}", ""], "natrual_language": ["Helper", "function", "for", "gcn_reduction_update", ".", "Insert", "code", "to", "lockfully", "update", "*", "PTR", "with", "*", "PTR", "OP", "VAR", "just", "before", "GSI", ".", "This", "is", "necessary", "for", "types", "larger", "than", "64", "bits", ",", "where", "there", "is", "no", "cmp", "&", "swap", "instruction", "to", "implement", "a", "lockless", "scheme", ".", "We", "use", "a", "lock", "variable", "in", "global", "memory", ".", "while", "(", "cmp", "&", "swap", "(", "&", "lock_var", ",", "0", ",", "1", ")", ")", "continue", ";", "T", "accum", "=", "*", "ptr", ";", "accum", "=", "accum", "OP", "var", ";", "*", "ptr", "=", "accum", ";", "cmp", "&", "swap", "(", "&", "lock_var", ",", "1", ",", "0", ")", ";", "return", "accum", ";", "A", "lock", "in", "global", "memory", "is", "necessary", "to", "force", "execution", "engine", "descheduling", "and", "avoid", "resource", "starvation", "that", "can", "occur", "if", "the", "lock", "is", "in", "shared", "memory", "."], "TS_V_token": ["gcn", "0", "1", "3", "1", "1", "1", "3"], "File": "gcn-tree", "Func": "gcn_lockfull_update", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29900, "Length": 492}
{"ground_truth": ["", "static", "tree", "gcn_lockless_update", "(", "location_t", "loc", ",", "gimple_stmt_iterator", "*", "gsi", ",", "tree", "ptr", ",", "tree", "var", ",", "tree_code", "op", ")", "{", "unsigned", "fn", "=", "GCN_BUILTIN_CMP_SWAP", ";", "tree_code", "code", "=", "NOP_EXPR", ";", "tree", "arg_type", "=", "unsigned_type_node", ";", "tree", "var_type", "=", "TREE_TYPE", "(", "var", ")", ";", "if", "(", "TREE_CODE", "(", "var_type", ")", "==", "COMPLEX_TYPE", "||", "TREE_CODE", "(", "var_type", ")", "==", "REAL_TYPE", ")", "code", "=", "VIEW_CONVERT_EXPR", ";", "if", "(", "TYPE_SIZE", "(", "var_type", ")", "==", "TYPE_SIZE", "(", "long_long_unsigned_type_node", ")", ")", "{", "arg_type", "=", "long_long_unsigned_type_node", ";", "fn", "=", "GCN_BUILTIN_CMP_SWAPLL", ";", "}", "tree", "swap_fn", "=", "gcn_builtin_decl", "(", "fn", ",", "true", ")", ";", "gimple_seq", "init_seq", "=", "NULL", ";", "tree", "init_var", "=", "make_ssa_name", "(", "arg_type", ")", ";", "tree", "init_expr", "=", "omp_reduction_init_op", "(", "loc", ",", "op", ",", "var_type", ")", ";", "init_expr", "=", "fold_build1", "(", "code", ",", "arg_type", ",", "init_expr", ")", ";", "gimplify_assign", "(", "init_var", ",", "init_expr", ",", "&", "init_seq", ")", ";", "gimple", "*", "init_end", "=", "gimple_seq_last", "(", "init_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "init_seq", ",", "GSI_SAME_STMT", ")", ";", "basic_block", "pre_bb", "=", "gsi_bb", "(", "*", "gsi", ")", ";", "edge", "pre_edge", "=", "split_block", "(", "pre_bb", ",", "init_end", ")", ";", "basic_block", "loop_bb", "=", "pre_edge", "->", "dest", ";", "pre_bb", "=", "pre_edge", "->", "src", ";", "*", "gsi", "=", "gsi_for_stmt", "(", "gsi_stmt", "(", "*", "gsi", ")", ")", ";", "tree", "expect_var", "=", "make_ssa_name", "(", "arg_type", ")", ";", "tree", "actual_var", "=", "make_ssa_name", "(", "arg_type", ")", ";", "tree", "write_var", "=", "make_ssa_name", "(", "arg_type", ")", ";", "gimple_seq", "red_seq", "=", "NULL", ";", "tree", "write_expr", "=", "fold_build1", "(", "code", ",", "var_type", ",", "expect_var", ")", ";", "write_expr", "=", "fold_build2", "(", "op", ",", "var_type", ",", "write_expr", ",", "var", ")", ";", "write_expr", "=", "fold_build1", "(", "code", ",", "arg_type", ",", "write_expr", ")", ";", "gimplify_assign", "(", "write_var", ",", "write_expr", ",", "&", "red_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "red_seq", ",", "GSI_SAME_STMT", ")", ";", "gimple_seq", "latch_seq", "=", "NULL", ";", "tree", "swap_expr", "=", "build_call_expr_loc", "(", "loc", ",", "swap_fn", ",", "3", ",", "ptr", ",", "expect_var", ",", "write_var", ")", ";", "gimplify_assign", "(", "actual_var", ",", "swap_expr", ",", "&", "latch_seq", ")", ";", "gcond", "*", "cond", "=", "gimple_build_cond", "(", "EQ_EXPR", ",", "actual_var", ",", "expect_var", ",", "NULL_TREE", ",", "NULL_TREE", ")", ";", "gimple_seq_add_stmt", "(", "&", "latch_seq", ",", "cond", ")", ";", "gimple", "*", "latch_end", "=", "gimple_seq_last", "(", "latch_seq", ")", ";", "gsi_insert_seq_before", "(", "gsi", ",", "latch_seq", ",", "GSI_SAME_STMT", ")", ";", "edge", "post_edge", "=", "split_block", "(", "loop_bb", ",", "latch_end", ")", ";", "basic_block", "post_bb", "=", "post_edge", "->", "dest", ";", "loop_bb", "=", "post_edge", "->", "src", ";", "*", "gsi", "=", "gsi_for_stmt", "(", "gsi_stmt", "(", "*", "gsi", ")", ")", ";", "post_edge", "->", "flags", "^=", "EDGE_TRUE_VALUE", "|", "EDGE_FALLTHRU", ";", "edge", "loop_edge", "=", "make_edge", "(", "loop_bb", ",", "loop_bb", ",", "EDGE_FALSE_VALUE", ")", ";", "set_immediate_dominator", "(", "CDI_DOMINATORS", ",", "loop_bb", ",", "pre_bb", ")", ";", "set_immediate_dominator", "(", "CDI_DOMINATORS", ",", "post_bb", ",", "loop_bb", ")", ";", "gphi", "*", "phi", "=", "create_phi_node", "(", "expect_var", ",", "loop_bb", ")", ";", "add_phi_arg", "(", "phi", ",", "init_var", ",", "pre_edge", ",", "loc", ")", ";", "add_phi_arg", "(", "phi", ",", "actual_var", ",", "loop_edge", ",", "loc", ")", ";", "loop", "*", "loop", "=", "alloc_loop", "(", ")", ";", "loop", "->", "header", "=", "loop_bb", ";", "loop", "->", "latch", "=", "loop_bb", ";", "add_loop", "(", "loop", ",", "loop_bb", "->", "loop_father", ")", ";", "return", "fold_build1", "(", "code", ",", "var_type", ",", "write_var", ")", ";", "}", ""], "natrual_language": ["Helper", "function", "for", "gcn_reduction_update", ".", "Insert", "code", "to", "locklessly", "update", "*", "PTR", "with", "*", "PTR", "OP", "VAR", "just", "before", "GSI", ".", "We", "use", "a", "lockless", "scheme", "for", "nearly", "all", "case", ",", "which", "looks", "like", ":", "actual", "=", "initval", "(", "OP", ")", ";", "do", "{", "guess", "=", "actual", ";", "write", "=", "guess", "OP", "myval", ";", "actual", "=", "cmp", "&", "swap", "(", "ptr", ",", "guess", ",", "write", ")", "}", "while", "(", "actual", "bit-different-to", "guess", ")", ";", "return", "write", ";", "This", "relies", "on", "a", "cmp", "&", "swap", "instruction", ",", "which", "is", "available", "for", "32-", "and", "64-bit", "types", ".", "Larger", "types", "must", "use", "a", "locking", "scheme", "."], "TS_V_token": ["gcn", "3"], "File": "gcn-tree", "Func": "gcn_lockless_update", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29901, "Length": 510}
{"ground_truth": ["", "static", "tree", "gcn_reduction_update", "(", "location_t", "loc", ",", "gimple_stmt_iterator", "*", "gsi", ",", "tree", "ptr", ",", "tree", "var", ",", "tree_code", "op", ")", "{", "tree", "type", "=", "TREE_TYPE", "(", "var", ")", ";", "tree", "size", "=", "TYPE_SIZE", "(", "type", ")", ";", "if", "(", "size", "==", "TYPE_SIZE", "(", "unsigned_type_node", ")", "||", "size", "==", "TYPE_SIZE", "(", "long_long_unsigned_type_node", ")", ")", "return", "gcn_lockless_update", "(", "loc", ",", "gsi", ",", "ptr", ",", "var", ",", "op", ")", ";", "else", "return", "gcn_lockfull_update", "(", "loc", ",", "gsi", ",", "ptr", ",", "var", ",", "op", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "sequence", "to", "update", "a", "reduction", "accumulator", "at", "*", "PTR", "with", "the", "value", "held", "in", "VAR", "using", "operator", "OP", ".", "Return", "the", "updated", "value", ".", "TODO", ":", "optimize", "for", "atomic", "ops", "and", "independent", "complex", "ops", "."], "TS_V_token": ["gcn"], "File": "gcn-tree", "Func": "gcn_reduction_update", "Target": "gcn", "Target_Clf": "GPU", "Compiler_Type": "GCC", "Idx": 29902, "Length": 83}