mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 00:21:03 +00:00
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:
@@ -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&</tt> requires
|
a <tt>const char *</tt>, and taking a <tt>const std::string&</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&</tt> or a <tt>const
|
many LLVM APIs use a <tt>StringRef</tt> or a <tt>const Twine&</tt> for
|
||||||
Twine&</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 &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>
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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);
|
||||||
|
@@ -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
|
||||||
|
@@ -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.
|
||||||
///
|
///
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
|
@@ -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) &&
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
Regex::Regex(const StringRef ®ex, 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.
|
||||||
|
@@ -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);
|
||||||
|
@@ -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")
|
||||||
|
@@ -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";
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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";
|
||||||
|
@@ -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
|
||||||
|
@@ -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";
|
||||||
|
@@ -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();
|
||||||
|
@@ -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=".";
|
||||||
|
@@ -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
|
||||||
|
@@ -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";
|
||||||
|
@@ -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
|
||||||
|
@@ -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";
|
||||||
|
@@ -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;
|
||||||
};
|
};
|
||||||
|
@@ -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.
|
||||||
|
@@ -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
|
||||||
|
@@ -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 = ".";
|
||||||
|
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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.
|
||||||
|
@@ -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";
|
||||||
|
@@ -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
|
||||||
|
@@ -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!");
|
||||||
|
Reference in New Issue
Block a user