Don't pass StringRef by reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer
2010-07-14 22:38:02 +00:00
parent d26e89dfcb
commit 38e59891ee
37 changed files with 74 additions and 76 deletions

View File

@@ -457,8 +457,8 @@ StringMap class which is used extensively in LLVM and Clang.</p>
may have embedded null characters. Therefore, they cannot simply take may have embedded null characters. Therefore, they cannot simply take
a <tt>const char *</tt>, and taking a <tt>const std::string&amp;</tt> requires a <tt>const char *</tt>, and taking a <tt>const std::string&amp;</tt> requires
clients to perform a heap allocation which is usually unnecessary. Instead, clients to perform a heap allocation which is usually unnecessary. Instead,
many LLVM APIs use a <tt>const StringRef&amp;</tt> or a <tt>const many LLVM APIs use a <tt>StringRef</tt> or a <tt>const Twine&amp;</tt> for
Twine&amp;</tt> for passing strings efficiently.</p> passing strings efficiently.</p>
</div> </div>
@@ -477,19 +477,17 @@ on <tt>std:string</tt>, but does not require heap allocation.</p>
an <tt>std::string</tt>, or explicitly with a character pointer and length. an <tt>std::string</tt>, or explicitly with a character pointer and length.
For example, the <tt>StringRef</tt> find function is declared as:</p> For example, the <tt>StringRef</tt> find function is declared as:</p>
<div class="doc_code"> <pre class="doc_code">
iterator find(const StringRef &amp;Key); iterator find(StringRef Key);
</div> </pre>
<p>and clients can call it using any one of:</p> <p>and clients can call it using any one of:</p>
<div class="doc_code"> <pre class="doc_code">
<pre>
Map.find("foo"); <i>// Lookup "foo"</i> Map.find("foo"); <i>// Lookup "foo"</i>
Map.find(std::string("bar")); <i>// Lookup "bar"</i> Map.find(std::string("bar")); <i>// Lookup "bar"</i>
Map.find(StringRef("\0baz", 4)); <i>// Lookup "\0baz"</i> Map.find(StringRef("\0baz", 4)); <i>// Lookup "\0baz"</i>
</pre> </pre>
</div>
<p>Similarly, APIs which need to return a string may return a <tt>StringRef</tt> <p>Similarly, APIs which need to return a string may return a <tt>StringRef</tt>
instance, which can be used directly or converted to an <tt>std::string</tt> instance, which can be used directly or converted to an <tt>std::string</tt>
@@ -499,7 +497,8 @@ for more information.</p>
<p>You should rarely use the <tt>StringRef</tt> class directly, because it contains <p>You should rarely use the <tt>StringRef</tt> class directly, because it contains
pointers to external memory it is not generally safe to store an instance of the pointers to external memory it is not generally safe to store an instance of the
class (unless you know that the external storage will not be freed).</p> class (unless you know that the external storage will not be freed). StringRef is
small and pervasive enough in LLVM that it should always be passed by value.</p>
</div> </div>

View File

