Apala Guha
2014-Aug-26 13:44 UTC
[LLVMdev] Instruction does not dominate all its uses error
I am getting the following error : Instruction does not dominate all uses! %88 = phi float [ %42, %._crit_edge ], [ %85, %43 ] %90 = fsub float 1.000000e+00, %88 Instruction does not dominate all uses! %88 = phi float [ %42, %._crit_edge ], [ %85, %43 ] %92 = phi float [ %88, %._crit_edge1 ], [ %90, %89 ] for the following code: define float @CNDF(float %InputX) nounwind uwtable { %1 = fcmp olt float %InputX, 0.000000e+00 br i1 %1, label %43, label %._crit_edge ._crit_edge: ; preds = %0 %2 = fmul float %InputX, -5.000000e-01 %3 = fmul float %InputX, %2 %4 = fpext float %3 to double %5 = tail call double @exp(double %4) nounwind %6 = fptrunc double %5 to float %7 = fpext float %6 to double %8 = fmul double %7, 0x3FD9884533D43651 %9 = fptrunc double %8 to float %10 = fpext float %InputX to double %11 = fmul double %10, 2.316419e-01 %12 = fptrunc double %11 to float %13 = fadd float %12, 1.000000e+00 %14 = fdiv float 1.000000e+00, %13 %15 = bitcast float %14 to float %16 = bitcast float %15 to float %17 = bitcast float %15 to float %18 = fmul float %17, %17 %19 = fmul float %17, %18 %20 = fmul float %16, %19 %21 = fmul float %16, %20 %22 = fpext float %14 to double %23 = fmul double %22, 0x3FD470BF3A92F8EC %24 = fptrunc double %23 to float %25 = fpext float %18 to double %26 = fmul double %25, 0xBFD6D1F0E5A8325B %27 = fptrunc double %26 to float %28 = fpext float %19 to double %29 = fmul double %28, 0x3FFC80EF025F5E68 %30 = fptrunc double %29 to float %31 = fadd float %27, %30 %32 = fpext float %20 to double %33 = fmul double %32, 0xBFFD23DD4EF278D0 %34 = fptrunc double %33 to float %35 = fadd float %31, %34 %36 = fpext float %21 to double %37 = fmul double %36, 0x3FF548CDD6F42943 %38 = fptrunc double %37 to float %39 = fadd float %35, %38 %40 = fadd float %24, %39 %41 = fmul float %9, %40 %42 = fsub float 1.000000e+00, %41 br label %86 ; <label>:43 ; preds = %0 %44 = fsub float -0.000000e+00, %InputX %45 = fmul float %44, -5.000000e-01 %46 = fmul float %44, %45 %47 = fpext float %46 to double %48 = tail call double @exp(double %47) nounwind %49 = fptrunc double %48 to float %50 = fpext float %49 to double %51 = fmul double %50, 0x3FD9884533D43651 %52 = fptrunc double %51 to float %53 = fpext float %44 to double %54 = fmul double %53, 2.316419e-01 %55 = fptrunc double %54 to float %56 = fadd float %55, 1.000000e+00 %57 = fdiv float 1.000000e+00, %56 %58 = bitcast float %57 to float %59 = bitcast float %58 to float %60 = bitcast float %58 to float %61 = fmul float %60, %60 %62 = fmul float %60, %61 %63 = fmul float %59, %62 %64 = fmul float %59, %63 %65 = fpext float %57 to double %66 = fmul double %65, 0x3FD470BF3A92F8EC %67 = fptrunc double %66 to float %68 = fpext float %61 to double %69 = fmul double %68, 0xBFD6D1F0E5A8325B %70 = fptrunc double %69 to float %71 = fpext float %62 to double %72 = fmul double %71, 0x3FFC80EF025F5E68 %73 = fptrunc double %72 to float %74 = fadd float %70, %73 %75 = fpext float %63 to double %76 = fmul double %75, 0xBFFD23DD4EF278D0 %77 = fptrunc double %76 to float %78 = fadd float %74, %77 %79 = fpext float %64 to double %80 = fmul double %79, 0x3FF548CDD6F42943 %81 = fptrunc double %80 to float %82 = fadd float %78, %81 %83 = fadd float %67, %82 %84 = fmul float %52, %83 %85 = fsub float 1.000000e+00, %84 br label %86 ; <label>:86 ; preds = %43, %._crit_edge %87 = phi i1 [ false, %._crit_edge ], [ true, %43 ] %88 = phi float [ %42, %._crit_edge ], [ %85, %43 ] br i1 %87, label %89, label %._crit_edge1 ._crit_edge1: ; preds = %86 br label %91 ; <label>:89 ; preds = %86 %90 = fsub float 1.000000e+00, %88 br label %91 ; <label>:91 ; preds = %89, %._crit_edge1 %92 = phi float [ %88, %._crit_edge1 ], [ %90, %89 ] ret float %92 } The error is weird because the said instruction does dominate all its uses. Any thoughts are welcome. Thanks. -Apala Apala Guha Assistant Professor IIIT-Delhi, New Delhi, India http://www.iiitd.edu.in/~apala <https://sites.google.com/site/apalaguha/home> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140826/7b5fc45b/attachment.html>