LLVM API Documentation

SparcV9AsmPrinter.cpp File Reference

#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
#include "llvm/Pass.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/Support/Mangler.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/Statistic.h"
#include "SparcV9Internals.h"
#include "MachineFunctionInfo.h"
#include <string>

Include dependency graph for SparcV9AsmPrinter.cpp:

Go to the source code of this file.

Enumerations

enum  Sections {
  Unknown, Text, ReadOnlyData, InitRWData,
  ZeroInitRWData
}

Functions

std::string getAsCString (const ConstantArray *CVA)
bool ArrayTypeIsString (const ArrayType *arrayType)
unsigned findOptimalStorageSize (const TargetMachine &TM, const Type *Ty)
const std::string TypeToDataDirective (const Type *type)
unsigned int ConstantToSize (const Constant *CV, const TargetMachine &target)
unsigned int SizeToAlignment (unsigned int size, const TargetMachine &target)
unsigned int TypeToAlignment (const Type *type, const TargetMachine &target)
unsigned int ConstantToAlignment (const Constant *CV, const TargetMachine &target)
FunctionPassllvm::createAsmPrinterPass (std::ostream &Out, TargetMachine &TM)

Variables

Statistic EmittedInsts ("asm-printer","Number of machine instrs printed")
ManglerMang
std::ostream & O
const TargetMachineTM
enum Sections CurSection
const FunctioncurrFunction


Enumeration Type Documentation

enum Sections

Enumerator:
Unknown 
Text 
ReadOnlyData 
InitRWData 
ZeroInitRWData 

Definition at line 160 of file SparcV9AsmPrinter.cpp.


Function Documentation

bool @166::ArrayTypeIsString ( const ArrayType arrayType  )  [inline, static]

Definition at line 72 of file SparcV9AsmPrinter.cpp.

References llvm::SequentialType::getElementType().

Referenced by ConstantToAlignment(), ConstantToSize(), and TypeToDataDirective().

unsigned int @166::ConstantToAlignment ( const Constant CV,
const TargetMachine target 
) [inline, static]

Get the size of the constant and then use SizeToAlignment. Handles strings as a special case;

Definition at line 149 of file SparcV9AsmPrinter.cpp.

References ArrayTypeIsString(), SizeToAlignment(), target, and TypeToAlignment().

unsigned int @166::ConstantToSize ( const Constant CV,
const TargetMachine target 
) [inline, static]

Get the size of the constant for the given target. If this is an unsized array, return 0.

Definition at line 115 of file SparcV9AsmPrinter.cpp.

References ArrayTypeIsString(), findOptimalStorageSize(), and target.

unsigned @166::findOptimalStorageSize ( const TargetMachine TM,
const Type Ty 
) [static]

Definition at line 77 of file SparcV9AsmPrinter.cpp.

References llvm::Type::getPrimitiveSize(), llvm::TargetMachine::getTargetData(), llvm::TargetData::getTypeSize(), llvm::Type::isIntegral(), TM, and Ty.

Referenced by ConstantToSize(), and TypeToAlignment().

std::string @166::getAsCString ( const ConstantArray CVA  )  [static]

getAsCString - Return the specified array as a C compatible string, only if the predicate isString() is true.

Definition at line 46 of file SparcV9AsmPrinter.cpp.

References llvm::CallingConv::C, llvm::User::getNumOperands(), llvm::Constant::getOperand(), and llvm::ConstantArray::isString().

unsigned int @166::SizeToAlignment ( unsigned int  size,
const TargetMachine target 
) [inline, static]

Align data larger than one L1 cache line on L1 cache line boundaries. Align all smaller data on the next higher 2^x boundary (4, 8, ...).

Definition at line 129 of file SparcV9AsmPrinter.cpp.

References sz.

unsigned int @166::TypeToAlignment ( const Type type,
const TargetMachine target 
) [inline, static]

Get the size of the type and then use SizeToAlignment.

Definition at line 142 of file SparcV9AsmPrinter.cpp.

References findOptimalStorageSize(), SizeToAlignment(), and target.

Referenced by ConstantToAlignment().

const std::string @166::TypeToDataDirective ( const Type type  )  [inline, static]

Definition at line 87 of file SparcV9AsmPrinter.cpp.

References ArrayTypeIsString(), and llvm::Type::getTypeID().


Variable Documentation

const Function* currFunction

Definition at line 513 of file SparcV9AsmPrinter.cpp.

enum Sections CurSection

Definition at line 176 of file SparcV9AsmPrinter.cpp.

Statistic EmittedInsts("asm-printer","Number of machine instrs printed") [static]

Mangler* Mang

Definition at line 170 of file SparcV9AsmPrinter.cpp.

std::ostream& O

Definition at line 173 of file SparcV9AsmPrinter.cpp.

Referenced by llvm::cl::value_desc::apply(), llvm::cl::desc::apply(), llvm::TargetLowering::TargetLoweringOpt::CombineTo(), llvm::MSScheduleSB::constructKernel(), EatsUnboundedNumberOfValues(), llvm::DOTGraphTraits< const DSGraph * >::edgeTargetsEdgeSource(), llvm::DOTGraphTraits< const DSGraph * >::getEdgeTarget(), llvm::cl::generic_parser_base::getOptionWidth(), llvm::cl::basic_parser_impl::getOptionWidth(), getValueStr(), llvm::TargetNameParser::initialize(), llvm::PassNameParser::initialize(), llvm::cl::generic_parser_base::initialize(), isGrouping(), isPrefixedOrGrouping(), llvm::DSNode::mergeTypeInfo(), llvm::SDOperand::operator!=(), llvm::SDOperand::operator<(), llvm::SDOperand::operator==(), llvm::cl::applicator< MiscFlags >::opt(), llvm::cl::applicator< FormattingFlags >::opt(), llvm::cl::applicator< OptionHidden >::opt(), llvm::cl::applicator< ValueExpected >::opt(), llvm::cl::applicator< NumOccurrences >::opt(), llvm::cl::parser< const llvm::PassInfo * >::parse(), parseDouble(), llvm::PassNameParser::printOptionInfo(), llvm::cl::generic_parser_base::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionInfo(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), RequiresValue(), llvm::cl::alias::setAliasFor(), llvm::cl::bits_storage< DataType, Storage >::setLocation(), llvm::cl::list_storage< DataType, Storage >::setLocation(), llvm::cl::opt_storage< DataType, ExternalStorage, llvm::is_class< DataType >::value >::setLocation(), and llvm::MachineInstr::substituteValue().

const TargetMachine& TM

Definition at line 174 of file SparcV9AsmPrinter.cpp.