Microsoft Developer Network > Página Inicial dos Fóruns > Phoenix > Consistency check failures: Call must have a call target
Fazer uma PerguntaFazer uma Pergunta
 

PerguntaConsistency check failures: Call must have a call target

  • quinta-feira, 28 de maio de 2009 9:29if if Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Hi,
    I'm doing the following. I'm taking an instruction and making another copy of it. After doing an instruction.Copy(), I copy all its non-implicit operands, by going in a foreach loop and doing a continue on IsImplicit.
    The problem is that I'm getting this error list.

    ------------------------------------------------------------------------------------------------------

    Consistency check failures after Isolator Instrumentation Phase
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 0] during Isolator Instrumentation Phase
      in (Module) ../testFiles/testFunc.c
    d:\users\t-ashaga\phoenixprojects\testfiles\testfunc.c(27) : warning C4700: uninitialized

    Consistency check failures after Warnings Analysis Phase
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Warnings Analysis Phase
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Read-only globals
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Read-only globals
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Inliner
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Inliner
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Dead Parameter Removal
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Dead Parameter Removal
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Type Checker
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during Type Checker
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after OpenMP
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during OpenMP
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Alias analysis
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during Alias analysis
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Flow Optimization
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27


    ------------------------------------------------------------------------------------------------------
    Interestingly, {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27 is the original instruction

    Can somebody please help.

    Thanks and Regards,
    If If

Todas as Respostas

  • quarta-feira, 3 de junho de 2009 16:41Andy Ayers - MSFTModeradorMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Annoyingly, you need to special-case the first source operand on a call.

    If you are copying a call, use "call.CallTargetOperand = <new operand>" instead of appending the first source. Then append the remaining sources as usual. Or use the constructor that takes the call target operand as a parameter, and then append the rest of the sources.
    Architect - Microsoft Phoenix Project