Test source: git
Source: <stdin> ---------------------------------------- define void @call_all(i32 %schedule, * %lock, i32 %lock_hint, * %nest_lock, i32 %i, * %s, i64 %st, * %vp, double %d, i32 %proc_bind, i64 %allocator_handle, * %cp, i64 %event_handle, i32 %pause_resource) { %entry: %schedule.addr = alloca i64 4, align 4 %lock.addr = alloca i64 8, align 8 %lock_hint.addr = alloca i64 4, align 4 %nest_lock.addr = alloca i64 8, align 8 %i.addr = alloca i64 4, align 4 %s.addr = alloca i64 8, align 8 %st.addr = alloca i64 8, align 8 %vp.addr = alloca i64 8, align 8 %d.addr = alloca i64 8, align 8 %proc_bind.addr = alloca i64 4, align 4 %allocator_handle.addr = alloca i64 8, align 8 %cp.addr = alloca i64 8, align 8 %event_handle.addr = alloca i64 8, align 8 %pause_resource.addr = alloca i64 4, align 4 store i32 %schedule, * %schedule.addr, align 4 store * %lock, * %lock.addr, align 8 store i32 %lock_hint, * %lock_hint.addr, align 4 store * %nest_lock, * %nest_lock.addr, align 8 store i32 %i, * %i.addr, align 4 store * %s, * %s.addr, align 8 store i64 %st, * %st.addr, align 8 store * %vp, * %vp.addr, align 8 store double %d, * %d.addr, align 8 store i32 %proc_bind, * %proc_bind.addr, align 4 store i64 %allocator_handle, * %allocator_handle.addr, align 8 store * %cp, * %cp.addr, align 8 store i64 %event_handle, * %event_handle.addr, align 8 store i32 %pause_resource, * %pause_resource.addr, align 4 call void @omp_set_num_threads(i32 0) call void @omp_set_dynamic(i32 0) call void @omp_set_nested(i32 0) call void @omp_set_max_active_levels(i32 0) %0 = load i32, * %schedule.addr, align 4 call void @omp_set_schedule(i32 %0, i32 0) %call = call i32 @omp_get_num_threads() store i32 %call, * %i.addr, align 4 %1 = load i32, * %i.addr, align 4 call void @use_int(i32 %1) %call1 = call i32 @omp_get_dynamic() store i32 %call1, * %i.addr, align 4 %2 = load i32, * %i.addr, align 4 call void @use_int(i32 %2) %call2 = call i32 @omp_get_nested() store i32 %call2, * %i.addr, align 4 %3 = load i32, * %i.addr, align 4 call void @use_int(i32 %3) %call3 = call i32 @omp_get_max_threads() store i32 %call3, * %i.addr, align 4 %4 = load i32, * %i.addr, align 4 call void @use_int(i32 %4) %call4 = call i32 @omp_get_thread_num() store i32 %call4, * %i.addr, align 4 %5 = load i32, * %i.addr, align 4 call void @use_int(i32 %5) %call5 = call i32 @omp_get_num_procs() store i32 %call5, * %i.addr, align 4 %6 = load i32, * %i.addr, align 4 call void @use_int(i32 %6) %call6 = call i32 @omp_in_parallel() store i32 %call6, * %i.addr, align 4 %7 = load i32, * %i.addr, align 4 call void @use_int(i32 %7) %call7 = call i32 @omp_in_final() store i32 %call7, * %i.addr, align 4 %8 = load i32, * %i.addr, align 4 call void @use_int(i32 %8) %call8 = call i32 @omp_get_active_level() store i32 %call8, * %i.addr, align 4 %9 = load i32, * %i.addr, align 4 call void @use_int(i32 %9) %call9 = call i32 @omp_get_level() store i32 %call9, * %i.addr, align 4 %10 = load i32, * %i.addr, align 4 call void @use_int(i32 %10) %call10 = call i32 @omp_get_ancestor_thread_num(i32 0) store i32 %call10, * %i.addr, align 4 %11 = load i32, * %i.addr, align 4 call void @use_int(i32 %11) %call11 = call i32 @omp_get_team_size(i32 0) store i32 %call11, * %i.addr, align 4 %12 = load i32, * %i.addr, align 4 call void @use_int(i32 %12) %call12 = call i32 @omp_get_thread_limit() store i32 %call12, * %i.addr, align 4 %13 = load i32, * %i.addr, align 4 call void @use_int(i32 %13) %call13 = call i32 @omp_get_max_active_levels() store i32 %call13, * %i.addr, align 4 %14 = load i32, * %i.addr, align 4 call void @use_int(i32 %14) call void @omp_get_schedule(* %schedule.addr, * %i.addr) %call14 = call i32 @omp_get_max_task_priority() store i32 %call14, * %i.addr, align 4 %15 = load i32, * %i.addr, align 4 call void @use_int(i32 %15) %16 = load *, * %lock.addr, align 8 call void @omp_init_lock(* %16) %17 = load *, * %lock.addr, align 8 call void @omp_set_lock(* %17) %18 = load *, * %lock.addr, align 8 call void @omp_unset_lock(* %18) %19 = load *, * %lock.addr, align 8 call void @omp_destroy_lock(* %19) %20 = load *, * %lock.addr, align 8 %call15 = call i32 @omp_test_lock(* %20) store i32 %call15, * %i.addr, align 4 %21 = load i32, * %i.addr, align 4 call void @use_int(i32 %21) %22 = load *, * %nest_lock.addr, align 8 call void @omp_init_nest_lock(* %22) %23 = load *, * %nest_lock.addr, align 8 call void @omp_set_nest_lock(* %23) %24 = load *, * %nest_lock.addr, align 8 call void @omp_unset_nest_lock(* %24) %25 = load *, * %nest_lock.addr, align 8 call void @omp_destroy_nest_lock(* %25) %26 = load *, * %nest_lock.addr, align 8 %call16 = call i32 @omp_test_nest_lock(* %26) store i32 %call16, * %i.addr, align 4 %27 = load i32, * %i.addr, align 4 call void @use_int(i32 %27) %28 = load *, * %lock.addr, align 8 %29 = load i32, * %lock_hint.addr, align 4 call void @omp_init_lock_with_hint(* %28, i32 %29) %30 = load *, * %nest_lock.addr, align 8 %31 = load i32, * %lock_hint.addr, align 4 call void @omp_init_nest_lock_with_hint(* %30, i32 %31) %call17 = call double @omp_get_wtime() store double %call17, * %d.addr, align 8 %32 = load double, * %d.addr, align 8 call void @use_double(double %32) %call18 = call double @omp_get_wtick() store double %call18, * %d.addr, align 8 %33 = load double, * %d.addr, align 8 call void @use_double(double %33) %call19 = call i32 @omp_get_default_device() store i32 %call19, * %i.addr, align 4 %34 = load i32, * %i.addr, align 4 call void @use_int(i32 %34) call void @omp_set_default_device(i32 0) %call20 = call i32 @omp_is_initial_device() store i32 %call20, * %i.addr, align 4 %35 = load i32, * %i.addr, align 4 call void @use_int(i32 %35) %call21 = call i32 @omp_get_num_devices() store i32 %call21, * %i.addr, align 4 %36 = load i32, * %i.addr, align 4 call void @use_int(i32 %36) %call22 = call i32 @omp_get_num_teams() store i32 %call22, * %i.addr, align 4 %37 = load i32, * %i.addr, align 4 call void @use_int(i32 %37) %call23 = call i32 @omp_get_team_num() store i32 %call23, * %i.addr, align 4 %38 = load i32, * %i.addr, align 4 call void @use_int(i32 %38) %call24 = call i32 @omp_get_cancellation() store i32 %call24, * %i.addr, align 4 %39 = load i32, * %i.addr, align 4 call void @use_int(i32 %39) %call25 = call i32 @omp_get_initial_device() store i32 %call25, * %i.addr, align 4 %40 = load i32, * %i.addr, align 4 call void @use_int(i32 %40) %41 = load i64, * %st.addr, align 8 %42 = load i32, * %i.addr, align 4 %call26 = call * @omp_target_alloc(i64 %41, i32 %42) store * %call26, * %vp.addr, align 8 %43 = load *, * %vp.addr, align 8 call void @use_voidptr(* %43) %44 = load *, * %vp.addr, align 8 %45 = load i32, * %i.addr, align 4 call void @omp_target_free(* %44, i32 %45) %46 = load *, * %vp.addr, align 8 %47 = load i32, * %i.addr, align 4 %call27 = call i32 @omp_target_is_present(* %46, i32 %47) store i32 %call27, * %i.addr, align 4 %48 = load i32, * %i.addr, align 4 call void @use_int(i32 %48) %49 = load *, * %vp.addr, align 8 %50 = load *, * %vp.addr, align 8 %51 = load i64, * %st.addr, align 8 %52 = load i64, * %st.addr, align 8 %53 = load i64, * %st.addr, align 8 %54 = load i32, * %i.addr, align 4 %55 = load i32, * %i.addr, align 4 %call28 = call i32 @omp_target_memcpy(* %49, * %50, i64 %51, i64 %52, i64 %53, i32 %54, i32 %55) store i32 %call28, * %i.addr, align 4 %56 = load i32, * %i.addr, align 4 call void @use_int(i32 %56) %57 = load *, * %vp.addr, align 8 %58 = load *, * %vp.addr, align 8 %59 = load i64, * %st.addr, align 8 %60 = load i64, * %st.addr, align 8 %61 = load i32, * %i.addr, align 4 %call29 = call i32 @omp_target_associate_ptr(* %57, * %58, i64 %59, i64 %60, i32 %61) store i32 %call29, * %i.addr, align 4 %62 = load i32, * %i.addr, align 4 call void @use_int(i32 %62) %63 = load *, * %vp.addr, align 8 %64 = load i32, * %i.addr, align 4 %call30 = call i32 @omp_target_disassociate_ptr(* %63, i32 %64) store i32 %call30, * %i.addr, align 4 %65 = load i32, * %i.addr, align 4 call void @use_int(i32 %65) %call31 = call i32 @omp_get_device_num() store i32 %call31, * %i.addr, align 4 %66 = load i32, * %i.addr, align 4 call void @use_int(i32 %66) %call32 = call i32 @omp_get_proc_bind() store i32 %call32, * %proc_bind.addr, align 4 %call33 = call i32 @omp_get_num_places() store i32 %call33, * %i.addr, align 4 %67 = load i32, * %i.addr, align 4 call void @use_int(i32 %67) %call34 = call i32 @omp_get_place_num_procs(i32 0) store i32 %call34, * %i.addr, align 4 %68 = load i32, * %i.addr, align 4 call void @use_int(i32 %68) %69 = load i32, * %i.addr, align 4 call void @omp_get_place_proc_ids(i32 %69, * %i.addr) %call35 = call i32 @omp_get_place_num() store i32 %call35, * %i.addr, align 4 %70 = load i32, * %i.addr, align 4 call void @use_int(i32 %70) %call36 = call i32 @omp_get_partition_num_places() store i32 %call36, * %i.addr, align 4 %71 = load i32, * %i.addr, align 4 call void @use_int(i32 %71) call void @omp_get_partition_place_nums(* %i.addr) %72 = load i32, * %i.addr, align 4 %73 = load i32, * %i.addr, align 4 %74 = load *, * %vp.addr, align 8 %call37 = call i32 @omp_control_tool(i32 %72, i32 %73, * %74) store i32 %call37, * %i.addr, align 4 %75 = load i32, * %i.addr, align 4 call void @use_int(i32 %75) %76 = load i64, * %allocator_handle.addr, align 8 call void @omp_destroy_allocator(i64 %76) %77 = load i64, * %allocator_handle.addr, align 8 call void @omp_set_default_allocator(i64 %77) %call38 = call i64 @omp_get_default_allocator() store i64 %call38, * %allocator_handle.addr, align 8 %78 = load i64, * %st.addr, align 8 %79 = load i64, * %allocator_handle.addr, align 8 %call39 = call * @omp_alloc(i64 %78, i64 %79) store * %call39, * %vp.addr, align 8 %80 = load *, * %vp.addr, align 8 call void @use_voidptr(* %80) %81 = load *, * %vp.addr, align 8 %82 = load i64, * %allocator_handle.addr, align 8 call void @omp_free(* %81, i64 %82) %83 = load i64, * %st.addr, align 8 %84 = load i64, * %allocator_handle.addr, align 8 %call40 = call * @omp_alloc(i64 %83, i64 %84) store * %call40, * %vp.addr, align 8 %85 = load *, * %vp.addr, align 8 call void @use_voidptr(* %85) %86 = load *, * %vp.addr, align 8 %87 = load i64, * %allocator_handle.addr, align 8 call void @omp_free(* %86, i64 %87) %88 = load *, * %s.addr, align 8 call void @ompc_set_affinity_format(* %88) %89 = load *, * %cp.addr, align 8 %90 = load i64, * %st.addr, align 8 %call41 = call i64 @ompc_get_affinity_format(* %89, i64 %90) store i64 %call41, * %st.addr, align 8 %91 = load i64, * %st.addr, align 8 call void @use_sizet(i64 %91) %92 = load *, * %s.addr, align 8 call void @ompc_display_affinity(* %92) %93 = load *, * %cp.addr, align 8 %94 = load i64, * %st.addr, align 8 %95 = load *, * %s.addr, align 8 %call42 = call i64 @ompc_capture_affinity(* %93, i64 %94, * %95) store i64 %call42, * %st.addr, align 8 %96 = load i64, * %st.addr, align 8 call void @use_sizet(i64 %96) %97 = load i64, * %event_handle.addr, align 8 call void @omp_fulfill_event(i64 %97) %98 = load i32, * %pause_resource.addr, align 4 %99 = load i32, * %i.addr, align 4 %call43 = call i32 @omp_pause_resource(i32 %98, i32 %99) store i32 %call43, * %i.addr, align 4 %100 = load i32, * %i.addr, align 4 call void @use_int(i32 %100) %101 = load i32, * %pause_resource.addr, align 4 %call44 = call i32 @omp_pause_resource_all(i32 %101) store i32 %call44, * %i.addr, align 4 %102 = load i32, * %i.addr, align 4 call void @use_int(i32 %102) %call45 = call i32 @omp_get_supported_active_levels() store i32 %call45, * %i.addr, align 4 %103 = load i32, * %i.addr, align 4 call void @use_int(i32 %103) ret void } => define void @call_all(i32 %schedule, * %lock, i32 %lock_hint, * %nest_lock, i32 %i, * %s, i64 %st, * %vp, double %d, i32 %proc_bind, i64 %allocator_handle, * %cp, i64 %event_handle, i32 %pause_resource) { %entry: %schedule.addr = alloca i64 4, align 4 %lock.addr = alloca i64 8, align 8 %lock_hint.addr = alloca i64 4, align 4 %nest_lock.addr = alloca i64 8, align 8 %i.addr = alloca i64 4, align 4 %s.addr = alloca i64 8, align 8 %st.addr = alloca i64 8, align 8 %vp.addr = alloca i64 8, align 8 %d.addr = alloca i64 8, align 8 %proc_bind.addr = alloca i64 4, align 4 %allocator_handle.addr = alloca i64 8, align 8 %cp.addr = alloca i64 8, align 8 %event_handle.addr = alloca i64 8, align 8 %pause_resource.addr = alloca i64 4, align 4 store i32 %schedule, * %schedule.addr, align 4 store * %lock, * %lock.addr, align 8 store i32 %lock_hint, * %lock_hint.addr, align 4 store * %nest_lock, * %nest_lock.addr, align 8 store i32 %i, * %i.addr, align 4 store * %s, * %s.addr, align 8 store i64 %st, * %st.addr, align 8 store * %vp, * %vp.addr, align 8 store double %d, * %d.addr, align 8 store i32 %proc_bind, * %proc_bind.addr, align 4 store i64 %allocator_handle, * %allocator_handle.addr, align 8 store * %cp, * %cp.addr, align 8 store i64 %event_handle, * %event_handle.addr, align 8 store i32 %pause_resource, * %pause_resource.addr, align 4 call void @omp_set_num_threads(i32 0) call void @omp_set_dynamic(i32 0) call void @omp_set_nested(i32 0) call void @omp_set_max_active_levels(i32 0) %0 = load i32, * %schedule.addr, align 4 call void @omp_set_schedule(i32 %0, i32 0) %call = call i32 @omp_get_num_threads() store i32 %call, * %i.addr, align 4 %1 = load i32, * %i.addr, align 4 call void @use_int(i32 %1) %call1 = call i32 @omp_get_dynamic() store i32 %call1, * %i.addr, align 4 %2 = load i32, * %i.addr, align 4 call void @use_int(i32 %2) %call2 = call i32 @omp_get_nested() store i32 %call2, * %i.addr, align 4 %3 = load i32, * %i.addr, align 4 call void @use_int(i32 %3) %call3 = call i32 @omp_get_max_threads() store i32 %call3, * %i.addr, align 4 %4 = load i32, * %i.addr, align 4 call void @use_int(i32 %4) %call4 = call i32 @omp_get_thread_num() store i32 %call4, * %i.addr, align 4 %5 = load i32, * %i.addr, align 4 call void @use_int(i32 %5) %call5 = call i32 @omp_get_num_procs() store i32 %call5, * %i.addr, align 4 %6 = load i32, * %i.addr, align 4 call void @use_int(i32 %6) %call6 = call i32 @omp_in_parallel() store i32 %call6, * %i.addr, align 4 %7 = load i32, * %i.addr, align 4 call void @use_int(i32 %7) %call7 = call i32 @omp_in_final() store i32 %call7, * %i.addr, align 4 %8 = load i32, * %i.addr, align 4 call void @use_int(i32 %8) %call8 = call i32 @omp_get_active_level() store i32 %call8, * %i.addr, align 4 %9 = load i32, * %i.addr, align 4 call void @use_int(i32 %9) %call9 = call i32 @omp_get_level() store i32 %call9, * %i.addr, align 4 %10 = load i32, * %i.addr, align 4 call void @use_int(i32 %10) %call10 = call i32 @omp_get_ancestor_thread_num(i32 0) store i32 %call10, * %i.addr, align 4 %11 = load i32, * %i.addr, align 4 call void @use_int(i32 %11) %call11 = call i32 @omp_get_team_size(i32 0) store i32 %call11, * %i.addr, align 4 %12 = load i32, * %i.addr, align 4 call void @use_int(i32 %12) %call12 = call i32 @omp_get_thread_limit() store i32 %call12, * %i.addr, align 4 %13 = load i32, * %i.addr, align 4 call void @use_int(i32 %13) %call13 = call i32 @omp_get_max_active_levels() store i32 %call13, * %i.addr, align 4 %14 = load i32, * %i.addr, align 4 call void @use_int(i32 %14) call void @omp_get_schedule(nocapture * %schedule.addr, nocapture * %i.addr) %call14 = call i32 @omp_get_max_task_priority() store i32 %call14, * %i.addr, align 4 %15 = load i32, * %i.addr, align 4 call void @use_int(i32 %15) %16 = load *, * %lock.addr, align 8 call void @omp_init_lock(* %16) %17 = load *, * %lock.addr, align 8 call void @omp_set_lock(* %17) %18 = load *, * %lock.addr, align 8 call void @omp_unset_lock(* %18) %19 = load *, * %lock.addr, align 8 call void @omp_destroy_lock(* %19) %20 = load *, * %lock.addr, align 8 %call15 = call i32 @omp_test_lock(* %20) store i32 %call15, * %i.addr, align 4 %21 = load i32, * %i.addr, align 4 call void @use_int(i32 %21) %22 = load *, * %nest_lock.addr, align 8 call void @omp_init_nest_lock(* %22) %23 = load *, * %nest_lock.addr, align 8 call void @omp_set_nest_lock(* %23) %24 = load *, * %nest_lock.addr, align 8 call void @omp_unset_nest_lock(* %24) %25 = load *, * %nest_lock.addr, align 8 call void @omp_destroy_nest_lock(* %25) %26 = load *, * %nest_lock.addr, align 8 %call16 = call i32 @omp_test_nest_lock(* %26) store i32 %call16, * %i.addr, align 4 %27 = load i32, * %i.addr, align 4 call void @use_int(i32 %27) %28 = load *, * %lock.addr, align 8 %29 = load i32, * %lock_hint.addr, align 4 call void @omp_init_lock_with_hint(* %28, i32 %29) %30 = load *, * %nest_lock.addr, align 8 %31 = load i32, * %lock_hint.addr, align 4 call void @omp_init_nest_lock_with_hint(* %30, i32 %31) %call17 = call double @omp_get_wtime() store double %call17, * %d.addr, align 8 %32 = load double, * %d.addr, align 8 call void @use_double(double %32) %call18 = call double @omp_get_wtick() store double %call18, * %d.addr, align 8 %33 = load double, * %d.addr, align 8 call void @use_double(double %33) %call19 = call i32 @omp_get_default_device() store i32 %call19, * %i.addr, align 4 %34 = load i32, * %i.addr, align 4 call void @use_int(i32 %34) call void @omp_set_default_device(i32 0) %call20 = call i32 @omp_is_initial_device() store i32 %call20, * %i.addr, align 4 %35 = load i32, * %i.addr, align 4 call void @use_int(i32 %35) %call21 = call i32 @omp_get_num_devices() store i32 %call21, * %i.addr, align 4 %36 = load i32, * %i.addr, align 4 call void @use_int(i32 %36) %call22 = call i32 @omp_get_num_teams() store i32 %call22, * %i.addr, align 4 %37 = load i32, * %i.addr, align 4 call void @use_int(i32 %37) %call23 = call i32 @omp_get_team_num() store i32 %call23, * %i.addr, align 4 %38 = load i32, * %i.addr, align 4 call void @use_int(i32 %38) %call24 = call i32 @omp_get_cancellation() store i32 %call24, * %i.addr, align 4 %39 = load i32, * %i.addr, align 4 call void @use_int(i32 %39) %call25 = call i32 @omp_get_initial_device() store i32 %call25, * %i.addr, align 4 %40 = load i32, * %i.addr, align 4 call void @use_int(i32 %40) %41 = load i64, * %st.addr, align 8 %42 = load i32, * %i.addr, align 4 %call26 = call * @omp_target_alloc(i64 %41, i32 %42) store * %call26, * %vp.addr, align 8 %43 = load *, * %vp.addr, align 8 call void @use_voidptr(* %43) %44 = load *, * %vp.addr, align 8 %45 = load i32, * %i.addr, align 4 call void @omp_target_free(* %44, i32 %45) %46 = load *, * %vp.addr, align 8 %47 = load i32, * %i.addr, align 4 %call27 = call i32 @omp_target_is_present(* %46, i32 %47) store i32 %call27, * %i.addr, align 4 %48 = load i32, * %i.addr, align 4 call void @use_int(i32 %48) %49 = load *, * %vp.addr, align 8 %50 = load *, * %vp.addr, align 8 %51 = load i64, * %st.addr, align 8 %52 = load i64, * %st.addr, align 8 %53 = load i64, * %st.addr, align 8 %54 = load i32, * %i.addr, align 4 %55 = load i32, * %i.addr, align 4 %call28 = call i32 @omp_target_memcpy(* %49, * %50, i64 %51, i64 %52, i64 %53, i32 %54, i32 %55) store i32 %call28, * %i.addr, align 4 %56 = load i32, * %i.addr, align 4 call void @use_int(i32 %56) %57 = load *, * %vp.addr, align 8 %58 = load *, * %vp.addr, align 8 %59 = load i64, * %st.addr, align 8 %60 = load i64, * %st.addr, align 8 %61 = load i32, * %i.addr, align 4 %call29 = call i32 @omp_target_associate_ptr(* %57, * %58, i64 %59, i64 %60, i32 %61) store i32 %call29, * %i.addr, align 4 %62 = load i32, * %i.addr, align 4 call void @use_int(i32 %62) %63 = load *, * %vp.addr, align 8 %64 = load i32, * %i.addr, align 4 %call30 = call i32 @omp_target_disassociate_ptr(* %63, i32 %64) store i32 %call30, * %i.addr, align 4 %65 = load i32, * %i.addr, align 4 call void @use_int(i32 %65) %call31 = call i32 @omp_get_device_num() store i32 %call31, * %i.addr, align 4 %66 = load i32, * %i.addr, align 4 call void @use_int(i32 %66) %call32 = call i32 @omp_get_proc_bind() store i32 %call32, * %proc_bind.addr, align 4 %call33 = call i32 @omp_get_num_places() store i32 %call33, * %i.addr, align 4 %67 = load i32, * %i.addr, align 4 call void @use_int(i32 %67) %call34 = call i32 @omp_get_place_num_procs(i32 0) store i32 %call34, * %i.addr, align 4 %68 = load i32, * %i.addr, align 4 call void @use_int(i32 %68) %69 = load i32, * %i.addr, align 4 call void @omp_get_place_proc_ids(i32 %69, nocapture * %i.addr) %call35 = call i32 @omp_get_place_num() store i32 %call35, * %i.addr, align 4 %70 = load i32, * %i.addr, align 4 call void @use_int(i32 %70) %call36 = call i32 @omp_get_partition_num_places() store i32 %call36, * %i.addr, align 4 %71 = load i32, * %i.addr, align 4 call void @use_int(i32 %71) call void @omp_get_partition_place_nums(* %i.addr) %72 = load i32, * %i.addr, align 4 %73 = load i32, * %i.addr, align 4 %74 = load *, * %vp.addr, align 8 %call37 = call i32 @omp_control_tool(i32 %72, i32 %73, * %74) store i32 %call37, * %i.addr, align 4 %75 = load i32, * %i.addr, align 4 call void @use_int(i32 %75) %76 = load i64, * %allocator_handle.addr, align 8 call void @omp_destroy_allocator(i64 %76) %77 = load i64, * %allocator_handle.addr, align 8 call void @omp_set_default_allocator(i64 %77) %call38 = call i64 @omp_get_default_allocator() store i64 %call38, * %allocator_handle.addr, align 8 %78 = load i64, * %st.addr, align 8 %79 = load i64, * %allocator_handle.addr, align 8 %call39 = call * @omp_alloc(i64 %78, i64 %79) store * %call39, * %vp.addr, align 8 %80 = load *, * %vp.addr, align 8 call void @use_voidptr(* %80) %81 = load *, * %vp.addr, align 8 %82 = load i64, * %allocator_handle.addr, align 8 call void @omp_free(* %81, i64 %82) %83 = load i64, * %st.addr, align 8 %84 = load i64, * %allocator_handle.addr, align 8 %call40 = call * @omp_alloc(i64 %83, i64 %84) store * %call40, * %vp.addr, align 8 %85 = load *, * %vp.addr, align 8 call void @use_voidptr(* %85) %86 = load *, * %vp.addr, align 8 %87 = load i64, * %allocator_handle.addr, align 8 call void @omp_free(* %86, i64 %87) %88 = load *, * %s.addr, align 8 call void @ompc_set_affinity_format(* %88) %89 = load *, * %cp.addr, align 8 %90 = load i64, * %st.addr, align 8 %call41 = call i64 @ompc_get_affinity_format(* %89, i64 %90) store i64 %call41, * %st.addr, align 8 %91 = load i64, * %st.addr, align 8 call void @use_sizet(i64 %91) %92 = load *, * %s.addr, align 8 call void @ompc_display_affinity(* %92) %93 = load *, * %cp.addr, align 8 %94 = load i64, * %st.addr, align 8 %95 = load *, * %s.addr, align 8 %call42 = call i64 @ompc_capture_affinity(* %93, i64 %94, * %95) store i64 %call42, * %st.addr, align 8 %96 = load i64, * %st.addr, align 8 call void @use_sizet(i64 %96) %97 = load i64, * %event_handle.addr, align 8 call void @omp_fulfill_event(i64 %97) %98 = load i32, * %pause_resource.addr, align 4 %99 = load i32, * %i.addr, align 4 %call43 = call i32 @omp_pause_resource(i32 %98, i32 %99) store i32 %call43, * %i.addr, align 4 %100 = load i32, * %i.addr, align 4 call void @use_int(i32 %100) %101 = load i32, * %pause_resource.addr, align 4 %call44 = call i32 @omp_pause_resource_all(i32 %101) store i32 %call44, * %i.addr, align 4 %102 = load i32, * %i.addr, align 4 call void @use_int(i32 %102) %call45 = call i32 @omp_get_supported_active_levels() store i32 %call45, * %i.addr, align 4 %103 = load i32, * %i.addr, align 4 call void @use_int(i32 %103) ret void } Transformation doesn't verify! ERROR: Source is more defined than target Example: i32 %schedule = poison * %lock = poison i32 %lock_hint = poison * %nest_lock = poison i32 %i = poison * %s = poison i64 %st = poison * %vp = poison double %d = poison i32 %proc_bind = poison i64 %allocator_handle = poison * %cp = poison i64 %event_handle = poison i32 %pause_resource = poison Source: * %schedule.addr = pointer(local, block_id=16, offset=0) * %lock.addr = pointer(local, block_id=17, offset=0) * %lock_hint.addr = pointer(local, block_id=18, offset=0) * %nest_lock.addr = pointer(local, block_id=19, offset=0) * %i.addr = pointer(local, block_id=20, offset=0) * %s.addr = pointer(local, block_id=21, offset=0) * %st.addr = pointer(local, block_id=22, offset=0) * %vp.addr = pointer(local, block_id=23, offset=0) * %d.addr = pointer(local, block_id=24, offset=0) * %proc_bind.addr = pointer(local, block_id=25, offset=0) * %allocator_handle.addr = pointer(local, block_id=26, offset=0) * %cp.addr = pointer(local, block_id=27, offset=0) * %event_handle.addr = pointer(local, block_id=28, offset=0) * %pause_resource.addr = pointer(local, block_id=29, offset=0) i32 %0 = poison i32 %call = poison i32 %1 = poison i32 %call1 = poison i32 %2 = poison i32 %call2 = poison i32 %3 = poison i32 %call3 = poison i32 %4 = poison i32 %call4 = poison i32 %5 = poison i32 %call5 = poison i32 %6 = poison i32 %call6 = poison i32 %7 = poison i32 %call7 = poison i32 %8 = poison i32 %call8 = poison i32 %9 = poison i32 %call9 = poison i32 %10 = poison i32 %call10 = poison i32 %11 = poison i32 %call11 = poison i32 %12 = poison i32 %call12 = poison i32 %13 = poison i32 %call13 = poison i32 %14 = poison i32 %call14 = poison i32 %15 = poison * %16 = poison * %17 = poison * %18 = poison * %19 = poison * %20 = poison i32 %call15 = poison i32 %21 = poison * %22 = poison * %23 = poison * %24 = poison * %25 = poison * %26 = poison i32 %call16 = poison i32 %27 = poison * %28 = poison i32 %29 = poison * %30 = poison i32 %31 = poison double %call17 = poison double %32 = poison double %call18 = poison double %33 = poison i32 %call19 = poison i32 %34 = poison i32 %call20 = poison i32 %35 = poison i32 %call21 = poison i32 %36 = poison i32 %call22 = poison i32 %37 = poison i32 %call23 = poison i32 %38 = poison i32 %call24 = poison i32 %39 = poison i32 %call25 = poison i32 %40 = poison i64 %41 = poison i32 %42 = poison * %call26 = pointer(non-local, block_id=2, offset=0) * %43 = pointer(non-local, block_id=2, offset=0) * %44 = pointer(non-local, block_id=2, offset=0) i32 %45 = poison * %46 = pointer(non-local, block_id=2, offset=0) i32 %47 = poison i32 %call27 = poison i32 %48 = poison * %49 = pointer(non-local, block_id=2, offset=0) * %50 = pointer(non-local, block_id=2, offset=0) i64 %51 = poison i64 %52 = poison i64 %53 = poison i32 %54 = poison i32 %55 = poison i32 %call28 = poison i32 %56 = poison * %57 = pointer(non-local, block_id=2, offset=0) * %58 = pointer(non-local, block_id=2, offset=0) i64 %59 = poison i64 %60 = poison i32 %61 = poison i32 %call29 = poison i32 %62 = poison * %63 = pointer(non-local, block_id=2, offset=0) i32 %64 = poison i32 %call30 = poison i32 %65 = poison i32 %call31 = poison i32 %66 = poison i32 %call32 = poison i32 %call33 = poison i32 %67 = poison i32 %call34 = poison i32 %68 = poison i32 %69 = poison i32 %call35 = poison i32 %70 = poison i32 %call36 = poison i32 %71 = poison i32 %72 = poison i32 %73 = poison * %74 = pointer(non-local, block_id=2, offset=0) i32 %call37 = poison i32 %75 = poison i64 %76 = poison i64 %77 = poison i64 %call38 = poison i64 %78 = poison i64 %79 = poison * %call39 = pointer(local, block_id=26, offset=0) * %80 = pointer(local, block_id=26, offset=0) * %81 = pointer(local, block_id=26, offset=0) i64 %82 = poison i64 %83 = poison i64 %84 = poison * %call40 = pointer(local, block_id=25, offset=0) * %85 = pointer(local, block_id=25, offset=0) * %86 = pointer(local, block_id=25, offset=0) i64 %87 = poison * %88 = poison * %89 = poison i64 %90 = poison i64 %call41 = poison i64 %91 = poison * %92 = poison * %93 = poison i64 %94 = poison * %95 = poison i64 %call42 = poison i64 %96 = poison i64 %97 = poison i32 %98 = poison i32 %99 = poison i32 %call43 = poison i32 %100 = poison i32 %101 = poison i32 %call44 = poison i32 %102 = poison i32 %call45 = poison i32 %103 = poison SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 Block 1 > size: 0 align: 2 alloc type: 0 Block 2 > size: 0 align: 4611686018427387904 alloc type: 0 Block 3 > size: 0 align: 4611686018427387904 alloc type: 0 Block 4 > size: 0 align: 8589934592 alloc type: 0 Block 5 > size: 0 align: 562949953421312 alloc type: 0 Block 6 > size: 0 align: 8589934592 alloc type: 0 Block 7 > size: 0 align: 4611686018427387904 alloc type: 0 Block 8 > size: 0 align: 4611686018427387904 alloc type: 0 Block 9 > size: 0 align: 2 alloc type: 0 LOCAL BLOCKS: Block 16 > size: 4 align: 4 alloc type: 1 Block 17 > size: 8 align: 8 alloc type: 1 Block 18 > size: 4 align: 4 alloc type: 1 Block 19 > size: 8 align: 8 alloc type: 1 Block 20 > size: 4 align: 4 alloc type: 1 Block 21 > size: 8 align: 8 alloc type: 1 Block 22 > size: 8 align: 8 alloc type: 1 Block 23 > size: 8 align: 8 alloc type: 1 Block 24 > size: 8 align: 8 alloc type: 1 Block 25 > size: 4 align: 4 alloc type: 1 Block 26 > size: 8 align: 8 alloc type: 1 Block 27 > size: 8 align: 8 alloc type: 1 Block 28 > size: 8 align: 8 alloc type: 1 Block 29 > size: 4 align: 4 alloc type: 1 Target: * %schedule.addr = pointer(local, block_id=16, offset=0) * %lock.addr = pointer(local, block_id=17, offset=0) * %lock_hint.addr = pointer(local, block_id=18, offset=0) * %nest_lock.addr = pointer(local, block_id=19, offset=0) * %i.addr = pointer(local, block_id=20, offset=0) * %s.addr = pointer(local, block_id=21, offset=0) * %st.addr = pointer(local, block_id=22, offset=0) * %vp.addr = pointer(local, block_id=23, offset=0) * %d.addr = pointer(local, block_id=24, offset=0) * %proc_bind.addr = pointer(local, block_id=25, offset=0) * %allocator_handle.addr = pointer(local, block_id=26, offset=0) * %cp.addr = pointer(local, block_id=27, offset=0) * %event_handle.addr = pointer(local, block_id=28, offset=0) * %pause_resource.addr = pointer(local, block_id=29, offset=0) i32 %0 = poison i32 %call = poison i32 %1 = poison i32 %call1 = poison i32 %2 = poison i32 %call2 = poison i32 %3 = poison i32 %call3 = poison i32 %4 = poison i32 %call4 = poison i32 %5 = poison i32 %call5 = poison i32 %6 = poison i32 %call6 = poison i32 %7 = poison i32 %call7 = poison i32 %8 = poison i32 %call8 = poison i32 %9 = poison i32 %call9 = poison i32 %10 = poison i32 %call10 = poison i32 %11 = poison i32 %call11 = poison i32 %12 = poison i32 %call12 = poison i32 %13 = poison i32 %call13 = poison i32 %14 = poison i32 %call14 = poison i32 %15 = poison * %16 = poison * %17 = poison * %18 = poison * %19 = poison * %20 = poison i32 %call15 = poison i32 %21 = poison * %22 = poison * %23 = poison * %24 = poison * %25 = poison * %26 = poison i32 %call16 = poison i32 %27 = poison * %28 = poison i32 %29 = poison * %30 = poison i32 %31 = poison double %call17 = poison double %32 = poison double %call18 = poison double %33 = poison i32 %call19 = poison i32 %34 = poison i32 %call20 = poison i32 %35 = poison i32 %call21 = poison i32 %36 = poison i32 %call22 = poison i32 %37 = poison i32 %call23 = poison i32 %38 = poison i32 %call24 = poison i32 %39 = poison i32 %call25 = poison i32 %40 = poison i64 %41 = poison i32 %42 = poison * %call26 = pointer(non-local, block_id=2, offset=0) * %43 = pointer(non-local, block_id=2, offset=0) * %44 = pointer(non-local, block_id=2, offset=0) i32 %45 = poison * %46 = pointer(non-local, block_id=2, offset=0) i32 %47 = poison i32 %call27 = poison i32 %48 = poison * %49 = pointer(non-local, block_id=2, offset=0) * %50 = pointer(non-local, block_id=2, offset=0) i64 %51 = poison i64 %52 = poison i64 %53 = poison i32 %54 = poison i32 %55 = poison i32 %call28 = poison i32 %56 = poison * %57 = pointer(non-local, block_id=2, offset=0) * %58 = pointer(non-local, block_id=2, offset=0) i64 %59 = poison i64 %60 = poison i32 %61 = poison i32 %call29 = poison i32 %62 = poison * %63 = pointer(non-local, block_id=2, offset=0) i32 %64 = poison i32 %call30 = poison i32 %65 = poison i32 %call31 = poison i32 %66 = poison i32 %call32 = poison i32 %call33 = poison i32 %67 = poison i32 %call34 = poison i32 %68 = poison i32 %69 = poison i32 %call35 = poison i32 %70 = poison i32 %call36 = poison i32 %71 = poison i32 %72 = poison i32 %73 = poison * %74 = pointer(non-local, block_id=2, offset=0) i32 %call37 = poison i32 %75 = poison i64 %76 = poison i64 %77 = poison i64 %call38 = poison i64 %78 = poison i64 %79 = poison * %call39 = pointer(local, block_id=26, offset=0) * %80 = pointer(local, block_id=26, offset=0) * %81 = pointer(local, block_id=26, offset=0) i64 %82 = poison i64 %83 = poison i64 %84 = poison * %call40 = pointer(local, block_id=25, offset=0) * %85 = pointer(local, block_id=25, offset=0) * %86 = pointer(local, block_id=25, offset=0) i64 %87 = poison * %88 = poison * %89 = poison i64 %90 = poison i64 %call41 = poison i64 %91 = poison * %92 = poison * %93 = poison i64 %94 = poison * %95 = poison i64 %call42 = poison i64 %96 = poison i64 %97 = poison i32 %98 = poison i32 %99 = poison i32 %call43 = poison i32 %100 = poison i32 %101 = poison i32 %call44 = poison i32 %102 = poison i32 %call45 = poison i32 %103 = poison TARGET MEMORY STATE =================== LOCAL BLOCKS: Block 16 > size: 4 align: 4 alloc type: 1 Block 17 > size: 8 align: 8 alloc type: 1 Block 18 > size: 4 align: 4 alloc type: 1 Block 19 > size: 8 align: 8 alloc type: 1 Block 20 > size: 4 align: 4 alloc type: 1 Block 21 > size: 8 align: 8 alloc type: 1 Block 22 > size: 8 align: 8 alloc type: 1 Block 23 > size: 8 align: 8 alloc type: 1 Block 24 > size: 8 align: 8 alloc type: 1 Block 25 > size: 4 align: 4 alloc type: 1 Block 26 > size: 8 align: 8 alloc type: 1 Block 27 > size: 8 align: 8 alloc type: 1 Block 28 > size: 8 align: 8 alloc type: 1 Block 29 > size: 4 align: 4 alloc type: 1 ------------------- SMT STATS ------------------- Num queries: 284 Num invalid: 0 Num skips: 0 Num trivial: 60 (17.4%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 284 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 1' + /home/nlopes/alive2/build/opt-alive.sh -S -openmp-opt-cgscc + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/OpenMP/add_attributes.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/OpenMP/add_attributes.ll