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 //===------------------------------------------------------------------===//