Advertisement
Guest User

Untitled

a guest
Feb 14th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 3.66 KB | None | 0 0
  1. ; Function Attrs: alwaysinline
  2. define i32 @row_func(i64* %group_by_buff, i64* %small_group_by_buff, i32* %crt_match, i32* %total_matched, i32* %old_total_matched, i64* %agg_init_val, i64 %pos, i64* %frag_row_off, i64* %num_rows_per_scan, i8* %literals, i8* %col_buf0, i8* %col_buf1, i8* %col_buf2, i8* %col_buf3, i64* %join_hash_tables) #22 {
  3. entry:
  4.   %anti_join_match_found = alloca i1
  5.   store i1 false, i1* %anti_join_match_found
  6.   br label %ub_iter_preheader_
  7.  
  8. exit:                                             ; preds = %ub_antijoin_postcheck_, %filter_false
  9.   ret i32 0
  10.  
  11. ub_antijoin_agg_:                                 ; preds = %ub_antijoin_postcheck_
  12.   br i1 true, label %filter_true, label %filter_false
  13.  
  14. filter_true:                                      ; preds = %ub_antijoin_agg_
  15.   store i32 1, i32* %crt_match
  16.   %0 = atomicrmw add i32* %total_matched, i32 1 monotonic
  17.   store i32 %0, i32* %old_total_matched
  18.   %1 = load i32, i32* %old_total_matched
  19.   %2 = bitcast i8* %literals to i64*
  20.   %3 = getelementptr i64, i64* %2, i32 -3
  21.   %4 = load i64, i64* %3
  22.   %5 = trunc i64 %4 to i32
  23.   %6 = call i64* @get_scan_output_slot(i64* %group_by_buff, i32 %5, i32 %1, i64 %pos, i32 4)
  24.   %7 = icmp ne i64* %6, null
  25.   br i1 %7, label %groupby_nullcheck_true, label %groupby_nullcheck_false
  26.  
  27. filter_false:                                     ; preds = %groupby_nullcheck_true, %ub_antijoin_agg_
  28.   br label %exit
  29.  
  30. groupby_nullcheck_true:                           ; preds = %filter_true
  31.   %8 = call i64 @fixed_width_int_decode(i8* %col_buf0, i32 4, i64 %pos)
  32.   %9 = trunc i64 %8 to i32
  33.   %10 = getelementptr i64, i64* %6, i32 0
  34.   %11 = sext i32 %9 to i64
  35.   call void @agg_id_shared(i64* %10, i64 %11)
  36.   %12 = call double @fixed_width_double_decode(i8* %col_buf1, i64 %pos)
  37.   %13 = getelementptr i64, i64* %6, i32 1
  38.   call void @agg_id_double_shared(i64* %13, double %12)
  39.   %14 = call double @fixed_width_double_decode(i8* %col_buf2, i64 %pos)
  40.   %15 = getelementptr i64, i64* %6, i32 2
  41.   call void @agg_id_double_shared(i64* %15, double %14)
  42.   br label %filter_false
  43.  
  44. groupby_nullcheck_false:                          ; preds = %filter_true
  45.   %16 = trunc i64 %pos to i32
  46.   %17 = sub i32 0, %16
  47.   ret i32 %17
  48.  
  49. ub_antijoin_postcheck_:                           ; preds = %ub_iter_head_
  50.   %18 = load i1, i1* %anti_join_match_found
  51.   br i1 %18, label %exit, label %ub_antijoin_agg_
  52.  
  53. ub_iter_preheader_:                               ; preds = %entry
  54.   %ub_iter_counter_ptr_ = alloca i64
  55.   store i64 0, i64* %ub_iter_counter_ptr_
  56.   %19 = getelementptr i64, i64* %num_rows_per_scan, i32 1
  57.   %num_rows_per_scan1 = load i64, i64* %19
  58.   br label %ub_iter_head_
  59.  
  60. ub_iter_head_:                                    ; preds = %ub_iter_advance_, %ub_iter_preheader_
  61.   %ub_iter_counter_val_ = load i64, i64* %ub_iter_counter_ptr_
  62.   %20 = icmp slt i64 %ub_iter_counter_val_, %num_rows_per_scan1
  63.   br i1 %20, label %loop_body, label %ub_antijoin_postcheck_
  64.  
  65. ub_iter_advance_:                                 ; preds = %filter_false3
  66.   %21 = add i64 %ub_iter_counter_val_, 1
  67.   store i64 %21, i64* %ub_iter_counter_ptr_
  68.   br label %ub_iter_head_
  69.  
  70. loop_body:                                        ; preds = %ub_iter_head_
  71.   %22 = call double @fixed_width_double_decode(i8* %col_buf3, i64 %ub_iter_counter_val_)
  72.   %23 = fcmp oeq double %12, %22
  73.   %24 = and i1 true, %23
  74.   br i1 %24, label %filter_true2, label %filter_false3
  75.  
  76. filter_true2:                                     ; preds = %loop_body
  77.   store i1 true, i1* %anti_join_match_found
  78.   br label %filter_false3
  79.  
  80. filter_false3:                                    ; preds = %filter_true2, %loop_body
  81.   br label %ub_iter_advance_
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement