LLVM
8.0.1
|
#include "llvm/CodeGen/AsmPrinter.h"
#include "CodeViewDebug.h"
#include "DwarfDebug.h"
#include "DwarfException.h"
#include "WasmException.h"
#include "WinCFGuard.h"
#include "WinException.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/EHPersonalities.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/BinaryFormat/COFF.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/CodeGen/AsmPrinterHandler.h"
#include "llvm/CodeGen/GCMetadata.h"
#include "llvm/CodeGen/GCMetadataPrinter.h"
#include "llvm/CodeGen/GCStrategy.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalIFunc.h"
#include "llvm/IR/GlobalIndirectSymbol.h"
#include "llvm/IR/GlobalObject.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCCodePadder.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDirectives.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCTargetOptions.h"
#include "llvm/MC/MCValue.h"
#include "llvm/MC/SectionKind.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/Timer.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include <algorithm>
#include <cassert>
#include <cinttypes>
#include <cstdint>
#include <iterator>
#include <limits>
#include <memory>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "asm-printer" |
Typedefs | |
using | gcp_map_type = DenseMap< GCStrategy *, std::unique_ptr< GCMetadataPrinter > > |
Functions | |
STATISTIC (EmittedInsts, "Number of machine instrs printed") | |
static gcp_map_type & | getGCMap (void *&P) |
static unsigned | getGVAlignmentLog2 (const GlobalValue *GV, const DataLayout &DL, unsigned InBits=0) |
getGVAlignmentLog2 - Return the alignment to use for the specified global value in log2 form. More... | |
static bool | canBeHidden (const GlobalValue *GV, const MCAsmInfo &MAI) |
static bool | emitComments (const MachineInstr &MI, raw_ostream &CommentOS, AsmPrinter *AP) |
emitComments - Pretty-print comments for instructions. More... | |
static void | emitKill (const MachineInstr *MI, AsmPrinter &AP) |
static bool | emitDebugValueComment (const MachineInstr *MI, AsmPrinter &AP) |
emitDebugValueComment - This method handles the target-independent form of DBG_VALUE, returning true if it was able to do so. More... | |
static bool | emitDebugLabelComment (const MachineInstr *MI, AsmPrinter &AP) |
This method handles the target-independent form of DBG_LABEL, returning true if it was able to do so. More... | |
static bool | needFuncLabelsForEHOrDebugInfo (const MachineFunction &MF, MachineModuleInfo *MMI) |
static unsigned | getNumGlobalVariableUses (const Constant *C) |
Compute the number of Global Variables that uses a Constant. More... | |
static bool | isGOTEquivalentCandidate (const GlobalVariable *GV, unsigned &NumGOTEquivUsers) |
Only consider global GOT equivalents if at least one user is a cstexpr inside an initializer of another global variables. More... | |
static void | emitGlobalConstantImpl (const DataLayout &DL, const Constant *C, AsmPrinter &AP, const Constant *BaseCV=nullptr, uint64_t Offset=0) |
static void | emitGlobalConstantFP (const ConstantFP *CFP, AsmPrinter &AP) |
static void | emitGlobalConstantFP (APFloat APF, Type *ET, AsmPrinter &AP) |
static int | isRepeatedByteSequence (const ConstantDataSequential *V) |
isRepeatedByteSequence - Determine whether the given value is composed of a repeated sequence of identical bytes and return the byte value. More... | |
static int | isRepeatedByteSequence (const Value *V, const DataLayout &DL) |
isRepeatedByteSequence - Determine whether the given value is composed of a repeated sequence of identical bytes and return the byte value. More... | |
static void | emitGlobalConstantDataSequential (const DataLayout &DL, const ConstantDataSequential *CDS, AsmPrinter &AP) |
static void | emitGlobalConstantArray (const DataLayout &DL, const ConstantArray *CA, AsmPrinter &AP, const Constant *BaseCV, uint64_t Offset) |
static void | emitGlobalConstantVector (const DataLayout &DL, const ConstantVector *CV, AsmPrinter &AP) |
static void | emitGlobalConstantStruct (const DataLayout &DL, const ConstantStruct *CS, AsmPrinter &AP, const Constant *BaseCV, uint64_t Offset) |
static void | emitGlobalConstantLargeInt (const ConstantInt *CI, AsmPrinter &AP) |
static void | handleIndirectSymViaGOTPCRel (AsmPrinter &AP, const MCExpr **ME, const Constant *BaseCst, uint64_t Offset) |
Transform a not absolute MCExpr containing a reference to a GOT equivalent global, by a target specific GOT pc relative access to the final symbol. More... | |
static void | PrintParentLoopComment (raw_ostream &OS, const MachineLoop *Loop, unsigned FunctionNumber) |
PrintParentLoopComment - Print comments about parent loops of this one. More... | |
static void | PrintChildLoopComment (raw_ostream &OS, const MachineLoop *Loop, unsigned FunctionNumber) |
PrintChildLoopComment - Print comments about child loops within the loop for this basic block, with nesting. More... | |
static void | emitBasicBlockLoopComments (const MachineBasicBlock &MBB, const MachineLoopInfo *LI, const AsmPrinter &AP) |
emitBasicBlockLoopComments - Pretty-print comments for basic blocks. More... | |
Variables | |
static const char *const | DWARFGroupName = "dwarf" |
static const char *const | DWARFGroupDescription = "DWARF Emission" |
static const char *const | DbgTimerName = "emit" |
static const char *const | DbgTimerDescription = "Debug Info Emission" |
static const char *const | EHTimerName = "write_exception" |
static const char *const | EHTimerDescription = "DWARF Exception Writer" |
static const char *const | CFGuardName = "Control Flow Guard" |
static const char *const | CFGuardDescription = "Control Flow Guard Tables" |
static const char *const | CodeViewLineTablesGroupName = "linetables" |
static const char *const | CodeViewLineTablesGroupDescription |
static cl::opt< bool > | PrintSchedule ("print-schedule", cl::Hidden, cl::init(false), cl::desc("Print 'sched: [latency:throughput]' in .s output")) |
#define DEBUG_TYPE "asm-printer" |
Definition at line 130 of file AsmPrinter.cpp.
Referenced by llvm::AsmPrinter::EmitFunctionBody().
using gcp_map_type = DenseMap<GCStrategy *, std::unique_ptr<GCMetadataPrinter> > |
Definition at line 152 of file AsmPrinter.cpp.
|
static |
Definition at line 377 of file AsmPrinter.cpp.
References llvm::GlobalValue::AppendingLinkage, llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::canBeOmittedFromSymbolTable(), llvm::GlobalValue::CommonLinkage, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::GlobalValue::getLinkage(), llvm::MCAsmInfo::hasLinkOnceDirective(), llvm::MCAsmInfo::hasWeakDefCanBeHiddenDirective(), llvm::MCAsmInfo::hasWeakDefDirective(), llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::LinkOnceAnyLinkage, llvm::GlobalValue::LinkOnceODRLinkage, llvm_unreachable, llvm::AsmPrinter::MAI, llvm::MCSA_Global, llvm::MCSA_Weak, llvm::MCSA_WeakDefAutoPrivate, llvm::MCSA_WeakDefinition, llvm::AsmPrinter::OutStreamer, llvm::GlobalValue::PrivateLinkage, llvm::GlobalValue::WeakAnyLinkage, and llvm::GlobalValue::WeakODRLinkage.
|
static |
emitBasicBlockLoopComments - Pretty-print comments for basic blocks.
Definition at line 2820 of file AsmPrinter.cpp.
References assert(), Context, llvm::LoopBase< BlockT, LoopT >::empty(), llvm::find(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionNumber(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopDepth(), llvm::MachineLoopInfo::getLoopFor(), llvm::MachineBasicBlock::getNumber(), llvm::TargetMachine::getOptLevel(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::MachineFunction::hasInlineAsm(), llvm::raw_ostream::indent(), llvm::MCCodePaddingContext::IsBasicBlockReachableViaBranch, llvm::MCCodePaddingContext::IsBasicBlockReachableViaFallthrough, llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::MCCodePaddingContext::IsPaddingActive, llvm::AsmPrinter::MF, llvm::CodeGenOpt::None, llvm::Function::optForSize(), llvm::AsmPrinter::OutStreamer, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_end(), llvm::MachineBasicBlock::pred_size(), PrintChildLoopComment(), PrintParentLoopComment(), and llvm::AsmPrinter::TM.
Referenced by llvm::AsmPrinter::EmitBasicBlockStart().
|
static |
emitComments - Pretty-print comments for instructions.
It returns true iff the sched comment was emitted. Otherwise it returns false.
Definition at line 743 of file AsmPrinter.cpp.
References llvm::AsmPrinter::EnablePrintSchedInfo, llvm::MachineInstr::getAsmPrinterFlag(), llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getMF(), llvm::TargetSubtargetInfo::getSchedInfoStr(), llvm::MachineMemOperand::getSize(), llvm::MachineFunction::getSubtarget(), llvm::TargetInstrInfo::hasLoadFromStackSlot(), llvm::TargetInstrInfo::hasStoreToStackSlot(), llvm::TargetInstrInfo::isLoadFromStackSlotPostFE(), llvm::MachineFrameInfo::isSpillSlotObjectIndex(), llvm::TargetInstrInfo::isStoreToStackSlotPostFE(), llvm::MachineInstr::memoperands_begin(), llvm::AsmPrinter::MF, llvm::MachineInstr::ReloadReuse, Size, and TII.
Referenced by llvm::AsmPrinter::EmitFunctionBody().
|
static |
This method handles the target-independent form of DBG_LABEL, returning true if it was able to do so.
A false return means the target will need to handle MI in EmitInstruction.
Definition at line 932 of file AsmPrinter.cpp.
References llvm::StringRef::empty(), llvm::MachineInstr::getDebugLabel(), llvm::DILabel::getName(), llvm::MachineInstr::getNumOperands(), llvm::DILabel::getScope(), Name, llvm::AsmPrinter::OutStreamer, and llvm::raw_svector_ostream::str().
Referenced by llvm::AsmPrinter::EmitFunctionBody().
|
static |
emitDebugValueComment - This method handles the target-independent form of DBG_VALUE, returning true if it was able to do so.
A false return means the target will need to handle MI in EmitInstruction.
Definition at line 842 of file AsmPrinter.cpp.
References llvm::lltok::APFloat, assert(), llvm::APFloat::convert(), llvm::APFloat::convertToDouble(), llvm::APFloat::convertToFloat(), llvm::StringRef::empty(), llvm::DIExpression::expr_ops(), llvm::MachineOperand::getCImm(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugVariable(), llvm::MachineOperand::getFPImm(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::DIVariable::getName(), llvm::DIExpression::getNumElements(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::DILocalVariable::getScope(), llvm::MachineFunction::getSubtarget(), llvm::Value::getType(), llvm::ConstantInt::getValue(), llvm::ConstantFP::getValueAPF(), I, llvm::APFloatBase::IEEEdouble(), llvm::MachineOperand::isCImm(), llvm::Type::isDoubleTy(), llvm::MachineOperand::isFI(), llvm::Type::isFloatTy(), llvm::MachineOperand::isFPImm(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm::AsmPrinter::MF, Name, llvm::dwarf::OperationEncodingString(), llvm::AsmPrinter::OutStreamer, llvm::APInt::print(), llvm::printReg(), Reg, llvm::APFloatBase::rmNearestTiesToEven, and llvm::raw_svector_ostream::str().
Referenced by llvm::AsmPrinter::EmitFunctionBody().
|
static |
Definition at line 2364 of file AsmPrinter.cpp.
References emitGlobalConstantImpl(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::Value::getType(), llvm::ConstantArray::getType(), llvm::DataLayout::getTypeAllocSize(), isRepeatedByteSequence(), and llvm::AsmPrinter::OutStreamer.
Referenced by emitGlobalConstantImpl().
|
static |
Definition at line 2324 of file AsmPrinter.cpp.
References assert(), E, emitGlobalConstantFP(), llvm::format(), llvm::ConstantDataSequential::getAsString(), llvm::ConstantDataSequential::getElementAsAPFloat(), llvm::ConstantDataSequential::getElementAsInteger(), llvm::ConstantDataSequential::getElementByteSize(), llvm::SequentialType::getElementType(), llvm::ConstantDataSequential::getElementType(), llvm::ConstantDataSequential::getNumElements(), llvm::ConstantDataSequential::getType(), llvm::DataLayout::getTypeAllocSize(), I, isRepeatedByteSequence(), llvm::ConstantDataSequential::isString(), llvm::AsmPrinter::isVerbose(), llvm::AsmPrinter::OutStreamer, and Size.
Referenced by emitGlobalConstantImpl().
|
static |
Definition at line 2470 of file AsmPrinter.cpp.
References llvm::Value::getType(), and llvm::ConstantFP::getValueAPF().
Referenced by emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), and llvm::AsmPrinter::lowerConstant().
|
static |
Definition at line 2423 of file AsmPrinter.cpp.
References llvm::APFloat::bitcastToAPInt(), llvm::APInt::getBitWidth(), llvm::AsmPrinter::getDataLayout(), llvm::APInt::getNumWords(), llvm::APInt::getRawData(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::isBigEndian(), llvm::Type::isPPC_FP128Ty(), llvm::AsmPrinter::isVerbose(), llvm::AsmPrinter::OutStreamer, llvm::Type::print(), llvm::tgtok::StrVal, and llvm::APFloat::toString().
|
static |
Definition at line 2621 of file AsmPrinter.cpp.
References llvm::ConstantFoldConstant(), emitGlobalConstantArray(), emitGlobalConstantDataSequential(), emitGlobalConstantFP(), emitGlobalConstantLargeInt(), emitGlobalConstantStruct(), emitGlobalConstantVector(), llvm::format(), llvm::AsmPrinter::getObjFileLowering(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), handleIndirectSymViaGOTPCRel(), llvm::Value::hasOneUse(), llvm::AsmPrinter::isVerbose(), llvm::AsmPrinter::lowerConstant(), llvm::AsmPrinter::OutStreamer, Size, llvm::TargetLoweringObjectFile::supportIndirectSymViaGOTPCRel(), and llvm::Value::user_back().
Referenced by llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantStruct(), emitGlobalConstantVector(), and llvm::AsmPrinter::lowerConstant().
|
static |
Definition at line 2474 of file AsmPrinter.cpp.
References assert(), llvm::ConstantInt::getBitWidth(), llvm::AsmPrinter::getDataLayout(), llvm::ConstantInt::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::ConstantInt::getValue(), llvm::DataLayout::isBigEndian(), llvm::AsmPrinter::OutStreamer, and Size.
Referenced by emitGlobalConstantImpl().
|
static |
Definition at line 2395 of file AsmPrinter.cpp.
References assert(), emitGlobalConstantImpl(), llvm::tgtok::Field, llvm::StructLayout::getElementOffset(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::StructLayout::getSizeInBytes(), llvm::DataLayout::getStructLayout(), llvm::Value::getType(), llvm::ConstantStruct::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::AsmPrinter::OutStreamer, and Size.
Referenced by emitGlobalConstantImpl().
|
static |
Definition at line 2383 of file AsmPrinter.cpp.
References emitGlobalConstantImpl(), llvm::SequentialType::getElementType(), llvm::SequentialType::getNumElements(), llvm::User::getOperand(), llvm::ConstantVector::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::AsmPrinter::OutStreamer, and Size.
Referenced by emitGlobalConstantImpl().
|
static |
Definition at line 825 of file AsmPrinter.cpp.
References assert(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), llvm::AsmPrinter::MF, llvm::AsmPrinter::OutStreamer, llvm::printReg(), and llvm::raw_string_ostream::str().
Referenced by llvm::AsmPrinter::EmitFunctionBody().
|
static |
Definition at line 154 of file AsmPrinter.cpp.
Referenced by llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), and llvm::AsmPrinter::~AsmPrinter().
|
static |
getGVAlignmentLog2 - Return the alignment to use for the specified global value in log2 form.
This rounds up to the preferred alignment if possible and legal.
Definition at line 163 of file AsmPrinter.cpp.
References llvm::GlobalValue::getAlignment(), llvm::DataLayout::getPreferredAlignmentLog(), llvm::GlobalValue::hasSection(), and llvm::Log2_32().
Referenced by llvm::AsmPrinter::EmitAlignment(), and llvm::AsmPrinter::EmitGlobalVariable().
Compute the number of Global Variables that uses a Constant.
Definition at line 1243 of file AsmPrinter.cpp.
References llvm::Value::users().
Referenced by isGOTEquivalentCandidate().
|
static |
Transform a not absolute MCExpr containing a reference to a GOT equivalent global, by a target specific GOT pc relative access to the final symbol.
Definition at line 2533 of file AsmPrinter.cpp.
References llvm::MCValue::getConstant(), llvm::TargetLoweringObjectFile::getIndirectSymViaGOTPCRel(), llvm::AsmPrinter::getObjFileLowering(), llvm::User::getOperand(), llvm::MCValue::getSymA(), llvm::MCValue::getSymB(), llvm::AsmPrinter::getSymbol(), llvm::MCSymbolRefExpr::getSymbol(), llvm::AsmPrinter::GlobalGOTEquivs, llvm::MCValue::isAbsolute(), llvm::AsmPrinter::MMI, llvm::AsmPrinter::OutStreamer, and llvm::TargetLoweringObjectFile::supportGOTPCRelWithOffset().
Referenced by emitGlobalConstantImpl().
|
static |
Only consider global GOT equivalents if at least one user is a cstexpr inside an initializer of another global variables.
Also, don't handle cstexpr inside instructions. During global variable emission, candidates are skipped and are emitted later in case at least one cstexpr isn't replaced by a PC relative GOT entry access.
Definition at line 1262 of file AsmPrinter.cpp.
References llvm::dyn_cast(), getNumGlobalVariableUses(), llvm::User::getOperand(), llvm::GlobalValue::hasGlobalUnnamedAddr(), llvm::GlobalVariable::hasInitializer(), llvm::GlobalVariable::isConstant(), llvm::GlobalValue::isDiscardableIfUnused(), and llvm::Value::users().
Referenced by llvm::AsmPrinter::computeGlobalGOTEquivs().
|
static |
isRepeatedByteSequence - Determine whether the given value is composed of a repeated sequence of identical bytes and return the byte value.
If it is not a repeated sequence, return -1.
Definition at line 2278 of file AsmPrinter.cpp.
References assert(), C, llvm::Data, llvm::StringRef::empty(), llvm::ConstantDataSequential::getRawDataValues(), and llvm::StringRef::size().
Referenced by emitGlobalConstantArray(), emitGlobalConstantDataSequential(), and isRepeatedByteSequence().
|
static |
isRepeatedByteSequence - Determine whether the given value is composed of a repeated sequence of identical bytes and return the byte value.
If it is not a repeated sequence, return -1.
Definition at line 2290 of file AsmPrinter.cpp.
References assert(), llvm::User::getOperand(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSizeInBits(), llvm::APInt::getZExtValue(), isRepeatedByteSequence(), llvm::APInt::isSplat(), Size, and llvm::APInt::zextOrTrunc().
|
static |
Definition at line 1028 of file AsmPrinter.cpp.
References llvm::classifyEHPersonality(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getLandingPads(), llvm::Function::getPersonalityFn(), llvm::MachineModuleInfo::hasDebugInfo(), llvm::MachineFunction::hasEHFunclets(), llvm::Function::hasPersonalityFn(), and llvm::isNoOpWithoutInvoke().
Referenced by llvm::AsmPrinter::EmitFunctionBody(), and llvm::AsmPrinter::SetupMachineFunction().
|
static |
PrintChildLoopComment - Print comments about child loops within the loop for this basic block, with nesting.
Definition at line 2807 of file AsmPrinter.cpp.
References llvm::raw_ostream::indent().
Referenced by emitBasicBlockLoopComments().
|
static |
PrintParentLoopComment - Print comments about parent loops of this one.
Definition at line 2795 of file AsmPrinter.cpp.
References FunctionNumber(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopDepth(), llvm::MachineBasicBlock::getNumber(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), and llvm::raw_ostream::indent().
Referenced by emitBasicBlockLoopComments().
STATISTIC | ( | EmittedInsts | , |
"Number of machine instrs printed" | |||
) |
Definition at line 139 of file AsmPrinter.cpp.
Definition at line 138 of file AsmPrinter.cpp.
Definition at line 141 of file AsmPrinter.cpp.
Definition at line 140 of file AsmPrinter.cpp.
Definition at line 135 of file AsmPrinter.cpp.
Definition at line 134 of file AsmPrinter.cpp.
Definition at line 133 of file AsmPrinter.cpp.
Definition at line 132 of file AsmPrinter.cpp.
Definition at line 137 of file AsmPrinter.cpp.
Definition at line 136 of file AsmPrinter.cpp.
|
static |
Referenced by llvm::AsmPrinter::SetupMachineFunction().