I've made some investigation on it and found the cause:<br><br><br>Exceprt from Instructions.h:<br><<<<br>CallInst::CallInst(Value *Func, InputIterator ArgBegin, InputIterator ArgEnd,<br>                   const Twine &NameStr, Instruction *InsertBefore)<br>
  :<<...>><br>// Note: if you get compile errors about private methods then<br>//       please update your code to use the high-level operand<br>//       interfaces. See line 943 above.<br><br>===line 943:<br>
  /// @brief coerce out-of-tree code to abandon the low-level interfaces<br>  /// @detail see below comments and update your code to high-level interfaces<br>  ///    in LLVM v2.8-only code<br>  ///    - getOperand(N+1)  --->  getArgOperand(N)<br>
  ///    - setOperand(N+1, V)  --->  setArgOperand(N, V)<br>  ///    - getNumOperands()  --->  getNumArgOperands()+1  // note the "+1"!<br>  ///<br>  ///    in backward compatible code please consult llvm/Support/CallSite.h,<br>
  ///    you should create a callsite using the CallInst pointer and call its<br>  ///    methods<br>  ///<br>>>><br><br>So, it seems, that it is a LLVM-2.8 new change in xxxOperand() functions<br><br>Now what I could easily do, to get latest buildable VMkit instance??<br>
<br>Look at this:<br><br>[ vmkit]$ find . -name "*.cpp" -o -name "*.h"|xargs grep -R -E "\<[gs]etOperand\>|\<getNumOperands\>"|wc -l<br>13<br><br>13 places, not so bad. But after changing it will require for build only newest LLVM-2.8, and all current users<br>
will be required to upgrade their llvm<br><br>Are users ready for changes?<br><br><font color="#888888">-Minas Abrahamyan</font><br><br><br><br><div class="gmail_quote">On Wed, Jul 7, 2010 at 5:09 PM, Minas Abrahamyan <span dir="ltr"><<a href="mailto:minas.subs@gmail.com">minas.subs@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><br>Excerpt from EscapeAnalysis.cpp:<br><<<<br>        if (CallInst *CI = dyn_cast<CallInst>(I)) {<br>
          Changed |= processMalloc(CI, CI->getOperand(1), CI->getOperand(2),<br>
                                   CurLoop);<br>        } else if (InvokeInst *CI = dyn_cast<InvokeInst>(I)) {<br>          Changed |= processMalloc(CI, CI->getOperand(3), CI->getOperand(4),<br>                                   CurLoop);<br>

        }<br>>>><br><br>These getOperand()-s are private, how it should now be built and work?<br><font color="#888888"><br>-Minas Abrahamyan<br>
</font></blockquote></div><br>