@@ -339,25 +339,28 @@ def sort_distributed_run(sort_node, array_dists, typemap, calltypes, typingctx,
339339 gen_getitem (var , data_tup_var , i , calltypes , nodes )
340340 return nodes
341341
342- ascending = sort_node .ascending
342+ ascending_var = ir .Var (scope , mk_unique_var ('ascending' ), loc )
343+ typemap [ascending_var .name ] = types .bool_
344+ nodes .append (
345+ ir .Assign (ir .Const (sort_node .ascending , loc ), ascending_var , loc ))
346+
343347 # parallel case
344- def par_sort_impl (key_arrs , data ):
348+ def par_sort_impl (key_arrs , data , ascending ):
345349 out_key , out_data = parallel_sort (key_arrs , data , ascending )
346350 # TODO: use k-way merge instead of sort
347351 # sort output
348- hpat .hiframes .sort .local_sort (out_key , out_data )
352+ hpat .hiframes .sort .local_sort (out_key , out_data , ascending )
349353 return out_key , out_data
350354
351355 f_block = compile_to_numba_ir (par_sort_impl ,
352356 {'hpat' : hpat ,
353357 'parallel_sort' : parallel_sort ,
354358 'to_string_list' : to_string_list ,
355- 'cp_str_list_to_array' : cp_str_list_to_array ,
356- 'ascending' : ascending },
359+ 'cp_str_list_to_array' : cp_str_list_to_array },
357360 typingctx ,
358- (key_typ , data_tup_typ ),
361+ (key_typ , data_tup_typ , types . bool_ ),
359362 typemap , calltypes ).blocks .popitem ()[1 ]
360- replace_arg_nodes (f_block , [key_arrs_tup_var , data_tup_var ])
363+ replace_arg_nodes (f_block , [key_arrs_tup_var , data_tup_var , ascending_var ])
361364 nodes += f_block .body [:- 2 ]
362365 ret_var = nodes [- 1 ].target
363366 # get output key
0 commit comments