<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>I stumbled upon a baffling error while compiling my pass. I was moving my development environment and updated LLVM to the trunk number 350084 in the meantime.</div>
<br>
<div>[ 11%] Building CXX object lib/Transforms/TimePred/CMakeFiles/TimePred.dir/Common/Formatter.cpp.o</div>
<div>/home/gwangmu/opt/llvm/lib/Transforms/TimePred/Common/Formatter.cpp:182:24: error: ‘TerminatorInst’ was not declared in this scope</div>
<div>  void Formatter::write<TerminatorInst *>(TerminatorInst *obj)</div>
<div>                        ^~~~~~~~~~~~~~</div>
<div>/home/gwangmu/opt/llvm/lib/Transforms/TimePred/Common/Formatter.cpp:182:18: error: parse error in template argument list</div>
<div>  void Formatter::write<TerminatorInst *>(TerminatorInst *obj)</div>
<div>                  ^~~~~~~~~~~~~~~~~~~~~~~</div>
<div>/home/gwangmu/opt/llvm/lib/Transforms/TimePred/Common/Formatter.cpp:182:42: error: template-id ‘write<<expression error> >’ used as a declarator</div>
<div>  void Formatter::write<TerminatorInst *>(TerminatorInst *obj)</div>
<div>                                          ^~~~~~~~~~~~~~</div>
<br>
<div>At first I thought TerminatorInst has been moved to another header, but it seems TerminatorInst has been totally removed at some point. Some of the terminators that I know is now even inheriting the very base class (Instruction) not TerminatorInst.
</div>
<br>
<div>(In llvm/IR/Instructions.h)                       </div>
<div>2911 ///                                                                             
</div>
<div>2912<strong> class BranchInst : public Instruction</strong> {                                         
</div>
<div>2913   /// Ops list - Branches are strange.  The operands are ordered:               
</div>
<br>
<div>2829 ///                                                                             
</div>
<div>2830 <strong>class ReturnInst : public Instruction</strong> {                                         
</div>
<div>2831   ReturnInst(const ReturnInst &RI); </div>
<br>
<div>Was TerminatorInst actually removed and deprecated? If it's the case, is there any workaround that I can use when fixing my pass not to use TerminatorInst, hopefully with a minimum amount of change?</div>
<br>
<div>Regards,</div>
<div>Gwangmu Lee.</div>
<br>
<br>
<br>
<img class="mailspring-open" alt="Sent from Mailspring" width="0" height="0" style="border:0; width:0; height:0;" src="https://link.getmailspring.com/open/1546413919.local-7b5ab751-dc41-v1.5.4-1d923cf4@getmailspring.com?recipient=bGx2bS1kZXZAbGlzdHMubGx2bS5vcmc%3D">
</body>
</html>