Douglas Gregor
025feadb97
Add llvm::sys::path::canonical(), which provides the canonicalized
...
name of a path, after resolving symbolic links and eliminating excess
path elements such as "foo/../" and "./".
This routine still needs a Windows implementation, but I don't have a
Windows machine available. Help? Please?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 22:11:23 +00:00
NAKAMURA Takumi
e29b0aca51
lib/Support/Errno.cpp: Check strerror_s() with HAVE_DECL_STRERROR_S in config.h.*.
...
AC_CHECK_FUNCS seeks a symbol only in libs. We should check the declaration in string.h.
FIXME: I have never seen mingw(s) have strerror_s() (not _strerror_s()).
FIXME: Autoconf/CMake may seek strerror_s() with the definition MINGW_HAS_SECURE_API in future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125172 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 04:18:48 +00:00
NAKAMURA Takumi
fd289497a5
Windows/Windows.h: Redefine _WIN32_WINNT here. mingw-w64 tends to define it as 0x0502 in its headers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125171 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 04:18:30 +00:00
NAKAMURA Takumi
2d52a612d9
Windows/Program.inc: Eliminate the declaration of SetInformationJobObject(). It should be provided with _WIN32_WINNT>=0x0500.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 04:18:21 +00:00
NAKAMURA Takumi
ad1b453b24
Windows/DynamicLibrary.inc: ELM_Callback fix for mingw-w64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125169 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 04:18:12 +00:00
Rafael Espindola
b4cc031a3e
Don't open the file again in the gold plugin. To be able to do this, update
...
MemoryBuffer::getOpenFile to not close the file descriptor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-08 22:40:47 +00:00
Anders Carlsson
15ec695e8a
Fix a clang warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124960 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-05 18:19:35 +00:00
NAKAMURA Takumi
1f6832a858
Windows/DynamicLibrary.inc: Split explicit symbols into explicit_symbols.inc.
...
config.h.* have conditions whether each symbol is defined or not.
Autoconf and CMake may check symbols in libgcc.a for JIT on Mingw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124950 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-05 15:11:53 +00:00
NAKAMURA Takumi
0f0889e24b
Windows/Program.inc: Quote arguments when dubious characters (used by cmd.exe or MSYS shell) are included to invoke CreateProcess(). Thanks to Danil Malyshev.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124945 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-05 08:53:12 +00:00
NAKAMURA Takumi
6d600da734
Make Win32's header file name lower for cross build on case-sensitive filesystem.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124864 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-04 12:53:04 +00:00
Daniel Dunbar
b0cfa6cab8
raw_fd_ostream: Add a SetUseAtomicWrites() method (uses writev).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124771 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-03 03:32:32 +00:00
Duncan Sands
ae200c60c3
Remove NoVendor and NoOS, added in commit 123990, from Triple. While it
...
may be useful to understand "none", this is not the place for it. Tweak
the fix to Normalize while there: the fix added in 123990 works correctly,
but I like this way better. Finally, now that Triple understands some
non-trivial environment values, teach the unittests about them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124720 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02 10:08:38 +00:00
Evan Cheng
2bffee2ee7
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124639 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 01:14:13 +00:00
Daniel Dunbar
c98d82a7f0
Support/CommandLine: Fix LookupNearestOption to also search extra option names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124124 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 17:27:17 +00:00
Ted Kremenek
584520e8e2
Null initialize a few variables flagged by
...
clang's -Wuninitialized-experimental warning.
While these don't look like real bugs, clang's
-Wuninitialized-experimental analysis is stricter
than GCC's, and these fixes have the benefit
of being general nice cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124073 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-23 17:05:06 +00:00
Renato Golin
859f818363
Clang was not parsing target triples involving EABI and was generating wrong IR (wrong PCS) and passing the wrong information down llc via the target-triple printed in IR. I've fixed this by adding the parsing of EABI into LLVM's Triple class and using it to choose the correct PCS in Clang's Tools. A Clang patch is on its way to use this infrastructure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123990 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-21 18:25:47 +00:00
Daniel Dunbar
f4fb66acae
Support/CommandLine: Add "Did you mean" print for mismatched operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123717 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18 01:59:24 +00:00
NAKAMURA Takumi
edd0924d84
Windows/PathV2.inc: For CryptAcquireContext(), CRYPT_VERIFYCONTEXT may be specified for easy use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123687 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17 22:41:34 +00:00
NAKAMURA Takumi
8ee48c584d
Windows/PathV2.inc: MoveFileEx() can behave like Posix's mv(1) to specify MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123686 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17 22:41:25 +00:00
NAKAMURA Takumi
ac25e44d89
lib/Support/Windows/Signals.inc: "Showstopper" dialogs may be suppressed with SetErrorMode() on Windows 7.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123685 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17 22:41:15 +00:00
Michael J. Spencer
2634a5425c
Support/raw_ostream: Fix uninitalized variable in raw_fd_ostream constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123643 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17 15:53:12 +00:00
Michael J. Spencer
283d49c766
Fix rename.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123604 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16 22:18:41 +00:00
Michael J. Spencer
28f0ed5c9d
Support/PathV2: Add identify_magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123548 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15 20:39:36 +00:00
Michael J. Spencer
b33594be3d
Support/PathV2: Implement has_magic in terms of get_magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15 18:52:41 +00:00
Michael J. Spencer
d6cdf1d3cb
Support/PathV2: Implement get_magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15 18:52:33 +00:00
Michael J. Spencer
9df536ca78
Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123345 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-12 23:55:06 +00:00
Michael J. Spencer
218dc3e2fe
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123209 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11 01:21:55 +00:00
Michael J. Spencer
54453f2978
Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123151 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10 02:34:23 +00:00
Abramo Bagnara
4bb46f43eb
Fixed parsing of hex floats.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122963 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-06 16:55:14 +00:00
Michael J. Spencer
7fd682aaf2
Support/PathV2: Implement remove_all.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122884 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-05 16:39:38 +00:00
Michael J. Spencer
277fa1047b
Support/Windows/PathV2: Make directory iteration ignore . and ..
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122883 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-05 16:39:30 +00:00
Michael J. Spencer
abce07328c
Support/Windows/PathV2: Fix remove to handle both files and directories.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122882 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-05 16:39:22 +00:00
Michael J. Spencer
5bcdc7f7c4
Support/PathV2: Implement directory_entry::status.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122881 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-05 16:39:13 +00:00
Michael J. Spencer
da7c1cab8c
Support/PathV2: Implement directory iteration on POSIX.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122879 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-05 16:38:57 +00:00
Benjamin Kramer
3fee954b3e
Fix a signed/unsigned comparison warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122597 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-28 13:05:13 +00:00
Michael J. Spencer
4213618088
Support/Path: Deprecate Path::hasMagicNumber and replace all uses with fs::has_magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122589 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-28 01:49:21 +00:00
Michael J. Spencer
628467ef1f
Support/PathV2: Implement has_magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122587 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-28 01:49:01 +00:00
Michael J. Spencer
9170a0f02d
Support/PathV1: Deprecate GetRootDirectory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122580 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-27 03:21:41 +00:00
Michael J. Spencer
43ee29d418
Support/PathV1: Deprecate makeAbsolute and remove Unix impl because it annoys people.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122553 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-25 20:10:11 +00:00
Jeffrey Yasskin
8e68c38735
Change all self assignments X=X to (void)X, so that we can turn on a
...
new gcc warning that complains on self-assignments and
self-initializations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23 00:58:24 +00:00
Jakob Stoklund Olesen
b907e8a2d4
Use IntEqClasses to compute connected components of live intervals.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21 00:48:17 +00:00
Jakob Stoklund Olesen
2a6899c539
Add ADT/IntEqClasses.h as a light-weight implementation of EquivalenceClasses.h.
...
This implementation already exists as ConnectedVNInfoEqClasses in
LiveInterval.cpp, and it seems to be generally useful to have a light-weight way
of forming equivalence classes of small integers.
IntEqClasses doesn't allow enumeration of the elements in a class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122293 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21 00:04:46 +00:00
Michael J. Spencer
2d484eb88d
Support/PathV2: Add missing has_relative_path impl.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122243 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20 13:30:28 +00:00
Nick Lewycky
476b242fe7
Add missing standard headers. Patch by Joerg Sonnenberger!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122193 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19 20:43:38 +00:00
Michael J. Spencer
b3127bb06a
Support/PathV1: Deprecate getLast.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122116 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18 00:19:10 +00:00
Benjamin Kramer
3ce88c9290
PathV2: Use StringRef::substr to simplify substring creation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17 20:27:37 +00:00
Benjamin Kramer
7fb866643e
Missed some StringRefRefs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17 18:59:09 +00:00
Benjamin Kramer
d53f3c864b
Pass StringRefs by value, for consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122074 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17 18:19:06 +00:00
Jim Grosbach
e509aa961c
Trailing whitespace and 80 column fixups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17 02:10:59 +00:00
Michael J. Spencer
3ff9563c3e
MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-16 03:29:14 +00:00
NAKAMURA Takumi
ad3ea3d85f
lib/Support/regexec.c: Let Regex LLP64-aware.
...
On LLP64 Win64, 'states1' (for small version) was expanded to 'char *' for large version. Thus small version would be mischosen when nstates > 32 regardless of sizeof(long) on Win64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121942 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-16 01:48:15 +00:00
Michael J. Spencer
924aa23b74
Support/Windows/PathV2: Fix header comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121383 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09 17:37:42 +00:00
Michael J. Spencer
333ad3f2bf
Fix whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121382 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09 17:37:32 +00:00
Michael J. Spencer
58fe86dc0e
Support: Move c_str from SmallVector back to SmallString and add a free standing
...
templated c_str in Windows.h to replace it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121381 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09 17:37:18 +00:00
Michael J. Spencer
61187dd0ad
Support/FileSystem: Change file_status predicate functions that cannot fail to
...
return their result instead of an error_code. Also add some missing predicate
functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121380 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09 17:37:02 +00:00
Michael J. Spencer
333fb04506
Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec. And fix clients.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121379 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09 17:36:48 +00:00
Michael J. Spencer
c20beb9cc5
Support: Remove Alarm. It is unused (via local grep and google code search).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121160 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 18:41:59 +00:00
Michael J. Spencer
12ccf67457
Support/PathV2: Remove const from bool return types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121157 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 18:12:07 +00:00
Michael J. Spencer
5029159fbe
Support/PathV2: Change most functions in the path namespace to return their work
...
via their return value instead of an out parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121149 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 17:04:04 +00:00
Daniel Dunbar
dc3b906173
build: Go back to dropping __eprintf reference when building with Clang, see
...
comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121146 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 16:29:44 +00:00
Jay Foad
40f8f6264d
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
...
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 08:25:19 +00:00
Owen Anderson
0ea112f104
Don't leak the mutex when loading dynamic libraries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121119 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 07:56:20 +00:00
Michael J. Spencer
ca3a339d76
Support/PathV2: Cleanup separator handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 03:57:48 +00:00
Michael J. Spencer
936671b2ea
Support/PathV2: Remove the error_code return type from all functions in the path
...
namespace. None of them return anything except for success anyway. These will be
converted to returning their result soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 03:57:37 +00:00
Michael J. Spencer
ee271d8758
Support/PathV2: Move make_absolute from path to fs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121108 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 03:57:17 +00:00
Michael J. Spencer
69cbbbf005
Support/Unix/PathV2: Return the real error from realpath instead of any error
...
that close or unlink set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121094 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 01:23:39 +00:00
Michael J. Spencer
79c3c3a1de
Support/Unix/PathV2: Use 0770 instead of 0700 when creating a directory. Also use
...
the standard macros instead of octal notation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121093 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 01:23:29 +00:00
Michael J. Spencer
fbd1bbd7fa
Support/PathV2: Use SmallVector::clear instead of set_size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121092 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 01:23:19 +00:00
Michael J. Spencer
ad8a14f24e
Support/PathV2: Clarify and correct documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121091 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 01:23:08 +00:00
Michael J. Spencer
1522fce477
Support/PathV2: Move current_path from path to fs and fix the Unix implementation.
...
Unix bug spotted by Dan Gohman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121090 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 01:22:31 +00:00
Michael J. Spencer
476d2f769e
Support/Windows: Make MinGW happy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120991 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 06:02:07 +00:00
Michael J. Spencer
753cbbbd3c
Support/FileSystem: Add directory_iterator implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120989 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 04:28:42 +00:00
Michael J. Spencer
f150e7695e
Support/PathV2: Fix append to not add a slash to empty or root paths.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120988 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 04:28:23 +00:00
Michael J. Spencer
7eec50bf4f
Support/Windows: Add ScopedHandle and move some clients over to it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 04:28:13 +00:00
Bill Wendling
a6091be84c
Silence 'may be used uninitialized in this function' warnings. Static analysis
...
may determine that they cannot be used uninitialized. But that might be a bit
too much for the compiler to determine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120916 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 20:20:34 +00:00
Michael J. Spencer
9d425e7687
Support/PathV2: Remove redundant calls to make_error_code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120913 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 18:45:32 +00:00
Benjamin Kramer
fd6d53fbad
APInt: microoptimize a few methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120912 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 18:05:36 +00:00
Michael J. Spencer
470ae13be8
Support/FileSystem: Add status implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120870 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 00:32:40 +00:00
Michael J. Spencer
4958466f9f
Support/Windows/FileSystem: Fix MinGW warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120868 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 00:32:14 +00:00
Michael J. Spencer
01a87c413d
Support/FileSystem: Add file_size implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120867 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 00:31:48 +00:00
Jakob Stoklund Olesen
7a26aca73f
Add IntervalMap::iterator::set{Start,Stop,Value} methods that allow limited
...
editing of the current interval.
These methods may cause coalescing, there are corresponding set*Unchecked
methods for editing without coalescing. The non-coalescing methods are useful
for applying monotonic transforms to all keys or values in a map without
accidentally coalescing transformed and untransformed intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120829 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 19:02:00 +00:00
Michael J. Spencer
b531f45a9d
Support/FileSystem: Add equivalent implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120827 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 18:49:13 +00:00
Michael J. Spencer
db04b39dad
Support/FileSystem: Fix MinGW build. It doesn't have _chsize_s.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120826 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 18:48:56 +00:00
Michael J. Spencer
b39e33f39b
And I really hate line endings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120821 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 18:04:11 +00:00
Michael J. Spencer
af45fc005b
Support/Windows/FileSystem: Fix MinGW build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120820 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 18:03:28 +00:00
Michael J. Spencer
3920d3b4f4
Support/FileSystem: Add resize_file implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 17:54:07 +00:00
Michael J. Spencer
a50b98c517
Support/FileSystem: Add rename implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120818 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 17:53:55 +00:00
Michael J. Spencer
106aa731bf
Support/FileSystem: Add remove implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120817 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 17:53:43 +00:00
Michael J. Spencer
998b4709cb
Fix line endings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120816 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 17:53:23 +00:00
Eric Christopher
481d402ab0
Apparently OS X 10.4 doesn't have __crashreporter_info__.
...
Try to fix building on the wayback machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 07:45:22 +00:00
Michael J. Spencer
9b391c513e
Support/FileSystem: Add create_symlink implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 07:41:25 +00:00
Michael J. Spencer
d7b305f13e
Support/FileSystem: Add create_hard_link implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120792 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 05:58:41 +00:00
Michael J. Spencer
0dda5437f8
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
2010-12-03 05:42:25 +00:00
Michael J. Spencer
b83769f36a
Support/FileSystem: Add create_director{y,ies} implementations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 05:42:11 +00:00
Michael J. Spencer
2dbdeee87a
Support/Windows/FileSystem: Remove unneeded toNullTerminatedStringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120777 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 01:21:38 +00:00
Michael J. Spencer
3cb84ef65d
Support/FileSystem: Add unique_file and exists implementations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 01:21:28 +00:00
Michael J. Spencer
871498e2ce
Support/FileSystem: Fix copy_file implementation to use toNullTerminatedStringRef
...
instead of toStringRef. The file system APIs need c strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120601 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 20:37:42 +00:00
Michael J. Spencer
7dc7ac3cb2
Support/ADT/Twine: Add toNullTerminatedStringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120600 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 20:37:30 +00:00
Michael J. Spencer
bee0c38f59
Support/FileSystem: Add copy_file implementation. Not tests yet because the
...
file creation APIs aren't implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120593 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 19:32:01 +00:00
Jay Foad
7a874ddda0
PR5207: Rename overloaded APInt methods set(), clear(), flip() to
...
setAllBits(), setBit(unsigned), etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120564 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 08:53:58 +00:00
Michael J. Spencer
ce2b68fb54
Support/PathV2: Add is_{absolute,relative} implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120560 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 06:21:53 +00:00
Michael J. Spencer
ae18008584
Support/PathV2: Add has_{root_path,root_name,root_directory,parent_path,filename,stem,extension} implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120559 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 06:03:50 +00:00
Michael J. Spencer
5265f22f45
Support/PathV2: Add extension implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120550 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 03:37:41 +00:00
Michael J. Spencer
34ab1f6087
Support/PathV2: Add stem implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120547 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 03:18:33 +00:00
Michael J. Spencer
a979355994
Support/PathV2: Add filename implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120546 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 03:18:17 +00:00
Michael J. Spencer
722d5adac1
Support/PathV2: Add native implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120539 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 02:48:27 +00:00
Dan Gohman
552a3c29dc
Delete Path::appendSuffix's return value; it wasn't used anywhere, which
...
is fine since isn't really necessary to check isValid there anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120538 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 02:46:41 +00:00
Michael J. Spencer
52ed867801
Support/PathV2: Add replace_extension implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120514 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 00:52:55 +00:00
Michael J. Spencer
dbfb56bebd
Support/PathV2: Add remove_filename implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120513 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 00:52:28 +00:00
Michael J. Spencer
a42cf73c77
Support/PathV2: Implement reverse iteration and parent_path.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120496 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30 23:28:07 +00:00
Michael J. Spencer
63c133b67d
Support/ADT/StringRef: Add find_last_of.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120495 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30 23:27:35 +00:00
Jay Foad
a99793c5ea
PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120413 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30 09:02:01 +00:00
Michael J. Spencer
dffde99644
Support: Add PathV2 implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120329 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 22:28:51 +00:00
Charles Davis
53ca1f3190
Now to chant the magical incantation that will exorcise the System library
...
from LLVM forever:
grep -lR "llvm/System" * | grep -v .svn | xargs sed -ie 's#llvm/System#llvm/Support#g'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120314 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 19:44:50 +00:00
Michael J. Spencer
7a9ff3d36c
Missed a spot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120301 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 18:29:55 +00:00
Michael J. Spencer
1f6efa3996
Merge System into Support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 18:16:10 +00:00
Jay Foad
e4d19c9eb2
PR5207: change APInt::doubleToBits() and APInt::floatToBits() to be
...
static methods that return a new APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120261 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-28 21:04:48 +00:00
Benjamin Kramer
b837f587ed
Remove PIC16 remnants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-27 18:20:30 +00:00
Daniel Dunbar
10a049e6cf
raw_ostream::write_escaped: Add a UseHexEscapes argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-27 07:59:50 +00:00
Michael J. Spencer
326990f1eb
Fix Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120166 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-26 04:16:08 +00:00
Jakob Stoklund Olesen
706da9d8ca
Move tree navigation to a new Path class that doesn't have to be a template.
...
The path also holds a reference to the root node, and that allows important
iterator accessors like start() and stop() to have no conditional code. (When
the compiler is clever enough to remove it.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120165 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-26 01:39:40 +00:00
Chris Lattner
7cf705461c
add a MemoryBuffer::getOpenFile method, which turns an open
...
file descriptor into a MemoryBuffer (and closes the FD).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 22:20:27 +00:00
Chris Lattner
9f9bd8e4af
Revert functionality doug added in r98575 that was never
...
documented and only used by some clang stuff I just removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 06:09:51 +00:00
Rafael Espindola
a962b40f0b
Fix a use after free. Patch by Frits van Bommel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19 21:14:29 +00:00
Jakob Stoklund Olesen
8dc926755f
Add ADT/IntervalMap.
...
This is a sorted interval map data structure for small keys and values with
automatic coalescing and bidirectional iteration over coalesced intervals.
Except for coalescing intervals, it provides similar functionality to std::map.
It is however much more compact for small keys and values, and hopefully faster
too.
The container object itself can hold the first few intervals without any
allocations, then it switches to a cache conscious B+-tree representation. A
recycling allocator can be shared between many containers, even between
containers holding different types.
The IntervalMap is initially intended to be used with SlotIndex intervals for:
- Backing store for LiveIntervalUnion that is smaller and faster than std::set.
- Backing store for LiveInterval with less overhead than std::vector for typical
intervals and O(N log N) merging of large intervals. 99% of virtual registers
need 4 entries or less and would benefit from the small object optimization.
- Backing store for LiveDebugVariable which doesn't exist yet, but will track
debug variables during register allocation.
This is a work in progress. Missing items are:
- Performance metrics.
- erase().
- insert() shrinkage.
- clear().
- More performance metrics.
- Simplification and detemplatization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119787 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19 04:47:19 +00:00
Jakob Stoklund Olesen
737d2816c4
Revert "Add ADT/IntervalMap.", GCC doesn't like it.
...
This reverts r119772.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119773 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19 01:21:03 +00:00
Jakob Stoklund Olesen
8408edffcb
Add ADT/IntervalMap.
...
This is a sorted interval map data structure for small keys and values with
automatic coalescing and bidirectional iteration over coalesced intervals.
Except for coalescing intervals, it provides similar functionality to std::map.
It is however much more compact for small keys and values, and hopefully faster
too.
The container object itself can hold the first few intervals without any
allocations, then it switches to a cache conscious B+-tree representation. A
recycling allocator can be shared between many containers, even between
containers holding different types.
The IntervalMap is initially intended to be used with SlotIndex intervals for:
- Backing store for LiveIntervalUnion that is smaller and faster than std::set.
- Backing store for LiveInterval with less overhead than std::vector for typical
intervals and O(N log N) merging of large intervals. 99% of virtual registers
need 4 entries or less and would benefit from the small object optimization.
- Backing store for LiveDebugVariable which doesn't exist yet, but will track
debug variables during register allocation.
This is a work in progress. Missing items are:
- Performance metrics.
- erase().
- insert() shrinkage.
- clear().
- More performance metrics.
- Simplification and detemplatization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19 01:14:40 +00:00
Dale Johannesen
c81c7fe643
Aligned and unaligned copies of the same string
...
were not hashing to the same value. Analysis
and patch by Frits van Bommel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19 00:48:58 +00:00
Dan Gohman
078d967e0a
Bounds-check APInt's operator[].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119708 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-18 17:14:56 +00:00
Chris Lattner
4afa12890f
now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the
...
cookie argument to the SourceMgr diagnostic stuff. This cleanly separates
LLVMContext's inlineasm handler from the sourcemgr error handling
definition, increasing type safety and cleaning things up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119486 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-17 08:13:01 +00:00
Daniel Dunbar
afd693cff3
report_fatal_error: Simplify a possible ambiguity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:48:51 +00:00
Ted Kremenek
13302ec089
Fix memory leak in StringRef::edit_distance(). 'Allocated' could be leaked on an early return.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118370 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-07 06:09:02 +00:00
Daniel Dunbar
f8254d6473
CrashRecoveryContext: Add RunSafelyOnThread helper function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118272 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-05 07:19:09 +00:00
Mikhail Glushenkov
d66f2b74f2
Rename FindExecutable to PrependMainExecutablePath.
...
Makes it more clear that it is just a path manipulation function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-03 16:14:16 +00:00
Dan Gohman
303f350f7d
Print an error as one big string instead of breaking it up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-03 00:24:33 +00:00
Mikhail Glushenkov
ed724fd43a
Revert r118057, this is better fixed in appendSuffix itself.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118088 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-02 22:18:28 +00:00
Dan Gohman
d4589a3f58
Don't append a dot on platforms which don't use exe suffixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-02 20:49:48 +00:00
Mikhail Glushenkov
345b344e64
FindExecutable: remove the executability check.
...
This makes the behaviour of FindExecutable more consistent across platforms, but
I'm not very happy with the name...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118049 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-02 20:32:46 +00:00
Dan Gohman
c463316046
Fix these error messages to be less confusing. These error
...
messages primarily indicate errors running the viewer, not
errors with the graph file itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117665 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-29 17:03:40 +00:00
Mikhail Glushenkov
8a5ff478db
Remove an unnecessary check and an unnecessary temporary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117583 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-28 19:33:04 +00:00
Douglas Gregor
5ee568ac27
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116867 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 22:13:48 +00:00
NAKAMURA Takumi
1b5de0e7ee
lib/Support/raw_ostream.cpp: Fix Cygwin's build.
...
setmode is provided by io.h on Cygwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 01:21:55 +00:00
Daniel Dunbar
d49e2aa5b8
CrashRecoveryContext: Add missing return, so that the signal fires after we our
...
routine is off the stack. Otherwise we show up rather confusingly in the stack
trace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116755 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 21:55:18 +00:00
Oscar Fuentes
f0c55a9b97
Build with RTTI and exceptions disabled. Only in GCC for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116682 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-17 02:26:16 +00:00
Francois Pichet
a872a0f5f8
Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116509 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14 20:30:58 +00:00
Chris Lattner
a5bbde8efd
fix a bug I introduced, no idea how this didn't repro right.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116462 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14 00:30:00 +00:00
Chris Lattner
eafc5cb80d
add uadd_ov/usub_ov to apint, consolidate constant folding
...
logic to use the new APInt methods. Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116457 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14 00:05:07 +00:00
Chris Lattner
0a0a585e6b
constify these methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-13 23:54:10 +00:00
Chris Lattner
f2ddc64c87
add a few operations for signed operations that also
...
return an overflow flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116452 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-13 23:46:33 +00:00
John Thompson
358cf1631a
Unbreak cmake build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116003 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-07 23:12:15 +00:00
Dan Gohman
e4f1a9b8a2
Move tool_output_file into its own file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-07 20:32:40 +00:00
Dan Gohman
644801a199
After printing "Running 'Graphviz' program... " and running the
...
Graphviz program, print something with a newline, to avoid leaving
the line unfinished.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115620 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 15:30:27 +00:00
Benjamin Kramer
82d96cccbc
Grow BumpPtrAllocator's slab size dynamically if we allocated many slabs. This
...
reduces the amount of malloc calls and may reduce memory overhead.
Some numbers:
ASTContext stats, clang -cc1 -disable-free -fsyntax-only Cocoa_h.m
without dynamic growth | with dynamic growth
Number of memory regions: 3158 | Number of memory regions: 432
Bytes used: 12333185 | Bytes used: 12333185
Bytes allocated: 12935168 | Bytes allocated: 12800000
Bytes wasted: 601983 (includes alignment, etc) | Bytes wasted: 466815 (includes alignment, etc)
ASTContext stats, clang -cc1 -disable-free -fsyntax-only on clang's ASTReader.cpp
without dynamic growth | with dynamic growth
Number of memory regions: 10987 | Number of memory regions: 551
Bytes used: 42910356 | Bytes used: 42910356
Bytes allocated: 45002752 | Bytes allocated: 44711936
Bytes wasted: 2092396 (includes alignment, etc) | Bytes wasted: 1801580 (includes alignment, etc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 16:18:28 +00:00
Oscar Fuentes
3609eb0de2
Removed a bunch of unnecessary target_link_libraries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 22:39:14 +00:00
Nick Lewycky
f2d7b7c879
Make ConstantRange::makeICmpRegion handle all the edge cases properly. This
...
also fixes PR8250.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 18:18:36 +00:00
Benjamin Kramer
d1e1703c39
Push twines deeper into SourceMgr's error handling methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114847 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 17:42:11 +00:00
Dan Gohman
477268cd24
Delete an unused declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 16:54:49 +00:00
Dan Gohman
48fd5a79e0
Add support for viewing graphviz graphs with xdot.py.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114832 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 16:28:34 +00:00
Duncan Sands
5754a45256
Add better support for environment portion of triple. Original patch by
...
Cameron Esfahani, tweaked to use array_lengthof.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-16 08:25:48 +00:00
Duncan Sands
dd2fdd81bc
Some versions of gcc still warn about "ignoring return value ... declared
...
with attribute warn_unused_result" here - suppress the warning harder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114072 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-16 08:20:49 +00:00
Nick Lewycky
f7a3c50183
Create PTX backend. Patch by Che-Liang Chiou!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113235 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-07 18:14:24 +00:00
Nick Lewycky
198381e542
Add completely hokey binary-and and binary-or operations to ConstantRange and
...
teach LazyValueInfo to use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113196 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-07 05:39:02 +00:00
Nick Lewycky
32cda119ef
Add a new isSignWrappedSet() method to ConstantRange.
...
Fix zeroExtend and signExtend to support empty sets, and to return the smallest
possible result set which contains the extension of each element in their
inputs. For example zext i8 [100, 10) to i16 is now [0, 256), not i16 [100, 10)
which contains 63446 members.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113187 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-06 23:52:49 +00:00
Dan Gohman
776339ee27
Use the FindProgramByName fallback only with known absolute paths.
...
I wasn't able to convince myself that all GetMainExecutable
implementations always return absolute paths; this prevents
unexpected behavior in case they ever don't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112888 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02 22:32:38 +00:00
John McCall
2a9a2dba4c
After some discussion with djg, teach SmallVector to grow from a zero
...
capacity and remove the workaround in SmallVector<T,0>. There are some
theoretical benefits to a N->2N+1 growth policy anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112870 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02 21:55:03 +00:00
NAKAMURA Takumi
1b68af4183
llvm::FindExecutable(): Retrieve the name with suffix.exe, if available.
...
bugpoint uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112803 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02 03:46:04 +00:00
Dan Gohman
d4c454317a
Make tool_output_file's raw_ostream instance a member variable instead
...
of a base class.
This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112706 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-01 14:20:41 +00:00
Duncan Sands
12881e79b6
Remove a hack that tries to understand incorrect triples from the
...
Triple class constructor. Only valid triples should now be used
inside LLVM - front-ends are now responsable for rejecting or
correcting invalid target triples. The Triple::normalize method
can be used to straighten out funky triples provided by users.
Give this a whirl through the buildbots to see if I caught all
places where triples enter LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 10:57:54 +00:00
Benjamin Kramer
837bccd052
StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112189 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 15:25:35 +00:00
Benjamin Kramer
0043e35b82
Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112185 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 14:21:08 +00:00
Dan Gohman
365c53e328
Use Bits.data() instead of &Bits[0].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-24 23:16:53 +00:00
Benjamin Kramer
250eb005d9
Avoid O(n*m) complexity in StringRef::find_first(_not)_of(StringRef).
...
- Cache used characters in a bitset to reduce memory overhead to just 32 bytes.
- On my core2 this code is faster except when the checked string was very short
(smaller than the list of delimiters).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111817 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 18:16:08 +00:00
Benjamin Kramer
192a400003
Update CMake build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111669 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 18:56:46 +00:00
Dan Gohman
8d18006cf2
Delete SlowOperationInformer, which is no longer used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111661 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 18:07:37 +00:00
Dan Gohman
5d56d9df92
Make outs() close its file when its stream is destructed, so that
...
pending output errors are detected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 16:44:56 +00:00
Dan Gohman
a1f89deb56
Delete raw_stdout_ostream and raw_stderr_ostream, which are unused
...
outside of outs() and errs() themselves, and they don't really
need custom classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 16:39:41 +00:00
Dan Gohman
8df0e01046
Move raw_ostream's Error flag into raw_fd_ostream, as that's the only
...
class which is using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111639 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 16:34:20 +00:00
Dan Gohman
af0636f4d6
Introduce a new tool_output_file class, which extends raw_ostream with
...
functionality that most command-line tools need: ensuring that the
output file gets deleted if the tool is interrupted or encounters an
error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111595 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 00:48:10 +00:00
Dale Johannesen
b1508d1889
Do not assert when reading an exponent out of range.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111534 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-19 17:58:35 +00:00
Dan Gohman
2499990699
Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when
...
constructed with an output filename of "-". In particular, allow the
file descriptor to be closed, and close the file descriptor in the
destructor if it hasn't been explicitly closed already, to ensure
that any write errors are detected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-18 22:26:19 +00:00
Dan Gohman
d77e5a8176
Tidy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111432 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-18 22:04:43 +00:00
Dan Gohman
d2da32711d
Revert r111321. This doesn't fix a problem.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111339 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-18 01:34:52 +00:00
Chris Lattner
5083912dd7
stomp some more undefined behavior, PR7775.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111337 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-18 00:33:47 +00:00
Chris Lattner
7942e3c412
include config.h to get config params, hopefully unbreaking mingw builder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111325 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 23:22:10 +00:00
Chris Lattner
93d81b697c
Fix the rest of rdar://8318441 which happens when a raw_fd_ostream
...
(e.g. errs()) fails in close() due to (e.g.) a broken pipe. As
previously written, the had_error() flag would get set and then
the raw_ostream dtor would report a fatal error. There is nothing
the client can do about this and we have no way to report the error,
so just eat it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111321 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 23:11:56 +00:00
Chris Lattner
73ebaff79f
report_fatal_error can't use errs(), because errs() can call
...
into report_fatal_error. Just blast the string to stderr with write(2)
and hope for the best! Part of rdar://8318441
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111320 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 23:03:53 +00:00
Daniel Dunbar
ebe7eb884e
CrashRecovery: Clear the current context on the first crash, to avoid re-entering it if the cleanup code crashes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111309 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 22:32:39 +00:00
Daniel Dunbar
a8fa798246
CrashRecovery: Add CrashRecoveryContext::GetCurrent(), so clients can find the active context from anywhere.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111308 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 22:32:37 +00:00
Daniel Dunbar
c0c815e887
CrashRecovery: Make CrashRecoveryContext static methods thread safe.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111307 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 22:32:34 +00:00
Jim Grosbach
37e59c059c
remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:37:22 +00:00
Dan Gohman
3063410e52
Add hooks to FoldingSetTrait to allow specializations to provide
...
implementations of equality comparison and hash computation. This
can be used to optimize node lookup by avoiding creating lots of
temporary ID values just for hashing and comparison purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 15:30:39 +00:00
Dan Gohman
6616f7e2f1
Reverse the order of GetNodeProfile's arguments, for consistency
...
with FoldingSetTrait::Profile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 14:53:42 +00:00
Duncan Sands
335db22392
Add a 'normalize' method to the Triple class, which takes a mucked up
...
target triple and straightens it out. This does less than gcc's script
config.sub, for example it turns i386-mingw32 into i386--mingw32 not
i386-pc-mingw32, but it does a decent job of turning funky triples into
something that the rest of the Triple class can understand. The plan
is to use this to canonicalize triple's when they are first provided
by users, and have the rest of LLVM only deal with canonical triples.
Once this is done the special case workarounds in the Triple constructor
can be removed, making the class more regular and easier to use. The
comments and unittests for the Triple class are already adjusted in this
patch appropriately for this brave new world of increased uniformity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 11:31:39 +00:00
Nick Lewycky
7f9ef4bb51
Clean up ConstantRange a bit:
...
- remove ashr which never worked.
- fix lshr and shl and add tests.
- remove dead function "intersect1Wrapped".
- add a new sub method to subtract ranges, with test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110861 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 22:04:36 +00:00
Eric Christopher
371e5774c7
Fix a couple of warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110527 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 00:00:34 +00:00
Benjamin Kramer
fff0f11989
Roll back my last two commits, valgrind complains.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 13:27:41 +00:00
Benjamin Kramer
933b16e665
Kill rarely used std::sort.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110516 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 12:37:00 +00:00
Owen Anderson
0aede9e2a8
Remove layering violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110505 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 06:01:13 +00:00
Owen Anderson
9773e45a1e
Add an inverse() method to ConstantRange.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110504 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 05:47:46 +00:00
Owen Anderson
634bab148c
Add a convenience constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110493 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 00:42:06 +00:00
Chris Lattner
e211cd83f0
avoid undef behavior on minint, fixing PR7783.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110114 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-03 16:41:24 +00:00
Daniel Dunbar
63cc2e1982
Fix -Wmissing-field-initializers warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109872 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-30 17:49:04 +00:00
Daniel Dunbar
a685582048
CrashRecovery: Use ThreadLocal::erase() instead of set(0).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109752 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 15:24:21 +00:00
Daniel Dunbar
dade28ee4e
Make sure to include config.h, to pickup LLVM_ON_WIN32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:52:04 +00:00
Daniel Dunbar
d9082dfd9a
CrashRecoveryContext: Add a simple POSIX implementation.
...
- This works, but won't handle crashes on stack overflow, or signals delivered
to a thread other than the one that crashed. The latter is particular annoying
on Darwin, because SIGABRT tends to go to the main thread.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:21:47 +00:00
Douglas Gregor
c19d865474
Unbreak my CMake build, say you'll compile for me again...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109598 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 17:17:46 +00:00
Daniel Dunbar
a309dac868
Support: Add CrashRecoveryContext helper object.
...
- Designed as a simple wrapper to allow clients to attempt to catch crashes
(memory errors, assertion violations, etc.) and do some kind of recovery.
- Currently doesn't actually attempt to catch crashes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109586 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 15:40:20 +00:00
Benjamin Kramer
38e59891ee
Don't pass StringRef by reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 22:38:02 +00:00
Chris Lattner
29269d03af
add some triple for minix, patch by Kees van Reeuwijk from PR7582
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-07 15:52:27 +00:00
Duncan Sands
2a8bf425bd
Rather than giving SmallPtrSetImpl a member field SmallArray which is magically
...
replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a
pointer to the start of the storage, and have SmallPtrSet pass in the value to use.
This has the disadvantage that SmallPtrSet becomes bigger by one pointer. It has
the advantage that it no longer uses tricky C++ rules, and is clearly correct while
I'm not sure the previous version was. This was inspired by g++-4.6 pointing out
that SmallPtrSetImpl was writing off the end of SmallArray, which it was. Since
SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to
valid memory. But it was writing off the end of the declared array type - sounds
kind of dubious to me, like it sounded dubious to g++-4.6. Maybe g++-4.6 is wrong
and this construct is perfectly valid and correctly compiled by all compilers, but
I think it is better to avoid the whole can of worms by avoiding this construct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 15:02:37 +00:00
Eric Christopher
7d59a9766c
Fix thinko.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107042 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 18:33:48 +00:00
Eric Christopher
4411fbe25e
Pull in the libCrashReporterClient.a information with a warning comment.
...
Remove library check and regenerate configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107028 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 18:25:51 +00:00
Benjamin Kramer
831338b320
Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106856 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 16:07:18 +00:00
Benjamin Kramer
7262c19c41
Bring back the empty vector workaround I removed in r106839. Looks like MSVC needs it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 12:51:01 +00:00
Benjamin Kramer
d4d1f85aa7
Tweak MemoryBuffer to allocate the class itself, the name and possibly the
...
buffer in the same chunk of memory.
2 less mallocs for every uninitialized MemoryBuffer and 1 less malloc for every
MemoryBuffer pointing to a memory range translate into 20% less mallocs on
clang -cc1 -Eonly Cocoa_h.m.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 11:50:40 +00:00
Dan Gohman
60e6f3d412
Add overloads for getFile and getFileOrSTDIN which take a const char *
...
instead of a StringRef, avoiding the need to copy the string in the
common case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106754 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-24 16:25:50 +00:00
Eric Christopher
654dee4875
Look for and use a different darwin crash reporter library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106576 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-22 21:01:04 +00:00
Dan Gohman
455164bdff
Add an explicit keyword.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106538 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-22 13:53:29 +00:00
Benjamin Kramer
6118efa59e
Use calloc instead of new/memset, it is more efficient when the set is very large.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19 17:00:31 +00:00
Dan Gohman
03c3dc7b68
Give NamedRegionTimer an Enabled flag, allowing all its clients to
...
switch from this:
if (TimePassesIsEnabled) {
NamedRegionTimer T(Name, GroupName);
do_something();
} else {
do_something(); // duplicate the code, this time without a timer!
}
to this:
{
NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled);
do_something();
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18 15:56:31 +00:00
Jason Molenda
f7a503e6bb
Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and
...
DW_OP_breg[0..31] to Dwarf.h.
Add "DW_" prefix to the llvm::dwarf::*String methods which did not
already have them in Dwarf.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17 01:23:24 +00:00
Daniel Dunbar
71907fbebf
fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
...
no tolerance is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106033 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15 19:20:30 +00:00
Daniel Dunbar
d1c82fe726
fpcmp: Fix a possible infinite loop when comparing something like:
...
1..19 ok
to
1..20 o k
(yes, the odd space is necessary).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106032 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15 19:20:28 +00:00
Daniel Dunbar
ef45832d7c
Use const_iterator where appropriate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105620 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08 17:21:57 +00:00
Daniel Dunbar
18ed7b27eb
DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08 16:21:26 +00:00
Daniel Dunbar
73c6031a25
ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm.
...
- This can give substantial speedups in the delta process for inputs we can construct dependency information for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08 16:21:22 +00:00
Benjamin Kramer
d164d3d9e7
Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart
...
realloc implementation can try to expand the allocated memory block in-place,
avoiding the copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105605 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08 11:44:30 +00:00
Dan Gohman
52c239566e
Minor code simplification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28 16:50:23 +00:00
Dan Gohman
9ba7f65743
Fix a redundant-return warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28 16:50:01 +00:00
Dan Gohman
30377e7809
Add basic error checking to MemoryBuffer::getSTDIN.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104855 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-27 17:31:51 +00:00
Jakob Stoklund Olesen
160a3bf74d
Add StringRef::compare_numeric and use it to sort TableGen register records.
...
This means that our Registers are now ordered R7, R8, R9, R10, R12, ...
Not R1, R10, R11, R12, R2, R3, ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26 21:47:28 +00:00
Daniel Dunbar
4ef6730632
Fix __crashreport_info__ declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104300 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-20 23:50:19 +00:00
Dan Gohman
86026cd24e
Add a comment explaining why this code uses Append mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104095 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19 01:21:34 +00:00
Dan Gohman
68e947ac61
Usage of O_NONBLOCK in bjam is now confirmed as a bug and fixed upstream.
...
Update the comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18 15:25:14 +00:00
Chris Lattner
4c297c9153
improve portability to systems that don't have round, patch by
...
Evzen Muller!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103877 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-15 17:11:55 +00:00
Daniel Dunbar
dd464df687
Add new configure option, --disable-timestamps, intended to turn off anything which would mess up binary/object comparisons. Currently:
...
- Disables 'Built on ...' in 'foo --version'.
- Disables timestamps from being embedded into .dir files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103423 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-10 20:11:56 +00:00
Daniel Dunbar
d547708976
Run interrupt routines as part of report_fatal_error, since we are failing
...
ungracefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103334 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-08 02:10:36 +00:00
Dan Gohman
06572793a7
Handle the case where open(2) or close(2) is interrupted by a signal when
...
automatic syscall restarting is disabled.
Also, fix the build on systems which don't define EWOULDBLOCK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103158 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-06 02:06:20 +00:00
Dan Gohman
5fe89d0126
Handle EWOULDBLOCK as EAGAIN. And add a comment explaining why
...
EAGAIN and EWOULDBLOCK are used here.
Also, handle the case where a write call is interrupted after
some data has already been written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-06 01:27:36 +00:00
Chris Lattner
ea03e10fac
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
2010-05-05 18:40:33 +00:00
Benjamin Kramer
66760be919
Try again if write(2) reports an recoverable error.
...
This should fix mysteriously crashing boost regression tests when stderr is
managed by bjam (PR7043).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-05 15:17:47 +00:00
Devang Patel
e9afbfe664
Fix typo. add a test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101812 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-19 20:31:39 +00:00
Devang Patel
2a4a3b7c61
Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101805 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-19 19:14:02 +00:00
Chris Lattner
459e13a9ce
reduce indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-18 03:35:23 +00:00
Dan Gohman
b35798347e
Fix a bunch of namespace polution.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-15 17:08:50 +00:00
Benjamin Kramer
b0322e6ddf
BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101138 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-13 16:38:06 +00:00
Benjamin Kramer
5e6a705985
Let BumpPtrAllocator lazily allocate the first slab.
...
We have some code in llvm and clang where a BumpPtrAllocator is declared in a
class but never used in the common case. Stop wasting memory there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-13 14:41:51 +00:00
Chris Lattner
7c57b7b808
Fix PR6826: GraphWriter delete the generated file before "dotty" load it,
...
patch by 'ether'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101116 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-13 04:35:39 +00:00
Chris Lattner
21aa347c28
add minix support, patch by Kees van Reeuwijk! PR6797
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100895 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09 20:45:04 +00:00
Chris Lattner
2ebad5ad41
clean this up, fix std::min ambiguity on some platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100894 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09 20:43:54 +00:00
Benjamin Kramer
454c4ce479
Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100767 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08 15:25:57 +00:00
Chris Lattner
b0094c2404
rename llvm_install_error_handler -> install_fatal_error_handler
...
and friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07 23:12:29 +00:00
Chris Lattner
75361b69f3
rename llvm::llvm_report_error -> llvm::report_fatal_error
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07 22:58:41 +00:00
Chris Lattner
b019491b8d
enhance SMDiagnostic to also maintain a pointer to the SourceMgr.
...
Add a simplified constructor for clients that don't have locations
like "file not found" errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100538 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06 18:06:18 +00:00
Chris Lattner
214aa8a2cf
give the SourceMgr object a cookie.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100504 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06 00:33:43 +00:00
Chris Lattner
8f0f480a10
Give llvm::SourceMgr the ability to have a client-specified
...
diagnostic handler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100503 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06 00:26:48 +00:00
Chris Lattner
4c842dda39
stringref-ize the MemoryBuffer::get apis. This requires
...
a co-committed clang patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100485 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05 22:42:30 +00:00
Owen Anderson
d2520dcc70
Push const through the regex engine. Fixes some of the warnings in PR6616.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100438 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-05 17:50:20 +00:00
Benjamin Kramer
d48c1f9b10
Remove accidental include and add a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100107 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-01 14:39:55 +00:00
Benjamin Kramer
6a9cd41549
Various improvements to MemoryBuffer::getFile:
...
- Use a RAII object to close the FD.
- Use sys::StrError instead of thread-unsafe strerror calls.
- Recover gracefully if read returns zero. This works around an issue on
DragonFlyBSD where /dev/null has an st_size of 136 but we can't read 136 bytes
from it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100106 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-01 14:35:22 +00:00
Benjamin Kramer
991de14dd6
Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows
...
only a single type of object to be allocated. Use it to make VNInfo destruction
typesafe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 20:16:45 +00:00
Douglas Gregor
6ce57922bb
Introduce namespace-scope functions to enable LLVM statistics without
...
passing the command-line parameter "-stats" and to print the resulting
statistics without calling llvm_shutdown().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99893 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 17:32:08 +00:00
Torok Edwin
01cb1b665d
Reapply r99881 with some fixes: only call destructor in releaseMemory!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 11:17:48 +00:00
Torok Edwin
226dd2ba99
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99882 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 10:25:08 +00:00
Torok Edwin
2a22004f68
Introduce another Reset() method in BumpPtrAllocator that calls a destructor
...
on all objects it has allocated, if they are all of the same size and alignment.
Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653).
valnos is not reliable for this purpose, as seen in r99400
(which still leaked, and sometimes caused double frees).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99881 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 10:08:26 +00:00
Chris Lattner
cebf5bc2ee
stringref'ize Timer apis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99877 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 05:34:02 +00:00
Chris Lattner
83fa78efb1
finally, maintain a global list of timer groups, allowing us to
...
implement TimerGroup::printAll, which prints and resets all active
timers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99876 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 05:27:58 +00:00
Chris Lattner
ecdbff8c74
add a new TimerGroup::print method, and refactor away the bogus
...
TimerGroup copy ctor and assignment operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 05:20:02 +00:00
Chris Lattner
49a2bb23d1
rename GetLibSupportInfoOutputFile -> CreateInfoOutputFile and
...
have it always return a new stream to simplify clients.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 05:01:08 +00:00
Chris Lattner
9f9f6d19dd
if a timergroup is destroyed before its timers, print times.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99873 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 04:58:26 +00:00
Chris Lattner
b9312690a2
change TimerGroup to keep a linked list of active timers
...
instead of just a count of them, and refactor the guts of
report printing out of removeTimer into its own method.
Refactor addTimerToPrint away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99872 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 04:40:01 +00:00
Chris Lattner
a782e75d48
reapply my timer rewrite with a change for PassManager to store
...
timers by pointer instead of by-value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99871 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 04:03:22 +00:00
Chris Lattner
0d2725ad69
revert r99862 which is causing FNT failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99870 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 03:57:00 +00:00
Chris Lattner
9fa0eff30a
fairly major rewrite of various timing related stuff.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99862 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 02:38:19 +00:00
Chris Lattner
f8df3e011c
move a function into a more logical place in the file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 21:34:06 +00:00
Chris Lattner
fc86c3cfd6
remove support for per-time peak memory tracking, this
...
isn't used by anyone and is better exposed as a non-per-timer
thing. Also, stop including System/Mutex.h in Timer.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 21:28:41 +00:00
Chris Lattner
0ea86bc411
various timer fixes: move operator= out of line,
...
eliminate the per-timer lock (timers should be
externally locked if needed), the info-output-stream
can never be dbgs(), so drop the check. Make some
stuff private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 21:24:52 +00:00
Chris Lattner
0613edc5cf
s/.../.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99834 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 20:40:19 +00:00
Chris Lattner
9bb110f78e
move code around and improve indentation, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99831 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 20:35:01 +00:00
Chris Lattner
67eadb397a
improve portability to minix, patch by
...
Kees van Reeuwijk for PR6704
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99677 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26 23:54:15 +00:00
Dan Gohman
16e02097d2
Fix minor style issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99414 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-24 19:38:02 +00:00
Duncan Sands
bbdca3f68e
Fix comment typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99392 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-24 09:05:14 +00:00
Dan Gohman
c93b4cff89
Add the ability to "intern" FoldingSetNodeID data into a
...
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 16:16:38 +00:00
Douglas Gregor
1bb30b6f75
Extend MemoryBuffer::getFile() to take an optional "stat" structure
...
pointer. If given, the structure will be set with the stat information from
the file actually read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98575 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 20:32:14 +00:00
Chris Lattner
0ddda3b8c6
make APFloat::toString be const.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06 19:20:13 +00:00
Chris Lattner
f071d4efeb
add an assertion requested on llvmdev.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05 00:49:08 +00:00
John McCall
d44c6cc477
Don't potentially read past the end of the fill data when making a NaN from
...
an APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97467 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:38:45 +00:00
John McCall
165e96bd25
Properly clear all the extra bits in a significand when making a NaN from an
...
APInt. Be certain to set the integer bit in an x87 extended-precision
significand so that we don't accidentally make a pseudo-NaN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97382 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 12:49:50 +00:00
John McCall
1e7ad3993d
Add an override to StringRef::getAsInteger which parses into an APInt.
...
It gets its own implementation totally divorced from the (presumably
performance-sensitive) routines which parse into a uint64_t.
Add APInt::operator|=(uint64_t), which is situationally much better than
using a full APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97381 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:55:58 +00:00
John McCall
e12b73816b
Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-width
...
payloads. APFloat's internal folding routines always make QNaNs now,
instead of sometimes making QNaNs and sometimes SNaNs depending on the
type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97364 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 02:51:25 +00:00
John McCall
8b3f3307a2
Make APFloat's string-parsing routines a bit safer against very large exponents.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26 22:20:41 +00:00
Benjamin Kramer
aabc26c4d5
Replace a temporary std::string with SmallString.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26 20:28:29 +00:00
Wesley Peck
a70f28ce7d
Adding the MicroBlaze backend.
...
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htm
http://en.wikipedia.org/wiki/MicroBlaze
The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96969 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23 19:15:24 +00:00
Jeffrey Yasskin
e298d7cc58
Fix viewCFG on Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96834 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23 00:04:53 +00:00
Dan Gohman
fb76fe0929
Fix various doxygen warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22 04:10:52 +00:00
Duncan Sands
7e7ae5ad69
Refer to -help instead of --help since this is what tools themselves say.
...
Also, have tools output -help-hidden rather than refer to --help-hidden,
for consistency, and likewise adjust documentation. This doesn't change
every mention of --help, only those which seemed clearly safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96578 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18 14:08:13 +00:00
Daniel Dunbar
d2a5c0d856
Add Regex::sub, for doing regular expression substitution with backreferences.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96503 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17 20:08:42 +00:00
Chris Lattner
17f26b4fd2
enhance raw_svector_ostream::write_impl to work with unbuffered streams,
...
which may call write_impl on things that are not the usual buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96209 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 02:18:26 +00:00
Chris Lattner
efbdaa6463
make PadToColumn return the stream so you can use:
...
OS.PadToColumn(42) << "foo";
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96208 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 02:17:50 +00:00
Dan Gohman
f451cb870e
Fix "the the" and similar typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 16:03:48 +00:00
Chris Lattner
87c06d6179
add support for the sparcv9-*-* target triple to turn on
...
64-bit sparc codegen. Patch by Nathan Keynes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95293 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-04 06:34:01 +00:00
John McCall
281d051921
Make APInt::countLeadingZerosSlowCase() treat the contents of padding bits
...
as undefined. Fixes an assertion in APFloat::toString noticed by Dale.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95196 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-03 03:42:44 +00:00
Benjamin Kramer
4f17eb8721
Fix MSVC build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94809 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29 15:19:06 +00:00
Benjamin Kramer
5908839ced
Convert some users of ftostr to raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94808 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29 14:42:22 +00:00
Benjamin Kramer
f304ff63d3
Use llvm::format instead of ftostr (which just calls sprintf).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29 14:40:33 +00:00
Benjamin Kramer
12ea66a727
Replace strcpy with memcpy when we have the length around anyway.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94746 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28 18:04:38 +00:00
Mikhail Glushenkov
42210668da
Make SMDiagnostic::Print a const method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94672 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-27 10:13:28 +00:00
Mikhail Glushenkov
e690ffbe6d
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94671 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-27 10:13:11 +00:00
Dan Gohman
8dcc58e6b4
Fix a typo that several people pointed out. Also, address the case of
...
wrapping that Duncan pointed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94547 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 15:56:18 +00:00
Dan Gohman
153f1ebeb8
Add a comment about a missed opportunity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94507 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 04:13:15 +00:00
Dan Gohman
df6d5e0394
Print empty and full sets specially.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94506 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 04:12:55 +00:00
Chris Lattner
14ca177beb
Changes to fix buffering that I forgot to commit with previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94222 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22 21:16:10 +00:00
Chris Lattner
d79d9dce47
add a new MCAsmStreamer::GetCommentOS method to simplify stuff
...
that doesn't want to use twines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94199 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22 19:17:48 +00:00
Dan Gohman
5e5442c98b
Avoid printing a spurious semicolon when there is no filename.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94071 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21 10:13:27 +00:00
David Greene
2ef951e6ee
Fix an infinite recursion problem. dbgs() should return errs() in
...
release mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20 15:27:19 +00:00
Benjamin Kramer
4e7e2f5a36
Fix refacto reported by Nicolas Geoffray.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93723 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-18 12:40:05 +00:00
Bill Wendling
c5b7b19677
Temporarily revert r93581. It was causing failures in the ExecutionEngine tests
...
on the build bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93606 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-16 01:06:58 +00:00
Ted Kremenek
67c59826bf
BumpPtrAllocator: Have the DefaultSlabAllocator created at runtime, not initialization time. This removes one of the 'init_constructors' reported in <rdar://problem/7545356>.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93581 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-15 23:29:34 +00:00
Benjamin Kramer
b357e06f67
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
2010-01-13 12:45:23 +00:00
Benjamin Kramer
7dd6107fcc
Remove unused string functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 20:33:12 +00:00
Benjamin Kramer
7462b5dd99
Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 19:45:18 +00:00
Benjamin Kramer
c30837d6c1
Turns out llvm-gcc still uses SplitString with a vector. Add it back until I
...
have a fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93163 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 18:44:35 +00:00
Benjamin Kramer
d4f195999a
Reimplement getToken and SplitString as "StringRef helper functions"
...
- getToken is modeled after StringRef::split but it can split on multiple
separator chars and skips leading seperators.
- SplitString is a StringRef::split variant for more than 2 elements with the
same behaviour as getToken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93161 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 18:03:24 +00:00
Duncan Sands
1fa8b00b30
Suppress use of uninitialized variable warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93046 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09 08:30:33 +00:00
Douglas Gregor
2772ea831c
More trivial optimizations to a function well outside the critical path
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92896 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-07 02:24:06 +00:00
Douglas Gregor
ad6b6da8aa
Switch StringRef::edit_distance over to using raw pointers, since both
...
std::vector and llvm::SmallVector have annoying performance
tradeoffs. No, I don't expect this to matter, and now it won't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92884 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-07 00:51:54 +00:00
David Greene
fcb5b831f6
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:29:03 +00:00
David Greene
da80ff6ae6
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92645 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:58 +00:00
David Greene
465abed388
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:52 +00:00
David Greene
8061a440f6
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:47 +00:00
David Greene
8f1929b9ea
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92641 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:43 +00:00
David Greene
2b965b05fc
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92640 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:40 +00:00
David Greene
7fd5fb4b47
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92638 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:32 +00:00
David Greene
af6c8cc272
Change errs() to dbgs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92637 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 01:28:29 +00:00
Douglas Gregor
7e54d5b156
Document the edit-distance algorithm used in StringRef, switch it over
...
to SmallVector, and add a unit test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92340 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-31 04:24:34 +00:00
Douglas Gregor
441c8b4ad1
Implement edit distance for StringRef
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92309 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-30 17:23:44 +00:00
Chris Lattner
837eda93ee
Do not crash when .ll printing metadata that smells like debug info, but isn't.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92268 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29 21:17:33 +00:00
Chris Lattner
480decf1a2
fix indentation, fit in 80 cols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92267 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29 21:09:57 +00:00
Chris Lattner
7f29dfd75c
fix .cpp file to not wrap the entire file in namespace blocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29 07:28:33 +00:00
John McCall
6a09affdf6
Implement support for converting to string at "natural precision", and fix some
...
major bugs in long-precision conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24 23:18:09 +00:00
John McCall
003a09c68d
Substantially optimize APFloat::toString() by doing a single large divide to
...
cut the significand down to the desired precision *before* entering the
core divmod loop. Makes the overall algorithm logarithmic in the exponent.
There's still a lot of room for improvement here, but this gets the
performance back down to acceptable-for-diagnostics levels, even for
long doubles.
negligible, even on long doubles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92130 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24 12:16:56 +00:00
John McCall
00e65de9d8
Add accessors for the largest-magnitude, smallest-magnitude, and
...
smallest-normalized-magnitude values in a given FP semantics.
Provide an APFloat-to-string conversion which I am quite ready to admit could
be much more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92126 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24 08:56:26 +00:00
John McCall
d73bf5987a
Set Remainder before Quotient in case Quotient and LHS alias. The new
...
order should be immune to such problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92124 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24 08:52:06 +00:00
David Greene
037764227e
Clarify how dbgs() operates.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23 23:23:15 +00:00
Chris Lattner
62dc896bc4
sizeof(char) is always 1.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92079 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23 23:03:24 +00:00
Douglas Gregor
734d236aaf
De-bork CMake build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92003 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23 17:03:46 +00:00
David Greene
b5d568cc70
Provide dbgs(), a circular-buffering debug output stream. By default it
...
simply passes output to errs(). If -debug-buffer-size=N is set N > 0,
dbgs() buffers its output until program termination and dumps the last N
characters sent to it. This is handy when debugging very large inputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92002 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23 16:39:06 +00:00
David Greene
e59011e7d9
Add circular_raw_ostream, which buffers its output in a circular queue
...
and outputs it when explicitly flushed. The intent is to use it in
situations such as debug output logging where a signal handler can take
care of flushing the buffer at program termination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92001 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23 16:08:15 +00:00
Chris Lattner
cd0129f5a6
Make some methods const. The only interesting change here is that
...
it changes raw_fd_ostream::preferred_buffer_size to return zero on
a scary stat failure instead of setting the stream to an error state.
This method really should not mutate the stream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-19 01:38:42 +00:00
Chris Lattner
b3649db102
now that libsystem no longer uses SmallVector, we can move
...
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-16 08:44:24 +00:00