History log of /external/llvm/lib/Support/Twine.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3f25ee080ca7c92ff735df29c78e7cfbd62c8cb6 24-Jul-2011 Chris Lattner <sabre@nondot.org> Add Twine support for characters, and switch twine to use a union internally
to eliminate some casting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
331dbca73db75bbb87fcd81e2b8a68c9195de8b5 15-Jul-2011 Frits van Bommel <fvbommel@gmail.com> In Twine::str(), if the Twine stores only a std::string, just return a direct copy of that instead of first copying to a SmallString and converting that to a std::string. Also fix some indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
0dda5437f8044269a90acddad822866056a0c8b3 03-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/ADT/Twine: Make toNullTerminatedStringRef not rely on UB :(.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
7dc7ac3cb20b7ef8e6febe0ac3bc430230f29893 01-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/ADT/Twine: Add toNullTerminatedStringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
326990f1eb7ff005adabe46a1f982eff8835813e 26-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
ea03e10facd07f0b239dcc3a5e31346686acae3c 05-May-2010 Chris Lattner <sabre@nondot.org> Implement rdar://7415680 - Twine integer support lacks greatness

Microoptimize Twine's with unsigned and int to not pin their value to
the stack. This saves stack space in common cases and allows mem2reg
in the caller. A simple example is:

void foo(const Twine &);
void bar(int x) {
foo("xyz: " + Twine(x));
}

Before:

__Z3bari:
subq $40, %rsp
movl %edi, 36(%rsp)
leaq L_.str3(%rip), %rax
leaq 36(%rsp), %rcx
leaq 8(%rsp), %rdi
movq %rax, 8(%rsp)
movq %rcx, 16(%rsp)
movb $3, 24(%rsp)
movb $7, 25(%rsp)
callq __Z3fooRKN4llvm5TwineE
addq $40, %rsp
ret

After:

__Z3bari:
subq $24, %rsp
leaq L_.str3(%rip), %rax
movq %rax, (%rsp)
movslq %edi, %rax
movq %rax, 8(%rsp)
movb $3, 16(%rsp)
movb $7, 17(%rsp)
leaq (%rsp), %rdi
callq __Z3fooRKN4llvm5TwineE
addq $24, %rsp
ret

It saves 16 bytes of stack and one instruction in this case.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
b357e06f672996400343d38b08014a5b6a7d5b2d 13-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Introduce Twine::toStringRef, a variant of toVector which avoids the copy if the
twine can be represented as a single StringRef. Use the new methode to simplify
some twine users.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
2b965b05fcbce4a6c8bcc5570bb5a1deff2b0988 05-Jan-2010 David Greene <greened@obbligato.org> Change errs() to dbgs().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
b7be0e8afc5378c77c70e3c0fb6a03c74e551688 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch Twine::str() to use toVector(), which is now efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
2b800dfa6b6e6b49ee5019708a47459eaef8389f 02-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add missing flush().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
2d8bc0fe70c55664b89605dbfa5c2f591446469c 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Directly support int, long, and long long types.
- This should resolve Cygwin gcc ambiguities.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
0fffbafa9609e0e289ff3120ab9e23d244c1dbc0 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Use raw_ostream::write_hex, remove unused itohexstr method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
0165a2ca897598bb95baec031362921565e24f2b 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Provide [u]int{32,64} conversions via implicit constructors instead of
explicitly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
763457e70bc9c5c2def89d24a133808b8a971f9f 29-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twines: Support numeric conversion directly (uitostr, etc).
- Provides static constructors for doing number to string conversions without
using temporaries.

- There are several ways to do this, I think given the Twine constraints this
is the simplest one.

- One FIXME for fast number -> hex conversion.

- Added another comment on one last major bit of perf work Twines need, which
is to make raw_svector_ostream more efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp
2538f7ab2ef39ab1a5e48744548d66b560d1fee6 24-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add Twine ADT.
- Not currently used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/Twine.cpp