Mercurial > hg > CbC > CbC_llvm
comparison include/llvm/CodeGen/AsmPrinter.h @ 100:7d135dc70f03 LLVM 3.9
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | afa8332a0e37 |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
96:6418606d0ead | 100:7d135dc70f03 |
---|---|
236 /// Print assembly representations of the jump tables used by the current | 236 /// Print assembly representations of the jump tables used by the current |
237 /// function to the current output stream. | 237 /// function to the current output stream. |
238 /// | 238 /// |
239 virtual void EmitJumpTableInfo(); | 239 virtual void EmitJumpTableInfo(); |
240 | 240 |
241 /// Emit the control variable for an emulated TLS variable. | |
242 virtual void EmitEmulatedTLSControlVariable(const GlobalVariable *GV, | |
243 MCSymbol *EmittedSym, | |
244 bool AllZeroInitValue); | |
245 | |
246 /// Emit the specified global variable to the .s file. | 241 /// Emit the specified global variable to the .s file. |
247 virtual void EmitGlobalVariable(const GlobalVariable *GV); | 242 virtual void EmitGlobalVariable(const GlobalVariable *GV); |
248 | 243 |
249 /// Check to see if the specified global is a special global used by LLVM. If | 244 /// Check to see if the specified global is a special global used by LLVM. If |
250 /// so, emit it and return true, otherwise do nothing and return false. | 245 /// so, emit it and return true, otherwise do nothing and return false. |
257 /// correctness. | 252 /// correctness. |
258 /// | 253 /// |
259 void EmitAlignment(unsigned NumBits, const GlobalObject *GO = nullptr) const; | 254 void EmitAlignment(unsigned NumBits, const GlobalObject *GO = nullptr) const; |
260 | 255 |
261 /// Lower the specified LLVM Constant to an MCExpr. | 256 /// Lower the specified LLVM Constant to an MCExpr. |
262 const MCExpr *lowerConstant(const Constant *CV); | 257 virtual const MCExpr *lowerConstant(const Constant *CV); |
263 | 258 |
264 /// \brief Print a general LLVM constant to the .s file. | 259 /// \brief Print a general LLVM constant to the .s file. |
265 void EmitGlobalConstant(const DataLayout &DL, const Constant *CV); | 260 void EmitGlobalConstant(const DataLayout &DL, const Constant *CV); |
266 | 261 |
267 /// \brief Unnamed constant global variables solely contaning a pointer to | 262 /// \brief Unnamed constant global variables solely contaning a pointer to |
412 | 407 |
413 /// Emit the specified unsigned leb128 value. | 408 /// Emit the specified unsigned leb128 value. |
414 void EmitULEB128(uint64_t Value, const char *Desc = nullptr, | 409 void EmitULEB128(uint64_t Value, const char *Desc = nullptr, |
415 unsigned PadTo = 0) const; | 410 unsigned PadTo = 0) const; |
416 | 411 |
417 /// Emit a .byte 42 directive for a DW_CFA_xxx value. | |
418 void EmitCFAByte(unsigned Val) const; | |
419 | |
420 /// Emit a .byte 42 directive that corresponds to an encoding. If verbose | 412 /// Emit a .byte 42 directive that corresponds to an encoding. If verbose |
421 /// assembly output is enabled, we output comments describing the encoding. | 413 /// assembly output is enabled, we output comments describing the encoding. |
422 /// Desc is a string saying what the encoding is specifying (e.g. "LSDA"). | 414 /// Desc is a string saying what the encoding is specifying (e.g. "LSDA"). |
423 void EmitEncodingByte(unsigned Val, const char *Desc = nullptr) const; | 415 void EmitEncodingByte(unsigned Val, const char *Desc = nullptr) const; |
424 | 416 |
454 | 446 |
455 /// \brief Emit frame instruction to describe the layout of the frame. | 447 /// \brief Emit frame instruction to describe the layout of the frame. |
456 void emitCFIInstruction(const MCCFIInstruction &Inst) const; | 448 void emitCFIInstruction(const MCCFIInstruction &Inst) const; |
457 | 449 |
458 /// \brief Emit Dwarf abbreviation table. | 450 /// \brief Emit Dwarf abbreviation table. |
459 void emitDwarfAbbrevs(const std::vector<DIEAbbrev *>& Abbrevs) const; | 451 template <typename T> void emitDwarfAbbrevs(const T &Abbrevs) const { |
452 // For each abbreviation. | |
453 for (const auto &Abbrev : Abbrevs) | |
454 emitDwarfAbbrev(*Abbrev); | |
455 | |
456 // Mark end of abbreviations. | |
457 EmitULEB128(0, "EOM(3)"); | |
458 } | |
459 | |
460 void emitDwarfAbbrev(const DIEAbbrev &Abbrev) const; | |
460 | 461 |
461 /// \brief Recursively emit Dwarf DIE tree. | 462 /// \brief Recursively emit Dwarf DIE tree. |
462 void emitDwarfDIE(const DIE &Die) const; | 463 void emitDwarfDIE(const DIE &Die) const; |
463 | 464 |
464 //===------------------------------------------------------------------===// | 465 //===------------------------------------------------------------------===// |