2424using  namespace  llvm ; 
2525using  namespace  dwarf ; 
2626
27- void  CFIPrinter::print (const  CFIProgram &P, raw_ostream &OS,
28-                        DIDumpOptions &DumpOpts, unsigned  IndentLevel,
29-                        std::optional<uint64_t > Address) {
30-   for  (const  auto  &Instr : P) {
31-     uint8_t  Opcode = Instr.Opcode ;
32-     OS.indent (2  * IndentLevel);
33-     OS << P.callFrameString (Opcode) << " :"  ;
34-     for  (size_t  i = 0 ; i < Instr.Ops .size (); ++i)
35-       printOperand (OS, DumpOpts, P, Instr, i, Instr.Ops [i], Address);
36-     OS << ' \n '  ;
37-   }
38- }
39- 
40- static  void  printRegister (raw_ostream &OS, DIDumpOptions &DumpOpts,
27+ static  void  printRegister (raw_ostream &OS, const  DIDumpOptions &DumpOpts,
4128                          unsigned  RegNum) {
4229  if  (DumpOpts.GetNameForDWARFReg ) {
4330    auto  RegName = DumpOpts.GetNameForDWARFReg (RegNum, DumpOpts.IsEH );
@@ -50,11 +37,11 @@ static void printRegister(raw_ostream &OS, DIDumpOptions &DumpOpts,
5037}
5138
5239// / Print \p Opcode's operand number \p OperandIdx which has value \p Operand.
53- void  CFIPrinter:: printOperand (raw_ostream &OS, DIDumpOptions &DumpOpts,
54-                                const  CFIProgram &P,
55-                                const  CFIProgram::Instruction &Instr,
56-                                unsigned  OperandIdx, uint64_t  Operand,
57-                                std::optional<uint64_t > &Address) {
40+ static   void  printOperand (raw_ostream &OS,  const  DIDumpOptions &DumpOpts,
41+                          const  CFIProgram &P,
42+                          const  CFIProgram::Instruction &Instr,
43+                          unsigned  OperandIdx, uint64_t  Operand,
44+                          std::optional<uint64_t > &Address) {
5845  assert (OperandIdx < CFIProgram::MaxOperands);
5946  uint8_t  Opcode = Instr.Opcode ;
6047  CFIProgram::OperandType Type = P.getOperandTypes ()[Opcode][OperandIdx];
@@ -118,3 +105,17 @@ void CFIPrinter::printOperand(raw_ostream &OS, DIDumpOptions &DumpOpts,
118105    break ;
119106  }
120107}
108+ 
109+ void  llvm::dwarf::printCFIProgram (const  CFIProgram &P, raw_ostream &OS,
110+                                   const  DIDumpOptions &DumpOpts,
111+                                   unsigned  IndentLevel,
112+                                   std::optional<uint64_t > Address) {
113+   for  (const  auto  &Instr : P) {
114+     uint8_t  Opcode = Instr.Opcode ;
115+     OS.indent (2  * IndentLevel);
116+     OS << P.callFrameString (Opcode) << " :"  ;
117+     for  (size_t  i = 0 ; i < Instr.Ops .size (); ++i)
118+       printOperand (OS, DumpOpts, P, Instr, i, Instr.Ops [i], Address);
119+     OS << ' \n '  ;
120+   }
121+ }
0 commit comments