@@ -179,7 +179,7 @@ namespace llvm {
// Constructors. // Constructors.
APFloat(const fltSemantics &); // Default construct to 0.0 APFloat(const fltSemantics &); // Default construct to 0.0
APFloat(const fltSemantics &, const StringRef &); APFloat(const fltSemantics &, StringRef);
APFloat(const fltSemantics &, integerPart); APFloat(const fltSemantics &, integerPart);
APFloat(const fltSemantics &, fltCategory, bool negative); APFloat(const fltSemantics &, fltCategory, bool negative);
APFloat(const fltSemantics &, uninitializedTag); APFloat(const fltSemantics &, uninitializedTag);
@@ -282,7 +282,7 @@ namespace llvm {
bool, roundingMode); bool, roundingMode);
opStatus convertFromZeroExtendedInteger(const integerPart *, unsigned int, opStatus convertFromZeroExtendedInteger(const integerPart *, unsigned int,
bool, roundingMode); bool, roundingMode);
opStatus convertFromString(const StringRef&, roundingMode); opStatus convertFromString(StringRef, roundingMode);
APInt bitcastToAPInt() const; APInt bitcastToAPInt() const;
double convertToDouble() const; double convertToDouble() const;
float convertToFloat() const; float convertToFloat() const;
@@ -386,8 +386,8 @@ namespace llvm {
roundingMode, bool *) const; roundingMode, bool *) const;
opStatus convertFromUnsignedParts(const integerPart *, unsigned int, opStatus convertFromUnsignedParts(const integerPart *, unsigned int,
roundingMode); roundingMode);
opStatus convertFromHexadecimalString(const StringRef&, roundingMode); opStatus convertFromHexadecimalString(StringRef, roundingMode);
opStatus convertFromDecimalString (const StringRef&, roundingMode); opStatus convertFromDecimalString(StringRef, roundingMode);
char *convertNormalToHexString(char *, unsigned int, bool, char *convertNormalToHexString(char *, unsigned int, bool,
roundingMode) const; roundingMode) const;
opStatus roundSignificandWithExponent(const integerPart *, unsigned int, opStatus roundSignificandWithExponent(const integerPart *, unsigned int,

View File

@@ -162,7 +162,7 @@ class APInt {
/// ///
/// @param radix 2, 8, 10, or 16 /// @param radix 2, 8, 10, or 16
/// @brief Convert a char array into an APInt /// @brief Convert a char array into an APInt
void fromString(unsigned numBits, const StringRef &str, uint8_t radix); void fromString(unsigned numBits, StringRef str, uint8_t radix);
/// This is used by the toString method to divide by the radix. It simply /// This is used by the toString method to divide by the radix. It simply
/// provides a more convenient form of divide for internal use since KnuthDiv /// provides a more convenient form of divide for internal use since KnuthDiv
@@ -248,7 +248,7 @@ public:
/// @param str the string to be interpreted /// @param str the string to be interpreted
/// @param radix the radix to use for the conversion /// @param radix the radix to use for the conversion
/// @brief Construct an APInt from a string representation. /// @brief Construct an APInt from a string representation.
APInt(unsigned numBits, const StringRef &str, uint8_t radix); APInt(unsigned numBits, StringRef str, uint8_t radix);
/// Simply makes *this a copy of that. /// Simply makes *this a copy of that.
/// @brief Copy Constructor. /// @brief Copy Constructor.
@@ -1153,7 +1153,7 @@ public:
/// This method determines how many bits are required to hold the APInt /// This method determines how many bits are required to hold the APInt
/// equivalent of the string given by \arg str. /// equivalent of the string given by \arg str.
/// @brief Get bits required for string value. /// @brief Get bits required for string value.
static unsigned getBitsNeeded(const StringRef& str, uint8_t radix); static unsigned getBitsNeeded(StringRef str, uint8_t radix);
/// countLeadingZeros - This function is an APInt version of the /// countLeadingZeros - This function is an APInt version of the
/// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number /// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number

View File

@@ -107,7 +107,7 @@ private:
void EatToEndOfStatement(); void EatToEndOfStatement();
bool ParseAssignment(const StringRef &Name); bool ParseAssignment(StringRef Name);
bool ParsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc); bool ParsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc);
bool ParseBinOpRHS(unsigned Precedence, const MCExpr *&Res, SMLoc &EndLoc); bool ParseBinOpRHS(unsigned Precedence, const MCExpr *&Res, SMLoc &EndLoc);

View File

@@ -36,7 +36,7 @@ namespace llvm {
/// Compiles the given POSIX Extended Regular Expression \arg Regex. /// Compiles the given POSIX Extended Regular Expression \arg Regex.
/// This implementation supports regexes and matching strings with embedded /// This implementation supports regexes and matching strings with embedded
/// NUL characters. /// NUL characters.
Regex(const StringRef &Regex, unsigned Flags = NoFlags); Regex(StringRef Regex, unsigned Flags = NoFlags);
~Regex(); ~Regex();
/// isValid - returns the error encountered during regex compilation, or /// isValid - returns the error encountered during regex compilation, or
@@ -55,7 +55,7 @@ namespace llvm {
/// the first group is always the entire pattern. /// the first group is always the entire pattern.
/// ///
/// This returns true on a successful match. /// This returns true on a successful match.
bool match(const StringRef &String, SmallVectorImpl<StringRef> *Matches=0); bool match(StringRef String, SmallVectorImpl<StringRef> *Matches = 0);
/// sub - Return the result of replacing the first match of the regex in /// sub - Return the result of replacing the first match of the regex in
/// \arg String with the \arg Repl string. Backreferences like "\0" in the /// \arg String with the \arg Repl string. Backreferences like "\0" in the

View File

@@ -64,7 +64,7 @@ namespace llvm {
/// intern - Adds a string to the pool and returns a reference-counted /// intern - Adds a string to the pool and returns a reference-counted
/// pointer to it. No additional memory is allocated if the string already /// pointer to it. No additional memory is allocated if the string already
/// exists in the pool. /// exists in the pool.
PooledStringPtr intern(const StringRef &Str); PooledStringPtr intern(StringRef Str);
/// empty - Checks whether the pool is empty. Returns true if so. /// empty - Checks whether the pool is empty. Returns true if so.
/// ///

View File

@@ -49,7 +49,7 @@ public:
/// \param Operands [out] - The list of parsed operands, this returns /// \param Operands [out] - The list of parsed operands, this returns
/// ownership of them to the caller. /// ownership of them to the caller.
/// \return True on failure. /// \return True on failure.
virtual bool ParseInstruction(const StringRef &Name, SMLoc NameLoc, virtual bool ParseInstruction(StringRef Name, SMLoc NameLoc,
SmallVectorImpl<MCParsedAsmOperand*> &Operands) = 0; SmallVectorImpl<MCParsedAsmOperand*> &Operands) = 0;
/// ParseDirective - Parse a target specific assembler directive /// ParseDirective - Parse a target specific assembler directive

View File

@@ -712,7 +712,7 @@ bool AsmParser::ParseStatement() {
return HadError; return HadError;
} }
bool AsmParser::ParseAssignment(const StringRef &Name) { bool AsmParser::ParseAssignment(StringRef Name) {
// FIXME: Use better location, we should use proper tokens. // FIXME: Use better location, we should use proper tokens.
SMLoc EqualLoc = Lexer.getLoc(); SMLoc EqualLoc = Lexer.getLoc();

View File

@@ -761,7 +761,7 @@ APFloat::APFloat(const fltSemantics &ourSemantics,
makeNaN(); makeNaN();
} }
APFloat::APFloat(const fltSemantics &ourSemantics, const StringRef& text) APFloat::APFloat(const fltSemantics &ourSemantics, StringRef text)
{ {
assertArithmeticOK(ourSemantics); assertArithmeticOK(ourSemantics);
initialize(&ourSemantics); initialize(&ourSemantics);
@@ -2185,8 +2185,7 @@ APFloat::convertFromZeroExtendedInteger(const integerPart *parts,
} }
APFloat::opStatus APFloat::opStatus
APFloat::convertFromHexadecimalString(const StringRef &s, APFloat::convertFromHexadecimalString(StringRef s, roundingMode rounding_mode)
roundingMode rounding_mode)
{ {
lostFraction lost_fraction = lfExactlyZero; lostFraction lost_fraction = lfExactlyZero;
integerPart *significand; integerPart *significand;
@@ -2361,7 +2360,7 @@ APFloat::roundSignificandWithExponent(const integerPart *decSigParts,
} }
APFloat::opStatus APFloat::opStatus
APFloat::convertFromDecimalString(const StringRef &str, roundingMode rounding_mode) APFloat::convertFromDecimalString(StringRef str, roundingMode rounding_mode)
{ {
decimalInfo D; decimalInfo D;
opStatus fs; opStatus fs;
@@ -2471,7 +2470,7 @@ APFloat::convertFromDecimalString(const StringRef &str, roundingMode rounding_mo
} }
APFloat::opStatus APFloat::opStatus
APFloat::convertFromString(const StringRef &str, roundingMode rounding_mode) APFloat::convertFromString(StringRef str, roundingMode rounding_mode)
{ {
assertArithmeticOK(*semantics); assertArithmeticOK(*semantics);
assert(!str.empty() && "Invalid string length"); assert(!str.empty() && "Invalid string length");

View File

@@ -102,7 +102,7 @@ APInt::APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[])
clearUnusedBits(); clearUnusedBits();
} }
APInt::APInt(unsigned numbits, const StringRef& Str, uint8_t radix) APInt::APInt(unsigned numbits, StringRef Str, uint8_t radix)
: BitWidth(numbits), VAL(0) { : BitWidth(numbits), VAL(0) {
assert(BitWidth && "Bitwidth too small"); assert(BitWidth && "Bitwidth too small");
fromString(numbits, Str, radix); fromString(numbits, Str, radix);
@@ -613,7 +613,7 @@ APInt& APInt::flip(unsigned bitPosition) {
return *this; return *this;
} }
unsigned APInt::getBitsNeeded(const StringRef& str, uint8_t radix) { unsigned APInt::getBitsNeeded(StringRef str, uint8_t radix) {
assert(!str.empty() && "Invalid string length"); assert(!str.empty() && "Invalid string length");
assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) &&
"Radix should be 2, 8, 10, or 16!"); "Radix should be 2, 8, 10, or 16!");
@@ -2046,7 +2046,7 @@ void APInt::udivrem(const APInt &LHS, const APInt &RHS,
divide(LHS, lhsWords, RHS, rhsWords, &Quotient, &Remainder); divide(LHS, lhsWords, RHS, rhsWords, &Quotient, &Remainder);
} }
void APInt::fromString(unsigned numbits, const StringRef& str, uint8_t radix) { void APInt::fromString(unsigned numbits, StringRef str, uint8_t radix) {
// Check our assumptions here // Check our assumptions here
assert(!str.empty() && "Invalid string length"); assert(!str.empty() && "Invalid string length");
assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) &&

View File

@@ -19,7 +19,7 @@
#include <string> #include <string>
using namespace llvm; using namespace llvm;
Regex::Regex(const StringRef &regex, unsigned Flags) { Regex::Regex(StringRef regex, unsigned Flags) {
unsigned flags = 0; unsigned flags = 0;
preg = new llvm_regex(); preg = new llvm_regex();
preg->re_endp = regex.end(); preg->re_endp = regex.end();
@@ -52,7 +52,7 @@ unsigned Regex::getNumMatches() const {
return preg->re_nsub; return preg->re_nsub;
} }
bool Regex::match(const StringRef &String, SmallVectorImpl<StringRef> *Matches){ bool Regex::match(StringRef String, SmallVectorImpl<StringRef> *Matches){
unsigned nmatch = Matches ? preg->re_nsub+1 : 0; unsigned nmatch = Matches ? preg->re_nsub+1 : 0;
// pmatch needs to have at least one element. // pmatch needs to have at least one element.

View File

@@ -22,7 +22,7 @@ StringPool::~StringPool() {
assert(InternTable.empty() && "PooledStringPtr leaked!"); assert(InternTable.empty() && "PooledStringPtr leaked!");
} }
PooledStringPtr StringPool::intern(const StringRef &Key) { PooledStringPtr StringPool::intern(StringRef Key) {
table_t::iterator I = InternTable.find(Key); table_t::iterator I = InternTable.find(Key);
if (I != InternTable.end()) if (I != InternTable.end())
return PooledStringPtr(&*I); return PooledStringPtr(&*I);

View File

@@ -88,7 +88,7 @@ private:
/// its register number, or -1 if there is no match. To allow return values /// its register number, or -1 if there is no match. To allow return values
/// to be used directly in register lists, arm registers have values between /// to be used directly in register lists, arm registers have values between
/// 0 and 15. /// 0 and 15.
int MatchRegisterName(const StringRef &Name); int MatchRegisterName(StringRef Name);
/// } /// }
@@ -97,7 +97,7 @@ public:
ARMAsmParser(const Target &T, MCAsmParser &_Parser) ARMAsmParser(const Target &T, MCAsmParser &_Parser)
: TargetAsmParser(T), Parser(_Parser) {} : TargetAsmParser(T), Parser(_Parser) {}
virtual bool ParseInstruction(const StringRef &Name, SMLoc NameLoc, virtual bool ParseInstruction(StringRef Name, SMLoc NameLoc,
SmallVectorImpl<MCParsedAsmOperand*> &Operands); SmallVectorImpl<MCParsedAsmOperand*> &Operands);
virtual bool ParseDirective(AsmToken DirectiveID); virtual bool ParseDirective(AsmToken DirectiveID);
@@ -517,7 +517,7 @@ bool ARMAsmParser::ParseShift(ShiftType &St,
const AsmToken &Tok = Parser.getTok(); const AsmToken &Tok = Parser.getTok();
if (Tok.isNot(AsmToken::Identifier)) if (Tok.isNot(AsmToken::Identifier))
return true; return true;
const StringRef &ShiftName = Tok.getString(); StringRef ShiftName = Tok.getString();
if (ShiftName == "lsl" || ShiftName == "LSL") if (ShiftName == "lsl" || ShiftName == "LSL")
St = Lsl; St = Lsl;
else if (ShiftName == "lsr" || ShiftName == "LSR") else if (ShiftName == "lsr" || ShiftName == "LSR")
@@ -549,7 +549,7 @@ bool ARMAsmParser::ParseShift(ShiftType &St,
} }
/// A hack to allow some testing, to be replaced by a real table gen version. /// A hack to allow some testing, to be replaced by a real table gen version.
int ARMAsmParser::MatchRegisterName(const StringRef &Name) { int ARMAsmParser::MatchRegisterName(StringRef Name) {
if (Name == "r0" || Name == "R0") if (Name == "r0" || Name == "R0")
return 0; return 0;
else if (Name == "r1" || Name == "R1") else if (Name == "r1" || Name == "R1")
@@ -593,7 +593,7 @@ MatchInstruction(const SmallVectorImpl<MCParsedAsmOperand*> &Operands,
MCInst &Inst) { MCInst &Inst) {
ARMOperand &Op0 = *(ARMOperand*)Operands[0]; ARMOperand &Op0 = *(ARMOperand*)Operands[0];
assert(Op0.Kind == ARMOperand::Token && "First operand not a Token"); assert(Op0.Kind == ARMOperand::Token && "First operand not a Token");
const StringRef &Mnemonic = Op0.getToken(); StringRef Mnemonic = Op0.getToken();
if (Mnemonic == "add" || if (Mnemonic == "add" ||
Mnemonic == "stmfd" || Mnemonic == "stmfd" ||
Mnemonic == "str" || Mnemonic == "str" ||
@@ -658,7 +658,7 @@ bool ARMAsmParser::ParseOperand(OwningPtr<ARMOperand> &Op) {
} }
/// Parse an arm instruction mnemonic followed by its operands. /// Parse an arm instruction mnemonic followed by its operands.
bool ARMAsmParser::ParseInstruction(const StringRef &Name, SMLoc NameLoc, bool ARMAsmParser::ParseInstruction(StringRef Name, SMLoc NameLoc,
SmallVectorImpl<MCParsedAsmOperand*> &Operands) { SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
OwningPtr<ARMOperand> Op; OwningPtr<ARMOperand> Op;
ARMOperand::CreateToken(Op, Name, NameLoc); ARMOperand::CreateToken(Op, Name, NameLoc);
@@ -761,7 +761,7 @@ bool ARMAsmParser::ParseDirectiveSyntax(SMLoc L) {
const AsmToken &Tok = Parser.getTok(); const AsmToken &Tok = Parser.getTok();
if (Tok.isNot(AsmToken::Identifier)) if (Tok.isNot(AsmToken::Identifier))
return Error(L, "unexpected token in .syntax directive"); return Error(L, "unexpected token in .syntax directive");
const StringRef &Mode = Tok.getString(); StringRef Mode = Tok.getString();
if (Mode == "unified" || Mode == "UNIFIED") if (Mode == "unified" || Mode == "UNIFIED")
Parser.Lex(); Parser.Lex();
else if (Mode == "divided" || Mode == "DIVIDED") else if (Mode == "divided" || Mode == "DIVIDED")

View File

@@ -14,7 +14,7 @@
#include "AlphaMCAsmInfo.h" #include "AlphaMCAsmInfo.h"
using namespace llvm; using namespace llvm;
AlphaMCAsmInfo::AlphaMCAsmInfo(const Target &T, const StringRef &TT) { AlphaMCAsmInfo::AlphaMCAsmInfo(const Target &T, StringRef TT) {
AlignmentIsInBytes = false; AlignmentIsInBytes = false;
PrivateGlobalPrefix = "$"; PrivateGlobalPrefix = "$";
GPRel32Directive = ".gprel32"; GPRel32Directive = ".gprel32";

View File

@@ -14,14 +14,14 @@
#ifndef ALPHATARGETASMINFO_H #ifndef ALPHATARGETASMINFO_H
#define ALPHATARGETASMINFO_H #define ALPHATARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
struct AlphaMCAsmInfo : public MCAsmInfo { struct AlphaMCAsmInfo : public MCAsmInfo {
explicit AlphaMCAsmInfo(const Target &T, const StringRef &TT); explicit AlphaMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -15,7 +15,7 @@
using namespace llvm; using namespace llvm;
BlackfinMCAsmInfo::BlackfinMCAsmInfo(const Target &T, const StringRef &TT) { BlackfinMCAsmInfo::BlackfinMCAsmInfo(const Target &T, StringRef TT) {
GlobalPrefix = "_"; GlobalPrefix = "_";
CommentString = "//"; CommentString = "//";
HasSetDirective = false; HasSetDirective = false;

View File

@@ -14,14 +14,14 @@
#ifndef BLACKFINTARGETASMINFO_H #ifndef BLACKFINTARGETASMINFO_H
#define BLACKFINTARGETASMINFO_H #define BLACKFINTARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
struct BlackfinMCAsmInfo : public MCAsmInfo { struct BlackfinMCAsmInfo : public MCAsmInfo {
explicit BlackfinMCAsmInfo(const Target &T, const StringRef &TT); explicit BlackfinMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -14,7 +14,7 @@
#include "SPUMCAsmInfo.h" #include "SPUMCAsmInfo.h"
using namespace llvm; using namespace llvm;
SPULinuxMCAsmInfo::SPULinuxMCAsmInfo(const Target &T, const StringRef &TT) { SPULinuxMCAsmInfo::SPULinuxMCAsmInfo(const Target &T, StringRef TT) {
ZeroDirective = "\t.space\t"; ZeroDirective = "\t.space\t";
Data64bitsDirective = "\t.quad\t"; Data64bitsDirective = "\t.quad\t";
AlignmentIsInBytes = false; AlignmentIsInBytes = false;

View File

@@ -14,14 +14,14 @@
#ifndef SPUTARGETASMINFO_H #ifndef SPUTARGETASMINFO_H
#define SPUTARGETASMINFO_H #define SPUTARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
struct SPULinuxMCAsmInfo : public MCAsmInfo { struct SPULinuxMCAsmInfo : public MCAsmInfo {
explicit SPULinuxMCAsmInfo(const Target &T, const StringRef &TT); explicit SPULinuxMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -14,7 +14,7 @@
#include "MBlazeMCAsmInfo.h" #include "MBlazeMCAsmInfo.h"
using namespace llvm; using namespace llvm;
MBlazeMCAsmInfo::MBlazeMCAsmInfo(const Target &T, const StringRef &TT) { MBlazeMCAsmInfo::MBlazeMCAsmInfo(const Target &T, StringRef TT) {
AlignmentIsInBytes = false; AlignmentIsInBytes = false;
Data16bitsDirective = "\t.half\t"; Data16bitsDirective = "\t.half\t";
Data32bitsDirective = "\t.word\t"; Data32bitsDirective = "\t.word\t";

View File

@@ -14,15 +14,15 @@
#ifndef MBLAZETARGETASMINFO_H #ifndef MBLAZETARGETASMINFO_H
#define MBLAZETARGETASMINFO_H #define MBLAZETARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
class MBlazeMCAsmInfo : public MCAsmInfo { class MBlazeMCAsmInfo : public MCAsmInfo {
public: public:
explicit MBlazeMCAsmInfo(const Target &T, const StringRef &TT); explicit MBlazeMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -1621,8 +1621,7 @@ const char* MSILWriter::getLibraryName(const GlobalVariable* GV) {
} }
const char* MSILWriter::getLibraryForSymbol(const StringRef &Name, const char* MSILWriter::getLibraryForSymbol(StringRef Name, bool isFunction,
bool isFunction,
CallingConv::ID CallingConv) { CallingConv::ID CallingConv) {
// TODO: Read *.def file with function and libraries definitions. // TODO: Read *.def file with function and libraries definitions.
return "MSVCRT.DLL"; return "MSVCRT.DLL";

View File

@@ -246,7 +246,7 @@ namespace llvm {
const char* getLibraryName(const GlobalVariable* GV); const char* getLibraryName(const GlobalVariable* GV);
const char* getLibraryForSymbol(const StringRef &Name, bool isFunction, const char* getLibraryForSymbol(StringRef Name, bool isFunction,
CallingConv::ID CallingConv); CallingConv::ID CallingConv);
void printExternals(); void printExternals();

View File

@@ -14,7 +14,7 @@
#include "MSP430MCAsmInfo.h" #include "MSP430MCAsmInfo.h"
using namespace llvm; using namespace llvm;
MSP430MCAsmInfo::MSP430MCAsmInfo(const Target &T, const StringRef &TT) { MSP430MCAsmInfo::MSP430MCAsmInfo(const Target &T, StringRef TT) {
PrivateGlobalPrefix = ".L"; PrivateGlobalPrefix = ".L";
WeakRefDirective ="\t.weak\t"; WeakRefDirective ="\t.weak\t";
PCSymbol="."; PCSymbol=".";

View File

@@ -14,13 +14,14 @@
#ifndef MSP430TARGETASMINFO_H #ifndef MSP430TARGETASMINFO_H
#define MSP430TARGETASMINFO_H #define MSP430TARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
struct MSP430MCAsmInfo : public MCAsmInfo { struct MSP430MCAsmInfo : public MCAsmInfo {
explicit MSP430MCAsmInfo(const Target &T, const StringRef &TT); explicit MSP430MCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -14,7 +14,7 @@
#include "MipsMCAsmInfo.h" #include "MipsMCAsmInfo.h"
using namespace llvm; using namespace llvm;
MipsMCAsmInfo::MipsMCAsmInfo(const Target &T, const StringRef &TT) { MipsMCAsmInfo::MipsMCAsmInfo(const Target &T, StringRef TT) {
AlignmentIsInBytes = false; AlignmentIsInBytes = false;
Data16bitsDirective = "\t.half\t"; Data16bitsDirective = "\t.half\t";
Data32bitsDirective = "\t.word\t"; Data32bitsDirective = "\t.word\t";

View File

@@ -14,15 +14,15 @@
#ifndef MIPSTARGETASMINFO_H #ifndef MIPSTARGETASMINFO_H
#define MIPSTARGETASMINFO_H #define MIPSTARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
class MipsMCAsmInfo : public MCAsmInfo { class MipsMCAsmInfo : public MCAsmInfo {
public: public:
explicit MipsMCAsmInfo(const Target &T, const StringRef &TT); explicit MipsMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -20,7 +20,7 @@
#include "PIC16ISelLowering.h" #include "PIC16ISelLowering.h"
using namespace llvm; using namespace llvm;
PIC16MCAsmInfo::PIC16MCAsmInfo(const Target &T, const StringRef &TT) { PIC16MCAsmInfo::PIC16MCAsmInfo(const Target &T, StringRef TT) {
CommentString = ";"; CommentString = ";";
GlobalPrefix = PAN::getTagName(PAN::PREFIX_SYMBOL); GlobalPrefix = PAN::getTagName(PAN::PREFIX_SYMBOL);
GlobalDirective = "\tglobal\t"; GlobalDirective = "\tglobal\t";

View File

@@ -25,7 +25,7 @@ namespace llvm {
const char *RomData16bitsDirective; const char *RomData16bitsDirective;
const char *RomData32bitsDirective; const char *RomData32bitsDirective;
public: public:
PIC16MCAsmInfo(const Target &T, const StringRef &TT); PIC16MCAsmInfo(const Target &T, StringRef TT);
virtual const char *getDataASDirective(unsigned size, unsigned AS) const; virtual const char *getDataASDirective(unsigned size, unsigned AS) const;
}; };

View File

@@ -12,10 +12,9 @@
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "SparcMCAsmInfo.h" #include "SparcMCAsmInfo.h"
#include "llvm/ADT/SmallVector.h"
using namespace llvm; using namespace llvm;
SparcELFMCAsmInfo::SparcELFMCAsmInfo(const Target &T, const StringRef &TT) { SparcELFMCAsmInfo::SparcELFMCAsmInfo(const Target &T, StringRef TT) {
Data16bitsDirective = "\t.half\t"; Data16bitsDirective = "\t.half\t";
Data32bitsDirective = "\t.word\t"; Data32bitsDirective = "\t.word\t";
Data64bitsDirective = 0; // .xword is only supported by V9. Data64bitsDirective = 0; // .xword is only supported by V9.

View File

@@ -14,13 +14,14 @@
#ifndef SPARCTARGETASMINFO_H #ifndef SPARCTARGETASMINFO_H
#define SPARCTARGETASMINFO_H #define SPARCTARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
struct SparcELFMCAsmInfo : public MCAsmInfo { struct SparcELFMCAsmInfo : public MCAsmInfo {
explicit SparcELFMCAsmInfo(const Target &T, const StringRef &TT); explicit SparcELFMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -16,7 +16,7 @@
#include "llvm/MC/MCSectionELF.h" #include "llvm/MC/MCSectionELF.h"
using namespace llvm; using namespace llvm;
SystemZMCAsmInfo::SystemZMCAsmInfo(const Target &T, const StringRef &TT) { SystemZMCAsmInfo::SystemZMCAsmInfo(const Target &T, StringRef TT) {
PrivateGlobalPrefix = ".L"; PrivateGlobalPrefix = ".L";
WeakRefDirective = "\t.weak\t"; WeakRefDirective = "\t.weak\t";
PCSymbol = "."; PCSymbol = ".";

View File

@@ -21,7 +21,7 @@ namespace llvm {
class StringRef; class StringRef;
struct SystemZMCAsmInfo : public MCAsmInfo { struct SystemZMCAsmInfo : public MCAsmInfo {
explicit SystemZMCAsmInfo(const Target &T, const StringRef &TT); explicit SystemZMCAsmInfo(const Target &T, StringRef TT);
virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const; virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const;
}; };

View File

@@ -65,7 +65,7 @@ public:
X86ATTAsmParser(const Target &T, MCAsmParser &_Parser) X86ATTAsmParser(const Target &T, MCAsmParser &_Parser)
: TargetAsmParser(T), Parser(_Parser) {} : TargetAsmParser(T), Parser(_Parser) {}
virtual bool ParseInstruction(const StringRef &Name, SMLoc NameLoc, virtual bool ParseInstruction(StringRef Name, SMLoc NameLoc,
SmallVectorImpl<MCParsedAsmOperand*> &Operands); SmallVectorImpl<MCParsedAsmOperand*> &Operands);
virtual bool ParseDirective(AsmToken DirectiveID); virtual bool ParseDirective(AsmToken DirectiveID);
@@ -602,7 +602,7 @@ X86Operand *X86ATTAsmParser::ParseMemOperand(unsigned SegReg, SMLoc MemStart) {
} }
bool X86ATTAsmParser:: bool X86ATTAsmParser::
ParseInstruction(const StringRef &Name, SMLoc NameLoc, ParseInstruction(StringRef Name, SMLoc NameLoc,
SmallVectorImpl<MCParsedAsmOperand*> &Operands) { SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
// The various flavors of pushf and popf use Requires<In32BitMode> and // The various flavors of pushf and popf use Requires<In32BitMode> and
// Requires<In64BitMode>, but the assembler doesn't yet implement that. // Requires<In64BitMode>, but the assembler doesn't yet implement that.

View File

@@ -10,7 +10,7 @@
#include "XCoreMCAsmInfo.h" #include "XCoreMCAsmInfo.h"
using namespace llvm; using namespace llvm;
XCoreMCAsmInfo::XCoreMCAsmInfo(const Target &T, const StringRef &TT) { XCoreMCAsmInfo::XCoreMCAsmInfo(const Target &T, StringRef TT) {
SupportsDebugInformation = true; SupportsDebugInformation = true;
Data16bitsDirective = "\t.short\t"; Data16bitsDirective = "\t.short\t";
Data32bitsDirective = "\t.long\t"; Data32bitsDirective = "\t.long\t";

View File

@@ -14,14 +14,15 @@
#ifndef XCORETARGETASMINFO_H #ifndef XCORETARGETASMINFO_H
#define XCORETARGETASMINFO_H #define XCORETARGETASMINFO_H
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
namespace llvm { namespace llvm {
class Target; class Target;
class StringRef;
class XCoreMCAsmInfo : public MCAsmInfo { class XCoreMCAsmInfo : public MCAsmInfo {
public: public:
explicit XCoreMCAsmInfo(const Target &T, const StringRef &TT); explicit XCoreMCAsmInfo(const Target &T, StringRef TT);
}; };
} // namespace llvm } // namespace llvm

View File

@@ -90,8 +90,7 @@ enum PrefixType {
/// PrintLLVMName - Turn the specified name into an 'LLVM name', which is either /// PrintLLVMName - Turn the specified name into an 'LLVM name', which is either
/// prefixed with % (if the string only contains simple characters) or is /// prefixed with % (if the string only contains simple characters) or is
/// surrounded with ""'s (if it has special chars in it). Print it out. /// surrounded with ""'s (if it has special chars in it). Print it out.
static void PrintLLVMName(raw_ostream &OS, const StringRef &Name, static void PrintLLVMName(raw_ostream &OS, StringRef Name, PrefixType Prefix) {
PrefixType Prefix) {
assert(Name.data() && "Cannot get empty name!"); assert(Name.data() && "Cannot get empty name!");
switch (Prefix) { switch (Prefix) {
default: llvm_unreachable("Bad prefix!"); default: llvm_unreachable("Bad prefix!");