Jakob Stoklund Olesen
f8f128606c
Revert r158337 "Move PPC host-CPU detection logic from PPCSubtarget into sys::getHostCPUName()."
...
This commit broke most of the PowerPC unit tests when running on
Intel/Apple.
llvm-svn: 158345
2012-06-12 00:58:40 +00:00
Argyrios Kyrtzidis
8d19c86c9a
For llvm::sys::ThreadLocalImpl instead of malloc'ing the platform-specific
...
thread local data, embed them in the class using a uint64_t and make sure
we get compiler errors if there's a platform where this is not big enough.
This makes ThreadLocal more safe for using it in conjunction with CrashRecoveryContext.
Related to crash in rdar://11434201.
llvm-svn: 158342
2012-06-12 00:21:31 +00:00
Hal Finkel
23c699e497
Move PPC host-CPU detection logic from PPCSubtarget into sys::getHostCPUName().
...
Both the new Linux functionality and the old Darwin functions have been moved.
This change also allows this information to be queried directly by clang and
other frontends (clang, for example, will now have real -mcpu=native support).
llvm-svn: 158337
2012-06-11 23:14:31 +00:00
Aaron Ballman
36a978cca2
Disabling a spurious deprecation warning about using PathV1 from within the PathV1 implementation file.
...
llvm-svn: 158274
2012-06-09 13:59:29 +00:00
Aaron Ballman
503bbff367
Fixing a typo in the comments.
...
llvm-svn: 158273
2012-06-09 13:46:36 +00:00
Dmitri Gribenko
dbeafa773a
Convert comments to proper Doxygen comments.
...
llvm-svn: 158248
2012-06-09 00:01:45 +00:00
Chad Rosier
3d464d8068
Fix a crash in APInt::lshr when shiftAmt > BitWidth.
...
Patch by James Benton <jbenton@vmware.com>.
llvm-svn: 158213
2012-06-08 18:04:52 +00:00
Benjamin Kramer
172f80849f
Use access(2) instead of stat(2) to check if a file exists.
...
Apart from being slightly cheaper, this fixes a real bug that hits 32 bit
linux systems. When passing a file larger than 2G to be linked (which isn't
that uncommon with large projects such as WebKit), clang's driver checks
if the file exists but the file size doesn't fit in an off_t and stat(2)
fails with EOVERFLOW. Clang then says that the file doesn't exist instead
of passing it to the linker.
llvm-svn: 157891
2012-06-02 16:28:09 +00:00
NAKAMURA Takumi
b030e8a5c8
Path::GetTemporaryDirectory(): Add an assertion if TempDirectory is alive, to check when someone would remove the tempdir.
...
llvm-svn: 157529
2012-05-27 13:02:04 +00:00
Justin Holewinski
907f7606f2
Remove the PTX back-end and all of its artifacts (triple, etc.)
...
This back-end was deprecated in favor of the NVPTX back-end.
NV_CONTRIB
llvm-svn: 157417
2012-05-24 21:38:21 +00:00
Patrik Hägglund
26dcb95dfc
Fix -Wcovered-switch-default warning.
...
llvm-svn: 157381
2012-05-24 07:51:46 +00:00
Nuno Lopes
63afc08ca7
fix corner case in ConstantRange::intersectWith().
...
this fixes the missed optimization I was seeing in the CorrelatedValuePropagation pass
llvm-svn: 157032
2012-05-18 00:14:36 +00:00
Michael J. Spencer
c10948d02b
[Support/YAMLParser] Use rtrim on plain scalars.
...
llvm-svn: 156787
2012-05-14 22:43:34 +00:00
Michael J. Spencer
93303819ac
[Support/StringRef] Add find_last_not_of and {r,l,}trim.
...
llvm-svn: 156652
2012-05-11 22:08:50 +00:00
Eric Christopher
b6148ed72c
Allow unique_file to take a mode for file permissions, but default
...
to user only read/write.
Part of rdar://11325849
llvm-svn: 156591
2012-05-11 00:07:44 +00:00
Chad Rosier
9d7b1cee39
Set the default iOS version to 3.0.
...
llvm-svn: 156492
2012-05-09 18:23:00 +00:00
Bob Wilson
8d4e2fab63
Use the cpuid 64 bit flag to pick the default CPU name for an unknown model.
...
For the Family 6 switch in sys::getHostCPUName, an unrecognized model was
reported as "i686". That's a really bad default since it means that new
CPUs will be treated as if they can only use 32-bit code. This just looks
at the cpuid extended feature flag for 64 bit support, and if that is set,
it uses a default x86-64 cpu. Similar logic is already used for the Family
15 code. <rdar://problem/11314502>
llvm-svn: 156486
2012-05-09 17:47:03 +00:00
Chad Rosier
2778cbc880
Don't return true on a function with a void return type.
...
llvm-svn: 156484
2012-05-09 17:38:47 +00:00
Chad Rosier
d84eaac673
Add Triple::getiOSVersion.
...
This new function provides a way to get the iOS version number from ios triples.
Part of rdar://11409204
llvm-svn: 156483
2012-05-09 17:23:48 +00:00
Kevin Enderby
fe3d005ca5
Fix it so llvm-objdump -arch does accept x86 and x86-64 as valid arch names.
...
PR12731. Patch by Meador Inge!
llvm-svn: 156444
2012-05-08 23:38:45 +00:00
Daniel Dunbar
5f1c956eb0
[Support] Fix sys::GetRandomNumber() to always use a high quality seed.
...
llvm-svn: 156414
2012-05-08 20:38:00 +00:00
NAKAMURA Takumi
3b7f995b75
Windows/PathV2.inc: Retry rename() for (maximum) 2 seconds.
...
Files might be opend by system scanners (eg. file indexer, virus scanner, &c).
llvm-svn: 156380
2012-05-08 14:31:46 +00:00
Matt Beaumont-Gay
a1b3b007f3
Don't assume size_t is unsigned long long.
...
Fixes a -Woverflow warning from gcc when building for 32-bit platforms.
llvm-svn: 156313
2012-05-07 18:12:42 +00:00
Chris Lattner
854f366a1f
make SourceMgr tolerate empty SMLoc()'s better.
...
llvm-svn: 156260
2012-05-06 16:20:49 +00:00
NAKAMURA Takumi
7bec74112d
Unix/Process.inc: Give more useful random seed to srand. Workaround for PR12743.
...
llvm-svn: 156252
2012-05-06 08:24:24 +00:00
NAKAMURA Takumi
54acb28882
Support/Process: Move llvm::sys::Process::GetRandomNumber() from Process.cpp to Unix/Process.inc.
...
FIXME: GetRandomNumber() is not implemented in Win32.
llvm-svn: 156251
2012-05-06 08:24:18 +00:00
Chris Lattner
9322ba824c
reapply my patch, with a fix for an off-by-one error. Turned out to be a lot
...
of work for a drive-by fix :)
llvm-svn: 156246
2012-05-05 22:17:32 +00:00
Chris Lattner
64f65d33df
revert my patches, which are causing problems.
...
llvm-svn: 156245
2012-05-05 22:11:04 +00:00
Chris Lattner
cd60bc491e
refactor some code to expose column numbers more and make diagnostic printing slightly more efficient.
...
llvm-svn: 156243
2012-05-05 21:39:51 +00:00
Daniel Dunbar
d5f82d92f3
[Support] Add missing include.
...
llvm-svn: 156240
2012-05-05 16:49:11 +00:00
Daniel Dunbar
58ed0c6c09
[Support] Fix up comments.
...
llvm-svn: 156239
2012-05-05 16:39:22 +00:00
Daniel Dunbar
3f0fa19bc4
[Support] Rewrite sys::fs::unique_file to not be stupid with /dev/urandom.
...
- Just use sys::Process::GetRandomNumber instead of having two poor
implementations.
- This is ~70 times (!) faster on my OS X machine.
llvm-svn: 156238
2012-05-05 16:36:24 +00:00
Daniel Dunbar
b57ddd4e29
[Support] Add sys::Process::GetRandomNumber().
...
- Primitive API, but we rarely have need for random numbers.
llvm-svn: 156237
2012-05-05 16:36:20 +00:00
Justin Holewinski
ae556d3ef7
This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.
...
The new target machines are:
nvptx (old ptx32) => 32-bit PTX
nvptx64 (old ptx64) => 64-bit PTX
The sources are based on the internal NVIDIA NVPTX back-end, and
contain more functionality than the current PTX back-end currently
provides.
NV_CONTRIB
llvm-svn: 156196
2012-05-04 20:18:50 +00:00
Preston Gurd
c0b976c42a
Change the Intel Atom detection code to recognize
...
Lincroft and Medfield.
llvm-svn: 156025
2012-05-02 21:38:46 +00:00
Benjamin Kramer
84b857e4e6
YAMLParser: get rid of global ctors & dtors.
...
llvm-svn: 155907
2012-05-01 10:19:59 +00:00
Michael J. Spencer
6033113e35
[Support/YAMLParser] Fix ASan found bugs.
...
llvm-svn: 155735
2012-04-27 21:12:20 +00:00
Michael J. Spencer
a6c2c29152
[Support/YAML] Properly fix unitialized variable warning by inserting a
...
'REPLACEMENT CHARACTER' (U+FFFD) when getAsInteger fails.
llvm-svn: 155653
2012-04-26 19:27:11 +00:00
Evan Cheng
7fd160700f
Add a missing cpu subtype.
...
llvm-svn: 155402
2012-04-23 22:41:39 +00:00
Michael J. Spencer
04b795bc1d
[Support/Unix] Unconditionally include time.h.
...
When building LLVM on Linux with libc++ with CMake TIME_WITH_SYS_TIME is
undefined, and HAVE_SYS_TIME_H is defined. This ends up including
sys/time.h but not time.h. Unix/TimeValue.inc requires time.h for asctime_r
and localtime. libstdc++ seems to include time.h anyway, but libc++ does
not.
Fix this by always including time.h
llvm-svn: 155382
2012-04-23 19:00:27 +00:00
Sylvestre Ledru
3099f4bda8
Conflict with st_dev/st_ino identifiers under Debian GNU/Hurd
...
The problem is that the struct file_status on UNIX systems has two
members called st_dev and st_ino; those are also members of the
struct stat, and they are reserved identifiers which can also be
provided as #define (and this is the case for st_dev on Hurd).
The solution (attached) is to rename them, for example adding a
"fs_" prefix (= file status) to them.
Patch by Pino Toscano
llvm-svn: 155354
2012-04-23 16:37:23 +00:00
Chris Lattner
5e14666149
Don't die with an assertion if the Result bitwidth is already correct. This
...
fixes an assert reading "1239123123123123" when the result is already 64-bit.
llvm-svn: 155329
2012-04-23 00:27:54 +00:00
Bill Wendling
f9774c3253
Remove some potential warnings about variables used uninitialized.
...
llvm-svn: 155307
2012-04-22 07:23:04 +00:00
Chris Lattner
0a1bafed7b
No need for "else if" after a return. Autosense "0o123" as octal in
...
StringRef::getAsInteger
llvm-svn: 155298
2012-04-21 22:03:05 +00:00
Nuno Lopes
e568efbc4d
move Signals to .rodata
...
llvm-svn: 155283
2012-04-21 14:45:37 +00:00
Benjamin Kramer
0aa0d3d633
YAMLParser: silence warning about tautological comparison on unsigned-char platforms.
...
No functionality change.
llvm-svn: 155280
2012-04-21 10:51:42 +00:00
Benjamin Kramer
bb73d19794
SourceMgr: Colorize diagnostics.
...
Same color scheme as clang uses. The colors are only enabled if the output is a tty.
llvm-svn: 155035
2012-04-18 19:04:15 +00:00
Benjamin Kramer
94988cb34c
SmallPtrSet: Reuse DenseMapInfo's pointer hash function instead of inventing a bad one ourselves.
...
DenseMap's hash function uses slightly more entropy and reduces hash collisions
significantly. I also experimented with Hashing.h, but it didn't gave a lot of
improvement while being much more expensive to compute.
llvm-svn: 154996
2012-04-18 10:37:32 +00:00
Seth Cantrell
3d013bccfa
fix error check in assert
...
llvm-svn: 154971
2012-04-18 00:40:23 +00:00
David Blaikie
1b5d8d46fb
C++ has newlines at the end of files (including include files).
...
llvm-svn: 154962
2012-04-17 23:46:51 +00:00
Seth Cantrell
75dbcb8bdd
platform support for counting column widths and checking isprint
...
llvm-svn: 154944
2012-04-17 20:03:03 +00:00
Manuel Klimek
1f8918f69d
Goodbye, JSONParser...
...
llvm-svn: 154930
2012-04-17 17:21:17 +00:00
Benjamin Kramer
13d16f3bf3
Reapply 'Add reverseColor to raw_ostream'.
...
To be used in printing unprintable source in clang diagnostics.
Patch by Seth Cantrell, with a minor fix for mingw by me.
llvm-svn: 154805
2012-04-16 08:56:50 +00:00
Argyrios Kyrtzidis
64104f16d4
Revert r154800 which breaks windows builders.
...
llvm-svn: 154802
2012-04-16 07:59:39 +00:00
Argyrios Kyrtzidis
d17db2e0ee
Add reverseColor to raw_ostream.
...
To be used in printing unprintable source in clang diagnostics.
Patch by Seth Cantrell!
llvm-svn: 154800
2012-04-16 07:07:38 +00:00
Sylvestre Ledru
14ada94682
Fix the build under Debian GNU/Hurd.
...
Thanks to Pino Toscano for the patch
llvm-svn: 154500
2012-04-11 15:35:36 +00:00
Benjamin Kramer
63057a5ff0
FoldingSet: Push the hash through FoldingSetTraits::Equals, so clients can use it.
...
llvm-svn: 154496
2012-04-11 14:06:47 +00:00
Argyrios Kyrtzidis
ef909265e8
In MemoryBuffer::getOpenFile() make sure that the buffer is null-terminated if
...
the caller requested a null-terminated one.
When mapping the file there could be a racing issue that resulted in the file being larger
than the FileSize passed by the caller. We already have an assertion
for this in MemoryBuffer::init() but have a runtime guarantee that
the buffer will be null-terminated, so do a copy that adds a null-terminator.
Protects against crash of rdar://11161822.
llvm-svn: 154082
2012-04-05 04:23:56 +00:00
Benjamin Kramer
a1355d17ca
Move yaml::Stream's dtor out of line so it can see Scanner's dtor.
...
llvm-svn: 154004
2012-04-04 08:53:34 +00:00
Michael J. Spencer
afc0d6a36f
Sorry about that. MSVC seems to accept just about any random string you give it ;/
...
llvm-svn: 153979
2012-04-03 23:36:44 +00:00
Michael J. Spencer
22120c47a7
Add YAML parser to Support.
...
llvm-svn: 153977
2012-04-03 23:09:22 +00:00
Hal Finkel
f208af02a4
Add triple support for the IBM BG/P and BG/Q supercomputers.
...
llvm-svn: 153882
2012-04-02 18:31:33 +00:00
Eric Christopher
c13fd6d1e1
Lowercase the tag name to match the rest of dwarf.
...
llvm-svn: 153691
2012-03-29 21:35:05 +00:00
Anton Korobeynikov
4547077a2b
Fix GetMainExecutable on kFreeBSD.
...
Patch by Sylvestre Ledru!
llvm-svn: 153435
2012-03-26 12:05:51 +00:00
Jean-Daniel Dupas
a573b22015
Fix null to integer conversion warnings.
...
llvm-svn: 153395
2012-03-24 22:17:50 +00:00
Michael J. Spencer
39fb408fd3
[PathV2]: Fix bug in create_directories which caused infinite recursion on
...
som inputs.
Bug found and fix proposed by Kal Conley!
llvm-svn: 153225
2012-03-21 23:09:14 +00:00
Benjamin Kramer
78b505b065
Move APInt::operator[] inline.
...
llvm-svn: 152692
2012-03-14 00:38:15 +00:00
Benjamin Kramer
4c6a918cda
Move APInt::operator! inline, it's small and fuses well with surrounding code when inlined.
...
llvm-svn: 152688
2012-03-14 00:01:35 +00:00
Argyrios Kyrtzidis
3dc531ef44
Add a sanity check in MemoryBuffer::getOpenFile() to make sure we don't hang
...
if the passed in FileSize is inaccurate.
rdar://11034179
llvm-svn: 152662
2012-03-13 20:18:42 +00:00
Benjamin Kramer
3870bc4805
Inline a trivial helper function.
...
llvm-svn: 152577
2012-03-12 21:18:53 +00:00
Duncan Sands
79d793e768
Don't cast away constant qualifier.
...
llvm-svn: 152553
2012-03-12 10:51:06 +00:00
Benjamin Kramer
0f90695e31
Replace a hand-coded leading one counting loop with the magic from MathExtras.h.
...
llvm-svn: 152545
2012-03-11 19:32:35 +00:00
Michael J. Spencer
cfa95f66a1
Make StringRef::getAsInteger work with all integer types. Before this change
...
it would fail with {,u}int64_t on x86-64 Linux.
This also removes code duplication.
llvm-svn: 152517
2012-03-10 23:02:54 +00:00
Anton Korobeynikov
f32638d77c
Add support for r600 (AMD GPUs HD2XXX - HD6XXX) target triplet.
...
Patch by Tom Stellard!
llvm-svn: 152400
2012-03-09 10:09:36 +00:00
Benjamin Kramer
3bc40c5fee
Silence unused function warning when graphviz is not available.
...
llvm-svn: 152346
2012-03-08 22:15:23 +00:00
Duncan Sands
d8e918be4c
Revert commit 152300 (ddunbar) since it still seems to be breaking
...
buildbots. Original commit message:
[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
with a fix for the longstanding over-read of 32-bit pointer values.
llvm-svn: 152304
2012-03-08 09:32:21 +00:00
Daniel Dunbar
544637937a
[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
...
with a fix for the longstanding over-read of 32-bit pointer values.
llvm-svn: 152300
2012-03-08 07:42:18 +00:00
Daniel Dunbar
5ecfd7fd12
Revert r152288, "[ADT] Change the trivial FoldingSetNodeID::Add* methods to be
...
inline.", which is breaking the bots in a way I don't understand.
llvm-svn: 152295
2012-03-08 04:17:15 +00:00
Daniel Dunbar
faa48ebbba
[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline.
...
llvm-svn: 152288
2012-03-08 02:52:00 +00:00
Benjamin Kramer
22842f89e4
Copy the right amount of elements.
...
llvm-svn: 152254
2012-03-07 22:48:42 +00:00
Benjamin Kramer
6e8d4b8eb4
SmallPtrSet: Copy all the elements when swapping, not just numelements.
...
This fixes a build failure in webkit. Copying all elements shouldn't be
necessary, I'll look out for a better fix soon.
llvm-svn: 152252
2012-03-07 22:33:21 +00:00
Andrew Trick
edbb3b2231
Added -view-background to avoid waiting for each GraphViz invocation.
...
GV and XDOT paths are untested but should work the same.
llvm-svn: 152179
2012-03-07 00:18:27 +00:00
Benjamin Kramer
e1c34e9f43
SmallPtrSet: Provide a more efficient implementation of swap than the default triple-copy std::swap.
...
This currently assumes that both sets have the same SmallSize to keep the implementation simple,
a limitation that can be lifted if someone cares.
llvm-svn: 152143
2012-03-06 20:40:02 +00:00
Chandler Carruth
71bd7d1e54
Replace the hashing functions on APInt and APFloat with overloads of the
...
new hash_value infrastructure, and replace their implementations using
hash_combine. This removes a complete copy of Jenkin's lookup3 hash
function (which is both significantly slower and lower quality than the
one implemented in hash_combine) along with a somewhat scary xor-only
hash function.
Now that APInt and APFloat can be passed directly to hash_combine,
simplify the rest of the LLVMContextImpl hashing to use the new
infrastructure.
llvm-svn: 152004
2012-03-04 12:02:57 +00:00
Chandler Carruth
ca99ad3f0d
Add generic support for hashing StringRef objects using the new hashing library.
...
llvm-svn: 152003
2012-03-04 10:55:27 +00:00
Chandler Carruth
93cffd2fb5
Switch FoldingSet over to the new hashing infrastructure. We might want
...
to do more invasive refactoring here to get FoldingSet to use size_t or
even hash_code directly, but for now this is a good first step to remove
Yet Another Hashing Algorithm from LLVM.
llvm-svn: 151859
2012-03-01 23:18:44 +00:00
Benjamin Kramer
f7e02a0cab
BumpPtrAllocator: Make sure threshold cannot be initialized with a value smaller than the slab size.
...
This replaces r151834 with a simpler fix.
llvm-svn: 151842
2012-03-01 22:10:16 +00:00
Argyrios Kyrtzidis
16558f4d3b
If BumpPtrAllocator is requested to allocate a size that exceeds the slab size,
...
increase the slab size.
llvm-svn: 151834
2012-03-01 20:36:32 +00:00
Chandler Carruth
34085df4e8
Add the source file with trivial definitions in it that was missing from
...
r151822, sorry sorry. =[
We need 'git svn nothave' or some such...
llvm-svn: 151824
2012-03-01 18:58:59 +00:00
Chandler Carruth
1d03a3b6b1
Rewrite LLVM's generalized support library for hashing to follow the API
...
of the proposed standard hashing interfaces (N3333), and to use
a modified and tuned version of the CityHash algorithm.
Some of the highlights of this change:
-- Significantly higher quality hashing algorithm with very well
distributed results, and extremely few collisions. Should be close to
a checksum for up to 64-bit keys. Very little clustering or clumping of
hash codes, to better distribute load on probed hash tables.
-- Built-in support for reserved values.
-- Simplified API that composes cleanly with other C++ idioms and APIs.
-- Better scaling performance as keys grow. This is the fastest
algorithm I've found and measured for moderately sized keys (such as
show up in some of the uniquing and folding use cases)
-- Support for enabling per-execution seeds to prevent table ordering
or other artifacts of hashing algorithms to impact the output of
LLVM. The seeding would make each run different and highlight these
problems during bootstrap.
This implementation was tested extensively using the SMHasher test
suite, and pased with flying colors, doing better than the original
CityHash algorithm even.
I've included a unittest, although it is somewhat minimal at the moment.
I've also added (or refactored into the proper location) type traits
necessary to implement this, and converted users of GeneralHash over.
My only immediate concerns with this implementation is the performance
of hashing small keys. I've already started working to improve this, and
will continue to do so. Currently, the only algorithms faster produce
lower quality results, but it is likely there is a better compromise
than the current one.
Many thanks to Jeffrey Yasskin who did most of the work on the N3333
paper, pair-programmed some of this code, and reviewed much of it. Many
thanks also go to Geoff Pike Pike and Jyrki Alakuijala, the original
authors of CityHash on which this is heavily based, and Austin Appleby
who created MurmurHash and the SMHasher test suite.
Also thanks to Nadav, Tobias, Howard, Jay, Nick, Ahmed, and Duncan for
all of the review comments! If there are further comments or concerns,
please let me know and I'll jump on 'em.
llvm-svn: 151822
2012-03-01 18:55:25 +00:00
Derek Schuff
56b662ce0f
Make MemoryObject accessor members const again
...
llvm-svn: 151687
2012-02-29 01:09:06 +00:00
Daniel Dunbar
39ea458b73
Support/PathV2: Fix namespace qualifier in make_absolute(), for Win32.
...
llvm-svn: 151685
2012-02-29 00:46:46 +00:00
Daniel Dunbar
b23158c3b7
Support/PathV2: Fix make_absolute() to match is_absolute() and not expect to
...
find root names on Unix.
- This fixes make_absolute to not basically always call current_path() on
Unix systems.
- I think the API probably needs cleanup in this area, but I'll let Michael
handle that.
llvm-svn: 151681
2012-02-29 00:20:37 +00:00
Michael J. Spencer
e646239e5e
[PathV2] Fix bug in relative_path.
...
llvm-svn: 151675
2012-02-29 00:06:24 +00:00
Ahmed Charles
0dca5d8f8c
Fix undefined behavior.
...
llvm-svn: 151385
2012-02-24 19:06:15 +00:00
Duncan Sands
69d7a91334
Workaround a miscompilation by gcc-4.3 that showed up as a failure
...
of the StringRef.Split2 unittest on 32 bit machines.
llvm-svn: 151358
2012-02-24 09:01:34 +00:00
Jay Foad
585dda99f6
Update for the removal of Hashing.cpp.
...
llvm-svn: 151249
2012-02-23 09:33:44 +00:00
Jay Foad
5f77851a99
The implementation of GeneralHash::addBits broke C++ aliasing rules; fix
...
it with memcpy. This also fixes a problem on big-endian hosts, where
addUnaligned would return different results depending on the alignment
of the data.
llvm-svn: 151247
2012-02-23 09:16:04 +00:00
Chad Rosier
5dfe6dab25
Remove extra semi-colons.
...
llvm-svn: 151169
2012-02-22 17:25:00 +00:00
Chandler Carruth
0c7a7cc711
Support was removed from LLVM's MIPS backend for the PSP variant of that
...
chip in r139383, and the PSP components of the triple are really
annoying to parse. Let's leave this chapter behind. There is no reason
to expect LLVM to see a PSP-related triple these days, and so no
reasonable motivation to support them.
It might be reasonable to prune a few of the older MIPS triple forms in
general, but as those at least cause no burden on parsing (they aren't
both a chip and an OS!), I'm happy to leave them in for now.
llvm-svn: 151156
2012-02-22 11:32:54 +00:00
Duncan Sands
8570b29dfe
Move the implementation of StringRef::split out of StringExtras.cpp
...
and into StringRef.cpp, which is where the other StringRef stuff is.
llvm-svn: 151054
2012-02-21 12:00:25 +00:00
Chandler Carruth
362087bcba
Tiny cosmetic change to use the same style for all of the while loops in
...
the normalize routine, especially the empty while loops.
llvm-svn: 151050
2012-02-21 09:29:14 +00:00
Chandler Carruth
6ea6de7cad
Replace a hand rolled loop with a lovely StringRef helper we have these
...
days. No functionality changed.
llvm-svn: 151048
2012-02-21 09:12:48 +00:00
Chandler Carruth
aec9708988
Pull the parsing helper functions out of the Triple interface entirely.
...
They're private static methods but we can just make them static
functions in the implementation. It makes the implementations a touch
more wordy, but takes another chunk out of the header file.
Also, take the opportunity to switch the names to the new coding
conventions.
No functionality changed here.
llvm-svn: 151047
2012-02-21 08:53:32 +00:00
Chandler Carruth
1f3325a6d9
Clean up comments that I missed when changing the triple representation.
...
Somehow, I even missed the ones I wrote just the other day...
Thanks to Matt for the code review.
llvm-svn: 151045
2012-02-21 08:31:18 +00:00
Chandler Carruth
2d27b0f0ed
Switch the llvm::Triple class to immediately parse the triple string on
...
construction. Simplify its interface, implementation, and users
accordingly as there is no longer an 'uninitialized' state to check for.
Also, fixes a bug lurking in the interface as there was one method that
didn't correctly check for initialization.
llvm-svn: 151024
2012-02-21 03:39:36 +00:00
Chandler Carruth
0d887dd0b9
Move constructors out-of-line and flesh out their documentation. No
...
functionality changed. This is in preparation for some refactoring of
how this class behaves.
llvm-svn: 150941
2012-02-20 00:02:47 +00:00
Ahmed Charles
636a3d618c
Remove dead code. Improve llvm_unreachable text. Simplify some control flow.
...
llvm-svn: 150918
2012-02-19 11:37:01 +00:00
NAKAMURA Takumi
5adeb93d8a
APFloat::toString(): Fix overrun at scanning.
...
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.
llvm-svn: 150911
2012-02-19 03:18:29 +00:00
Ahmed Charles
4f9484722c
Fix issue with bitwise and precedence.
...
llvm-svn: 150897
2012-02-18 22:56:41 +00:00
Talin
f2291c908b
Hashing.h - utilities for hashing various data types.
...
llvm-svn: 150890
2012-02-18 21:00:49 +00:00
Chandler Carruth
b54950bef4
Trivial cleanup to group the generic 'armvN' cases with the 'arm' case,
...
etc. No functionality changed.
llvm-svn: 150867
2012-02-18 04:34:17 +00:00
Kaelyn Uhrain
7a9ccf4c09
Add function for computing the edit distance of two arrays.
...
Accomplished by moving the body of StringRef::edit_distance into
a separate function that accepts two ArrayRefs, and making
StringRef::edit_distance a wrapper around the new function.
llvm-svn: 150621
2012-02-15 22:13:07 +00:00
Benjamin Kramer
22a0fdf24b
StringSwitchify the rest of Triple.cpp.
...
llvm-svn: 150332
2012-02-12 10:56:52 +00:00
Chandler Carruth
ff6f356b95
Switch a bunch of manual if-chains to use StringSwitch. Clean them up in
...
the process. Some of these are still a bit gross.
Still, this cuts 80 some lines out of this ridiculous file. ;]
llvm-svn: 150331
2012-02-12 09:27:38 +00:00
David Blaikie
18544b9614
Change default error_code ctor to a 'named ctor' so it's more self-documenting.
...
Unify default construction of error_code uses on this idiom so that users don't
feel compelled to make static globals for naming convenience. (unfortunately I
couldn't make the original ctor private as some APIs don't return their result,
instead using an out parameter (that makes sense to default construct) - which
is a bit of a pity. I did, however, find/fix some cases of unnecessary default
construction of error_code before I hit the unfixable cases)
llvm-svn: 150197
2012-02-09 19:24:12 +00:00
David Blaikie
e7d7a5dfaa
Remove static initializer from DataStream.cpp
...
If someone would prefer a clear name for the 'success' error_value we could
come up with one - potentially just a 'named constructor' style
'error_value::success()' to make this expression more self-documenting. If
I see this come up in other cases I'll certainly consider it.
One step along the way to resolving PR11944.
llvm-svn: 150120
2012-02-09 00:29:19 +00:00
Benjamin Kramer
5e4f0a4a31
PathV2: Remove static StringRef ctors.
...
llvm-svn: 150071
2012-02-08 13:13:47 +00:00
David Blaikie
0210e97680
Correct use of const in ParseCommandLineOptions
...
llvm-svn: 149999
2012-02-07 19:36:01 +00:00
Craig Topper
a2886c21d9
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149967
2012-02-07 05:05:23 +00:00
Derek Schuff
76b292f5ba
Fix win32 build breakage from bitcode streaming patch
...
llvm-svn: 149941
2012-02-07 00:28:46 +00:00
Nick Lewycky
998bce0366
Fix comment-rulers.
...
llvm-svn: 149922
2012-02-06 22:41:47 +00:00
Derek Schuff
8b2dcad4b5
Enable streaming of bitcode
...
This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918
2012-02-06 22:30:29 +00:00
Chandler Carruth
07cfb4b696
Introduce helpers to compute the 32-bit varaints and 64-bit variants of
...
some architectures. These are useful for interacting with multiarch or
bi-arch GCC (or GCC-based) toolchains.
llvm-svn: 149895
2012-02-06 20:46:33 +00:00
Sebastian Pop
bbb8eb58f9
fix typo
...
llvm-svn: 149856
2012-02-06 05:29:29 +00:00
Duncan Sands
ae22c60f90
Persuade GCC that there is nothing worth warning about here (there isn't).
...
llvm-svn: 149834
2012-02-05 14:20:11 +00:00
Devang Patel
839515b64d
Add new tag and an attribute to support debug info for objective-c property.
...
llvm-svn: 149724
2012-02-03 23:57:08 +00:00
Bob Wilson
aa30aff4f7
Add Triple::getMacOSXVersion to replace crufty code in the clang driver.
...
This new function provides a way to get the Mac OS X version number from
either generic "darwin" triples of macosx triples.
llvm-svn: 149438
2012-01-31 22:32:29 +00:00
Chandler Carruth
b90c102a52
Add various coarse bit-width architecture predicates to llvm::Triple.
...
These are very useful for frontends and other utilities reasoning about
or selecting between triples.
llvm-svn: 149353
2012-01-31 04:52:32 +00:00
Douglas Gregor
7039e358fc
Move Clang's file-level locking facility over to LLVM's support
...
library, since it doesn't really have anything to do with Clang.
llvm-svn: 149203
2012-01-29 20:15:10 +00:00
Rafael Espindola
bb893fea6b
Add r149110 back with a fix for when the vector and the int have the same
...
width.
llvm-svn: 149151
2012-01-27 23:33:07 +00:00
Jim Grosbach
65e2465550
Tidy up. s/Low Level Virtual Machine/LLVM/.
...
LLVM isn't an acronym anymore.
llvm-svn: 148985
2012-01-25 22:00:23 +00:00
David Blaikie
d3303ded75
Remove dead default.
...
llvm-svn: 148738
2012-01-23 22:37:11 +00:00
David Blaikie
46a9f016c5
More dead code removal (using -Wunreachable-code)
...
llvm-svn: 148578
2012-01-20 21:51:11 +00:00
Rafael Espindola
f5e78fa8d1
Add support for the gnueabihf environment. Patch by Sylvestre Ledru.
...
llvm-svn: 148434
2012-01-18 23:35:29 +00:00
Manuel Klimek
85d26f9807
Removes template magic to build up containers.
...
Instead, we now put the attributes of the container into members.
llvm-svn: 148302
2012-01-17 09:34:07 +00:00
David Blaikie
b48ed1a4cb
Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)
...
llvm-svn: 148284
2012-01-17 04:43:56 +00:00
David Blaikie
486df738c3
Removing unused default switch cases in switches over enums that already account for all enumeration values explicitly.
...
(This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them)
llvm-svn: 148262
2012-01-16 23:24:27 +00:00
Chandler Carruth
da22f30e72
Remove SetWorkingDirectory from the Process interface. Nothing in LLVM
...
or Clang is using this, and it would be hard to use it correctly given
the thread hostility of the function. Also, it never checked the return
which is rather dangerous with chdir. If someone was in fact using this,
please let me know, as well as what the usecase actually is so that
I can add it back and make it more correct and secure to use. (That
said, it's never going to be "safe" per-se, but we could at least
document the risks...)
llvm-svn: 148211
2012-01-15 08:41:35 +00:00
David Blaikie
fdcd669bc6
Remove dead code.
...
llvm-svn: 148206
2012-01-15 01:09:13 +00:00
Argyrios Kyrtzidis
cd8fe08e4d
Disable the crash reporter when running lit tests.
...
llvm-svn: 147965
2012-01-11 20:53:25 +00:00
Chandler Carruth
9a7510af46
Teach the triple library about the androideabi environment.
...
Patch by Evgeniy Stepanov.
llvm-svn: 147871
2012-01-10 19:46:00 +00:00
Chandler Carruth
f3e8502cc1
Add 'llvm_unreachable' to passify GCC's understanding of the constraints
...
of several newly un-defaulted switches. This also helps optimizers
(including LLVM's) recognize that every case is covered, and we should
assume as much.
llvm-svn: 147861
2012-01-10 18:08:01 +00:00
David Blaikie
edbb58c577
Remove unnecessary default cases in switches that cover all enum values.
...
llvm-svn: 147855
2012-01-10 16:47:17 +00:00
Benjamin Kramer
077ae1d760
Add definitions for AMD's bobcat (aka btver1)
...
llvm-svn: 147846
2012-01-10 11:50:02 +00:00
Sebastian Pop
99ab273a77
revert r147542 after comments from Joerg Sonnenberger
...
llvm-svn: 147608
2012-01-05 18:28:46 +00:00
Sebastian Pop
0f357d6c22
use getHostTriple instead of getDefaultTargetTriple in getClosestTargetForJIT
...
Get back getHostTriple.
For JIT compilation, use the host triple instead of the default
target: this fixes some JIT testcases that used to fail when the
compiler has been configured as a cross compiler.
llvm-svn: 147542
2012-01-04 19:47:22 +00:00
Nick Lewycky
228f5b4ba3
Conform to the style guide; remove 'else' after 'return'. Also remove an extra
...
if-statement by turning it into an assert. No functionality change.
llvm-svn: 147474
2012-01-03 20:33:00 +00:00
Benjamin Kramer
46236ee5cf
Switch StringMap from an array of structures to a structure of arrays.
...
- -25% memory usage of the main table on x86_64 (was wasted in struct padding).
- no significant performance change.
llvm-svn: 147294
2011-12-27 20:35:07 +00:00
Dylan Noblesmith
9e5b178ecc
drop unneeded config.h includes
...
llvm-svn: 147197
2011-12-22 23:04:07 +00:00
Eli Friedman
2aae94fa70
Fix APInt::rotl and APInt::rotr so that they work correctly. Found while writing some code that tried to use them.
...
llvm-svn: 147134
2011-12-22 03:15:35 +00:00
Manuel Klimek
25eb0ac418
Changes the JSON parser to use the SourceMgr.
...
Diagnostics are now emitted via the SourceMgr and we use MemoryBuffer
for buffer management. Switched the code to make use of the trailing
'0' that MemoryBuffer guarantees where it makes sense.
llvm-svn: 147063
2011-12-21 18:16:39 +00:00
Manuel Klimek
fe198ced31
Fixes a potential compilation error.
...
Pulling the template implementation into the header to guarantee
that it's visible to all possible instantiations.
llvm-svn: 146973
2011-12-20 11:04:23 +00:00
Manuel Klimek
47151c37b6
Pulls the implementation of skip() into JSONParser.
...
This is the first step towards migrating more of the parser
implementation into the parser class.
llvm-svn: 146971
2011-12-20 10:42:52 +00:00
Manuel Klimek
f8d73192cc
Addressing style issues in JSON parser.
...
llvm-svn: 146968
2011-12-20 09:26:26 +00:00
Chandler Carruth
e805b16e3d
Fix up the CMake build for the new files added in r146960, they're
...
likely to stay either way that discussion ends up resolving itself.
llvm-svn: 146966
2011-12-20 08:42:11 +00:00
David Blaikie
a379b18173
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
...
llvm-svn: 146960
2011-12-20 02:50:00 +00:00
Dylan Noblesmith
1c419ff50d
APInt: update asserts for base-36
...
Hexatridecimal was added in r139695.
And fix the unittest that now triggers the assert.
llvm-svn: 146754
2011-12-16 20:36:31 +00:00
Manuel Klimek
2c899a181c
Adds a JSON parser and a benchmark (json-bench) to catch performance regressions.
...
llvm-svn: 146735
2011-12-16 13:09:10 +00:00
Michael J. Spencer
4f8a832c19
Support/FileSystem: Add file_magic and move a vew clients over to it.
...
llvm-svn: 146523
2011-12-13 23:17:12 +00:00
Michael J. Spencer
a2755f8efa
Support/Program: Make Change<stream>ToBinary return error_code.
...
llvm-svn: 146522
2011-12-13 23:16:49 +00:00
Michael J. Spencer
7dfbeda68e
Cleanup whitespace.
...
llvm-svn: 146521
2011-12-13 23:16:15 +00:00
Tony Linthicum
1213a7a57f
Hexagon backend support
...
llvm-svn: 146412
2011-12-12 21:14:40 +00:00
Daniel Dunbar
27a7489a03
LLVMBuild: Remove trailing newline, which irked me.
...
llvm-svn: 146409
2011-12-12 19:48:00 +00:00
Chad Rosier
531042840d
Revert r146363 to allow buildbots to make forward progress.
...
Original commit message:
Support/FileSystem: Implement canonicalize.
llvm-svn: 146378
2011-12-12 17:58:31 +00:00
Michael J. Spencer
203d7807a8
Support/FileSystem: Implement bool equivalent(file_status A, file_status B);
...
llvm-svn: 146364
2011-12-12 06:04:28 +00:00
Michael J. Spencer
32ef4d2e1b
Support/FileSystem: Implement canonicalize.
...
llvm-svn: 146363
2011-12-12 06:04:01 +00:00
Michael J. Spencer
513f1b666f
Support/Windows: Cleanup scoped handles.
...
llvm-svn: 146362
2011-12-12 06:03:33 +00:00
Michael J. Spencer
0a7625d661
Support/FileSystem: Implement recursive_directory_iterator and make
...
directory_iterator preserve InputIterator semantics on copy.
llvm-svn: 146200
2011-12-08 22:50:09 +00:00
David Blaikie
421caa4278
Adding missing anchor to DATDeltaAlgorithm.
...
llvm-svn: 146025
2011-12-07 06:44:23 +00:00
Nick Lewycky
897a57ecda
Silence tsan false-positives (tsan can't track things which are only safe due to
...
memory fences) in statistics registration, which works the same way that
ManagedStatic registration does.
llvm-svn: 145869
2011-12-05 23:07:05 +00:00
David Blaikie
54c9462c77
Fix unreachable return & simplify some branches.
...
llvm-svn: 145627
2011-12-01 20:58:30 +00:00
Benjamin Kramer
3ced545ccf
Autodetect bulldozers.
...
llvm-svn: 145607
2011-12-01 18:24:17 +00:00
David Blaikie
3a15e14520
Add some missing anchors.
...
llvm-svn: 145578
2011-12-01 08:00:17 +00:00
NAKAMURA Takumi
64404a3b2c
[Win32] Catch exceptions (eg. segfault) on waiting for invoked clang from the driver.
...
clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused.
llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value.
Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception.
llvm-svn: 145389
2011-11-29 07:47:04 +00:00
Nick Lewycky
76c6299f88
Don't define these unless we plan to use them.
...
llvm-svn: 145289
2011-11-28 22:14:02 +00:00
Eli Friedman
31f0116173
Add back a line I deleted by accident in r145141. Fixes uninitialized variable warnings and runtime failures.
...
llvm-svn: 145256
2011-11-28 18:50:37 +00:00
Dylan Noblesmith
efddf20126
rename ENABLE_THREADS to LLVM_ENABLE_THREADS
...
Now that it needs to be exported in a public header (Valgrind.h)
it should be prefixed to avoid collision with other projects.
Add it to llvm-config.h as well.
This'll require regenerating the configure script after this
commit, but I don't have the required autoconf version.
llvm-svn: 145214
2011-11-28 00:48:58 +00:00
Eli Friedman
a84ad7d0d0
Fix APFloat::convert so that it handles narrowing conversions correctly; it
...
was returning incorrect values in rare cases, and incorrectly marking
exact conversions as inexact in some more common cases. Fixes PR11406, and a
missed optimization in test/CodeGen/X86/fp-stack-O0.ll.
llvm-svn: 145141
2011-11-26 03:38:02 +00:00
Benjamin Kramer
6709e05012
Make ConstantRange::truncate a bit more efficient.
...
llvm-svn: 145122
2011-11-24 17:24:33 +00:00
Richard Smith
4f9a8081c3
Correctly byte-swap APInts with bit-widths greater than 64.
...
llvm-svn: 145111
2011-11-23 21:33:37 +00:00
Benjamin Kramer
e1effb0da2
Add configure checking for pread(2) and use it to save a syscall when reading files.
...
llvm-svn: 145061
2011-11-22 12:31:53 +00:00
Benjamin Kramer
f22623b78b
Turn error recovery into an assert.
...
This was put in because in a certain version of DragonFlyBSD stat(2) lied about the
size of some files. This was fixed a long time ago so we can remove the workaround.
llvm-svn: 145059
2011-11-22 11:37:11 +00:00
Nick Lewycky
6804d27048
Move WEAK marking to the declaration.
...
llvm-svn: 144603
2011-11-15 01:23:22 +00:00
Nick Lewycky
b2489b7484
Fix linking for some users who already have tsan enabled code and are trying to
...
link it against llvm code, by making our definitions weak. "Some users."
llvm-svn: 144596
2011-11-15 00:14:04 +00:00
Nick Lewycky
fe856110aa
Add support for tsan annotations (thread sanitizer, a valgrind-based tool).
...
These annotations are disabled entirely when either ENABLE_THREADS is off, or
building a release build. When enabled, they add calls to functions with no
statements to ManagedStatic's getters.
Use these annotations to inform tsan that the race used inside ManagedStatic
initialization is actually benign. Thanks to Kostya Serebryany for helping
write this patch!
llvm-svn: 144567
2011-11-14 20:50:16 +00:00
Benjamin Kramer
e3b94d1b55
Fix a typo.
...
llvm-svn: 143890
2011-11-06 20:36:50 +00:00
Daniel Dunbar
3fa528d67c
ADT/StringRef: Add ::lower() and ::upper() methods.
...
llvm-svn: 143880
2011-11-06 18:04:43 +00:00
Peter Collingbourne
bf025fdb54
Return only the least significant 8 bits of the exit status from
...
Process::Wait on Windows (mimicing POSIX behaviour).
llvm-svn: 143876
2011-11-06 16:45:46 +00:00
Benjamin Kramer
f3da529028
Add more PRI.64 macros for MSVC and use them throughout the codebase.
...
llvm-svn: 143799
2011-11-05 08:57:40 +00:00
Daniel Dunbar
bf9bba47a1
build: Add initial cut at LLVMBuild.txt files.
...
llvm-svn: 143634
2011-11-03 18:53:17 +00:00
Sebastian Pop
94441fbad7
rename getHostTriple into getDefaultTargetTriple
...
llvm-svn: 143502
2011-11-01 21:32:20 +00:00
Sebastian Pop
ec2fb226d8
rename LLVM_HOSTTRIPLE into LLVM_DEFAULT_TARGET_TRIPLE
...
llvm-svn: 143501
2011-11-01 21:31:44 +00:00
Eli Friedman
39df70c33a
Remove a couple unused methods. PR11201.
...
llvm-svn: 143452
2011-11-01 05:11:01 +00:00
Dan Gohman
4c9fca99c9
Remove the Alpha backend.
...
llvm-svn: 143164
2011-10-27 22:56:32 +00:00
Benjamin Kramer
2aed4393b8
BlockFrequency: Use a smarter overflow check.
...
This trades one 64 bit div for one 64 bit mul and some arithmetic.
llvm-svn: 143106
2011-10-27 16:38:50 +00:00
Dan Gohman
b43c36f391
Remove the Blackfin backend.
...
llvm-svn: 142880
2011-10-25 00:05:42 +00:00
Dan Gohman
dfc96aea90
Remove the SystemZ backend.
...
llvm-svn: 142878
2011-10-24 23:48:32 +00:00
NAKAMURA Takumi
66c9e4ffd5
Windows/Path.inc: [PR8460] Get rid of ScopedNullTerminator. Thanks to Zvi Rackover!
...
llvm-svn: 142785
2011-10-24 03:27:19 +00:00
Benjamin Kramer
cc0ed6ba04
Print branch probabilities as percentages.
...
50% is much more readable than 5.000000e-01.
llvm-svn: 142752
2011-10-23 11:32:54 +00:00
Benjamin Kramer
929f53f65c
Add compare operators to BranchProbability and use it to determine if an edge is hot.
...
llvm-svn: 142751
2011-10-23 11:19:14 +00:00
Anton Korobeynikov
b27f11e01d
Fix build on mingw-w64.
...
Patch by Ruben Van Boxem!
llvm-svn: 142646
2011-10-21 09:38:50 +00:00
David Meyer
a93b4bc98c
Remove unused include of sys/uio.h in MemoryBuffer.cpp. It was not correctly protected by ifdef either.
...
llvm-svn: 142623
2011-10-20 21:57:46 +00:00
Benjamin Kramer
e664de33b1
Fix handling of the From parameter in StringRef::find.
...
Enable bounds checking to catch this kind of bug earlier.
llvm-svn: 142247
2011-10-17 20:49:40 +00:00
Benjamin Kramer
cc863b2bb6
Let printf do the formatting instead aligning strings ourselves.
...
While at it, merge some format strings.
llvm-svn: 142140
2011-10-16 16:30:34 +00:00
Chris Lattner
7284526aff
remove the dead 'ShowLine' argument from SMDiagnostic.
...
llvm-svn: 142108
2011-10-16 05:47:55 +00:00
Chris Lattner
03b80a4027
Make SMDiagnostic a little more sane. Instead of passing around note/warning/error as a
...
string, pass it around as an enum.
llvm-svn: 142107
2011-10-16 05:43:57 +00:00
Chris Lattner
a3a0681083
Enhance llvm::SourceMgr to support diagnostic ranges, the same way clang does. Enhance
...
the X86 asmparser to produce ranges in the one case that was annoying me, for example:
test.s:10:15: error: invalid operand for instruction
movl 0(%rax), 0(%edx)
^~~~~~~
It should be straight-forward to enhance filecheck, tblgen, and/or the .ll parser to use
ranges where appropriate if someone is interested.
llvm-svn: 142106
2011-10-16 04:47:35 +00:00
Benjamin Kramer
4d681d7dc4
Add a bad char heuristic to StringRef::find.
...
Based on Horspool's simplified version of Boyer-Moore. We use a constant-sized table of
uint8_ts to keep cache thrashing low, needles bigger than 255 bytes are uncommon anyways.
The worst case is still O(n*m) but we do a lot better on the average case now.
llvm-svn: 142061
2011-10-15 10:08:31 +00:00
NAKAMURA Takumi
ea97a05fc5
Revert r142046, "Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the triple"
...
It extremely breaks builds when optimization is enabled. Twine should not hold temporary objects.
By the way, I might feel sad if I saw "i786-" "i1586-" or "iF86-".
llvm-svn: 142055
2011-10-15 04:29:36 +00:00
Chad Rosier
559b8f2ae9
Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the triple
...
from config.h, it discovers the triple based on the execution environment.
Patch by Aaron Ballman <aaron@aaronballman.com>
llvm-svn: 142046
2011-10-15 02:10:06 +00:00
NAKAMURA Takumi
7bc976a8ef
Windows/Memory.inc: Support the ability to allocate memory "near" another block of memory on Win32. It has fixed FIXME.
...
Thanks to Aaron Ballman!
llvm-svn: 142039
2011-10-15 01:58:16 +00:00
Michael J. Spencer
a7a90bfdab
Support/Windows: Add support modifying memory permissions on Windows. Patch by Aaron Ballman!
...
llvm-svn: 141910
2011-10-13 23:16:01 +00:00
Michael J. Spencer
0084615924
Support/Windows: Add efficent RW mutex on Windows. Patch by Aaron Ballman!
...
llvm-svn: 141907
2011-10-13 23:10:56 +00:00
Eli Friedman
53ba208c72
Avoid undefined behavior in signed integer negation. Patch by Ahmed Charles.
...
llvm-svn: 141905
2011-10-13 22:49:56 +00:00
Eli Friedman
d433042388
Fix APFloat::getSmallestNormalized so the shift doesn't depend on undefined behavior. Patch from Ahmed Charles.
...
llvm-svn: 141818
2011-10-12 21:56:19 +00:00
Eli Friedman
c53220134a
Fix APFloat::getLargest so that it actually returns the correct value. Found by accident while reviewing a patch to nearby code.
...
llvm-svn: 141816
2011-10-12 21:51:36 +00:00
Daniel Dunbar
037fc9311a
Clean up a few references to System/. We still have docs/SystemLibrary.html
...
lying around...
llvm-svn: 141703
2011-10-11 20:02:52 +00:00
Bruno Cardoso Lopes
cc6659b2ae
The Mips specific function for instruction cache invalidation cannot be
...
compiled on mips32r1 processors because it uses synci and rdhwr instructions
which are supported only on mips32r2, so I replaced this function with the
call to function cacheflush which works for both mips32r1 and mips32r2.
Patch by Sasa Stankovic
llvm-svn: 141564
2011-10-10 18:41:02 +00:00
Eli Friedman
195464184e
Fix APInt::operator*= so that it computes the correct result for large integers where there is unsigned overflow. Fix APFloat::toString so that it doesn't depend on the incorrect behavior in common cases (and computes the correct result in some rare cases). Fixes PR11086.
...
llvm-svn: 141441
2011-10-07 23:40:49 +00:00
Eric Christopher
c4b9b526ba
Add more initializers to quiet a clang warning.
...
llvm-svn: 141163
2011-10-05 05:00:26 +00:00
Nick Lewycky
f66daac2f5
Fix typo in comments.
...
llvm-svn: 141032
2011-10-03 21:30:08 +00:00
Michael J. Spencer
44a36c872e
Add Windows x64 stack walking support. Patch by Aaron Ballman!
...
llvm-svn: 140906
2011-10-01 00:05:20 +00:00
Jakob Stoklund Olesen
c874e2d8fb
Fix a bug in compare_numeric().
...
Thanks to Alexandru Dura and Jonas Paulsson for finding it.
llvm-svn: 140859
2011-09-30 17:03:55 +00:00
Chad Rosier
bf415251df
These symbols appear to be visible by SearchForAddressOfSymbol and no longer
...
require special case handling.
rdar://10117377
llvm-svn: 140629
2011-09-27 20:01:41 +00:00
Daniel Dunbar
9b92e2be30
sys::Process: Add a SetWorkingDirectory method.
...
llvm-svn: 140433
2011-09-23 23:23:36 +00:00
Richard Trieu
a318b8dce6
Change:
...
assert(!"error message");
To:
assert(0 && "error message");
which is more consistant across the code base.
llvm-svn: 140234
2011-09-21 03:09:09 +00:00
Bob Wilson
49621cb209
Remove the hack to check UNAME_RELEASE when identifying the Darwin version.
...
This was only needed to locate llvm-gcc's installation directory when clang
falls back to run llvm-gcc for i386 kexts. As of clang svn r140187, we're
now just searching paths with several different Darwin versions on either
side of the current version, so this is no longer needed.
llvm-svn: 140188
2011-09-20 22:05:56 +00:00
Douglas Gregor
c98ac850eb
U is good enough
...
llvm-svn: 140166
2011-09-20 18:33:29 +00:00
Douglas Gregor
e4e20f43e4
Eliminate sign-comparison warnings in APInt
...
llvm-svn: 140158
2011-09-20 18:11:52 +00:00
Akira Hatanaka
6c3ad65288
Add mips64 & mips64el to Triple. Patch by Liu with modifications.
...
llvm-svn: 140157
2011-09-20 18:09:37 +00:00
Eric Christopher
4418a60272
Rename LLVM_MULTITHREADED define and fix build without threads.
...
Patch by Arrowdodger.
llvm-svn: 140064
2011-09-19 20:43:23 +00:00
Benjamin Kramer
c20a3ebba0
Silence -Wsign-compare warnings from GCC.
...
llvm-svn: 140043
2011-09-19 20:08:54 +00:00
NAKAMURA Takumi
dbd883b915
Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
...
llvm-svn: 140011
2011-09-19 07:41:43 +00:00
Eli Friedman
f67d3ff8f3
Fix a minor bug in fs::create_directories. Patch by Albert Wong.
...
llvm-svn: 139928
2011-09-16 18:36:31 +00:00
Ivan Krasin
639222d090
use 64-bit types instead of off_t/size_t to avoid the issue when
...
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686)
and the rest of LLVM is built w/o Large File Support
(sizeof(off_t) == 32 on i686) which corrupts the stack.
llvm-svn: 139873
2011-09-15 23:13:00 +00:00
Benjamin Kramer
49fc9ddae6
CommandLine: Add support for 64 bit unsigned integer options.
...
llvm-svn: 139848
2011-09-15 21:17:37 +00:00
Nick Lewycky
ee674b3e3b
Add some more DWARF extensions from:
...
1. http://gcc.gnu.org/wiki/TemplateParmsDwarf
2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf
llvm-svn: 139784
2011-09-15 05:21:03 +00:00
Nick Lewycky
34368124aa
Update Dwarf enums list for DWARF 4.
...
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
llvm-svn: 139779
2011-09-15 04:23:44 +00:00
Douglas Gregor
8b74454619
Update the comment for system_temp_directory() to indicate when it
...
will ignore the erasedOnReboot option, and properly escape the
backslash in "C:\TEMP". Thanks to Aaron and Francois.
llvm-svn: 139755
2011-09-14 23:21:47 +00:00
Bill Wendling
bdaa57fe6d
Include limits.h to make sure PATH_MAX is known on Solaris 10.
...
Patch by Joakim Johansson!
llvm-svn: 139743
2011-09-14 21:49:42 +00:00
Douglas Gregor
123dc70c50
Add a simple routine to determine the typical system directory for
...
temporary data.
llvm-svn: 139725
2011-09-14 20:27:01 +00:00
Douglas Gregor
663c068d46
Add APInt support for converting to/from hexatridecimal strings
...
llvm-svn: 139695
2011-09-14 15:54:46 +00:00
Bruno Cardoso Lopes
483c269a33
One more patch towards JIT support for Mips.
...
- Add TSFlags for the instruction formats. The idea here is to use
as much encoding as possible from getBinaryCodeForInstr, and having
TSFLags formats for that would make it easier to encode most part
of the instructions (since Mips encodings are pretty straightforward)
- Improve the mips mechanism for compilation callback
- Add Mips specific code for invalidating the instruction cache
- Next patch will address wrong tablegen encoding
Commit msg added by my own but the patch is from Sasa Stankovic.
llvm-svn: 139688
2011-09-14 03:00:41 +00:00
Benjamin Kramer
91ead3c1f5
Remove unimplemented function prototypes from PathV2. They can be readded when someone cares enough.
...
Patch by Aaron Ballman!
llvm-svn: 139682
2011-09-14 01:14:36 +00:00
Benjamin Kramer
557a81e9d7
ObjectFile: Add support for mach-o-style dSYM companion files.
...
llvm-svn: 139676
2011-09-14 00:39:22 +00:00
Benjamin Kramer
88a1d9fc00
Add the DataExtractor utility class.
...
It is an endian-aware helper that can read data from a StringRef. It will
come in handy for DWARF parsing. This class is inspired by LLDB's
DataExtractor, but is stripped down to the bare minimum needed for DWARF.
Comes with unit tests!
llvm-svn: 139626
2011-09-13 19:42:16 +00:00
Devang Patel
b5a07abe94
Add DW_ATE_UTF, which clang started using in my previous commit!
...
llvm-svn: 139503
2011-09-12 17:18:20 +00:00
Tobias Grosser
516dbb24b5
Add AMDIL as valid target triple to LLVM.
...
Submitted by: Villmow, Micah <Micah.Villmow@amd.com>
llvm-svn: 138734
2011-08-29 15:44:55 +00:00
Nick Lewycky
7bfd86d046
Fix integer overflow bug in raw_ostream::write. This showed up as a
...
non-deterministic crash in the test suite. Fixes PR10055!
llvm-svn: 138717
2011-08-28 03:30:02 +00:00
Benjamin Kramer
5ff961c376
Report failure if there are less bytes than requested in a MemoryObject.
...
Before we just left the remaining bytes uninitialized. This is another step in making llvm valgrind-clean again.
llvm-svn: 138705
2011-08-27 07:45:46 +00:00
Benjamin Kramer
5a122f37fe
Intel family 6 model 44 is Gulftown/Westmere-EP and doesn't have AVX.
...
llvm-svn: 138573
2011-08-25 18:05:56 +00:00
Evan Cheng
2bb4035707
Move TargetRegistry and TargetSelect from Target to Support where they belong.
...
These are strictly utilities for registering targets and components.
llvm-svn: 138450
2011-08-24 18:08:43 +00:00
Ivan Krasin
771ef8c66a
This patch adds support of le32 pseudo-cpu that stands for generic
...
32-bit little-endian CPU. Used by PNaCl and Emscripten.
llvm-svn: 138335
2011-08-23 16:59:00 +00:00
NAKAMURA Takumi
fd6cb64c48
lib/Support/Windows/Windows.h: Update required IE ver. 0x0600 should be enough for Windows XP.
...
llvm-svn: 138319
2011-08-23 03:49:11 +00:00
Ivan Krasin
b296790bb6
Add NativeClient support to Triple::ParseOS.
...
llvm-svn: 138291
2011-08-22 23:08:53 +00:00
Jordy Rose
5765f4c24c
Make DynamicLibrary thread-safe w/r/t call to dlerror() after dlopen(). PR10718
...
llvm-svn: 138260
2011-08-22 19:01:52 +00:00
Benjamin Kramer
58994ec9b9
PathV2: Handle more reserved filenames on windows.
...
Patch by Aaron Ballman!
llvm-svn: 138213
2011-08-20 21:36:38 +00:00
NAKAMURA Takumi
1eae12cc9f
lib/Support/CrashRecoveryContext.cpp: Add Win32 support to CrashRecoveryContext. Thanks to Aaron Ballman!
...
llvm-svn: 138199
2011-08-20 06:35:36 +00:00
NAKAMURA Takumi
613655f89c
lib/Support/Windows/Windows.h: Require at least Windows XP(5.1) API. We will not support Windows 2000 any more.
...
llvm-svn: 138198
2011-08-20 06:35:31 +00:00
Ivan Krasin
44306e2e5f
Add NativeClient operating system support.
...
This patch adds support of NativeClient (*-*-nacl) OS support to LLVM.
It's already supported in autoconf/config.sub.
The motivation for this change is to start upstreaming PNaCl work. The
whole set of patches include llvm backends (i686, x86_64, ARM),
llvm-gcc (probably, would not be upstreamed because it's deprecated)
and clang (the work has been just started, the amount of changes is
going to be low and the most of the work is expected to be done close
to the mainline).
llvm-svn: 138005
2011-08-18 22:54:21 +00:00
Jordy Rose
04bc405a29
Static fields require an out-of-line definition. Fix DynamicLibrary for real.
...
llvm-svn: 137844
2011-08-17 18:38:42 +00:00
Jordy Rose
1a3ca9201a
Unbork Windows build. Thanks, Francois.
...
llvm-svn: 137798
2011-08-17 00:59:50 +00:00
Jordy Rose
a19917da7c
Use DynamicLibrary instances as a way to get symbols from a specific library. Preparation for upcoming (preliminary) support for plugins for the static analyzer.
...
llvm-svn: 137791
2011-08-17 00:29:32 +00:00
Duncan Sands
a41634e307
Silence a bunch (but not all) "variable written but not read" warnings
...
when building with assertions disabled.
llvm-svn: 137460
2011-08-12 14:54:45 +00:00
Bob Wilson
527bd07934
Clarify a comment.
...
llvm-svn: 137204
2011-08-10 05:02:22 +00:00
Bob Wilson
f60d6df887
Put Darwin-specific code inside an __APPLE__ ifdef.
...
llvm-svn: 137137
2011-08-09 19:54:32 +00:00
Bob Wilson
de9ec45e5a
Recognize the UNAME_RELEASE environment variable to match Darwin's uname.
...
When this variable is set, "uname -r" will return its value instead of the
real OS version. Make this affect LLVM's triple for consistency.
<rdar://problem/9919167>
llvm-svn: 137111
2011-08-09 05:13:36 +00:00
Sean Callanan
147c83ed4d
Added several architecture names.
...
llvm-svn: 136552
2011-07-30 01:29:54 +00:00
Nick Lewycky
9ee5f77141
Don't look at $PWD in GetCurrentDirectory.
...
llvm-svn: 136477
2011-07-29 18:26:59 +00:00
Nick Lewycky
38b9b568b9
Teach Path::GetCurrentDirectory to use $PWD, to support users who like to do
...
screwy things by setting PWD != getcwd(). For example, some developers I know
will use this to control the value in gcc's DW_AT_comp_dir value in debug
output. With this patch, that trick will now work on clang too.
The only other effect of this change is that the static analysis will now
respect $PWD when reporting the directory of the files in its HTML output. I
think that's fine.
llvm-svn: 136459
2011-07-29 04:42:39 +00:00
Argyrios Kyrtzidis
348937de07
Add an optional 'bool makeAbsolute' in llvm::sys::fs::unique_file function.
...
If true and 'model' parameter is not an absolute path, a temp directory will be prepended.
Make it true by default to match current behaviour.
llvm-svn: 136310
2011-07-28 00:29:20 +00:00
Jakub Staszak
9b8a6a3b2b
Optimize 96-bit division a little bit.
...
llvm-svn: 136222
2011-07-27 16:00:40 +00:00
Jakub Staszak
a9e8aa0482
Move static methods to the anonymous namespace.
...
llvm-svn: 136221
2011-07-27 15:51:51 +00:00
Frits van Bommel
ec9cd83905
Trim includes.
...
llvm-svn: 136218
2011-07-27 15:20:06 +00:00
Duncan Sands
fe44f67d43
Teach the Triple class about kfreebsd (FreeBSD kernel with
...
a GNU userspace).
llvm-svn: 136085
2011-07-26 15:30:04 +00:00
Jakub Staszak
e92d047b51
BranchProbability::print returns void now.
...
llvm-svn: 135994
2011-07-25 22:27:42 +00:00
Jakub Staszak
49993f26bf
Add BlockFrequency class.
...
llvm-svn: 135992
2011-07-25 22:24:51 +00:00
Chris Lattner
d757d3f5c2
switch Triple to take twines instead of stringrefs.
...
llvm-svn: 135889
2011-07-24 20:45:08 +00:00
Chris Lattner
9650f0678c
Add Twine support for characters, and switch twine to use a union internally
...
to eliminate some casting.
llvm-svn: 135888
2011-07-24 20:44:30 +00:00
Chandler Carruth
43025a0869
Move TargetRegistry.cpp from lib/Support to lib/Target where it belongs.
...
The header file was already properly located. The previous need for it
in Support had to do with the version string printing which was fixed in
r135757.
Also update build dependencies where libraries that needed the
functionality of the Target library (in the form of the TargetRegistry)
were picking it up via Support. This is pretty pervasive, essentially
every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it
depend on Target. All of these were previously just sneaking by.
llvm-svn: 135760
2011-07-22 08:16:53 +00:00
Chandler Carruth
2d71c421f9
Move the registered target printing in version strings completely out of
...
the Support library. Now its part of the TargetRegistry, and the three
commands that care about this explicitly register this extra bit of
version information.
The set of commands which care was computed by intersecting those which
use the Support library's version string printing and those that
initialize all the registered targets in a way that produces
a meaningful list. The only odd ball out is that 'clang -cc1as -version'
no longer prints the registered targets. I don't think anyone is really
interested in that (especially as the fact that llvm-mc does so is under
a FIXME), but if someone really does want this back I'll happily apply
the same patch there.
llvm-svn: 135757
2011-07-22 07:50:48 +00:00
Chandler Carruth
2baac02c94
Move the logic for printing the registered targets into a static
...
function on the TargetRegistry. Also clean it up and use the modern LLVM
utility libraries available instead of rolling a few things manually.
llvm-svn: 135756
2011-07-22 07:50:44 +00:00
Chandler Carruth
ea7e55272c
Add an extension point to the CommandLine library where clients can
...
register extra version information to be printed. This is designed to
allow those tools which link in various targets to also print those
registered targets under --version.
Currently this printing logic is embedded into the Support library
directly; a huge layering violation. This is the first step to hoisting
it out into the tools without adding lots of duplicated code.
llvm-svn: 135755
2011-07-22 07:50:40 +00:00
NAKAMURA Takumi
af8d50ddb3
lib/Support/Triple.cpp: Recognize "-march=ppc32" to llc properly, as quick hack.
...
FIXME: There is an inconsistency. llvm::Triple does not understand "ppc32" and PowerPC/TargetInfo holds "ppc32".
llvm-svn: 135745
2011-07-22 04:02:22 +00:00
Chris Lattner
5cf753c95e
move tier out of an anonymous namespace, it doesn't make sense
...
to for it to be an an anon namespace and be in a header.
Eliminate some extraenous uses of tie.
llvm-svn: 135669
2011-07-21 06:21:31 +00:00
Jeffrey Yasskin
7a16288157
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity
...
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
llvm-svn: 135431
2011-07-18 21:45:40 +00:00
Benjamin Kramer
2b8cb92209
Simplify & microoptimize code. No intended functionality change.
...
llvm-svn: 135364
2011-07-18 00:00:20 +00:00
Frits van Bommel
f8bf4c213a
In Twine::str(), if the Twine stores only a std::string, just return a direct copy of that instead of first copying to a SmallString and converting that to a std::string. Also fix some indentation.
...
llvm-svn: 135267
2011-07-15 11:05:37 +00:00
Chandler Carruth
1bf4a30d4d
Explicitly cast the second argument to unsigned in order to select the
...
desired overload.
This is a bit of a hackish workaround to fix the compile after r135259.
Let me know if there is a better approach.
llvm-svn: 135261
2011-07-15 07:31:10 +00:00
Jeffrey Yasskin
03b81a2eb4
Add an APFloat::convertToInt(APSInt) function that automatically manages the
...
memory for the result.
llvm-svn: 135259
2011-07-15 07:04:56 +00:00
NAKAMURA Takumi
ee24d32071
Windows/DynamicLibrary.inc: Fix trivial warnings. Thanks to John Myers!
...
llvm-svn: 134812
2011-07-09 08:41:20 +00:00
Bob Wilson
d0f0600b49
Update comments for SandyBridge CPU identifiers.
...
llvm-svn: 134759
2011-07-08 22:33:59 +00:00
Bob Wilson
eff24111b9
Recognize Intel CPUs with Family=6 and Model=44.
...
According to Intel Application Note 485, this value is used for
"Intel Core i7 and Intel Xeon processor". Just include it with the other
"corei7-avx" entries.
llvm-svn: 134750
2011-07-08 22:09:35 +00:00
Joerg Sonnenberger
e0cbf7409c
Recognize mipseb as alias for mips for symmetry with mipsel.
...
llvm-svn: 134617
2011-07-07 16:53:52 +00:00
Eli Friedman
499647bfc3
Fix missing triple support for RTEMS target.
...
llvm-svn: 134532
2011-07-06 20:56:26 +00:00
Chad Rosier
30c3463309
By default mkstemp() creates a temporary file with mode 0600, but the mode
...
used for open is 0666. Therefore, add the necessary permission bits for
consistency.
rdar://8621462
llvm-svn: 134430
2011-07-05 18:55:31 +00:00
Duncan Sands
a1c44332e5
Revert previous commit. It seems that whether casting to void
...
is valid or not depends on which system you build.
llvm-svn: 134321
2011-07-02 13:14:22 +00:00
Duncan Sands
dda99eef54
Supress gcc-4.5 warning about the result not being used.
...
llvm-svn: 134319
2011-07-02 13:06:23 +00:00
Douglas Gregor
de3c92674e
Add initial *-*-rtems* target, from Joel Sherrill
...
llvm-svn: 134282
2011-07-01 22:41:06 +00:00
Nick Lewycky
5dc6b794b1
Fix the implementation of ConstantRange::sub(ConstantRange). Patch by Xi Wang!
...
llvm-svn: 133648
2011-06-22 21:13:46 +00:00
Ted Kremenek
b05f02e956
add option for literal formatting to APInt::toString()
...
toString() now takes an optional bool argument that,
depending on the radix, adds the appropriate prefix
to the integer's string representation that makes it into a
meaningful C literal, e.g.:
hexademical: '-f' becomes '-0xf'
octal: '77' becomes '077'
binary: '110' becomes '0b110'
Patch by nobled@dreamwidth.org !
llvm-svn: 133032
2011-06-15 00:51:55 +00:00
Evan Cheng
871b71247b
Aliased flag options should be directed to stdout, not stderr to be consistent. Patch by Julien Lerouge.
...
llvm-svn: 132931
2011-06-13 20:45:54 +00:00
Andrew Trick
3d4e64b082
Branch profiling: floating-point avoidance.
...
Patch by: Jakub Staszak!
Introduces BranchProbability. Changes unsigned to uint32_t all over and
uint64_t only when overflow is expected.
llvm-svn: 132867
2011-06-11 01:05:22 +00:00
Chris Lattner
889c40e2e1
add another sandybridge alias.
...
llvm-svn: 132772
2011-06-09 06:38:17 +00:00
Zhongxing Xu
3e4abe5470
singed int causes signed extension, which contradicts the intention to pick up
...
integers with high 32 bits being zero.
llvm-svn: 132538
2011-06-03 08:29:51 +00:00
Joerg Sonnenberger
af5f23ee07
Add new -d option to tblgen. It writes a make(1)-style dependency file.
...
llvm-svn: 132395
2011-06-01 13:10:15 +00:00
John McCall
be6d0c0aea
...this is not a good commit day for me.
...
llvm-svn: 132294
2011-05-29 19:44:55 +00:00
John McCall
085d891d80
On Darwin ARM, set the UNWIND_RESUME libcall to _Unwind_SjLj_Resume.
...
This is important for the correct lowering of unwind instructions
(which doesn't matter at all) and llvm.eh.resume calls (which does).
llvm-svn: 132291
2011-05-29 19:39:04 +00:00
Chris Lattner
9f1d2ded13
fix a bug for hosts without round, PR8893.
...
llvm-svn: 131842
2011-05-22 06:03:53 +00:00
Chris Lattner
6078926e26
random comment cleanups.
...
llvm-svn: 131829
2011-05-22 00:50:53 +00:00
Andrew Trick
d5d0764b3b
Have Program::Wait return -2 for crashed and timeouts instead of embedding
...
info in the error message. Per Dan's request.
llvm-svn: 131780
2011-05-21 00:56:46 +00:00
Benjamin Kramer
0bf26746d9
Rename the "sandybridge" subtarget to "corei7-avx", for GCC compatibility.
...
llvm-svn: 131730
2011-05-20 15:11:26 +00:00
Rafael Espindola
f1bda7c90c
Revert my previous patch. The cmake build had already been fixed.
...
llvm-svn: 131606
2011-05-19 00:02:45 +00:00
Rafael Espindola
efbdd80d77
Fix the cmake build.
...
llvm-svn: 131602
2011-05-18 23:56:40 +00:00
Eli Friedman
d1b0f0f1b8
Shuffle StandardPasses.cpp into VMCore; add it to CMake.
...
llvm-svn: 131600
2011-05-18 23:51:11 +00:00
Eli Friedman
fadb03d6cc
Third pass at allowing plugins to modify default passes. This time with a tweak so that we don't depend on an uninitialized argument.
...
llvm-svn: 131581
2011-05-18 21:40:04 +00:00
Eli Friedman
65816ac54d
Revert r131556; it's breaking buildbots/clang tests.
...
llvm-svn: 131567
2011-05-18 20:39:27 +00:00
David Chisnall
13c90786e1
Second pass at allowing plugins to modify default passes. This time without bonus inter-library dependencies.
...
llvm-svn: 131556
2011-05-18 19:00:41 +00:00
Rafael Espindola
0693182265
Don't include information about the build into the information returned by
...
getHostTriple. This fixes a 32 bit clang running on a 64 bit ubuntu.
llvm-svn: 131463
2011-05-17 15:26:34 +00:00
Devang Patel
12419aee7a
Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
...
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131244
2011-05-12 21:29:42 +00:00
Devang Patel
2409e7843b
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension.
...
llvm-svn: 131238
2011-05-12 19:06:16 +00:00
Andrew Trick
69005e5953
Typo and missing checkin from r131186.
...
llvm-svn: 131187
2011-05-11 16:44:08 +00:00
Andrew Trick
55aeb55aa3
Bugpoint support for miscompilations that result in a crash.
...
This change allows bugpoint to pinpoint the "opt" pass and bitcode
segment responsible for a crash caused by miscompilation. At least it
works well for me now, without having to create any custom execution
wrappers.
llvm-svn: 131186
2011-05-11 16:31:24 +00:00
Nick Lewycky
e75ffa1b78
In option typo correction, consider -foo=VALUE flags as two distinct parts. The
...
comments claimed it did this, but the LHS value was actually an unused variable.
The new system considers only the '-foo' part when comparing it for typos
against flags that have values, but still look at the whole string for flags
that don't. That way, we'll still correct '-inst=combine' to '-instcombine'.
llvm-svn: 130685
2011-05-02 05:24:47 +00:00
NAKAMURA Takumi
4471f82e91
Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries.
...
autoconf: Add checking ELM_Callback decl for mingw32 and mingw-w64.
cmake/config-ix.cmake: Add checking ELM_Callback decl for win32.
llvm-svn: 130657
2011-05-01 13:29:49 +00:00
Douglas Gregor
0e50682f26
Include <pthread.h> before we use pthread_self/pthread_kill
...
llvm-svn: 130510
2011-04-29 16:12:17 +00:00
Ted Kremenek
e203bbb47e
Add MemoryBuffer::getBufferKind() to report whether a memory buffer uses malloc'ed or mmap'ed memory. This is for performance analysis.
...
llvm-svn: 130432
2011-04-28 20:34:18 +00:00
Lenny Maiorani
367342e209
Remove bounded StringRef::compare() since nothing but Clang SA was using it and it is just as easy to use StringRef::substr() preceding StringRef::compare() to achieve the same thing.
...
llvm-svn: 130430
2011-04-28 20:20:12 +00:00
Chris Lattner
63e9190f71
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
...
patch by Johannes Schaub!
llvm-svn: 130151
2011-04-25 20:58:50 +00:00
Jay Foad
72e705ed94
Like the coding standards say, do not use "using namespace std".
...
llvm-svn: 130054
2011-04-23 09:06:00 +00:00
Eric Christopher
3509d2dc95
Add support for 64-bit object files to Path.
...
llvm-svn: 129975
2011-04-22 03:50:19 +00:00
Devang Patel
6d1e4e9646
Add DW_OP_bit_piece.
...
llvm-svn: 129945
2011-04-21 22:26:13 +00:00
Daniel Dunbar
8991d611fd
sys/Host: Change getHostTriple() to return the full Darwin version on OS X.
...
llvm-svn: 129852
2011-04-20 15:44:33 +00:00
Justin Holewinski
7d8895e767
PTX: Add intrinsics to list of built-in intrinsics, which allows them to be
...
used by Clang. To help Clang integration, the PTX target has been split
into two targets: ptx32 and ptx64, depending on the desired pointer size.
- Add GCCBuiltin class to all intrinsics
- Split PTX target into ptx32 and ptx64
llvm-svn: 129851
2011-04-20 15:37:17 +00:00
Daniel Dunbar
924699845a
ADT/Triple: Drop support for -osx style triples, we are going with -macosx
...
instead.
llvm-svn: 129836
2011-04-19 23:55:20 +00:00
Daniel Dunbar
0854f347d2
ADT/Triple: Add support for Triple::MacOSX per feedback from Chris, will remove
...
Triple::OSX once Clang has moved.
llvm-svn: 129833
2011-04-19 23:34:12 +00:00
Daniel Dunbar
163a0966a9
ADT/Triple: Add isOSDarwin() and isOSWindows() helper functions.
...
llvm-svn: 129815
2011-04-19 21:12:05 +00:00
Daniel Dunbar
3c0fbce10b
ADT/Triple: Fix Triple::getArchNameForAssembler to support OSX and iOS
...
enumeration values.
llvm-svn: 129814
2011-04-19 21:07:03 +00:00
Daniel Dunbar
99f904c72d
ADT/Triple: Generalize and simplify getDarwinNumber to just be getOSVersion.
...
llvm-svn: 129799
2011-04-19 20:24:34 +00:00
Daniel Dunbar
d74bac70c4
ADT/Triple: Add support for more explicit "osx" and "ios" OS names.
...
llvm-svn: 129798
2011-04-19 20:19:27 +00:00
Ted Kremenek
28af26d878
Add BumpPtrAllocator::getTotalMemory() to allow clients to query how much memory a BumpPtrAllocator allocated.
...
llvm-svn: 129727
2011-04-18 22:44:46 +00:00
Devang Patel
514b4006c2
Introduce support to encode Objective-C property information in debugging information generated for an interface.
...
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Lenny Maiorani
fad9d95722
Implements StringRef::compare with bounds. It is behaves similarly to strncmp(). Unit tests also included.
...
llvm-svn: 129582
2011-04-15 17:56:50 +00:00
Chris Lattner
0ab5e2cded
Fix a ton of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Chris Lattner
0687ec7051
regexes are allowed to match empty things, e.g. {{.*}} in filecheck.
...
llvm-svn: 129193
2011-04-09 06:29:24 +00:00
Frits van Bommel
87e3367d32
Fix a few instances of "warning: extra ';' outside of a function [-pedantic]".
...
llvm-svn: 129002
2011-04-06 12:29:56 +00:00
Roman Divacky
92d313a021
Add support for detection of Intel SandyBridge.
...
llvm-svn: 128920
2011-04-05 20:25:36 +00:00
Andrew Trick
12004013ef
Added *hidden* flags -print-options and -print-all-options so
...
developers can see if their driver changed any cl::Option's. The
current implementation isn't perfect but handles most kinds of
options. This is nice to have when decomposing the stages of
compilation and moving between different drivers. It's also a good
sanity check when comparing results produced by different command line
invocations that are expected to produce the comparable results.
Note: This is not an attempt to prolong the life of cl::Option. On the
contrary, it's a placeholder for a feature that must exist when
cl::Option is replaced by a more appropriate framework. A new
framework needs: a central option registry, dynamic name lookup,
non-global containers of option values (e.g. per-module,
per-function), *and* the ability to print options values and their defaults at
any point during compilation.
llvm-svn: 128910
2011-04-05 18:54:36 +00:00
Eric Christopher
ee066fc4f3
Assorted bugfixes in object file handling:
...
- Adds support for sniffing PE/COFF files on win32 (.exe and .dll)
which are COFF files that have an MS-DOS compatibility stub on
the front of them.
- Fixes a bug in the COFFObjectFile's support for the Microsoft COFF
extension for long symbol names, wherein it was attempting to parse
the leading '/' in an extended symbol name reference as part of the
integer offset.
- Fixes bugs in COFFObjectFile and ELFObjectFile wherein section
and symbol iterators were being returned with uninitialized bytes;
the type DataRefImpl is a union between 2 32-bit words (d.a and d.b)
and a single intptr_t word (p). Only p was being initialized, so in
32-bit builds the result would be iterators with random upper 32-bit
words in their DataRefImpls. This caused random failures when
seeking around in object files.
Patch by Graydon Hoare!
llvm-svn: 128799
2011-04-03 22:53:19 +00:00
Jakob Stoklund Olesen
846f95080c
Reset StringMap's NumTombstones on clears and rehashes.
...
StringMap was not properly updating NumTombstones after a clear or rehash.
This was not fatal until now because the table was growing faster than
NumTombstones could, but with the previous change of preventing infinite
growth of the table the invariant (NumItems + NumTombstones <= NumBuckets)
stopped being observed, causing infinite loops in certain situations.
Patch by José Fonseca!
llvm-svn: 128567
2011-03-30 18:32:51 +00:00
Jakob Stoklund Olesen
bdc1b01217
Prevent infinite growth of SmallPtrSet instances.
...
Rehash but don't grow when full of tombstones.
Patch by José Fonseca!
llvm-svn: 128566
2011-03-30 18:32:48 +00:00
Jakob Stoklund Olesen
f587f4419c
Prevent infinite growth of SmallMap instances.
...
Rehash but don't grow when full of tombstones.
Patch by José Fonseca!
llvm-svn: 128565
2011-03-30 18:32:44 +00:00
Benjamin Kramer
af0ed953c5
Avoid turning a floating point division with a constant power of two into a denormal multiplication.
...
Some platforms may treat denormals as zero, on other platforms multiplication
with a subnormal is slower than dividing by a normal.
llvm-svn: 128555
2011-03-30 17:02:54 +00:00
Benjamin Kramer
03fd672609
Add APFloat::getExactInverse.
...
The idea is, that if an ieee 754 float is divided by a power of two, we can
turn the division into a cheaper multiplication. This function sees if we can
get an exact multiplicative inverse for a divisor and returns it if possible.
This is the hard part of PR9587.
I tested many inputs against llvm-gcc's frotend implementation of this
optimization and didn't find any difference. However, floating point is the
land of weird edge cases, so any review would be appreciated.
llvm-svn: 128545
2011-03-30 15:42:27 +00:00
Frits van Bommel
0bb2ad2cf7
Constant folding support for calls to umul.with.overflow(), basically identical to the smul.with.overflow() code.
...
llvm-svn: 128379
2011-03-27 14:26:13 +00:00
Andrew Trick
a4ec5b2c19
revert r128199 until it can be made to work with Frontend/dependency-gen.c.
...
llvm-svn: 128218
2011-03-24 16:43:37 +00:00
Michael J. Spencer
e42162ad59
Remove all uses of PATH_MAX and MAXPATHLEN from PathV2.
...
llvm-svn: 128199
2011-03-24 05:23:40 +00:00
Rafael Espindola
2475adce37
We don't need a null terminator for the output file.
...
llvm-svn: 128098
2011-03-22 19:20:47 +00:00
Ted Kremenek
857e535520
Properly initialize all fields in CrashReporterCleanupContext. This caused the buildbot failure earlier.
...
llvm-svn: 128071
2011-03-22 04:33:13 +00:00
Ted Kremenek
9931652775
Temporarily stop recovering resources in CrashRecoveryContext while I investigate further why this works on my machine and not on others.
...
llvm-svn: 128065
2011-03-22 02:06:32 +00:00
Ted Kremenek
ab1a242ead
Provide a means for CrashRecovery clients to determine if code is currently running while crash recovery cleanups are being processed.
...
llvm-svn: 128008
2011-03-21 18:38:03 +00:00
Benjamin Kramer
dce83c522c
Avoid initializing posix_spawn_file_actions_t if not used.
...
- glibc falls back to fork+exec if a file actions object is present.
- On BSDs this saves a malloc.
llvm-svn: 127969
2011-03-20 15:52:24 +00:00
Ted Kremenek
32aea2e401
Tweak CrashRecoveryContextCleanup to provide an easy method for clients to select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant.
...
llvm-svn: 127929
2011-03-19 00:59:37 +00:00
Ted Kremenek
794a0714ad
Tweak CrashRecoveryContext::GetCurrent() to return quickly if 'gCrsahRecoveryEnabled' is false. This avoids us needing to go to thread local storage for
...
the performance sensitive case where we are compiling code.
llvm-svn: 127928
2011-03-19 00:59:33 +00:00
Jim Grosbach
806d507b0f
setExecutable() should default to success if there's nothing custom for it.
...
llvm-svn: 127891
2011-03-18 18:51:03 +00:00
NAKAMURA Takumi
bac0d769cd
raw_ostream: [PR6745] Tweak formatting (double)%e for Windows hosts.
...
On MSVCRT and compatible, output of %e is incompatible to Posix by default. Number of exponent digits should be at least 2. "%+03d"
FIXME: Implement our formatter in future!
llvm-svn: 127872
2011-03-18 09:30:10 +00:00
Bill Wendling
a50db6544f
Initialize the only-used-with-PPC-double-double parts of the APFloat class. This
...
makes valgrind stop complaining about uninitialized variables being read when it
accesses a bitfield (category) that shares its bits with these variables.
llvm-svn: 127871
2011-03-18 09:09:44 +00:00
Rafael Espindola
7c9cc46165
Check RequiresNullTerminator first, or we might read from an invalid address.
...
llvm-svn: 127853
2011-03-18 02:55:51 +00:00
Ted Kremenek
c44d3cf581
Augment CrashRecoveryContext to have registered "cleanup" objects that can be used to release resources during a crash.
...
llvm-svn: 127849
2011-03-18 02:05:11 +00:00
Rafael Espindola
ab959a2e68
Use RequiresNullTerminator to create buffers without a null terminator
...
instead of copying.
llvm-svn: 127835
2011-03-17 22:18:42 +00:00
Benjamin Kramer
09a51bab5d
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number.
...
This will come in handy soon.
llvm-svn: 127828
2011-03-17 20:39:06 +00:00
NAKAMURA Takumi
76e68ea916
lib/Support/raw_ostream.cpp: On mingw, report_fatal_error() should not be called at dtor context.
...
report_fatal_error() invokes exit(). We know report_fatal_error() might not write messages to stderr when any errors were detected on FD == 2.
llvm-svn: 127726
2011-03-16 02:53:39 +00:00
NAKAMURA Takumi
a3d4749e24
Windows/PathV2.inc: [PR8520] Recognize "NUL" as special (character) file.
...
FIXME: It is a temporal hack. We should detect as many "special file name" as possible.
llvm-svn: 127724
2011-03-16 02:53:32 +00:00
NAKAMURA Takumi
aaa9b4f824
Windows/Path.inc: [PR6270] PathV1::makeUnique(): Give arbitrary initial seed for workaround.
...
FIXME: We should use sys::fs::unique_file() in future.
llvm-svn: 127723
2011-03-16 02:53:24 +00:00
John Thompson
d0332e4efe
Add scei vendor
...
llvm-svn: 127705
2011-03-15 21:51:56 +00:00
Rafael Espindola
cbe6a1ae86
Don't compute the file size if we don't need to.
...
llvm-svn: 127426
2011-03-10 20:54:07 +00:00
Rafael Espindola
258a605fce
Add r127409 back now that the windows file was updated.
...
llvm-svn: 127417
2011-03-10 18:33:29 +00:00
Rafael Espindola
510b00c67c
Try to fix the windows build.
...
llvm-svn: 127416
2011-03-10 18:30:48 +00:00
Jakob Stoklund Olesen
e413d9d341
Revert r127409 which broke all the Windows bots.
...
llvm-svn: 127413
2011-03-10 18:01:43 +00:00
Rafael Espindola
ea5a137e55
Add support for MemoryBuffers that are not null terminated and add
...
support for creating buffers that cover only a part of a file.
llvm-svn: 127409
2011-03-10 16:10:30 +00:00
NAKAMURA Takumi
5918457b5b
lib/Support/regcomp.c: Fix cygwin warning.
...
llvm-svn: 127241
2011-03-08 12:25:29 +00:00
NAKAMURA Takumi
3e76b502a4
Windows/PathV2.inc: Eliminate redundant condition. DWORD is unsigned.
...
llvm-svn: 127140
2011-03-07 00:12:53 +00:00
Benjamin Kramer
dfb0ad30a8
raw_ostream: while it is generally desirable to do larger writes, it can lead to
...
inefficient file system buffering if the writes are not a multiple of the desired
buffer size. Avoid this by limiting the large write to a multiple of the buffer
size and copying the remainder into the buffer.
Thanks to Dan for pointing this out.
llvm-svn: 127026
2011-03-04 19:49:30 +00:00
Benjamin Kramer
acf0842088
raw_ostream: If writing a string that is larger than the buffer, write it directly instead of doing many buffer-sized writes.
...
This caps the number of write(2) calls per string to a maximum of 2.
llvm-svn: 127010
2011-03-04 18:18:16 +00:00
Daniel Dunbar
06dfe8e9c5
Support: Add llvm::AreStatisticsEnabled().
...
llvm-svn: 126558
2011-02-26 23:17:12 +00:00
Cameron Zwarich
8731d0cc83
The signed version of our "magic number" computation for the integer approximation
...
of a constant had a minor typo introduced when copying it from the book, which
caused it to favor negative approximations over positive approximations in many
cases. Positive approximations require fewer operations beyond the multiplication.
In the case of division by 3, we still generate code that is a single instruction
larger than GCC's code.
llvm-svn: 126097
2011-02-21 00:22:02 +00:00
Devang Patel
4192802280
Provide tag strings for llvm specific tags.
...
llvm-svn: 125986
2011-02-18 23:06:29 +00:00
Chris Lattner
c37910ea28
improve support for OpenBSD, patch by Amit Kulkarni!
...
llvm-svn: 125943
2011-02-18 17:04:56 +00:00
Argyrios Kyrtzidis
4f3f9c7ba9
Check the errorcode.
...
llvm-svn: 125804
2011-02-18 00:47:07 +00:00
Nadav Rotem
7cc6d12ad0
Enhance constant folding of bitcast operations on vectors of floats.
...
Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.
llvm-svn: 125776
2011-02-17 21:22:27 +00:00
NAKAMURA Takumi
4c14a5cc2c
Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.
...
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.
llvm-svn: 125747
2011-02-17 12:24:17 +00:00
Argyrios Kyrtzidis
a61736ff90
Implement a function from PathV2 whose definition is missing.
...
llvm-svn: 125574
2011-02-15 17:51:19 +00:00
Zhanyong Wan
606bb1a2dc
Adds llvm::sys::path::is_separator() to test whether a char is a path separator
...
on the host OS. Reviewed by dgregor.
llvm-svn: 125406
2011-02-11 21:24:40 +00:00
Douglas Gregor
56b2ffdaba
Rip out realpath() support. It's expensive, and often a bad idea, and
...
I have another way to achieve the same goal.
llvm-svn: 125239
2011-02-09 23:33:15 +00:00
Cameron Zwarich
f73f5ba21c
Attempt to fix the build after r125228.
...
llvm-svn: 125236
2011-02-09 23:02:14 +00:00
Douglas Gregor
529329e859
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?
llvm-svn: 125228
2011-02-09 22:11:23 +00:00
NAKAMURA Takumi
189111808e
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.
llvm-svn: 125172
2011-02-09 04:18:48 +00:00
NAKAMURA Takumi
aeb4c0d8fb
Windows/Windows.h: Redefine _WIN32_WINNT here. mingw-w64 tends to define it as 0x0502 in its headers.
...
llvm-svn: 125171
2011-02-09 04:18:30 +00:00
NAKAMURA Takumi
28242e8ff6
Windows/Program.inc: Eliminate the declaration of SetInformationJobObject(). It should be provided with _WIN32_WINNT>=0x0500.
...
llvm-svn: 125170
2011-02-09 04:18:21 +00:00
NAKAMURA Takumi
684ef5e7bd
Windows/DynamicLibrary.inc: ELM_Callback fix for mingw-w64.
...
llvm-svn: 125169
2011-02-09 04:18:12 +00:00
Rafael Espindola
56e41f7f0b
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.
llvm-svn: 125128
2011-02-08 22:40:47 +00:00
Anders Carlsson
630125ab27
Fix a clang warning.
...
llvm-svn: 124960
2011-02-05 18:19:35 +00:00
NAKAMURA Takumi
03a541f5c4
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.
llvm-svn: 124950
2011-02-05 15:11:53 +00:00
NAKAMURA Takumi
3e600a29d3
Windows/Program.inc: Quote arguments when dubious characters (used by cmd.exe or MSYS shell) are included to invoke CreateProcess(). Thanks to Danil Malyshev.
...
llvm-svn: 124945
2011-02-05 08:53:12 +00:00
NAKAMURA Takumi
5a3ff5b5a0
Make Win32's header file name lower for cross build on case-sensitive filesystem.
...
llvm-svn: 124864
2011-02-04 12:53:04 +00:00
Daniel Dunbar
4fed88704d
raw_fd_ostream: Add a SetUseAtomicWrites() method (uses writev).
...
llvm-svn: 124771
2011-02-03 03:32:32 +00:00
Duncan Sands
fdfdbd091d
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.
llvm-svn: 124720
2011-02-02 10:08:38 +00:00
Evan Cheng
d22a4a1fd6
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
llvm-svn: 124639
2011-02-01 01:14:13 +00:00
Daniel Dunbar
72d523beab
Support/CommandLine: Fix LookupNearestOption to also search extra option names.
...
llvm-svn: 124124
2011-01-24 17:27:17 +00:00
Ted Kremenek
3c4408ceb6
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.
llvm-svn: 124073
2011-01-23 17:05:06 +00:00
Renato Golin
83758d5cd7
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.
...
llvm-svn: 123990
2011-01-21 18:25:47 +00:00
Daniel Dunbar
f413213a48
Support/CommandLine: Add "Did you mean" print for mismatched operands.
...
llvm-svn: 123717
2011-01-18 01:59:24 +00:00
NAKAMURA Takumi
8a07451a6e
Windows/PathV2.inc: For CryptAcquireContext(), CRYPT_VERIFYCONTEXT may be specified for easy use.
...
llvm-svn: 123687
2011-01-17 22:41:34 +00:00
NAKAMURA Takumi
53f893af54
Windows/PathV2.inc: MoveFileEx() can behave like Posix's mv(1) to specify MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING.
...
llvm-svn: 123686
2011-01-17 22:41:25 +00:00
NAKAMURA Takumi
bb4ea1fef9
lib/Support/Windows/Signals.inc: "Showstopper" dialogs may be suppressed with SetErrorMode() on Windows 7.
...
llvm-svn: 123685
2011-01-17 22:41:15 +00:00
Michael J. Spencer
b74799090a
Support/raw_ostream: Fix uninitalized variable in raw_fd_ostream constructor.
...
llvm-svn: 123643
2011-01-17 15:53:12 +00:00
Michael J. Spencer
ec202ee69a
Fix rename.
...
llvm-svn: 123604
2011-01-16 22:18:41 +00:00
Michael J. Spencer
94b2ab3556
Support/PathV2: Add identify_magic.
...
llvm-svn: 123548
2011-01-15 20:39:36 +00:00
Michael J. Spencer
7887466adc
Support/PathV2: Implement has_magic in terms of get_magic.
...
llvm-svn: 123545
2011-01-15 18:52:41 +00:00
Michael J. Spencer
ee1699c362
Support/PathV2: Implement get_magic.
...
llvm-svn: 123544
2011-01-15 18:52:33 +00:00
Michael J. Spencer
d9960c69b5
Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.
...
llvm-svn: 123345
2011-01-12 23:55:06 +00:00
Michael J. Spencer
0d771edeee
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
...
llvm-svn: 123209
2011-01-11 01:21:55 +00:00
Michael J. Spencer
58df2e00b2
Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists.
...
llvm-svn: 123151
2011-01-10 02:34:23 +00:00
Abramo Bagnara
a41d7aebee
Fixed parsing of hex floats.
...
llvm-svn: 122963
2011-01-06 16:55:14 +00:00
Michael J. Spencer
61d6f739a8
Support/PathV2: Implement remove_all.
...
llvm-svn: 122884
2011-01-05 16:39:38 +00:00
Michael J. Spencer
98879d7641
Support/Windows/PathV2: Make directory iteration ignore . and ..
...
llvm-svn: 122883
2011-01-05 16:39:30 +00:00
Michael J. Spencer
153749b30b
Support/Windows/PathV2: Fix remove to handle both files and directories.
...
llvm-svn: 122882
2011-01-05 16:39:22 +00:00
Michael J. Spencer
f8dc1868e2
Support/PathV2: Implement directory_entry::status.
...
llvm-svn: 122881
2011-01-05 16:39:13 +00:00
Michael J. Spencer
52714863db
Support/PathV2: Implement directory iteration on POSIX.
...
llvm-svn: 122879
2011-01-05 16:38:57 +00:00
Benjamin Kramer
110442d8a0
Fix a signed/unsigned comparison warning.
...
llvm-svn: 122597
2010-12-28 13:05:13 +00:00
Michael J. Spencer
c581fe7e81
Support/Path: Deprecate Path::hasMagicNumber and replace all uses with fs::has_magic.
...
llvm-svn: 122589
2010-12-28 01:49:21 +00:00
Michael J. Spencer
848f46bb84
Support/PathV2: Implement has_magic.
...
llvm-svn: 122587
2010-12-28 01:49:01 +00:00
Michael J. Spencer
9e590024f6
Support/PathV1: Deprecate GetRootDirectory.
...
llvm-svn: 122580
2010-12-27 03:21:41 +00:00
Michael J. Spencer
e13f1ead9b
Support/PathV1: Deprecate makeAbsolute and remove Unix impl because it annoys people.
...
llvm-svn: 122553
2010-12-25 20:10:11 +00:00
Jeffrey Yasskin
9b43f33620
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.
llvm-svn: 122458
2010-12-23 00:58:24 +00:00
Jakob Stoklund Olesen
4c278f82c8
Use IntEqClasses to compute connected components of live intervals.
...
llvm-svn: 122296
2010-12-21 00:48:17 +00:00
Jakob Stoklund Olesen
baee655c5e
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.
llvm-svn: 122293
2010-12-21 00:04:46 +00:00
Michael J. Spencer
6d4b7e7e83
Support/PathV2: Add missing has_relative_path impl.
...
llvm-svn: 122243
2010-12-20 13:30:28 +00:00
Nick Lewycky
0de20af7ba
Add missing standard headers. Patch by Joerg Sonnenberger!
...
llvm-svn: 122193
2010-12-19 20:43:38 +00:00
Michael J. Spencer
762a55b19f
Support/PathV1: Deprecate getLast.
...
llvm-svn: 122116
2010-12-18 00:19:10 +00:00
Benjamin Kramer
ffa42ced39
PathV2: Use StringRef::substr to simplify substring creation.
...
llvm-svn: 122085
2010-12-17 20:27:37 +00:00
Benjamin Kramer
cb520cd8cb
Missed some StringRefRefs.
...
llvm-svn: 122077
2010-12-17 18:59:09 +00:00
Benjamin Kramer
292b44baea
Pass StringRefs by value, for consistency.
...
llvm-svn: 122074
2010-12-17 18:19:06 +00:00
Jim Grosbach
f638b26f17
Trailing whitespace and 80 column fixups.
...
llvm-svn: 122026
2010-12-17 02:10:59 +00:00
Michael J. Spencer
39a0ffc394
MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.
...
llvm-svn: 121958
2010-12-16 03:29:14 +00:00
NAKAMURA Takumi
2e071faed8
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.
llvm-svn: 121942
2010-12-16 01:48:15 +00:00
Michael J. Spencer
ae7de7e2f9
Support/Windows/PathV2: Fix header comment.
...
llvm-svn: 121383
2010-12-09 17:37:42 +00:00
Michael J. Spencer
db97c0b520
Fix whitespace.
...
llvm-svn: 121382
2010-12-09 17:37:32 +00:00
Michael J. Spencer
751e9aafa9
Support: Move c_str from SmallVector back to SmallString and add a free standing
...
templated c_str in Windows.h to replace it.
llvm-svn: 121381
2010-12-09 17:37:18 +00:00
Michael J. Spencer
730f51ad96
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.
llvm-svn: 121380
2010-12-09 17:37:02 +00:00
Michael J. Spencer
7b6fef82d4
Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec. And fix clients.
...
llvm-svn: 121379
2010-12-09 17:36:48 +00:00
Michael J. Spencer
8b5defbd5d
Support: Remove Alarm. It is unused (via local grep and google code search).
...
llvm-svn: 121160
2010-12-07 18:41:59 +00:00
Michael J. Spencer
a68282caa8
Support/PathV2: Remove const from bool return types.
...
llvm-svn: 121157
2010-12-07 18:12:07 +00:00
Michael J. Spencer
f616b218c8
Support/PathV2: Change most functions in the path namespace to return their work
...
via their return value instead of an out parameter.
llvm-svn: 121149
2010-12-07 17:04:04 +00:00
Daniel Dunbar
82ebae7631
build: Go back to dropping __eprintf reference when building with Clang, see
...
comment.
llvm-svn: 121146
2010-12-07 16:29:44 +00:00
Jay Foad
583abbc4df
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.
llvm-svn: 121120
2010-12-07 08:25:19 +00:00
Owen Anderson
10e1b56e2c
Don't leak the mutex when loading dynamic libraries.
...
llvm-svn: 121119
2010-12-07 07:56:20 +00:00
Michael J. Spencer
bfea3c739d
Support/PathV2: Cleanup separator handling.
...
llvm-svn: 121110
2010-12-07 03:57:48 +00:00
Michael J. Spencer
1e090f0b8f
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.
llvm-svn: 121109
2010-12-07 03:57:37 +00:00
Michael J. Spencer
92903a3339
Support/PathV2: Move make_absolute from path to fs.
...
llvm-svn: 121108
2010-12-07 03:57:17 +00:00
Michael J. Spencer
f27da4e578
Support/Unix/PathV2: Return the real error from realpath instead of any error
...
that close or unlink set.
llvm-svn: 121094
2010-12-07 01:23:39 +00:00
Michael J. Spencer
e5755beb47
Support/Unix/PathV2: Use 0770 instead of 0700 when creating a directory. Also use
...
the standard macros instead of octal notation.
llvm-svn: 121093
2010-12-07 01:23:29 +00:00
Michael J. Spencer
98c7a114de
Support/PathV2: Use SmallVector::clear instead of set_size.
...
llvm-svn: 121092
2010-12-07 01:23:19 +00:00
Michael J. Spencer
5529c57cfe
Support/PathV2: Clarify and correct documentation.
...
llvm-svn: 121091
2010-12-07 01:23:08 +00:00
Michael J. Spencer
20daa28344
Support/PathV2: Move current_path from path to fs and fix the Unix implementation.
...
Unix bug spotted by Dan Gohman.
llvm-svn: 121090
2010-12-07 01:22:31 +00:00
Michael J. Spencer
0d025b6b42
Support/Windows: Make MinGW happy.
...
llvm-svn: 120991
2010-12-06 06:02:07 +00:00
Michael J. Spencer
7ecd94cc0b
Support/FileSystem: Add directory_iterator implementation.
...
llvm-svn: 120989
2010-12-06 04:28:42 +00:00
Michael J. Spencer
95e4ac16a5
Support/PathV2: Fix append to not add a slash to empty or root paths.
...
llvm-svn: 120988
2010-12-06 04:28:23 +00:00
Michael J. Spencer
39c4621f42
Support/Windows: Add ScopedHandle and move some clients over to it.
...
llvm-svn: 120987
2010-12-06 04:28:13 +00:00
Bill Wendling
3336f748a5
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.
llvm-svn: 120916
2010-12-04 20:20:34 +00:00
Michael J. Spencer
66a1f86f7a
Support/PathV2: Remove redundant calls to make_error_code.
...
llvm-svn: 120913
2010-12-04 18:45:32 +00:00
Benjamin Kramer
f1a04edb42
APInt: microoptimize a few methods.
...
llvm-svn: 120912
2010-12-04 18:05:36 +00:00
Michael J. Spencer
db5576a185
Support/FileSystem: Add status implementation.
...
llvm-svn: 120870
2010-12-04 00:32:40 +00:00
Michael J. Spencer
962fbc42b5
Support/Windows/FileSystem: Fix MinGW warnings.
...
llvm-svn: 120868
2010-12-04 00:32:14 +00:00
Michael J. Spencer
818ab4aad4
Support/FileSystem: Add file_size implementation.
...
llvm-svn: 120867
2010-12-04 00:31:48 +00:00
Jakob Stoklund Olesen
e7ed7b6cfd
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.
llvm-svn: 120829
2010-12-03 19:02:00 +00:00
Michael J. Spencer
376d38753d
Support/FileSystem: Add equivalent implementation.
...
llvm-svn: 120827
2010-12-03 18:49:13 +00:00
Michael J. Spencer
ca242f2c36
Support/FileSystem: Fix MinGW build. It doesn't have _chsize_s.
...
llvm-svn: 120826
2010-12-03 18:48:56 +00:00
Michael J. Spencer
521c321d7c
And I really hate line endings.
...
llvm-svn: 120821
2010-12-03 18:04:11 +00:00
Michael J. Spencer
6025247132
Support/Windows/FileSystem: Fix MinGW build.
...
llvm-svn: 120820
2010-12-03 18:03:28 +00:00
Michael J. Spencer
c20a0325f3
Support/FileSystem: Add resize_file implementation.
...
llvm-svn: 120819
2010-12-03 17:54:07 +00:00
Michael J. Spencer
409f556a2f
Support/FileSystem: Add rename implementation.
...
llvm-svn: 120818
2010-12-03 17:53:55 +00:00
Michael J. Spencer
6e74e11c85
Support/FileSystem: Add remove implementation.
...
llvm-svn: 120817
2010-12-03 17:53:43 +00:00
Michael J. Spencer
772caff532
Fix line endings.
...
llvm-svn: 120816
2010-12-03 17:53:23 +00:00
Eric Christopher
ca4667319a
Apparently OS X 10.4 doesn't have __crashreporter_info__.
...
Try to fix building on the wayback machine.
llvm-svn: 120801
2010-12-03 07:45:22 +00:00
Michael J. Spencer
7ee6d5d6a1
Support/FileSystem: Add create_symlink implementation.
...
llvm-svn: 120800
2010-12-03 07:41:25 +00:00
Michael J. Spencer
e0c4560b50
Support/FileSystem: Add create_hard_link implementation.
...
llvm-svn: 120792
2010-12-03 05:58:41 +00:00
Michael J. Spencer
73e60d029c
Support/ADT/Twine: Make toNullTerminatedStringRef not rely on UB :(.
...
llvm-svn: 120791
2010-12-03 05:42:25 +00:00
Michael J. Spencer
31e310cda0
Support/FileSystem: Add create_director{y,ies} implementations.
...
llvm-svn: 120790
2010-12-03 05:42:11 +00:00
Michael J. Spencer
a41772aa0f
Support/Windows/FileSystem: Remove unneeded toNullTerminatedStringRef.
...
llvm-svn: 120777
2010-12-03 01:21:38 +00:00
Michael J. Spencer
4571040ea1
Support/FileSystem: Add unique_file and exists implementations.
...
llvm-svn: 120776
2010-12-03 01:21:28 +00:00
Michael J. Spencer
795adf5061
Support/FileSystem: Fix copy_file implementation to use toNullTerminatedStringRef
...
instead of toStringRef. The file system APIs need c strings.
llvm-svn: 120601
2010-12-01 20:37:42 +00:00
Michael J. Spencer
f2cc8287ed
Support/ADT/Twine: Add toNullTerminatedStringRef.
...
llvm-svn: 120600
2010-12-01 20:37:30 +00:00
Michael J. Spencer
9fc1d9dcc3
Support/FileSystem: Add copy_file implementation. Not tests yet because the
...
file creation APIs aren't implemented.
llvm-svn: 120593
2010-12-01 19:32:01 +00:00
Jay Foad
25a5e4ca1f
PR5207: Rename overloaded APInt methods set(), clear(), flip() to
...
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
2010-12-01 08:53:58 +00:00
Michael J. Spencer
a72df5fae8
Support/PathV2: Add is_{absolute,relative} implementation.
...
llvm-svn: 120560
2010-12-01 06:21:53 +00:00
Michael J. Spencer
112a769379
Support/PathV2: Add has_{root_path,root_name,root_directory,parent_path,filename,stem,extension} implementation.
...
llvm-svn: 120559
2010-12-01 06:03:50 +00:00
Michael J. Spencer
87106c59ed
Support/PathV2: Add extension implementation.
...
llvm-svn: 120550
2010-12-01 03:37:41 +00:00
Michael J. Spencer
956955ed8b
Support/PathV2: Add stem implementation.
...
llvm-svn: 120547
2010-12-01 03:18:33 +00:00
Michael J. Spencer
142692006b
Support/PathV2: Add filename implementation.
...
llvm-svn: 120546
2010-12-01 03:18:17 +00:00
Michael J. Spencer
8002500ee1
Support/PathV2: Add native implementation.
...
llvm-svn: 120539
2010-12-01 02:48:27 +00:00
Dan Gohman
e41b1463f9
Delete Path::appendSuffix's return value; it wasn't used anywhere, which
...
is fine since isn't really necessary to check isValid there anyway.
llvm-svn: 120538
2010-12-01 02:46:41 +00:00
Michael J. Spencer
fb3a95d8e2
Support/PathV2: Add replace_extension implementation.
...
llvm-svn: 120514
2010-12-01 00:52:55 +00:00
Michael J. Spencer
9c594095a6
Support/PathV2: Add remove_filename implementation.
...
llvm-svn: 120513
2010-12-01 00:52:28 +00:00
Michael J. Spencer
545cbdf063
Support/PathV2: Implement reverse iteration and parent_path.
...
llvm-svn: 120496
2010-11-30 23:28:07 +00:00
Michael J. Spencer
e1d3603dc6
Support/ADT/StringRef: Add find_last_of.
...
llvm-svn: 120495
2010-11-30 23:27:35 +00:00
Jay Foad
15084f085d
PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.
...
llvm-svn: 120413
2010-11-30 09:02:01 +00:00
Michael J. Spencer
ebad2f9d36
Support: Add PathV2 implementation.
...
llvm-svn: 120329
2010-11-29 22:28:51 +00:00
Charles Davis
54c9eb6fff
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'
llvm-svn: 120314
2010-11-29 19:44:50 +00:00
Michael J. Spencer
4d2e1501ad
Missed a spot.
...
llvm-svn: 120301
2010-11-29 18:29:55 +00:00
Michael J. Spencer
447762da85
Merge System into Support.
...
llvm-svn: 120298
2010-11-29 18:16:10 +00:00
Jay Foad
3447fb01c0
PR5207: change APInt::doubleToBits() and APInt::floatToBits() to be
...
static methods that return a new APInt.
llvm-svn: 120261
2010-11-28 21:04:48 +00:00
Benjamin Kramer
f2d08136bf
Remove PIC16 remnants.
...
llvm-svn: 120223
2010-11-27 18:20:30 +00:00
Daniel Dunbar
65dc891942
raw_ostream::write_escaped: Add a UseHexEscapes argument.
...
llvm-svn: 120200
2010-11-27 07:59:50 +00:00
Michael J. Spencer
f13f442b1a
Fix Whitespace.
...
llvm-svn: 120166
2010-11-26 04:16:08 +00:00
Jakob Stoklund Olesen
a12095d26d
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.)
llvm-svn: 120165
2010-11-26 01:39:40 +00:00
Chris Lattner
6bf4e6d8b2
add a MemoryBuffer::getOpenFile method, which turns an open
...
file descriptor into a MemoryBuffer (and closes the FD).
llvm-svn: 120065
2010-11-23 22:20:27 +00:00
Chris Lattner
2dd97d2d60
Revert functionality doug added in r98575 that was never
...
documented and only used by some clang stuff I just removed.
llvm-svn: 120002
2010-11-23 06:09:51 +00:00
Rafael Espindola
cf14a382ec
Fix a use after free. Patch by Frits van Bommel.
...
llvm-svn: 119842
2010-11-19 21:14:29 +00:00
Jakob Stoklund Olesen
345945e355
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.
llvm-svn: 119787
2010-11-19 04:47:19 +00:00
Jakob Stoklund Olesen
09770251f6
Revert "Add ADT/IntervalMap.", GCC doesn't like it.
...
This reverts r119772.
llvm-svn: 119773
2010-11-19 01:21:03 +00:00
Jakob Stoklund Olesen
6d89171dcc
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.
llvm-svn: 119772
2010-11-19 01:14:40 +00:00
Dale Johannesen
461e704a2c
Aligned and unaligned copies of the same string
...
were not hashing to the same value. Analysis
and patch by Frits van Bommel!
llvm-svn: 119770
2010-11-19 00:48:58 +00:00
Dan Gohman
5ed61fe6a1
Bounds-check APInt's operator[].
...
llvm-svn: 119708
2010-11-18 17:14:56 +00:00
Chris Lattner
b0e36085c4
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.
llvm-svn: 119486
2010-11-17 08:13:01 +00:00
Daniel Dunbar
2ed3fe08e9
report_fatal_error: Simplify a possible ambiguity.
...
llvm-svn: 118972
2010-11-13 02:48:51 +00:00
Ted Kremenek
3e100cf582
Fix memory leak in StringRef::edit_distance(). 'Allocated' could be leaked on an early return.
...
llvm-svn: 118370
2010-11-07 06:09:02 +00:00
Daniel Dunbar
f4d90ba9f5
CrashRecoveryContext: Add RunSafelyOnThread helper function.
...
llvm-svn: 118272
2010-11-05 07:19:09 +00:00
Mikhail Glushenkov
b8211b80bc
Rename FindExecutable to PrependMainExecutablePath.
...
Makes it more clear that it is just a path manipulation function.
llvm-svn: 118174
2010-11-03 16:14:16 +00:00
Dan Gohman
0baea2aa1b
Print an error as one big string instead of breaking it up.
...
llvm-svn: 118130
2010-11-03 00:24:33 +00:00
Mikhail Glushenkov
4fb337560c
Revert r118057, this is better fixed in appendSuffix itself.
...
llvm-svn: 118088
2010-11-02 22:18:28 +00:00
Dan Gohman
35b2013bf8
Don't append a dot on platforms which don't use exe suffixes.
...
llvm-svn: 118057
2010-11-02 20:49:48 +00:00
Mikhail Glushenkov
82ee8dad50
FindExecutable: remove the executability check.
...
This makes the behaviour of FindExecutable more consistent across platforms, but
I'm not very happy with the name...
llvm-svn: 118049
2010-11-02 20:32:46 +00:00
Dan Gohman
e1db7f2005
Fix these error messages to be less confusing. These error
...
messages primarily indicate errors running the viewer, not
errors with the graph file itself.
llvm-svn: 117665
2010-10-29 17:03:40 +00:00
Mikhail Glushenkov
fdba1308ee
Remove an unnecessary check and an unnecessary temporary.
...
llvm-svn: 117583
2010-10-28 19:33:04 +00:00
Douglas Gregor
21afc3b012
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
...
llvm-svn: 116867
2010-10-19 22:13:48 +00:00
NAKAMURA Takumi
fe84f39adb
lib/Support/raw_ostream.cpp: Fix Cygwin's build.
...
setmode is provided by io.h on Cygwin.
llvm-svn: 116784
2010-10-19 01:21:55 +00:00
Daniel Dunbar
418e7046f7
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.
llvm-svn: 116755
2010-10-18 21:55:18 +00:00
Oscar Fuentes
889c1e7d80
Build with RTTI and exceptions disabled. Only in GCC for now.
...
llvm-svn: 116682
2010-10-17 02:26:16 +00:00
Francois Pichet
a3037c3abd
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.
...
llvm-svn: 116509
2010-10-14 20:30:58 +00:00
Chris Lattner
b9681ad442
fix a bug I introduced, no idea how this didn't repro right.
...
llvm-svn: 116462
2010-10-14 00:30:00 +00:00
Chris Lattner
698661c741
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.
llvm-svn: 116457
2010-10-14 00:05:07 +00:00
Chris Lattner
2c819b0358
constify these methods.
...
llvm-svn: 116455
2010-10-13 23:54:10 +00:00
Chris Lattner
79bdd88fa4
add a few operations for signed operations that also
...
return an overflow flag.
llvm-svn: 116452
2010-10-13 23:46:33 +00:00
John Thompson
f41f11c37e
Unbreak cmake build.
...
llvm-svn: 116003
2010-10-07 23:12:15 +00:00
Dan Gohman
0df7ea4c24
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
Dan Gohman
6547a50f49
After printing "Running 'Graphviz' program... " and running the
...
Graphviz program, print something with a newline, to avoid leaving
the line unfinished.
llvm-svn: 115620
2010-10-05 15:30:27 +00:00
Benjamin Kramer
90086abf2c
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)
llvm-svn: 115151
2010-09-30 16:18:28 +00:00
Oscar Fuentes
b4b12535e8
Removed a bunch of unnecessary target_link_libraries.
...
llvm-svn: 114999
2010-09-28 22:39:14 +00:00
Nick Lewycky
5154ee0bca
Make ConstantRange::makeICmpRegion handle all the edge cases properly. This
...
also fixes PR8250.
llvm-svn: 114972
2010-09-28 18:18:36 +00:00
Benjamin Kramer
c758311025
Push twines deeper into SourceMgr's error handling methods.
...
llvm-svn: 114847
2010-09-27 17:42:11 +00:00
Dan Gohman
ca8ebc8de2
Delete an unused declaration.
...
llvm-svn: 114839
2010-09-27 16:54:49 +00:00
Dan Gohman
a0da88931c
Add support for viewing graphviz graphs with xdot.py.
...
llvm-svn: 114832
2010-09-27 16:28:34 +00:00
Duncan Sands
84a3bddfc3
Add better support for environment portion of triple. Original patch by
...
Cameron Esfahani, tweaked to use array_lengthof.
llvm-svn: 114073
2010-09-16 08:25:48 +00:00
Duncan Sands
c8ba8d2085
Some versions of gcc still warn about "ignoring return value ... declared
...
with attribute warn_unused_result" here - suppress the warning harder.
llvm-svn: 114072
2010-09-16 08:20:49 +00:00
Nick Lewycky
4c82c6c6fe
Create PTX backend. Patch by Che-Liang Chiou!
...
llvm-svn: 113235
2010-09-07 18:14:24 +00:00
Nick Lewycky
ad48e01eef
Add completely hokey binary-and and binary-or operations to ConstantRange and
...
teach LazyValueInfo to use them.
llvm-svn: 113196
2010-09-07 05:39:02 +00:00
Nick Lewycky
a35462da3d
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.
llvm-svn: 113187
2010-09-06 23:52:49 +00:00
Dan Gohman
2adf2f2714
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.
llvm-svn: 112888
2010-09-02 22:32:38 +00:00
John McCall
7f55c258c6
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.
llvm-svn: 112870
2010-09-02 21:55:03 +00:00
NAKAMURA Takumi
4fa39acb53
llvm::FindExecutable(): Retrieve the name with suffix.exe, if available.
...
bugpoint uses it.
llvm-svn: 112803
2010-09-02 03:46:04 +00:00
Dan Gohman
a2233f2801
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.
llvm-svn: 112706
2010-09-01 14:20:41 +00:00
Duncan Sands
1b6744a376
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.
llvm-svn: 112470
2010-08-30 10:57:54 +00:00
Benjamin Kramer
9bf0380a54
StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
...
llvm-svn: 112189
2010-08-26 15:25:35 +00:00
Benjamin Kramer
b04d4af057
Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases.
...
llvm-svn: 112185
2010-08-26 14:21:08 +00:00
Dan Gohman
3d9ed28046
Use Bits.data() instead of &Bits[0].
...
llvm-svn: 111993
2010-08-24 23:16:53 +00:00
Benjamin Kramer
08fd2cf26a
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).
llvm-svn: 111817
2010-08-23 18:16:08 +00:00
Benjamin Kramer
d3eb989f37
Update CMake build.
...
llvm-svn: 111669
2010-08-20 18:56:46 +00:00
Dan Gohman
12cbe696e4
Delete SlowOperationInformer, which is no longer used.
...
llvm-svn: 111661
2010-08-20 18:07:37 +00:00
Dan Gohman
e9a469115c
Make outs() close its file when its stream is destructed, so that
...
pending output errors are detected.
llvm-svn: 111643
2010-08-20 16:44:56 +00:00
Dan Gohman
443f2d6426
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.
llvm-svn: 111642
2010-08-20 16:39:41 +00:00
Dan Gohman
38adfdd100
Move raw_ostream's Error flag into raw_fd_ostream, as that's the only
...
class which is using it.
llvm-svn: 111639
2010-08-20 16:34:20 +00:00
Dan Gohman
b87ad69350
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.
llvm-svn: 111595
2010-08-20 00:48:10 +00:00
Dale Johannesen
370c77c064
Do not assert when reading an exponent out of range.
...
llvm-svn: 111534
2010-08-19 17:58:35 +00:00
Dan Gohman
c825ceefb4
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.
llvm-svn: 111436
2010-08-18 22:26:19 +00:00
Dan Gohman
3490ff4002
Tidy.
...
llvm-svn: 111432
2010-08-18 22:04:43 +00:00
Dan Gohman
44790e7aa7
Revert r111321. This doesn't fix a problem.
...
llvm-svn: 111339
2010-08-18 01:34:52 +00:00
Chris Lattner
b91c903f46
stomp some more undefined behavior, PR7775.
...
llvm-svn: 111337
2010-08-18 00:33:47 +00:00
Chris Lattner
7aa9eb16fd
include config.h to get config params, hopefully unbreaking mingw builder.
...
llvm-svn: 111325
2010-08-17 23:22:10 +00:00
Chris Lattner
ce3b2c3f77
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.
llvm-svn: 111321
2010-08-17 23:11:56 +00:00
Chris Lattner
6217082dc3
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
llvm-svn: 111320
2010-08-17 23:03:53 +00:00
Daniel Dunbar
09b0c78918
CrashRecovery: Clear the current context on the first crash, to avoid re-entering it if the cleanup code crashes.
...
llvm-svn: 111309
2010-08-17 22:32:39 +00:00
Daniel Dunbar
b30266ed20
CrashRecovery: Add CrashRecoveryContext::GetCurrent(), so clients can find the active context from anywhere.
...
llvm-svn: 111308
2010-08-17 22:32:37 +00:00
Daniel Dunbar
ff329942cd
CrashRecovery: Make CrashRecoveryContext static methods thread safe.
...
llvm-svn: 111307
2010-08-17 22:32:34 +00:00
Jim Grosbach
a927736604
remove trailing whitespace
...
llvm-svn: 111254
2010-08-17 17:37:22 +00:00
Dan Gohman
9c9ce53b29
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.
llvm-svn: 111130
2010-08-16 15:30:39 +00:00
Dan Gohman
27c98e6303
Reverse the order of GetNodeProfile's arguments, for consistency
...
with FoldingSetTrait::Profile.
llvm-svn: 111127
2010-08-16 14:53:42 +00:00
Duncan Sands
501dff76ce
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.
llvm-svn: 110909
2010-08-12 11:31:39 +00:00
Nick Lewycky
d385c22cf3
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.
llvm-svn: 110861
2010-08-11 22:04:36 +00:00
Eric Christopher
87947f7729
Fix a couple of warnings.
...
llvm-svn: 110527
2010-08-08 00:00:34 +00:00
Benjamin Kramer
a7d0ccfe7f
Roll back my last two commits, valgrind complains.
...
llvm-svn: 110518
2010-08-07 13:27:41 +00:00
Benjamin Kramer
591a79fb2f
Kill rarely used std::sort.
...
llvm-svn: 110516
2010-08-07 12:37:00 +00:00
Owen Anderson
a5a3ff586f
Remove layering violation.
...
llvm-svn: 110505
2010-08-07 06:01:13 +00:00
Owen Anderson
1a9078b862
Add an inverse() method to ConstantRange.
...
llvm-svn: 110504
2010-08-07 05:47:46 +00:00
Owen Anderson
07d0637000
Add a convenience constructor.
...
llvm-svn: 110493
2010-08-07 00:42:06 +00:00
Chris Lattner
3db3bb0032
avoid undef behavior on minint, fixing PR7783.
...
llvm-svn: 110114
2010-08-03 16:41:24 +00:00
Daniel Dunbar
c90e82a7f1
Fix -Wmissing-field-initializers warnings.
...
llvm-svn: 109872
2010-07-30 17:49:04 +00:00
Daniel Dunbar
4a338e3dc4
CrashRecovery: Use ThreadLocal::erase() instead of set(0).
...
llvm-svn: 109752
2010-07-29 15:24:21 +00:00
Daniel Dunbar
9789f81eb4
Make sure to include config.h, to pickup LLVM_ON_WIN32.
...
llvm-svn: 109721
2010-07-29 01:52:04 +00:00
Daniel Dunbar
af77e22b36
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.
llvm-svn: 109717
2010-07-29 01:21:47 +00:00
Douglas Gregor
b7b5a7dff0
Unbreak my CMake build, say you'll compile for me again...
...
llvm-svn: 109598
2010-07-28 17:17:46 +00:00
Daniel Dunbar
19a3b37441
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.
llvm-svn: 109586
2010-07-28 15:40:20 +00:00
Benjamin Kramer
92d8998348
Don't pass StringRef by reference.
...
llvm-svn: 108366
2010-07-14 22:38:02 +00:00
Chris Lattner
ca97c92eb4
add some triple for minix, patch by Kees van Reeuwijk from PR7582
...
llvm-svn: 107785
2010-07-07 15:52:27 +00:00
Duncan Sands
7b90966d4a
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.
llvm-svn: 107285
2010-06-30 15:02:37 +00:00
Eric Christopher
7f103a2653
Fix thinko.
...
llvm-svn: 107042
2010-06-28 18:33:48 +00:00
Eric Christopher
51f2908328
Pull in the libCrashReporterClient.a information with a warning comment.
...
Remove library check and regenerate configure.
llvm-svn: 107028
2010-06-28 18:25:51 +00:00
Benjamin Kramer
58e6c2eded
Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer.
...
llvm-svn: 106856
2010-06-25 16:07:18 +00:00
Benjamin Kramer
948dd57945
Bring back the empty vector workaround I removed in r106839. Looks like MSVC needs it.
...
llvm-svn: 106841
2010-06-25 12:51:01 +00:00
Benjamin Kramer
ce2a92220f
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.
llvm-svn: 106839
2010-06-25 11:50:40 +00:00
Dan Gohman
b377e2828d
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.
llvm-svn: 106754
2010-06-24 16:25:50 +00:00
Eric Christopher
e9c1bb6cb1
Look for and use a different darwin crash reporter library.
...
llvm-svn: 106576
2010-06-22 21:01:04 +00:00
Dan Gohman
2ceaa71bdb
Add an explicit keyword.
...
llvm-svn: 106538
2010-06-22 13:53:29 +00:00
Benjamin Kramer
bf5c3d42ba
Use calloc instead of new/memset, it is more efficient when the set is very large.
...
llvm-svn: 106390
2010-06-19 17:00:31 +00:00
Dan Gohman
6e681a5fbe
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();
}
llvm-svn: 106285
2010-06-18 15:56:31 +00:00
Jason Molenda
dd6a4cabf6
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.
llvm-svn: 106197
2010-06-17 01:23:24 +00:00
Daniel Dunbar
e22295e8a6
fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
...
no tolerance is set.
llvm-svn: 106033
2010-06-15 19:20:30 +00:00
Daniel Dunbar
b645fa13a9
fpcmp: Fix a possible infinite loop when comparing something like:
...
1..19 ok
to
1..20 o k
(yes, the odd space is necessary).
llvm-svn: 106032
2010-06-15 19:20:28 +00:00
Daniel Dunbar
5729f51410
Use const_iterator where appropriate.
...
llvm-svn: 105620
2010-06-08 17:21:57 +00:00
Daniel Dunbar
f2363de7ad
DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related.
...
llvm-svn: 105613
2010-06-08 16:21:26 +00:00
Daniel Dunbar
579ba2ac42
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.
llvm-svn: 105612
2010-06-08 16:21:22 +00:00
Benjamin Kramer
4e36e5bb4c
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.
llvm-svn: 105605
2010-06-08 11:44:30 +00:00
Dan Gohman
fb85820f9a
Minor code simplification.
...
llvm-svn: 104959
2010-05-28 16:50:23 +00:00
Dan Gohman
feaeb36edf
Fix a redundant-return warning.
...
llvm-svn: 104958
2010-05-28 16:50:01 +00:00
Dan Gohman
c36b1f35f0
Add basic error checking to MemoryBuffer::getSTDIN.
...
llvm-svn: 104855
2010-05-27 17:31:51 +00:00
Jakob Stoklund Olesen
d1d7ed63ff
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, ...
llvm-svn: 104745
2010-05-26 21:47:28 +00:00
Daniel Dunbar
c120ffe3f6
Fix __crashreport_info__ declaration.
...
llvm-svn: 104300
2010-05-20 23:50:19 +00:00
Dan Gohman
744c96dd48
Add a comment explaining why this code uses Append mode.
...
llvm-svn: 104095
2010-05-19 01:21:34 +00:00
Dan Gohman
dea5310433
Usage of O_NONBLOCK in bjam is now confirmed as a bug and fixed upstream.
...
Update the comment.
llvm-svn: 104021
2010-05-18 15:25:14 +00:00
Chris Lattner
9e01b615a4
improve portability to systems that don't have round, patch by
...
Evzen Muller!
llvm-svn: 103877
2010-05-15 17:11:55 +00:00
Daniel Dunbar
dac182450b
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.
llvm-svn: 103423
2010-05-10 20:11:56 +00:00
Daniel Dunbar
401d4c9341
Run interrupt routines as part of report_fatal_error, since we are failing
...
ungracefully.
llvm-svn: 103334
2010-05-08 02:10:36 +00:00
Dan Gohman
d351116be0
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.
llvm-svn: 103158
2010-05-06 02:06:20 +00:00
Dan Gohman
ef969f3539
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.
llvm-svn: 103153
2010-05-06 01:27:36 +00:00
Chris Lattner
d7f69cb7ef
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.
llvm-svn: 103107
2010-05-05 18:40:33 +00:00
Benjamin Kramer
ce84a2558c
Try again if write(2) reports an recoverable error.
...
This should fix mysteriously crashing boost regression tests when stderr is
managed by bjam (PR7043).
llvm-svn: 103085
2010-05-05 15:17:47 +00:00
Devang Patel
561fa8490e
Fix typo. add a test case.
...
llvm-svn: 101812
2010-04-19 20:31:39 +00:00
Devang Patel
6188093cca
Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag.
...
llvm-svn: 101805
2010-04-19 19:14:02 +00:00
Chris Lattner
1049e1ce1f
reduce indentation
...
llvm-svn: 101692
2010-04-18 03:35:23 +00:00
Dan Gohman
b29cda9b3c
Fix a bunch of namespace polution.
...
llvm-svn: 101376
2010-04-15 17:08:50 +00:00
Benjamin Kramer
55cfaa37de
BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)
...
llvm-svn: 101138
2010-04-13 16:38:06 +00:00
Benjamin Kramer
5b0650bf6e
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.
llvm-svn: 101130
2010-04-13 14:41:51 +00:00
Chris Lattner
33154c1fc6
Fix PR6826: GraphWriter delete the generated file before "dotty" load it,
...
patch by 'ether'.
llvm-svn: 101116
2010-04-13 04:35:39 +00:00
Chris Lattner
c86cdc7d47
add minix support, patch by Kees van Reeuwijk! PR6797
...
llvm-svn: 100895
2010-04-09 20:45:04 +00:00
Chris Lattner
5c289f217b
clean this up, fix std::min ambiguity on some platforms.
...
llvm-svn: 100894
2010-04-09 20:43:54 +00:00
Benjamin Kramer
53dd088b58
Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free.
...
llvm-svn: 100767
2010-04-08 15:25:57 +00:00
Chris Lattner
59c5753174
rename llvm_install_error_handler -> install_fatal_error_handler
...
and friends.
llvm-svn: 100717
2010-04-07 23:12:29 +00:00
Chris Lattner
2104b8d36e
rename llvm::llvm_report_error -> llvm::report_fatal_error
...
llvm-svn: 100709
2010-04-07 22:58:41 +00:00
Chris Lattner
97c4cb8947
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.
llvm-svn: 100538
2010-04-06 18:06:18 +00:00
Chris Lattner
654091391b
give the SourceMgr object a cookie.
...
llvm-svn: 100504
2010-04-06 00:33:43 +00:00
Chris Lattner
3c799811c1
Give llvm::SourceMgr the ability to have a client-specified
...
diagnostic handler.
llvm-svn: 100503
2010-04-06 00:26:48 +00:00
Chris Lattner
0e45d24a4e
stringref-ize the MemoryBuffer::get apis. This requires
...
a co-committed clang patch.
llvm-svn: 100485
2010-04-05 22:42:30 +00:00
Owen Anderson
f93bdd1024
Push const through the regex engine. Fixes some of the warnings in PR6616.
...
llvm-svn: 100438
2010-04-05 17:50:20 +00:00
Benjamin Kramer
15630f8238
Remove accidental include and add a comment.
...
llvm-svn: 100107
2010-04-01 14:39:55 +00:00
Benjamin Kramer
10b0f3b314
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.
llvm-svn: 100106
2010-04-01 14:35:22 +00:00
Benjamin Kramer
04c713dd45
Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows
...
only a single type of object to be allocated. Use it to make VNInfo destruction
typesafe.
llvm-svn: 99919
2010-03-30 20:16:45 +00:00
Douglas Gregor
83fd0156a9
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().
llvm-svn: 99893
2010-03-30 17:32:08 +00:00
Torok Edwin
8061bb141e
Reapply r99881 with some fixes: only call destructor in releaseMemory!
...
llvm-svn: 99883
2010-03-30 11:17:48 +00:00
Torok Edwin
a2d1dc42e1
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9.
...
llvm-svn: 99882
2010-03-30 10:25:08 +00:00
Torok Edwin
ba6d13c0ea
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).
llvm-svn: 99881
2010-03-30 10:08:26 +00:00
Chris Lattner
39e56a05f7
stringref'ize Timer apis
...
llvm-svn: 99877
2010-03-30 05:34:02 +00:00
Chris Lattner
90fe73dc92
finally, maintain a global list of timer groups, allowing us to
...
implement TimerGroup::printAll, which prints and resets all active
timers.
llvm-svn: 99876
2010-03-30 05:27:58 +00:00
Chris Lattner
4cd6571fef
add a new TimerGroup::print method, and refactor away the bogus
...
TimerGroup copy ctor and assignment operator.
llvm-svn: 99875
2010-03-30 05:20:02 +00:00
Chris Lattner
6cbd8d118e
rename GetLibSupportInfoOutputFile -> CreateInfoOutputFile and
...
have it always return a new stream to simplify clients.
llvm-svn: 99874
2010-03-30 05:01:08 +00:00
Chris Lattner
dcd68b7a65
if a timergroup is destroyed before its timers, print times.
...
llvm-svn: 99873
2010-03-30 04:58:26 +00:00
Chris Lattner
9a608d248e
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.
llvm-svn: 99872
2010-03-30 04:40:01 +00:00
Chris Lattner
707431cf26
reapply my timer rewrite with a change for PassManager to store
...
timers by pointer instead of by-value.
llvm-svn: 99871
2010-03-30 04:03:22 +00:00
Chris Lattner
ec8ef9b643
revert r99862 which is causing FNT failures.
...
llvm-svn: 99870
2010-03-30 03:57:00 +00:00
Chris Lattner
57a0542397
fairly major rewrite of various timing related stuff.
...
llvm-svn: 99862
2010-03-30 02:38:19 +00:00
Chris Lattner
dcd7f927bd
move a function into a more logical place in the file
...
llvm-svn: 99842
2010-03-29 21:34:06 +00:00
Chris Lattner
09a4074869
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
llvm-svn: 99841
2010-03-29 21:28:41 +00:00
Chris Lattner
b355db7877
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.
llvm-svn: 99839
2010-03-29 21:24:52 +00:00
Chris Lattner
5092a6de8e
s/.../.
...
llvm-svn: 99834
2010-03-29 20:40:19 +00:00
Chris Lattner
fafa57a82a
move code around and improve indentation, no functionality change.
...
llvm-svn: 99831
2010-03-29 20:35:01 +00:00
Chris Lattner
35a069b3a5
improve portability to minix, patch by
...
Kees van Reeuwijk for PR6704
llvm-svn: 99677
2010-03-26 23:54:15 +00:00
Dan Gohman
b452d4e9e4
Fix minor style issues.
...
llvm-svn: 99414
2010-03-24 19:38:02 +00:00
Duncan Sands
8712da360b
Fix comment typo.
...
llvm-svn: 99392
2010-03-24 09:05:14 +00:00
Dan Gohman
6556c8962c
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.
llvm-svn: 98829
2010-03-18 16:16:38 +00:00
Douglas Gregor
6d7d7b5197
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.
llvm-svn: 98575
2010-03-15 20:32:14 +00:00
Chris Lattner
4c1e4db3ff
make APFloat::toString be const.
...
llvm-svn: 97883
2010-03-06 19:20:13 +00:00
Chris Lattner
6783832ec2
add an assertion requested on llvmdev.
...
llvm-svn: 97769
2010-03-05 00:49:08 +00:00
John McCall
c6dbe30e88
Don't potentially read past the end of the fill data when making a NaN from
...
an APInt.
llvm-svn: 97467
2010-03-01 18:38:45 +00:00
John McCall
c12b133d00
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.
llvm-svn: 97382
2010-02-28 12:49:50 +00:00
John McCall
512b650210
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.
llvm-svn: 97381
2010-02-28 09:55:58 +00:00
John McCall
dcb9a7ad3d
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.
llvm-svn: 97364
2010-02-28 02:51:25 +00:00
John McCall
b42cc681ba
Make APFloat's string-parsing routines a bit safer against very large exponents.
...
llvm-svn: 97278
2010-02-26 22:20:41 +00:00
Benjamin Kramer
7f98b46dc1
Replace a temporary std::string with SmallString.
...
llvm-svn: 97259
2010-02-26 20:28:29 +00:00
Wesley Peck
e4801e49c9
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.
llvm-svn: 96969
2010-02-23 19:15:24 +00:00
Jeffrey Yasskin
cc2e3d22df
Fix viewCFG on Linux.
...
llvm-svn: 96834
2010-02-23 00:04:53 +00:00
Dan Gohman
30ff721f09
Fix various doxygen warnings.
...
llvm-svn: 96779
2010-02-22 04:10:52 +00:00
Duncan Sands
142b9edaf1
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.
llvm-svn: 96578
2010-02-18 14:08:13 +00:00
Daniel Dunbar
eb85711e43
Add Regex::sub, for doing regular expression substitution with backreferences.
...
llvm-svn: 96503
2010-02-17 20:08:42 +00:00
Chris Lattner
115158fa4f
enhance raw_svector_ostream::write_impl to work with unbuffered streams,
...
which may call write_impl on things that are not the usual buffer.
llvm-svn: 96209
2010-02-15 02:18:26 +00:00
Chris Lattner
f733d75892
make PadToColumn return the stream so you can use:
...
OS.PadToColumn(42) << "foo";
llvm-svn: 96208
2010-02-15 02:17:50 +00:00
Dan Gohman
4a618827de
Fix "the the" and similar typos.
...
llvm-svn: 95781
2010-02-10 16:03:48 +00:00
Chris Lattner
8228b11abc
add support for the sparcv9-*-* target triple to turn on
...
64-bit sparc codegen. Patch by Nathan Keynes!
llvm-svn: 95293
2010-02-04 06:34:01 +00:00
John McCall
df951bddb8
Make APInt::countLeadingZerosSlowCase() treat the contents of padding bits
...
as undefined. Fixes an assertion in APFloat::toString noticed by Dale.
llvm-svn: 95196
2010-02-03 03:42:44 +00:00
Benjamin Kramer
ef14f80e95
Fix MSVC build.
...
llvm-svn: 94809
2010-01-29 15:19:06 +00:00
Benjamin Kramer
b17c58674e
Convert some users of ftostr to raw_ostream.
...
llvm-svn: 94808
2010-01-29 14:42:22 +00:00
Benjamin Kramer
6bee24ae9a
Use llvm::format instead of ftostr (which just calls sprintf).
...
llvm-svn: 94807
2010-01-29 14:40:33 +00:00
Benjamin Kramer
29063eac23
Replace strcpy with memcpy when we have the length around anyway.
...
llvm-svn: 94746
2010-01-28 18:04:38 +00:00
Mikhail Glushenkov
76be2d1cca
Make SMDiagnostic::Print a const method.
...
llvm-svn: 94672
2010-01-27 10:13:28 +00:00
Mikhail Glushenkov
84afae33a9
Trailing whitespace.
...
llvm-svn: 94671
2010-01-27 10:13:11 +00:00
Dan Gohman
3f8ed9e1ae
Fix a typo that several people pointed out. Also, address the case of
...
wrapping that Duncan pointed out.
llvm-svn: 94547
2010-01-26 15:56:18 +00:00
Dan Gohman
5325efc5af
Add a comment about a missed opportunity.
...
llvm-svn: 94507
2010-01-26 04:13:15 +00:00
Dan Gohman
837ada7692
Print empty and full sets specially.
...
llvm-svn: 94506
2010-01-26 04:12:55 +00:00
Chris Lattner
1386a88c95
Changes to fix buffering that I forgot to commit with previous patch.
...
llvm-svn: 94222
2010-01-22 21:16:10 +00:00
Chris Lattner
8fa0e35f97
add a new MCAsmStreamer::GetCommentOS method to simplify stuff
...
that doesn't want to use twines.
llvm-svn: 94199
2010-01-22 19:17:48 +00:00
Dan Gohman
7c6759094a
Avoid printing a spurious semicolon when there is no filename.
...
llvm-svn: 94071
2010-01-21 10:13:27 +00:00
David Greene
35dca86659
Fix an infinite recursion problem. dbgs() should return errs() in
...
release mode.
llvm-svn: 94001
2010-01-20 15:27:19 +00:00
Benjamin Kramer
608fd2b606
Fix refacto reported by Nicolas Geoffray.
...
llvm-svn: 93723
2010-01-18 12:40:05 +00:00
Bill Wendling
efda1e4f0f
Temporarily revert r93581. It was causing failures in the ExecutionEngine tests
...
on the build bots.
llvm-svn: 93606
2010-01-16 01:06:58 +00:00
Ted Kremenek
12821816c6
BumpPtrAllocator: Have the DefaultSlabAllocator created at runtime, not initialization time. This removes one of the 'init_constructors' reported in <rdar://problem/7545356>.
...
llvm-svn: 93581
2010-01-15 23:29:34 +00:00
Benjamin Kramer
2e06b93f43
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.
llvm-svn: 93317
2010-01-13 12:45:23 +00:00
Benjamin Kramer
93ad708a46
Remove unused string functions.
...
llvm-svn: 93183
2010-01-11 20:33:12 +00:00
Benjamin Kramer
6bf8240762
Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase.
...
llvm-svn: 93174
2010-01-11 19:45:18 +00:00
Benjamin Kramer
0ef736fef2
Turns out llvm-gcc still uses SplitString with a vector. Add it back until I
...
have a fix.
llvm-svn: 93163
2010-01-11 18:44:35 +00:00
Benjamin Kramer
c6fe3c3273
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.
llvm-svn: 93161
2010-01-11 18:03:24 +00:00
Duncan Sands
a230552b94
Suppress use of uninitialized variable warning.
...
llvm-svn: 93046
2010-01-09 08:30:33 +00:00
Douglas Gregor
47ed966813
More trivial optimizations to a function well outside the critical path
...
llvm-svn: 92896
2010-01-07 02:24:06 +00:00
Douglas Gregor
09470e6a4e
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.
llvm-svn: 92884
2010-01-07 00:51:54 +00:00
David Greene
9d24d0c3e6
Change errs() to dbgs().
...
llvm-svn: 92646
2010-01-05 01:29:03 +00:00
David Greene
649efc4656
Change errs() to dbgs().
...
llvm-svn: 92645
2010-01-05 01:28:58 +00:00
David Greene
f32fcb4d31
Change errs() to dbgs().
...
llvm-svn: 92643
2010-01-05 01:28:52 +00:00
David Greene
b28b1ed1a8
Change errs() to dbgs().
...
llvm-svn: 92642
2010-01-05 01:28:47 +00:00
David Greene
93a522baba
Change errs() to dbgs().
...
llvm-svn: 92641
2010-01-05 01:28:43 +00:00
David Greene
f92e6718bc
Change errs() to dbgs().
...
llvm-svn: 92640
2010-01-05 01:28:40 +00:00
David Greene
de7b353652
Change errs() to dbgs().
...
llvm-svn: 92638
2010-01-05 01:28:32 +00:00
David Greene
80604d5f09
Change errs() to dbgs().
...
llvm-svn: 92637
2010-01-05 01:28:29 +00:00
Douglas Gregor
5639af4eac
Document the edit-distance algorithm used in StringRef, switch it over
...
to SmallVector, and add a unit test.
llvm-svn: 92340
2009-12-31 04:24:34 +00:00
Douglas Gregor
165882c240
Implement edit distance for StringRef
...
llvm-svn: 92309
2009-12-30 17:23:44 +00:00
Chris Lattner
93163c401e
Do not crash when .ll printing metadata that smells like debug info, but isn't.
...
llvm-svn: 92268
2009-12-29 21:17:33 +00:00
Chris Lattner
0709a2790a
fix indentation, fit in 80 cols.
...
llvm-svn: 92267
2009-12-29 21:09:57 +00:00
Chris Lattner
3b32672733
fix .cpp file to not wrap the entire file in namespace blocks.
...
llvm-svn: 92250
2009-12-29 07:28:33 +00:00
John McCall
dd5044ac55
Implement support for converting to string at "natural precision", and fix some
...
major bugs in long-precision conversion.
llvm-svn: 92150
2009-12-24 23:18:09 +00:00
John McCall
e6212ace38
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.
llvm-svn: 92130
2009-12-24 12:16:56 +00:00
John McCall
29b5c284ae
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.
llvm-svn: 92126
2009-12-24 08:56:26 +00:00
John McCall
bd8d1e35a6
Set Remainder before Quotient in case Quotient and LHS alias. The new
...
order should be immune to such problems.
llvm-svn: 92124
2009-12-24 08:52:06 +00:00
David Greene
b760d0cde9
Clarify how dbgs() operates.
...
llvm-svn: 92083
2009-12-23 23:23:15 +00:00
Chris Lattner
bd7b13f07f
sizeof(char) is always 1.
...
llvm-svn: 92079
2009-12-23 23:03:24 +00:00
Douglas Gregor
3ab9e5077f
De-bork CMake build
...
llvm-svn: 92003
2009-12-23 17:03:46 +00:00
David Greene
64506db8e8
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.
llvm-svn: 92002
2009-12-23 16:39:06 +00:00
David Greene
7ffbb50edf
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.
llvm-svn: 92001
2009-12-23 16:08:15 +00:00
Chris Lattner
dd3e9aaad3
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.
llvm-svn: 91740
2009-12-19 01:38:42 +00:00
Chris Lattner
4ea86c460a
now that libsystem no longer uses SmallVector, we can move
...
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.
llvm-svn: 91529
2009-12-16 08:44:24 +00:00
Dan Gohman
fd5de58ec1
Micro-optimize these functions in the case where they are not inlined.
...
llvm-svn: 91316
2009-12-14 19:32:31 +00:00
Daniel Dunbar
d333139411
DeltaAlgorithm: Add a virtual destructor and home.
...
llvm-svn: 90957
2009-12-09 07:19:48 +00:00
Daniel Dunbar
c5b2ac4d97
Fix typo and add missing include.
...
llvm-svn: 90557
2009-12-04 08:17:07 +00:00
Dan Gohman
083f229ba2
Print a newline after the Args: line so that unrelated errs() output doesn't
...
end up on the same line.
llvm-svn: 90473
2009-12-03 19:03:18 +00:00
Daniel Dunbar
ff53d4694c
Add an implementation of the delta debugging algorithm.
...
- This is a pretty slow / memory intensive implementation, and I will likely
change it to an iterative model, but it works.
llvm-svn: 90447
2009-12-03 11:12:42 +00:00
Chris Lattner
0e3b78a6c2
return more useful error messages by using strerror to format errno
...
instead of returning an ambiguous reason.
llvm-svn: 90275
2009-12-01 22:51:41 +00:00
Douglas Gregor
7baad7365a
Perform explicit instantiations in the proper namespace, since Clang diagnoses this ill-formity.
...
llvm-svn: 89846
2009-11-25 06:04:18 +00:00
Daniel Dunbar
5a308f5399
SourceMgr: Add ShowLine argument to PrintMessage, to allow suppressing the source line output.
...
llvm-svn: 89627
2009-11-22 22:08:00 +00:00
Mikhail Glushenkov
5551c207cd
Move the handling of CommaSeparated options into ProvideOption.
...
Makes '--comma-separated val1,val2' mean the same thing as
'--comma-separated=val1,val2' (that is, 'val1' and 'val2' are not lumped
together as 'val1,val2'). Also declutters the main loop a bit.
llvm-svn: 89463
2009-11-20 17:23:17 +00:00
Daniel Dunbar
956c1581fa
Use StringRef::min instead of std::min.
...
llvm-svn: 89372
2009-11-19 18:53:18 +00:00
Mikhail Glushenkov
1d9f1fe7cc
Trailing whitespace.
...
llvm-svn: 89364
2009-11-19 17:29:36 +00:00
Edward O'Callaghan
ba993b8add
Add PS3 Triple class, Credit to John Thompson.
...
llvm-svn: 89339
2009-11-19 11:59:00 +00:00
Viktor Kutuzov
dafdd883bc
Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.
...
llvm-svn: 89122
2009-11-17 18:48:27 +00:00
Benjamin Kramer
713fd3564a
Revert CPU detection code to return "generic" instead of an empty string in case
...
of failure. The x86 target didn't like empty cpu names and broke x86 tests on
non-x86 buildbots.
llvm-svn: 89111
2009-11-17 17:57:04 +00:00
Owen Anderson
759d72dc8e
Fix a race condition in the Timer class.
...
llvm-svn: 89056
2009-11-17 07:06:10 +00:00
Edward O'Callaghan
e3f3ca70e6
Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes.
...
llvm-svn: 88849
2009-11-15 10:18:17 +00:00
Daniel Dunbar
d90a9a04f3
Report the detected host CPU in --version.
...
llvm-svn: 88813
2009-11-14 21:36:07 +00:00
Rafael Espindola
ff2c72b858
Distinguish "a," from "a". The first one splits into "a" + "" and the second one into
...
"a" + 0.
llvm-svn: 87084
2009-11-13 04:55:09 +00:00
Rafael Espindola
7c6854995d
Switch to smallvector. Also fix issue with using unsigend for MaxSplit.
...
llvm-svn: 87068
2009-11-13 02:18:25 +00:00
Rafael Espindola
d554e44092
Add a new split method to StringRef that puts the substrings in a vector.
...
llvm-svn: 87058
2009-11-13 01:24:40 +00:00
Benjamin Kramer
68e4945c03
Add compare_lower and equals_lower methods to StringRef. Switch all users of
...
StringsEqualNoCase (from StringExtras.h) to it.
llvm-svn: 87020
2009-11-12 20:36:59 +00:00
Nuno Lopes
f8fcac7470
fix crash in my previous patch
...
llvm-svn: 86987
2009-11-12 15:10:33 +00:00
Nuno Lopes
60d5b1cfdb
implement shl, ashr, and lshr methods. shl is not fully implemented as it is quite tricky.
...
llvm-svn: 86986
2009-11-12 14:53:53 +00:00
Sandeep Patel
598825e832
Show command-line args and features passed into backend in debug output. Approved by Evan Cheng.
...
llvm-svn: 86797
2009-11-11 03:23:46 +00:00
Daniel Dunbar
9806e4ab20
Add From arguments to StringRef search functions, and tweak doxyments.
...
Also, add unittests for find_first_of and find_first_not_of.
llvm-svn: 86770
2009-11-11 00:28:53 +00:00
Daniel Dunbar
124fc5e252
Fix MemoryBuffer::getSTDIN to *not* return null if stdin is empty, this is a lame API.
...
Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs.
llvm-svn: 86630
2009-11-10 00:43:58 +00:00
Nuno Lopes
640eb70bee
add zextOrTrunc and sextOrTrunc methods, that are similar to the ones in APInt
...
llvm-svn: 86549
2009-11-09 15:36:28 +00:00
Xerxes Ranby
7c16a89ebf
Make lib/Support/Debug.cpp SetCurrentDebugType implementation part of llvm namespace to match function declaration in Debug.h.
...
llvm-svn: 86544
2009-11-09 14:50:34 +00:00
Mikhail Glushenkov
358607dfa3
Trailing whitespace.
...
llvm-svn: 86347
2009-11-07 06:33:12 +00:00
Daniel Dunbar
ad36e8aceb
Pass StringRef by value.
...
llvm-svn: 86251
2009-11-06 10:58:06 +00:00
Duncan Sands
d732f396a2
A value is only assigned to errno if NumRead equals -1, so do
...
not reason based on errno if NumRead has a different value.
llvm-svn: 86046
2009-11-04 20:50:23 +00:00
Duncan Sands
4afa0838d7
Make this code more robust by not thinking we are making progress
...
if zero bytes were read.
llvm-svn: 85922
2009-11-03 19:10:22 +00:00
Chris Lattner
fbaac77c70
add a new 'SetCurrentDebugType' API (requested by Andrew Haley for JIT
...
stuff) to programmatically control the current debug flavor. While
I'm at it, doxygenate Debug.h and clean it up.
llvm-svn: 85395
2009-10-28 15:32:19 +00:00
Evan Cheng
deab9dee12
Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.
...
llvm-svn: 85358
2009-10-28 01:08:17 +00:00
Evan Cheng
67c902147e
Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.
...
llvm-svn: 85318
2009-10-27 21:35:42 +00:00
Chandler Carruth
56869f22c4
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Dale Johannesen
0d670b5b92
Commit fixes for half precision I noted in review, so
...
they don't get lost; I don't think the originator has
write access.
llvm-svn: 84928
2009-10-23 04:02:51 +00:00
Daniel Dunbar
04f049f2f5
Move UnescapeString to a static function for its sole client; its inefficient and broken.
...
llvm-svn: 84358
2009-10-17 20:43:42 +00:00
Daniel Dunbar
59449581b2
Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.
...
llvm-svn: 84357
2009-10-17 20:43:29 +00:00
Daniel Dunbar
4108c43fd1
Add raw_ostream::write_escaped, for writing escaped strings.
...
llvm-svn: 84355
2009-10-17 20:43:08 +00:00
Daniel Dunbar
77668004c4
Move StringMap's string has function into StringExtras.h
...
llvm-svn: 84344
2009-10-17 18:21:06 +00:00
Chris Lattner
4794b2b27b
Add half precision floating point support (float16) to APFloat,
...
patch by Peter Johnson! (PR5195)
llvm-svn: 84239
2009-10-16 02:13:51 +00:00
Chris Lattner
27f2049305
add haiku support, patch by Paul Davey!
...
llvm-svn: 84238
2009-10-16 02:06:30 +00:00
Jeffrey Yasskin
e2595b5be6
r83391 was completely broken since Twines keep references to their inputs, and
...
some of the inputs were temporaries. Here's a real fix for the miscompilation.
Thanks to sabre for pointing out the problem.
llvm-svn: 83417
2009-10-06 21:45:26 +00:00
Nicolas Geoffray
08506ee6b0
Bugfix for the CommaSeparated option. The original code was adding the whole
...
string at the end of the list, instead of the last comma-separated string.
llvm-svn: 83405
2009-10-06 19:55:53 +00:00
Jeffrey Yasskin
92e3a06623
Fix PR5112, a miscompilation on gcc-4.0.3. Patch by Collin Winter!
...
llvm-svn: 83391
2009-10-06 17:25:50 +00:00
Torok Edwin
819d15c7d9
Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutex
...
in RegisterStatistic.
llvm-svn: 82896
2009-09-27 11:08:03 +00:00
Chris Lattner
37d8015dc1
remove support for "NoSub" from regex. It seems like a minor optimization
...
and makes the API more annoying. Add a Regex::getNumMatches() method.
llvm-svn: 82877
2009-09-26 21:27:04 +00:00
Chris Lattner
f08d2db928
add and document regex support for FileCheck. You can now do stuff like:
...
; CHECK: movl {{%e[a-z][xi]}}, %eax
or whatever.
llvm-svn: 82717
2009-09-24 21:47:32 +00:00
Chris Lattner
688f991b38
wrap long lines.
...
llvm-svn: 82715
2009-09-24 21:44:20 +00:00
Chris Lattner
1ce83629df
tidy up, fix a memory leak in Regex::isValid
...
llvm-svn: 82707
2009-09-24 20:15:51 +00:00
Chris Lattner
4e37f877b5
reapply r82348 with a fix, thanks Jeffrey.
...
llvm-svn: 82683
2009-09-24 05:38:36 +00:00
Jeffrey Yasskin
a75d6bf3a8
Roll back r82348, which introduced an infinite loop in ParseCStringVector() that
...
a trivial unittest would have caught. This revision also adds the trivial
unittest.
llvm-svn: 82675
2009-09-24 01:14:07 +00:00
Daniel Dunbar
78faee0664
Switch FoldingSet::AddString to StringRef based API.
...
- This also fixes a dereference of std::string::end, which makes MSVC unhappy and was causing all the static analyzer clang tests to fail.
llvm-svn: 82517
2009-09-22 03:34:53 +00:00
Daniel Dunbar
c827d9ee0e
Workaround what I believe is an MSVC bug where it emits a definition for a
...
static const class member into each translation unit, with external linkage???
- If someone understands this issue better, please clue me in, I haven't
consulted the standard yet.
llvm-svn: 82516
2009-09-22 03:34:40 +00:00
Chris Lattner
5a3a854205
simplify as daniel suggests
...
llvm-svn: 82415
2009-09-20 22:56:43 +00:00
Chris Lattner
78f908c877
tidy up
...
llvm-svn: 82384
2009-09-20 07:16:54 +00:00
Chris Lattner
56efff07f5
smallvectorize getExtraOptionNames
...
llvm-svn: 82377
2009-09-20 06:21:43 +00:00
Chris Lattner
131dca9c48
minor cleanups.
...
llvm-svn: 82375
2009-09-20 06:18:38 +00:00
Chris Lattner
00f53807c3
strength reduce further StringRef-> const char*, saving another 620 bytes.
...
llvm-svn: 82372
2009-09-20 05:53:47 +00:00
Chris Lattner
b1f2e101db
switch an std::string to StringRef, shaving 400 bytes off CommandLine.o
...
llvm-svn: 82370
2009-09-20 05:48:01 +00:00
Chris Lattner
6ec8caf003
the switch from std::map -> StringMap caused --help output to be in
...
non-sorted order, restore the sort.
llvm-svn: 82368
2009-09-20 05:37:24 +00:00
Chris Lattner
8d0309daa0
eliminate the duplicate detection loop, moving it into the loop that populates the Opts vector in the first place.
...
llvm-svn: 82367
2009-09-20 05:22:52 +00:00
Chris Lattner
64dbb5ca5a
Eliminate a masochistic "algorithm" loop, shrinking CommandLine.o from 71524->70700 bytes.
...
llvm-svn: 82366
2009-09-20 05:18:28 +00:00
Chris Lattner
28610b9878
don't use count + insert, just do insert + failure. Also, instead of deleting from
...
the middle of a vector, swap the last element in and pop_back. Also saves 330 bytes :)
llvm-svn: 82365
2009-09-20 05:15:12 +00:00
Chris Lattner
41f8b0b7a6
switch to SmallPtrSet instead of std::set, saving 1K from the
...
release-asserts .o file (72900->71856).
llvm-svn: 82364
2009-09-20 05:12:14 +00:00
Chris Lattner
f74e28abfa
change an std::sort to an array_pod_sort call, shrinking CommandLine.o by 9%.
...
llvm-svn: 82363
2009-09-20 05:06:23 +00:00
Chris Lattner
e7c1e210c7
Several changes together in a murky mess:
...
1. Change some "\n" -> '\n'.
2. eliminte some std::string's by using raw_ostream::indent.
3. move a bunch of code out of the main arg parser routine into
a new static HandlePrefixedOrGroupedOption function.
4. Greatly simplify the implementation of getOptionPred, and make
it avoid splitting prefix options at = when that doesn't match
a non-prefix option.
llvm-svn: 82362
2009-09-20 05:03:30 +00:00
Daniel Dunbar
ecbb126e34
Fix refacto, this code was expecting to stride past the argument prefix.
...
llvm-svn: 82360
2009-09-20 04:03:41 +00:00
Daniel Dunbar
7d6781b0fe
Tabs -> spaces, and remove trailing whitespace.
...
llvm-svn: 82355
2009-09-20 02:20:51 +00:00
Chris Lattner
5a3fa4ef33
convert argname to StringRef, simplifying LookupOption.
...
llvm-svn: 82352
2009-09-20 02:02:24 +00:00
Chris Lattner
0a40a975dd
convert 'Value' to StringRef which makes it easier to
...
maintain the "null is unspecified, empty is empty" semantics.
llvm-svn: 82351
2009-09-20 01:53:12 +00:00
Chris Lattner
40fef8032e
Change CommaSeparated processing to do it with StringRef instead of temporary std::strings.
...
This requires StringRef'izing ProvideOption which I also did.
llvm-svn: 82350
2009-09-20 01:49:31 +00:00
Chris Lattner
77c2724360
rewrite ParseCStringVector in terms of stringref.
...
llvm-svn: 82348
2009-09-20 01:33:46 +00:00
Chris Lattner
372a8ae403
move a couple non-trivial methods out of line, add new
...
find_first_of/find_first_of methods.
llvm-svn: 82347
2009-09-20 01:22:16 +00:00
Chris Lattner
1b88fbdaa3
coding style cleanup
...
llvm-svn: 82346
2009-09-20 01:11:23 +00:00
Chris Lattner
3b8adaf488
convert a bunch more stuff to use StringRef. The ArgName arguments are now
...
stringref because they may not be nul terminated. For options like -Lfoo
this now avoids a O(n) temporary std::strings where N is the length of
the string after -L.
llvm-svn: 82345
2009-09-20 00:40:49 +00:00
Chris Lattner
ca2552d9f9
avoid a bunch of malloc thrashing for PositinoalVals by eliminating
...
a std::vector and a bunch of std::string temporaries.
llvm-svn: 82341
2009-09-20 00:07:40 +00:00
Chris Lattner
fa9c6f43a0
Avoid some temporary strings.
...
llvm-svn: 82339
2009-09-19 23:59:02 +00:00
Chris Lattner
84c1527b6b
add some more overloads of StringRef::getAsInteger for
...
common and useful integer types.
llvm-svn: 82338
2009-09-19 23:58:48 +00:00
Chris Lattner
68ee70035e
provide a "strtoull" operation that works on StringRef's.
...
llvm-svn: 82322
2009-09-19 19:47:14 +00:00
Chris Lattner
aecd74d895
convert a bunch of std::strings to use StringRef. This should eliminate
...
a massive number of temporary strings created when parsing a command line.
More still left to eliminate.
llvm-svn: 82318
2009-09-19 18:55:05 +00:00
Benjamin Kramer
543d9b2fba
Try to speed up the slowest parts of the CommandLine library
...
- Replace std::map<std::string with StringMap
- Eliminate unnecessary std::string copies
- ~10% speed-up for clang's testsuite on my machine (debug build)
llvm-svn: 82312
2009-09-19 10:01:45 +00:00
Chris Lattner
ac6271e3f4
add a version of the APFloat constructor that initializes to 0.0
...
llvm-svn: 82110
2009-09-17 01:08:43 +00:00
Daniel Dunbar
4498168753
Add StringRef::{rfind, rsplit}
...
llvm-svn: 82087
2009-09-16 22:38:48 +00:00
Daniel Dunbar
316b4a0206
Drop the raw_ostream required buffer size to 1.
...
- As best I can tell, we have eliminated all the code which used to require a
larger buffer size.
llvm-svn: 81912
2009-09-15 20:31:46 +00:00
Ted Kremenek
c74e09f654
Update CMake files.
...
llvm-svn: 81577
2009-09-11 21:49:45 +00:00
Dan Gohman
e592923603
Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn't
...
working. To support this, add an is_displayed() function to raw_ostream,
and generalize Process::StandardOutIsDisplayed and friends in order to
support it.
Also, call RemoveFileOnSignal before creating a file instead of after, so
that the file isn't left behind if the program is interrupted between when
the file is created and RemoveFileOnSignal is called.
While here, add a -S to llvm-extract and port it to IRReader so that it
supports assembly input.
llvm-svn: 81568
2009-09-11 20:46:33 +00:00
Chris Lattner
d747a9f21f
canonicalize namespace gymnastics
...
llvm-svn: 81402
2009-09-09 23:46:42 +00:00
Daniel Dunbar
aec990efd7
Add comment re: clang dependency.
...
llvm-svn: 81393
2009-09-09 23:01:25 +00:00
Sean Callanan
1358fb7feb
Added an abstract superclass, MCDisassembler, for
...
all disassemblers.
Modified the MemoryObject to support 64-bit address
spaces, regardless of the LLVM process's address
width.
Modified the Target class to allow extraction of a
MCDisassembler.
llvm-svn: 81392
2009-09-09 22:49:13 +00:00
Evan Cheng
49adbf42b1
Make sure the memory range is writable before memset'ing it.
...
llvm-svn: 81308
2009-09-09 01:45:24 +00:00
Daniel Dunbar
a8597a3749
Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
...
name (e.g. "ppc") to the appropriate constant.
Also, StringRefize additional Triple constructor.
llvm-svn: 81274
2009-09-08 23:32:51 +00:00
Daniel Dunbar
6119d878bb
Improve JIT error message for users crazy enough to use -march with JIT, and
...
mention -version in messages about missing targets.
llvm-svn: 81272
2009-09-08 23:32:35 +00:00
Daniel Dunbar
6e4ed8ca5f
Fix may-be-used-uninitialized warning.
...
llvm-svn: 81223
2009-09-08 16:14:54 +00:00
Duncan Sands
6c643bd25d
Avoid warnings if assertions are off.
...
llvm-svn: 81127
2009-09-06 19:28:38 +00:00
Duncan Sands
89720bbd11
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Benjamin Kramer
2b37efaf53
More MSVC warning fixes:
...
1. DUPMAX is defined in regcomp.c, no need to redefine it in regutils.
2. MSVC doesn't like snprintf, use _snprintf instead.
llvm-svn: 81114
2009-09-06 12:26:28 +00:00
Benjamin Kramer
0e098e9df7
Remove splint hints to silence warnings from ICC and MSVC.
...
llvm-svn: 81108
2009-09-06 09:29:39 +00:00
Duncan Sands
2fbeaf084f
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Daniel Dunbar
fc39586b4f
Show derived host triple in --version.
...
llvm-svn: 80855
2009-09-02 23:52:38 +00:00
Ted Kremenek
1543d133db
Update CMake files.
...
llvm-svn: 80680
2009-09-01 17:01:02 +00:00
Richard Osborne
e7717e7b2a
Add triple parsing support for XCore.
...
llvm-svn: 80629
2009-08-31 21:51:36 +00:00
Daniel Dunbar
bf75ffd1e2
Fix some possible-use-of-uninitialized warnings.
...
llvm-svn: 80515
2009-08-30 21:13:58 +00:00
Torok Edwin
e14d4cdb5f
Add regular expression matching support, based on OpenBSD regexec()/regcomp()
...
implementation.
llvm-svn: 80493
2009-08-30 08:24:09 +00:00
Dan Gohman
61a8796ddb
Make LLVM command-line tools overwrite their output files without -f.
...
This is conventional command-line tool behavior. -f now just means
"enable binary output on terminals".
Add a -f option to llvm-extract and llvm-link, for consistency.
Remove F_Force from raw_fd_ostream and enable overwriting and
truncating by default. Introduce an F_Excl flag to permit users to
enable a failure when the file already exists. This flag is
currently unused.
Update Makefiles and documentation accordingly.
llvm-svn: 79990
2009-08-25 15:34:52 +00:00
Oscar Fuentes
a5ff9e354a
CMake: updated list of source files.
...
llvm-svn: 79959
2009-08-25 00:02:29 +00:00
Daniel Dunbar
b8dc4ea2c4
Add llvm::Triple::getArchTypePrefix for getting the intrinsic prefix for an
...
identifier architecture.
llvm-svn: 79906
2009-08-24 09:53:06 +00:00
Dan Gohman
c9fa051f85
Correctly account for the Spaces array nul terminator. Thanks Chris!
...
llvm-svn: 79894
2009-08-24 04:43:38 +00:00
Dan Gohman
f88f52e3b9
raw_ostream::indent is used for PadToColumn which often prints more
...
than 16 spaces. Make the Spaces array wide enough to handle common cases.
llvm-svn: 79890
2009-08-24 04:13:01 +00:00
Chris Lattner
0ffe0e096d
split raw_os_ostream out to its own header and implementation file. This
...
means that raw_ostream no longer has to #include <iosfwd>. Nothing in llvm
should use raw_os_ostream.h, but llvm-gcc and some unit tests do.
llvm-svn: 79886
2009-08-24 04:02:06 +00:00
Chris Lattner
06fa176862
prune the #includes in raw_ostream.h by moving a
...
member out of line. ftostr is not particularly speedy,
so that method is presumably not perf sensitive.
llvm-svn: 79885
2009-08-24 03:52:50 +00:00
Dan Gohman
a53c35d8d0
Unbreak the build for HAVE_GV platforms.
...
llvm-svn: 79883
2009-08-24 03:23:12 +00:00
Oscar Fuentes
94e470504f
CMake: Updated library dependencies and list of source files.
...
llvm-svn: 79876
2009-08-23 23:59:15 +00:00
Chris Lattner
96cffa63a2
remove the dead std::ostream APInt inserter
...
llvm-svn: 79875
2009-08-23 23:11:28 +00:00
Chris Lattner
486fcad4a8
fix some problems with my last patch which happen when one of
...
(HAVE_GV && (HAVE_DOT || HAVE_FDP || HAVE_NEATO || \
HAVE_TWOPI || HAVE_CIRCO))
are true.
llvm-svn: 79872
2009-08-23 22:53:53 +00:00
Chris Lattner
c521f54198
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
...
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
llvm-svn: 79869
2009-08-23 22:45:37 +00:00
Chris Lattner
1518c64a23
llvm/Support/Streams.h is now dead, zap it.
...
llvm-svn: 79865
2009-08-23 21:50:26 +00:00
Chris Lattner
b9f25f9e19
eliminate the ostream version of CheckBitcodeOutputToConsole,
...
change the raw_ostream one to take the raw_ostream byref instead
of byptr. Prune #includes, eliminate a use of Streams.h
llvm-svn: 79863
2009-08-23 21:36:09 +00:00
Daniel Dunbar
47a309c5ca
Fix off-by-one in llvm::Format::print.
...
- This also shortens the Format.h implementation, and uses the print buffer
fully (it was wasting a character).
- This manifested as llvm-test failures, because one side effect was that
raw_ostream would write garbage '\x00' values into the output stream if it
happened that the string was at the end of the buffer. This meant that grep
would report 'Binary file matches', which meant the silly pattern matching
llvm-test eventually does would fail. Cute. :)
llvm-svn: 79862
2009-08-23 20:31:39 +00:00
Chris Lattner
36b3caf9c0
clean up #includes.
...
llvm-svn: 79857
2009-08-23 18:09:02 +00:00
Benjamin Kramer
1a25d733f9
Kill off more cerr/cout uses and prune includes a bit.
...
llvm-svn: 79852
2009-08-23 11:37:21 +00:00
Benjamin Kramer
c9aa480832
Remove uses of Streams.h from CommandLine.cpp, fix some whitespace and other minor tweaks.
...
llvm-svn: 79847
2009-08-23 10:01:13 +00:00
Benjamin Kramer
b451afb5f2
Fix windows build.
...
llvm-svn: 79845
2009-08-23 08:57:52 +00:00
Daniel Dunbar
34ee203337
Fix some refactos for iostream changes (in -Asserts mode).
...
- The world needs better C++ refactoring tools, can I get an Amen!?
llvm-svn: 79843
2009-08-23 08:50:52 +00:00
Chris Lattner
471ba48cb9
remove some uses of llvm/Support/Streams.h
...
llvm-svn: 79842
2009-08-23 08:43:55 +00:00
Chris Lattner
4883d90396
convert LoopInfo.h and GraphWriter.h to use raw_ostream
...
llvm-svn: 79836
2009-08-23 07:19:13 +00:00
Chris Lattner
7e3cfe35ff
eliminate DOUT and make Debug.h not include Streams.h anymore, woo!
...
llvm-svn: 79835
2009-08-23 07:05:39 +00:00
Chris Lattner
1362602eb2
Change Pass::print to take a raw ostream instead of std::ostream,
...
update all code that this affects.
llvm-svn: 79830
2009-08-23 06:03:38 +00:00
Chris Lattner
9e6f1f160a
Change raw_fd_ostream to take flags as an optional bitmask
...
instead of as two bools. Use this to add a F_Append flag
which has the obvious behavior.
Other unrelated changes conflated into this patch:
1. REmove EH stuff from llvm-dis and llvm-as, the try blocks
are dead.
2. Simplify the filename inference code in llvm-as/llvm-dis,
because raw_fd_ostream does the right thing with '-'.
3. Switch machine verifier to use raw_ostream instead of ostream
(Which is the thing that needed append in the first place).
llvm-svn: 79807
2009-08-23 02:51:22 +00:00
Chris Lattner
ba4bd50a80
switch formattedstream to use raw_ostream::indent. This eliminates
...
the weird MAX_COLUMN_PAD limitation.
llvm-svn: 79785
2009-08-22 23:16:09 +00:00
Chris Lattner
e6db2c338b
add a raw_ostream::indent method, to be used like:
...
OS.indent(i) << "whatever";
people seem to like indenting things ;-)
llvm-svn: 79784
2009-08-22 23:10:29 +00:00
Anton Korobeynikov
876955cbb0
Fix typo.
...
llvm-svn: 79688
2009-08-21 23:09:47 +00:00
Anton Korobeynikov
13e8c7ef20
Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
...
This fixes PR2555
llvm-svn: 79677
2009-08-21 22:10:30 +00:00
Erick Tryzelaar
6096409238
Clean up the APInt function getDigit.
...
llvm-svn: 79602
2009-08-21 06:48:37 +00:00
Eric Christopher
43a1decc8c
Update error messages for '+'. Fix grammar and make the two
...
negative checks resemble each other.
llvm-svn: 79595
2009-08-21 04:10:31 +00:00
Eric Christopher
820256bc99
Fix trailing whitespace and 80-col violation.
...
llvm-svn: 79594
2009-08-21 04:06:45 +00:00
Erick Tryzelaar
dadb1571b7
Fix bug with APInt::getBitsNeeded with for base 10 numbers 0-9.
...
llvm-svn: 79593
2009-08-21 03:15:28 +00:00
Erick Tryzelaar
1264bcb4de
Allow '+' to appear in APInt strings, and add more unit tests.
...
llvm-svn: 79592
2009-08-21 03:15:14 +00:00
Erick Tryzelaar
da666c801c
Add support for including '+' in APFloat strings, more asserts,
...
and many new unit tests.
llvm-svn: 79574
2009-08-20 23:30:43 +00:00
Dan Gohman
e392e6236d
Add a comment explaining why llvm_unreachable_internal doesn't call
...
the ErrorHandler callback.
llvm-svn: 79541
2009-08-20 17:15:19 +00:00
Daniel Dunbar
bf5998edfb
Fix two APFloat bugs in converting hexadecimal constants.
...
llvm-svn: 79540
2009-08-20 17:12:33 +00:00
Eli Friedman
28c7bbf515
Add triple parsing support for TCE.
...
llvm-svn: 79461
2009-08-19 20:46:03 +00:00
Daniel Dunbar
8b0b11582d
Switch to SmallString::str from SmallString::c_str, and remove
...
SmallString::c_str.
llvm-svn: 79456
2009-08-19 20:07:03 +00:00
Daniel Dunbar
e813cbaa21
Change raw_svector_ostream to reserve the input buffer if necessary, Ted was
...
right.
- This class turns out to be much more convenient to use if we do this; clients
can make sure the buffer is always big enough if they care (since our current
idiom tends to be to use a SmallString<256> for the input to this we should
generally be avoiding an unnecessary malloc).
Also, add a convenience raw_svector_ostream::str method which flushes the buffer
and returns a StringRef for the vector contents.
llvm-svn: 79446
2009-08-19 18:40:58 +00:00
Daniel Dunbar
ea579e3d29
Switch Twine::str() to use toVector(), which is now efficient.
...
llvm-svn: 79437
2009-08-19 18:09:47 +00:00
Daniel Dunbar
b090bf4626
Switch raw_svector_ostream to use the vector as the ostream buffer.
...
- This avoids unnecessary malloc/free overhead in the common case, and
unnecessary copying from the ostream buffer into the output vector.
llvm-svn: 79434
2009-08-19 17:54:29 +00:00
Daniel Dunbar
465de3e2be
Speculatively revert r79375, which may be breaking bootstrap, although in a
...
rather obscure way (the other candidate is r79377).
llvm-svn: 79426
2009-08-19 16:25:25 +00:00
Daniel Dunbar
0cf168635e
raw_ostream: Simplify write(unsigned char) to match write(const char*, unsigned).
...
llvm-svn: 79386
2009-08-19 00:23:39 +00:00
Daniel Dunbar
835da36ee9
raw_ostream: Remove pointless redefinitions of tell().
...
- The base class implementation is correct.
llvm-svn: 79385
2009-08-19 00:14:25 +00:00
Daniel Dunbar
317a6cd010
raw_ostream: Add the capability for subclasses to manually install an external
...
buffer.
llvm-svn: 79382
2009-08-18 23:42:36 +00:00
Daniel Dunbar
17a6fd2299
raw_ostream: Reduce FormattedStream's reliance on raw_ostream's implementation.
...
- Kill off begin(), end(), and iterator. It isn't clear what these
mean. Instead provide getBufferStart(), which can be used with
GetNumBytesInBuffer to the same effect.
- Update ComputeColumn to take arguments for the buffer to scan, this
simplifies the implementation of write_impl substantially.
- This should also fix possible problems with the scanning pointer pointing
outside of the current raw_ostream buffer.
llvm-svn: 79379
2009-08-18 23:36:04 +00:00
Daniel Dunbar
bc96fe7246
Speed up raw_ostream::<<(unsigned long long) for 32-bit systems by doing most
...
div/mods in 32-bits.
llvm-svn: 79375
2009-08-18 22:24:00 +00:00
Dan Gohman
23f90c1d3a
Fix a bug in raw_ostream::write(char) introduced by the change to
...
allow underlying stream classes to decline buffering. After
calling SetBuffered(), re-check whether the stream is Unbuffered
in order to handle the case where the underlying stream has
declined buffering.
llvm-svn: 79362
2009-08-18 20:09:59 +00:00
Daniel Dunbar
d882f4b6ff
Revert r78924, disabling buffering defeats all the fast paths in raw_ostream.
...
llvm-svn: 79361
2009-08-18 20:07:36 +00:00
Daniel Dunbar
959323a260
Improve Triple to recognize the OS in i386-mingw32.
...
llvm-svn: 79359
2009-08-18 19:26:55 +00:00
Erick Tryzelaar
a9680df669
Fix an uninitialized value warning in APFloat.
...
llvm-svn: 79353
2009-08-18 18:20:37 +00:00
Daniel Dunbar
33d86f22f2
Fix Triple to recognize the 'bfin' arch.
...
llvm-svn: 79325
2009-08-18 07:06:26 +00:00
Daniel Dunbar
320d331311
Recognize xscale as an ARM arch.
...
- Patch by Yonggang Luo.
llvm-svn: 79315
2009-08-18 04:51:26 +00:00
Daniel Dunbar
781f94d7fe
Add Triple matching for pic16 arch and solaris OS.
...
- Patch by Yonggang Luo.
llvm-svn: 79314
2009-08-18 04:43:27 +00:00
Chris Lattner
ee97b8b11c
the MinPad argument to PadToColumn only really makes sense to be 1,
...
just remove the argument and replace it with 1.
llvm-svn: 79246
2009-08-17 15:48:08 +00:00
Erick Tryzelaar
19f63b2e4d
Modify APFloat to take a StringRef instead of a c string.
...
This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.
llvm-svn: 79210
2009-08-16 23:36:19 +00:00
Dan Gohman
b20757bdeb
Mingw also doesn't have st_blksize.
...
llvm-svn: 79142
2009-08-15 21:41:03 +00:00
Dan Gohman
177102271d
Always check to see if raw_fd_ostream's file descriptor is attached to
...
a terminal, not just when it's STDOUT_FILENO.
llvm-svn: 79066
2009-08-15 02:05:19 +00:00
Dan Gohman
186b85dbcc
Add support for column computation on unbuffered streams.
...
llvm-svn: 79065
2009-08-15 02:02:59 +00:00
Dan Gohman
250635e3ac
Move FormattedStream's write_impl out of line.
...
llvm-svn: 79064
2009-08-15 02:01:04 +00:00
Dan Gohman
e9f0bf5dee
Remove an unnecessary #include.
...
llvm-svn: 79063
2009-08-15 01:56:38 +00:00
Chris Lattner
0792195c5a
fix "pc" to be lower case in a target triple, patch by Yonggang Luo
...
llvm-svn: 79016
2009-08-14 18:48:13 +00:00
Dan Gohman
4af229e0eb
When standard output is a terminal, set outs() to be unbuffered, to
...
mimic the behavior of stdtout, which is line-buffered when the output
is a terminal. This fixes some issues with bugpoint output appearing
being printed out of order.
llvm-svn: 78953
2009-08-13 23:18:56 +00:00
Dan Gohman
c04a00a0b0
Fix a compiler warning about comparing signed with unsigned.
...
llvm-svn: 78933
2009-08-13 20:32:03 +00:00
Dan Gohman
9820555546
Add an assert to check copy_to_buffer's precondition.
...
llvm-svn: 78926
2009-08-13 18:38:15 +00:00
Dan Gohman
854ea3c580
Set raw_os_ostream, raw_string_ostream, and raw_svector_ostream to be
...
unbuffered. std::ostream does its own buffering, and std::string and
SmallVector both have allocation strategies intended to handle frequent
appending.
llvm-svn: 78924
2009-08-13 17:41:40 +00:00
Dan Gohman
84487b98a5
Add support to raw_ostream for sizing the buffer according to the
...
needs of the underlying output mechanism. raw_fd_ostream now uses
st_blksize from fstat to determine a buffer size.
llvm-svn: 78923
2009-08-13 17:27:29 +00:00
Dan Gohman
54401d4174
Move SetBufferSize and SetUnbuffered out of line.
...
llvm-svn: 78909
2009-08-13 15:58:55 +00:00
Dan Gohman
52022c2373
Fix the buffer handling logic so that write_impl is always called with
...
a full buffer, rather than often being called with a
slightly-less-than-full buffer.
llvm-svn: 78907
2009-08-13 15:44:52 +00:00
Daniel Dunbar
3a1efd11bb
Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
...
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
llvm-svn: 78885
2009-08-13 02:33:34 +00:00
Dan Gohman
1432ef864e
This void is implicit in C++.
...
llvm-svn: 78848
2009-08-12 22:10:57 +00:00
Dale Johannesen
54be785be7
Add attempted idiotproofing comment per review.
...
llvm-svn: 78825
2009-08-12 18:04:11 +00:00
Dale Johannesen
34c08bbbf9
Fix a nondeterministic bug in APInt::roundToDouble;
...
when !isSingleWord() but getActiveBits() is small,
we were using the pointer value instead of the low
word of the integer value.
llvm-svn: 78821
2009-08-12 17:42:34 +00:00
Chris Lattner
8268cc9c77
the x86 version of the name is x86-64, not x86_64. Handle this properly
...
in getArchTypeForLLVMName.
llvm-svn: 78799
2009-08-12 06:45:02 +00:00
Chris Lattner
e0971bc29f
add support for mingw64 target triples.
...
llvm-svn: 78797
2009-08-12 06:32:10 +00:00
Chris Lattner
553c9f35a7
add a couple of helpers to the Triple class for decoding
...
the darwin version string. This should help consolidate
the variety of weird functions we have scattered around the
codebase that do stuff like this.
llvm-svn: 78792
2009-08-12 06:19:40 +00:00
Chris Lattner
5d47e93532
add a trivial line # cache to SourceMgr to make repeated queries to
...
FindLineNumber much faster when in sequence.
llvm-svn: 78693
2009-08-11 17:49:14 +00:00
Daniel Dunbar
1bf60c257c
Add support for a user supplied pointer argument to llvm_install_error_handler.
...
llvm-svn: 78553
2009-08-10 03:36:26 +00:00
Dan Gohman
46ffffa750
Fix FindExecutable to use sys::Path::GetMainExecutable instead of
...
just argv[0]. And remove the code for searching the current
working directory and for searching PATH; the point of FindExecutable
is not to find whatever version of the executable can be found by
searching around, but to find an executable that accompanies the
current executable.
Update the tools to use sys::Program::FindProgramByName when they
want PATH searching.
llvm-svn: 78240
2009-08-05 20:21:17 +00:00
Dan Gohman
400cd1a87a
cerr isn't buffered so it doesn't need to be flushed.
...
llvm-svn: 78135
2009-08-05 00:44:01 +00:00
Daniel Dunbar
719d235520
Remove now unused arguments from TargetRegistry::lookupTarget.
...
llvm-svn: 77950
2009-08-03 04:20:57 +00:00
Daniel Dunbar
0f16ea5c30
Pass target triple string in to TargetMachine constructor.
...
This is not just a matter of passing in the target triple from the module;
currently backends are making decisions based on the build and host
architecture. The goal is to migrate to making these decisions based off of the
triple (in conjunction with the feature string). Thus most clients pass in the
target triple, or the host triple if that is empty.
This has one important change in the way behavior of the JIT and llc.
For the JIT, it was previously selecting the Target based on the host
(naturally), but it was setting the target machine features based on the triple
from the module. Now it is setting the target machine features based on the
triple of the host.
For LLC, -march was previously only used to select the target, the target
machine features were initialized from the module's triple (which may have been
empty). Now the target triple is taken from the module, or the host's triple is
used if that is empty. Then the triple is adjusted to match -march.
The take away is that -march for llc is now used in conjunction with the host
triple to initialize the subtarget. If users want more deterministic behavior
from llc, they should use -mtriple, or set the triple in the input module.
llvm-svn: 77946
2009-08-03 04:03:51 +00:00
Jakob Stoklund Olesen
552d8d6618
Analog Devices Blackfin back-end.
...
Generate code for the Blackfin family of DSPs from Analog Devices:
http://www.analog.com/en/embedded-processing-dsp/blackfin/processors/index.html
We aim to be compatible with the exsisting GNU toolchain found at:
http://blackfin.uclinux.org/gf/project/toolchain
The back-end is experimental.
llvm-svn: 77897
2009-08-02 17:32:10 +00:00
Benjamin Kramer
666cf9d2f2
Remove duplicated colons and spaces.
...
llvm-svn: 77892
2009-08-02 12:13:02 +00:00
Daniel Dunbar
2eaf396c41
Add missing flush().
...
llvm-svn: 77859
2009-08-02 04:12:28 +00:00
Ted Kremenek
defdbdc5ca
Update CMake files.
...
llvm-svn: 77709
2009-07-31 18:50:22 +00:00
Dan Gohman
060ca138e2
Remove Annotation.h, which is no longer used in the LLVM tree.
...
llvm-svn: 77706
2009-07-31 18:36:25 +00:00
Daniel Dunbar
a91dd9bf5f
Twine: Directly support int, long, and long long types.
...
- This should resolve Cygwin gcc ambiguities.
llvm-svn: 77624
2009-07-30 21:15:14 +00:00
Daniel Dunbar
bd8556e0fb
Twine: Use raw_ostream::write_hex, remove unused itohexstr method.
...
llvm-svn: 77617
2009-07-30 18:30:19 +00:00
Daniel Dunbar
6c9629b92a
Add raw_ostream::write_hex
...
llvm-svn: 77614
2009-07-30 18:21:23 +00:00
Daniel Dunbar
e8b3236284
Twine: Provide [u]int{32,64} conversions via implicit constructors instead of
...
explicitly.
llvm-svn: 77576
2009-07-30 03:47:15 +00:00
Daniel Dunbar
59a60c57a6
Perform simplification noticed by Reid.
...
llvm-svn: 77477
2009-07-29 17:29:36 +00:00
David Greene
ea2f1ceb4b
Re-apply previous changes and improve column padding performance some more.
...
llvm-svn: 77461
2009-07-29 16:08:27 +00:00
Daniel Dunbar
b49994ad7e
Twines: Support numeric conversion directly (uitostr, etc).
...
- Provides static constructors for doing number to string conversions without
using temporaries.
- There are several ways to do this, I think given the Twine constraints this
is the simplest one.
- One FIXME for fast number -> hex conversion.
- Added another comment on one last major bit of perf work Twines need, which
is to make raw_svector_ostream more efficient.
llvm-svn: 77445
2009-07-29 07:08:44 +00:00
Daniel Dunbar
a94f58aee5
raw_ostream: Follow the 32-bit path when printing "small" decimal numbers.
...
llvm-svn: 77444
2009-07-29 06:45:14 +00:00
Daniel Dunbar
af71a3035b
Revert r77397, it causes significant regressions in llc performance.
...
llvm-svn: 77425
2009-07-29 03:04:22 +00:00
David Greene
5f6511c3d5
Improve performance of PadToColumn by eliminating flushes.
...
llvm-svn: 77397
2009-07-28 23:26:34 +00:00
Dan Gohman
4b66b47a7c
Make raw_null_ostream flush its buffer in its destructor, so that
...
it conforms to the assertion added in r77245. This fixes a failure
in qa_override.c in clang's testsuite.
llvm-svn: 77255
2009-07-27 21:46:02 +00:00
Dan Gohman
1b763293a6
Add an assertion check to raw_ostream's destructor to verify
...
that the subclass hasn't left any pending data in the buffer.
llvm-svn: 77245
2009-07-27 20:49:44 +00:00
Daniel Dunbar
a0ad190a35
Sort list of targets in --version.
...
llvm-svn: 77127
2009-07-26 05:09:50 +00:00
Daniel Dunbar
bd481a119c
Oops, forgot XCore. Sorry XCore!
...
llvm-svn: 77125
2009-07-26 04:52:45 +00:00
Daniel Dunbar
172649be2c
Update for API change.
...
llvm-svn: 77124
2009-07-26 04:23:03 +00:00
Daniel Dunbar
19e7076ddd
Update Triple to use StringRef/Twine based APIs.
...
- This is now shorter, simpler, safer, and more efficient, what a deal.
llvm-svn: 77119
2009-07-26 03:31:47 +00:00
Daniel Dunbar
4aea2d97c8
Remove unused header
...
llvm-svn: 77115
2009-07-26 02:23:52 +00:00
Daniel Dunbar
bc981d8efa
Kill Target specific ModuleMatchQuality stuff.
...
- This was overkill and inconsistently implemented.
llvm-svn: 77114
2009-07-26 02:22:58 +00:00
Daniel Dunbar
47d679151b
Add TargetRegistry::lookupTarget.
...
- This is a simplified mechanism which just looks up a target based on the
target triple, with a few additional flags.
- Remove getClosestStaticTargetForModule, the moral equivalent is now:
lookupTarget(Mod->getTargetTriple, true, false, ...);
- This no longer does the fuzzy matching with target data (based on endianness
and pointer width) that getClosestStaticTargetForModule was doing, but this
was deemed unnecessary.
llvm-svn: 77111
2009-07-26 02:12:58 +00:00
Reid Kleckner
4b1f2f4779
Added a test and fixed a bug in BumpPtrAllocator relating to large alignment
...
values. Hopefully this fixes PR4622.
llvm-svn: 77088
2009-07-25 21:26:02 +00:00
Daniel Dunbar
691a4784db
Simplify JIT target selection.
...
- Instead of requiring targets to define a JIT quality match function, we just
have them specify if they support a JIT.
- Target selection for the JIT just gets the host triple and looks for the best
target which matches the triple and has a JIT.
llvm-svn: 77060
2009-07-25 10:09:50 +00:00
Daniel Dunbar
cd51ea510a
Allow llvm_report_error to accept a Twine.
...
llvm-svn: 76961
2009-07-24 07:58:10 +00:00
Daniel Dunbar
0cf4e697fd
Update CMake
...
llvm-svn: 76957
2009-07-24 07:04:49 +00:00
Daniel Dunbar
afcf5b30cb
Add Twine ADT.
...
- Not currently used.
llvm-svn: 76956
2009-07-24 07:04:27 +00:00
Daniel Dunbar
a3d677b002
Switch to raw_ostream.
...
llvm-svn: 76943
2009-07-24 04:01:01 +00:00
David Greene
8e621f0182
Write space padding as one string to speed up comment printing.
...
llvm-svn: 76910
2009-07-23 23:21:10 +00:00
Reid Kleckner
c2d882dd1a
Re-committing changes from r76825 to BumpPtrAllocator with a fix and tests for
...
an off-by-one error.
llvm-svn: 76891
2009-07-23 18:34:13 +00:00
Daniel Dunbar
5bf72e20eb
Convert StringMap to using StringRef for its APIs.
...
- Yay for '-'s and simplifications!
- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.
- NIFC.
llvm-svn: 76888
2009-07-23 18:17:34 +00:00
Reid Kleckner
921673225c
Reverting r76825 and r76828, since they caused clang runtime errors and some build failure involving memset.
...
llvm-svn: 76838
2009-07-23 01:40:54 +00:00
Zhongxing Xu
57421f3e0f
add header for 'memset'.
...
llvm-svn: 76837
2009-07-23 01:38:47 +00:00
Reid Kleckner
5bd6105d65
Parameterize the BumpPtrAllocator over a slab allocator. It defaults to using
...
malloc, so there should be no functional changes to other code.
These changes are necessary since I have plans to use this allocator in the JIT
memory manager, and it needs a special allocator.
I also added some tests which helped me pinpoint some bugs.
llvm-svn: 76825
2009-07-23 00:30:41 +00:00
David Greene
7ea9d0b6e2
Hide the DOUT static variable behind a function interface.
...
llvm-svn: 76425
2009-07-20 16:16:06 +00:00
Nick Lewycky
567daf3ce8
Fix ConstantRange::unionWith. Also make it work a little hard in some cases to
...
return the smallest union of two ranges instead of just any range that happens
to contain the union.
llvm-svn: 76360
2009-07-19 03:44:35 +00:00
Nick Lewycky
0d13903563
Replace intersectWith with maximalIntersectWith. The latter guarantees that
...
all values belonging to the intersection will belong to the resulting range.
The former was inconsistent about that point (either way is fine, just pick
one.) This is part of PR4545.
llvm-svn: 76289
2009-07-18 06:34:42 +00:00
Daniel Dunbar
50745bf080
Provide slightly more refined error message when trying to lookup a target, and
...
none are registered.
llvm-svn: 76181
2009-07-17 15:50:49 +00:00
Daniel Dunbar
95a551ad75
Add raw_null_ostream and llvm::nulls(), a raw_ostream that discards output.
...
- No functionality change.
llvm-svn: 76103
2009-07-16 21:17:53 +00:00
Dan Gohman
f199ad6ebc
Use size_t.
...
llvm-svn: 76069
2009-07-16 15:24:40 +00:00
Chris Lattner
5d485f7893
add a knob to turn off PrettyStackTrace globally. Patch by Zoltan
...
Varga!
llvm-svn: 75897
2009-07-16 06:17:45 +00:00
Daniel Dunbar
78c8fb1056
Add registered target list to --version output.
...
llvm-svn: 75889
2009-07-16 02:06:09 +00:00
Dan Gohman
58fcef917c
Change raw_ostream so that it doesn't call llvm_report_error
...
immediately on every output error. Instead, add a flag to
raw_ostream, and set the flag whenever an error is detected.
The flag can be queried and cleared from the public API. This
gives applications more flexibility to handling errors in
application-specific ways.
If the flag is not cleared when the raw_ostream is destructed,
llvm_report_error is called from the destructor. This ensures
that errors are not implicitly silenced, and provides
convenient default behavior for tools like llc and opt.
Clients wishing to avoid llvm_report_error calls from
raw_ostream should check for errors and clear the error flag.
llvm-svn: 75857
2009-07-15 23:25:33 +00:00
Daniel Dunbar
e833810a5e
Reapply TargetRegistry refactoring commits.
...
--- Reverse-merging r75799 into '.':
U test/Analysis/PointerTracking
U include/llvm/Target/TargetMachineRegistry.h
U include/llvm/Target/TargetMachine.h
U include/llvm/Target/TargetRegistry.h
U include/llvm/Target/TargetSelect.h
U tools/lto/LTOCodeGenerator.cpp
U tools/lto/LTOModule.cpp
U tools/llc/llc.cpp
U lib/Target/PowerPC/PPCTargetMachine.h
U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U lib/Target/PowerPC/PPCTargetMachine.cpp
U lib/Target/PowerPC/PPC.h
U lib/Target/ARM/ARMTargetMachine.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/ARM/ARMTargetMachine.h
U lib/Target/ARM/ARM.h
U lib/Target/XCore/XCoreTargetMachine.cpp
U lib/Target/XCore/XCoreTargetMachine.h
U lib/Target/PIC16/PIC16TargetMachine.cpp
U lib/Target/PIC16/PIC16TargetMachine.h
U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U lib/Target/Alpha/AlphaTargetMachine.cpp
U lib/Target/Alpha/AlphaTargetMachine.h
U lib/Target/X86/X86TargetMachine.h
U lib/Target/X86/X86.h
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
U lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
U lib/Target/X86/X86TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.h
U lib/Target/CppBackend/CPPTargetMachine.h
U lib/Target/CppBackend/CPPBackend.cpp
U lib/Target/CBackend/CTargetMachine.h
U lib/Target/CBackend/CBackend.cpp
U lib/Target/TargetMachine.cpp
U lib/Target/IA64/IA64TargetMachine.cpp
U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U lib/Target/IA64/IA64TargetMachine.h
U lib/Target/IA64/IA64.h
U lib/Target/MSIL/MSILWriter.cpp
U lib/Target/CellSPU/SPUTargetMachine.h
U lib/Target/CellSPU/SPU.h
U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U lib/Target/CellSPU/SPUTargetMachine.cpp
U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
U lib/Target/Mips/MipsTargetMachine.cpp
U lib/Target/Mips/MipsTargetMachine.h
U lib/Target/Mips/Mips.h
U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U lib/Target/Sparc/SparcTargetMachine.cpp
U lib/Target/Sparc/SparcTargetMachine.h
U lib/ExecutionEngine/JIT/TargetSelect.cpp
U lib/Support/TargetRegistry.cpp
llvm-svn: 75820
2009-07-15 20:24:03 +00:00
Dan Gohman
607818a2c1
Add a Force option to raw_fd_ostream to specify whether opening
...
an existing file is considered an error. Convert several tools
to use raw_fd_ostream instead of std::ostream, and to use this
new option instead of doing a manual check.
llvm-svn: 75801
2009-07-15 17:29:42 +00:00
Stuart Hastings
338191cd67
Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair broken LLVM-GCC build.
...
Will revert 75770 in the llvm-gcc trunk.
llvm-svn: 75799
2009-07-15 17:27:11 +00:00
Dan Gohman
6935332d5f
Add a raw_ostream version of CheckBitcodeOutputToConsole.
...
llvm-svn: 75796
2009-07-15 17:04:50 +00:00
Dan Gohman
213e87b1fe
Check for errors on close(2) too. And lseek(2).
...
llvm-svn: 75793
2009-07-15 16:43:01 +00:00
Dan Gohman
33fb640835
Use 0664 instead of 0644 for the default open mode. This is
...
consistent with common std::ostream implmentations, and it gives
the user the option of using the umask group write bit.
llvm-svn: 75792
2009-07-15 16:39:40 +00:00
Daniel Dunbar
50859c907a
Allow multiple registrations of the same target.
...
- This doesn't necessarily seem like a good idea, but the JIT unittest
currently relies on it.
llvm-svn: 75769
2009-07-15 10:32:44 +00:00
Daniel Dunbar
dcb50b9b54
Detect write failures on raw_fd_ostream.
...
llvm-svn: 75758
2009-07-15 08:11:46 +00:00
Daniel Dunbar
54995de1d4
Fix stupid thinko
...
llvm-svn: 75754
2009-07-15 07:37:49 +00:00
Daniel Dunbar
1c6633221f
Address some review comments on TargetRegistry.
...
llvm-svn: 75753
2009-07-15 07:09:29 +00:00
Ted Kremenek
1492e1781a
Update CMake file.
...
llvm-svn: 75746
2009-07-15 05:39:55 +00:00
Daniel Dunbar
078a71e4a9
Add new TargetRegistry.
...
Targets implement a single global Target structure which will live in a new
<Target>/TargetInfo library; this will be present in any image which the target
is usable in.
- Optional target specific classes can then be registered and attached to the
Target description.
- Registration for normal Targets will be done via the initialization functions
instead of using static constructors.
- This allows clients to use a single interface to obtain target data, without
requiring the code generator be linked in. It also provides a natural
extension point for adding new optional target data (assembler parser,
disassembler, etc.).
- This also provides a new entry point for obtaining a target for a particular
triple (without a module).
- Not yet used, however this should eventually replace the TargetMachineRegistry.
llvm-svn: 75739
2009-07-15 04:24:58 +00:00
Chris Lattner
ca99c348ed
minor syntax cleanup
...
llvm-svn: 75707
2009-07-14 23:14:10 +00:00
Ted Kremenek
57da3ed4ce
Update CMake file.
...
llvm-svn: 75677
2009-07-14 20:44:17 +00:00
David Greene
a31f96cf2b
Have asm printers use formatted_raw_ostream directly to avoid a
...
dynamic_cast<>.
llvm-svn: 75670
2009-07-14 20:18:05 +00:00
Torok Edwin
fbcc663cbf
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
...
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
2009-07-14 16:55:14 +00:00
Torok Edwin
1ab40bef8d
After converting assert(0) to LLVM_UNREACHABLE we lost file/line location.
...
Fix by making the LLVM_UNREACHABLE pass __FILE__ and __LINE__ to
llvm_unreachable.
llvm-svn: 75631
2009-07-14 12:49:22 +00:00
Chris Lattner
01218d5b17
Add NetBSD to the Triple class, patch by Krister Walfridsson!
...
llvm-svn: 75489
2009-07-13 20:22:23 +00:00
David Greene
20f6ac0738
Make some more changes suggested by Chris. Manipulators go away.
...
llvm-svn: 75472
2009-07-13 16:49:27 +00:00
Daniel Dunbar
763ace92c0
Switch to raw_ostream.
...
llvm-svn: 75451
2009-07-13 05:27:30 +00:00
Nick Lewycky
571bf54569
Fix an error in ConstantRange::getSignedMax on wrapped ranges. Thanks once
...
again to Daniel Dunbar and KLEE!
llvm-svn: 75449
2009-07-13 04:50:21 +00:00
Nick Lewycky
5edc459220
'i8 full-range' sign extended to i16 should equal [-128, 128) not [-128, 127).
...
Found by Daniel Dunbar and KLEE.
llvm-svn: 75448
2009-07-13 04:17:23 +00:00
Nick Lewycky
5302389442
Multiply was very wrong for wrapped ranges. This supplies a half-fix that will
...
generally return Full on all wrapped inputs. "Fixes" PR4545.
llvm-svn: 75444
2009-07-13 03:27:41 +00:00
Nick Lewycky
73b704dd9c
Fix a bug summing two full sets. The overflow checking doesn't handle sets as
...
large as the full set, only those one size smaller. Thanks to Daniel Dunbar
who found this bug using Klee!
llvm-svn: 75443
2009-07-13 02:49:08 +00:00
Daniel Dunbar
df555fd6f8
Improve sys::Path::makeAbsolute on Win32.
...
- Patch by Viktor Kutuzov!
- Minor tweak by me to add llvm_unreachable calls on FIXMEd error paths.
llvm-svn: 75424
2009-07-12 20:23:56 +00:00
Nick Lewycky
f1b8cb3760
Implement udiv for ConstantRanges.
...
llvm-svn: 75413
2009-07-12 05:18:18 +00:00
Nick Lewycky
2951c990cd
Implement ConstantRange::multiply based on the code in LoopVR.
...
llvm-svn: 75410
2009-07-12 02:19:05 +00:00
Torok Edwin
56d0659726
assert(0) -> LLVM_UNREACHABLE.
...
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
2009-07-11 20:10:48 +00:00
Nick Lewycky
fc69ee2cc6
Fix handling of max and full set.
...
A full set is a constant range that represents any number. If you take the
umax of that and [5, 10) you end up with [5, INT_MAX] because the values less
than 5 would be umax's against a value which is at least 5.
llvm-svn: 75372
2009-07-11 19:22:21 +00:00
Nick Lewycky
9c5fc41547
Clarify and simplify.
...
llvm-svn: 75366
2009-07-11 17:04:01 +00:00
Torok Edwin
ccb29cd290
Convert more assert(0)+abort() -> LLVM_UNREACHABLE,
...
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
2009-07-11 13:10:19 +00:00
Nick Lewycky
dcfdce9067
Move a method that creates constant ranges relative to another constant range
...
per icmp predicate out of predsimplify and into ConstantRange.
Add another utility method that determines whether one range is a subset of
another. Combine with the former to determine whether icmp pred range, range
is known to be true or not.
llvm-svn: 75357
2009-07-11 06:15:39 +00:00
David Greene
c97b778b3c
Make changes suggested by Chris and eliminate newly-added raw_ostream
...
hooks as they're no longer needed.
The major change with this patch is to make formatted_raw_ostream usable
by any client of raw_ostream.
llvm-svn: 75283
2009-07-10 21:14:44 +00:00
David Greene
ab11a81fc0
Add some hooks that a redesigned AsmStream needs to do its job. These
...
allow derived classes to examine the stream buffer before it's flushed.
llvm-svn: 75199
2009-07-09 23:43:41 +00:00
Dan Gohman
dc33ae27ed
Revert the part of 75177 that split ConstantRange into two classes, and
...
merge the new functionality and unittests into ConstantRange. Thanks to
Nick Lewycky for pointing out that it isn't necessary to have two separate
classes here.
llvm-svn: 75191
2009-07-09 23:16:10 +00:00
Dan Gohman
5035fbf91c
Add a ConstantSignedRange class, which does for signed integers
...
what ConstantRange does for unsigned integers. Factor out a
common base class for common functionality.
Add some new functions for performing arithmetic on constant
ranges. Some of these are currently just stubbed out with
conservative implementations.
Add unittests for ConstantRange and ConstantSignedRange.
llvm-svn: 75177
2009-07-09 22:07:27 +00:00
David Greene
4417b4c80b
Add support for other GraphViz display tools. This can help
...
with very large graphs, where dot isn't necessarily the
most visually pleasing way of looking at the graph.
llvm-svn: 75144
2009-07-09 17:06:18 +00:00
David Greene
9dadbbd755
Allow users of GraphWriter to display graphs asynchronously. This
...
provides a way to quickly dump a bunch of graph information to dot files
and display them. It's a timesaver when working on large systems.
llvm-svn: 75056
2009-07-08 21:53:41 +00:00
Mike Stump
54731d5cde
Fix build.
...
llvm-svn: 74936
2009-07-07 18:52:14 +00:00
Owen Anderson
5c96ef7c4e
Have scoped mutexes take referenes instead of pointers.
...
llvm-svn: 74931
2009-07-07 18:33:04 +00:00
Torok Edwin
973c214ce0
Fix braces.
...
llvm-svn: 74923
2009-07-07 17:39:53 +00:00
Torok Edwin
6c2d233e7a
Introduce new error handling API.
...
This will replace exit()/abort() style error handling with an API
that allows clients to register custom error handling hooks.
The default is to call exit(1) when no error handler is provided.
llvm-svn: 74922
2009-07-07 17:32:34 +00:00
Chris Lattner
200e0757c7
switch the .ll parser to use SourceMgr.
...
llvm-svn: 74735
2009-07-02 23:08:13 +00:00
Chris Lattner
cc64cc9313
add an explicit class for holding llvm::SourceMgr diagnostics and use
...
it to print them. This gives us column numbers in the diag line. Before:
t.s:4: error: unexpected token in argument list
mov %eax %edx
^
now:
t.s:4:11: error: unexpected token in argument list
mov %eax %edx
^
llvm-svn: 74732
2009-07-02 22:24:20 +00:00
Daniel Dunbar
4aef67c99d
Tweak FindExecutable so that relative executable paths work as well.
...
llvm-svn: 74645
2009-07-01 21:36:28 +00:00
Daniel Dunbar
b8f779db87
Fix FindExecutable to work if given an absolute executable path name.
...
- Patch by Viktor Kutuzov, with tweaks by me.
llvm-svn: 74608
2009-07-01 15:26:13 +00:00
Dan Gohman
10f1733d9a
Reapply 74494, this time removing the conflicting definition of operator<<
...
in APIntTest.cpp.
llvm-svn: 74550
2009-06-30 20:10:56 +00:00
Bill Wendling
778a517725
Temporarily revert r74494. It was causing failures in the unit tests.
...
llvm-svn: 74515
2009-06-30 07:05:27 +00:00
Owen Anderson
00d07afe98
Fix the build on Cygwin. Patch by Aaron Gray.
...
llvm-svn: 74510
2009-06-30 05:33:46 +00:00
Dan Gohman
e95d409bdd
Define an operator<< for APInt to be used with std::ostream.
...
This will allow it to be used in unittests that use gtest's
EXPECT_EQ.
llvm-svn: 74494
2009-06-30 01:28:08 +00:00
Daniel Dunbar
c9dc78ae40
Normalize SourceMgr messages.
...
- Don't print "Parsing" in front of every message.
- Take additional "type" argument which is prepended to the message (with ": ")
if given.
- Update clients to print errors (warnings) as:
<filename>:<line number>: error(warning): ...
llvm-svn: 74489
2009-06-30 00:49:23 +00:00
Duncan Sands
14814d4477
Add triple for OpenBSD.
...
llvm-svn: 74422
2009-06-29 13:36:13 +00:00
Owen Anderson
4a03279231
Use atomic operations for accessing this global counter.
...
llvm-svn: 74294
2009-06-26 18:09:03 +00:00
Douglas Gregor
6d94e6a5f3
Fix linking of llvm-ld and lli with CMake, from Xerxes Rånby
...
llvm-svn: 74285
2009-06-26 15:37:00 +00:00
Owen Anderson
76cfd205ff
Support thread-local pretty stack traces.
...
llvm-svn: 74227
2009-06-25 23:31:33 +00:00
Owen Anderson
ca8f986f63
Use atomic operations when accessing statistics, and make the lazy initialization of statistics actually threadsafe.
...
llvm-svn: 74005
2009-06-23 21:19:38 +00:00
Owen Anderson
e9b1beb543
Make timers threadsafe again. This isn't quite as nice as I'd hoped (it uses locking rather than atomic arithmetic),
...
but should work on all the platforms we care about.
I might revisit this if a totally awesome way to do it occurs to me.
llvm-svn: 74002
2009-06-23 20:52:29 +00:00
Owen Anderson
5cc4131063
Revert my last series of commits related to Timer and 64-bit atomics. Not all the targets
...
we care about are capable of supporting it.
llvm-svn: 73993
2009-06-23 20:17:22 +00:00
Lang Hames
c547bad3ff
Switched size_t to int64_t to prevent type mismatch in call to max.
...
llvm-svn: 73988
2009-06-23 19:49:23 +00:00
Owen Anderson
ddf74dc986
Actually, these need to be signed integers, not unsigned.
...
llvm-svn: 73978
2009-06-23 18:21:13 +00:00
Owen Anderson
bf45b3e2ad
Use 64-bit integer counters for tracking time, rather than doubles. This will be more atomic op friendly.
...
llvm-svn: 73974
2009-06-23 18:12:30 +00:00
Owen Anderson
4ed41c8be8
Make the lazy initialization of DefaultTimerGroup threadsafe.
...
llvm-svn: 73963
2009-06-23 17:33:37 +00:00
Owen Anderson
891fe79672
Revert r73923, which broke clang.
...
llvm-svn: 73957
2009-06-23 16:36:10 +00:00
Owen Anderson
bee30f58fb
Guard the plugin loader.
...
llvm-svn: 73925
2009-06-23 00:02:39 +00:00
Owen Anderson
977c6b8998
Add guards around timer groups, which can be shared.
...
llvm-svn: 73923
2009-06-22 23:37:06 +00:00
Owen Anderson
975ce637db
Guard the statistics table.
...
llvm-svn: 73916
2009-06-22 23:08:27 +00:00
Owen Anderson
2d2ed3c54b
Guard the global annotation tables.
...
llvm-svn: 73913
2009-06-22 22:44:15 +00:00
Chris Lattner
2adc9e739c
rename SourceMgr::PrintError to PrintMessage.
...
llvm-svn: 73861
2009-06-21 21:22:11 +00:00
Chris Lattner
976af622a9
move include searching logic from TGLexer to SourceMgr.
...
llvm-svn: 73845
2009-06-21 05:06:04 +00:00
Chris Lattner
fd255754af
Rename TGSourceMgr -> SourceMgr.
...
llvm-svn: 73844
2009-06-21 03:41:50 +00:00
Chris Lattner
526c8cb557
rename TGLoc -> SMLoc.
...
llvm-svn: 73843
2009-06-21 03:39:35 +00:00
Chris Lattner
1b30e1ac45
move TGSourceMgr class out of TableGen into libsupport.
...
llvm-svn: 73842
2009-06-21 03:36:54 +00:00
Duncan Sands
0de39b42ff
Add support for AuroraUX. Patch by evocallaghan.
...
llvm-svn: 73766
2009-06-19 14:40:01 +00:00
Ted Kremenek
81ef65d491
Update CMake files to account for new location of Threading.cpp.
...
llvm-svn: 73708
2009-06-18 17:47:09 +00:00
Owen Anderson
7d42b95b6c
Move Threading.[h|cpp] from Support to System.
...
llvm-svn: 73707
2009-06-18 16:54:52 +00:00
Owen Anderson
993e4261d0
Add newline at end of file.
...
llvm-svn: 73551
2009-06-16 20:53:09 +00:00
Douglas Gregor
c791c37633
Add Threading.cpp to the CMake project files
...
llvm-svn: 73516
2009-06-16 17:45:38 +00:00
Owen Anderson
4cb4b6191a
Split the thread-related APIs out into their own file, and add a few more
...
calls for convenience.
llvm-svn: 73512
2009-06-16 17:33:51 +00:00
Torok Edwin
9b5a47fc3c
Add support for outputting ANSI colors to raw_fd_ostream.
...
llvm-svn: 72854
2009-06-04 07:09:50 +00:00
Mike Stump
799bf5855e
Add support for letting the client choose different flavors of NaNs. Testcase to be
...
added in clang.
llvm-svn: 72606
2009-05-30 03:49:43 +00:00
Bill Wendling
09f17a8479
Untabification.
...
llvm-svn: 72604
2009-05-30 01:09:53 +00:00
Douglas Gregor
bbcf90f936
Minor fix for CMake build system
...
llvm-svn: 72480
2009-05-27 16:52:17 +00:00
Daniel Dunbar
e3384c4f2e
Add llvm::triple constructor from arch, vendor, os strings, and recognize
...
DragonFly OS type.
llvm-svn: 72242
2009-05-22 02:24:11 +00:00
Evan Cheng
db338f3f41
80 column violation.
...
llvm-svn: 72235
2009-05-21 23:47:47 +00:00
Owen Anderson
e147774b05
Have llvm_start_multithreaded return a bool indicating whether multithreaded
...
initialization succeeded or not, rather than just asserting.
llvm-svn: 72182
2009-05-20 21:03:06 +00:00
Owen Anderson
b9a4a57699
Add llvm_start_multithreaded(), which starts up the LLVM internals in thread-safe mode. Provide double-check locking
...
initialization of ManagedStatic's when running in thread-safe mode.
llvm-svn: 72151
2009-05-20 00:39:20 +00:00
Eli Friedman
a97f07f22d
Tweak MemoryBuffer::getSTDIN so that it returns after the first EOF.
...
It doesn't matter for piped input, but it's annoying when typing at the
console.
llvm-svn: 71998
2009-05-18 08:44:04 +00:00
Mike Stump
0e78566e02
Add dumping support for DW_AT_APPLE_isa and DW_AT_APPLE_block.
...
Radar 6867696
llvm-svn: 71750
2009-05-14 00:03:51 +00:00
Mike Stump
889285d467
Fix whitespacing (space after switch).
...
llvm-svn: 71738
2009-05-13 23:23:20 +00:00
Jay Foad
fe0c648fee
Move helper functions for optimizing division by constant into the APInt
...
class.
llvm-svn: 70488
2009-04-30 10:15:35 +00:00
Bill Wendling
db59fda319
Add support for a character after a command line option. Like '-Os'.
...
llvm-svn: 70437
2009-04-29 23:26:16 +00:00
Chris Lattner
b869a0ade1
Fix PR4040: APInt's string constructor is too strict
...
patch by Jeff Yasskin!
llvm-svn: 70058
2009-04-25 18:34:04 +00:00
Douglas Gregor
b231e5791e
Make all raw_ostreams support the tell() function.
...
llvm-svn: 69583
2009-04-20 07:34:17 +00:00
Chris Lattner
baf9535284
teach EscapeString and UnescapeString to handle ".
...
llvm-svn: 69211
2009-04-15 20:12:52 +00:00
Chris Lattner
3875195865
Remove AllowInverse: it leaks memory and is not the right
...
abstraction for CommandLine.
llvm-svn: 68588
2009-04-08 03:43:51 +00:00
Mikhail Glushenkov
12062ba83d
Fix build on Linux.
...
llvm-svn: 68269
2009-04-02 01:11:37 +00:00
Daniel Dunbar
4abd56677d
Add llvm::Triple class for abstracting access to target triples.
...
- The code is silly, I'm just amusing myself. Rewrite to be efficient
if you like. :)
Also, if you wish to debate the proper names of the triple components
I'm all ears.
llvm-svn: 68252
2009-04-01 21:53:23 +00:00
Dan Gohman
cff6953c45
Use CHAR_BIT instead of hard-coding 8 in several places where it
...
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
llvm-svn: 68227
2009-04-01 18:45:54 +00:00
Misha Brukman
5fc1a0339c
* Fixed spelling of `invertible'
...
* Simplified if statement
llvm-svn: 68163
2009-04-01 00:15:46 +00:00
Chris Lattner
7516668998
move a large method out of line.
...
llvm-svn: 67892
2009-03-28 02:08:47 +00:00
Dale Johannesen
93eefa0043
Fix internal representation of fp80 to be the
...
same as a normal i80 {low64, high16} rather
than its own {high64, low16}. A depressing number
of places know about this; I think I got them all.
Bitcode readers and writers convert back to the old
form to avoid breaking compatibility.
llvm-svn: 67562
2009-03-23 21:16:53 +00:00
Dan Gohman
4f2fea1a21
Now that errs() is properly non-buffered, there's no need to
...
explicitly flush it.
llvm-svn: 67526
2009-03-23 15:57:19 +00:00
Duncan Sands
8208465036
Fix comment typo.
...
llvm-svn: 67302
2009-03-19 11:37:15 +00:00
Daniel Dunbar
437b8a5ccc
Add BUILTIN_EXPECT Support/Compiler macro.
...
- Use for exceptional buffer conditions in raw_ostream:write to shave
off a cycle or two.
- Please rename if you have a better one.
llvm-svn: 67103
2009-03-17 21:15:18 +00:00
Daniel Dunbar
64fa3860ed
raw_ostream: Put all exceptional conditions in raw_ostream::write
...
under a single branch.
Also, add a FIXME for formatted output.
llvm-svn: 67069
2009-03-17 01:36:56 +00:00
Daniel Dunbar
2d603dae2c
raw_ostream: Rework implementation of unbuffered streams so outputting
...
a single character requires only one branch to follow slow path.
- Never use a buffer when writing on an unbuffered stream.
- Move default buffer size to header.
llvm-svn: 67066
2009-03-17 01:13:35 +00:00
Daniel Dunbar
db7a36cdac
raw_ostream: Replace flush_impl with write_impl, which takes data to
...
write as arguments.
- Add raw_ostream::GetNumBytesInBuffer.
- Privatize buffer pointers.
- Get rid of slow and unnecessary code for writing out large strings.
llvm-svn: 67060
2009-03-16 23:29:31 +00:00
Daniel Dunbar
d24535fe3c
raw_ostream: Lift out flush_nonempty.
...
- Flush a known non-empty buffers; enforces the interface to
flush_impl and kills off HandleFlush (which I saw no reason to be
an inline method, Chris?).
- Clarify invariant that flush_impl is only called with OutBufCur >
OutBufStart.
- This also cleary collects all places where we have to deal with the
buffer possibly not existing.
- A few more comments and fixing the unbuffered behavior remain in
this commit sequence.
llvm-svn: 67057
2009-03-16 22:55:06 +00:00
Daniel Dunbar
8786218b0c
Make raw_ostream::operator<<(const void *) fast; it doesn't matter but
...
it is easy.
llvm-svn: 67054
2009-03-16 22:08:44 +00:00
Daniel Dunbar
7a9bb9eeec
Add slow path for single character write, and use exclusively for
...
single characters writes outside of the fast path in raw_ostream.h
llvm-svn: 67053
2009-03-16 22:00:17 +00:00
Stuart Hastings
7440952c01
Fix a hashing bug in APInt. A certain pathological testcase (too
...
large for the testsuite) took over six minutes to compile on my Mac.
The patched LLVM-GCC compiles that testcase in three seconds (GCC
takes less than one second). This hash function is more complex
(about 35 instructions on x86) than what Chris wanted, but I expect it
will be well-behaved with arbitrary inputs.
Thank you to everyone who responded to my previous request for advice.
llvm-svn: 66962
2009-03-13 21:51:13 +00:00
Chris Lattner
b858c0eba0
just initialize the first element, we don't need to set the rest to zeros.
...
llvm-svn: 66850
2009-03-13 00:24:01 +00:00
Chris Lattner
0bf186906b
Eliminate a 9640 byte static mutable initialized data item by moving it
...
to the stack. This shrinks all llvm tools by 9k, and improves reentrancy.
llvm-svn: 66847
2009-03-13 00:03:51 +00:00
Chris Lattner
9170209603
static functions don't need an anonymous namespace.
...
llvm-svn: 66845
2009-03-12 23:59:55 +00:00
Daniel Dunbar
3da6a7071a
PR3478: raw_ostream should not buffer stderr
...
- Add unbuffered flag to raw_ostream, forwarded by raw_fd_ostream and
used by raw_stderr_ostream.
llvm-svn: 66545
2009-03-10 16:21:55 +00:00
Dan Gohman
ec5f2b5e05
Use c_str() to force the string to be nul-terminated.
...
llvm-svn: 66279
2009-03-06 18:13:15 +00:00
Chris Lattner
e41a434f89
on apple systems, integrate nicely with crash reporter.
...
llvm-svn: 66264
2009-03-06 07:19:54 +00:00
Duncan Sands
96f52eb13f
Add missing file.
...
llvm-svn: 66160
2009-03-05 09:19:13 +00:00
Chris Lattner
8d0fe8cd90
Daniel wanted the stack printed upside down. Perhaps he
...
feels a kinship to machine stacks that grow down. Now we get
stuff like this:
Stack dump:
0. Program arguments: clang clang_crash_Iw2Osj.mi
1. /Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/xmmintrin.h:624:1: parsing function body '_mm_cvtpi16_ps'
2. /Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/xmmintrin.h:624:1: in compound statement ('{}')
Abort
llvm-svn: 66145
2009-03-05 07:03:49 +00:00
Chris Lattner
2674eb4bd1
indicate what the program args line is.
...
llvm-svn: 66144
2009-03-05 06:51:42 +00:00
Chris Lattner
68061d5995
add some helper classes for building light-weight symbolic stack traces
...
that get printed when a program crashes. This is the first step of many.
llvm-svn: 66076
2009-03-04 21:40:23 +00:00
Devang Patel
4d20395a5f
The debugger sometimes lookup dynamically in the runtime to find ivar info of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF.
...
Add support for two additional DWARF attributes to encode Objective-C runtime version number.
llvm-svn: 64834
2009-02-17 22:43:44 +00:00
Cedric Venet
d1e179d992
Unbreak the build on win32.
...
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
2009-02-14 16:06:42 +00:00
Evan Cheng
cf4bd2319c
Switch from new[] + delete[] to malloc + free since llvm does not catch C++ exceptions.
...
llvm-svn: 64448
2009-02-13 08:24:55 +00:00
Evan Cheng
333db7abbd
If new[] fails, return 0 rather then trying to dereference a null pointer.
...
llvm-svn: 64444
2009-02-13 07:54:34 +00:00
Nick Lewycky
ef01e112aa
Add an API for strings with possible NULLs in the middle. Refactor the other
...
two AddString methods to use it.
llvm-svn: 64005
2009-02-07 04:57:08 +00:00
Mike Stump
b92f839f9c
Improve -fno-opt style option processing to not require an extra
...
option to make the -fno- form on the option. We also document the new
form in the CommandLine documentation.
llvm-svn: 63559
2009-02-02 22:48:49 +00:00
Mike Stump
ecbe4a0860
Add opposite_of and inverse_opt to support -fno- style options. This
...
is necessary for eventual gcc commmand line compatibility.
llvm-svn: 63384
2009-01-30 08:19:46 +00:00
Mikhail Glushenkov
57cf3964f3
Clarify comment.
...
llvm-svn: 63171
2009-01-28 03:46:22 +00:00
Torok Edwin
ec39eb8519
APInt's countLeadingOnes() was broken for negative i128 values,
...
causing assertion failures in getSExtValue().
Fix it by making highWordBits actually contain what its name says,
and add some more unit-tests for APInt.
This fixes PR3419.
llvm-svn: 63107
2009-01-27 18:06:03 +00:00
Ted Kremenek
a26699211d
Add method raw_fd_ostream::seek() for random access within a file.
...
llvm-svn: 63044
2009-01-26 21:42:04 +00:00
Devang Patel
ccfacfff9a
Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags.
...
DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way.
DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by a project, irrespective of whether the project used makefile, Xcode or something else.
llvm-gcc patch is next.
llvm-svn: 62888
2009-01-23 22:33:47 +00:00
Dale Johannesen
1f86498f93
Do not use host floating point types when emitting
...
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts. Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.
llvm-svn: 62712
2009-01-21 20:32:55 +00:00
Chris Lattner
77527f5812
Remove uses of uint32_t in favor of 'unsigned' for better
...
compatibility with cygwin. Patch by Jay Foad!
llvm-svn: 62695
2009-01-21 18:09:24 +00:00
Mikhail Glushenkov
6a4f729dc9
Mimic gcc behaviour with regard to response files.
...
llvm-svn: 62688
2009-01-21 13:14:02 +00:00
Dale Johannesen
b5721632ee
Make special cases (0 inf nan) work for frem.
...
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.
llvm-svn: 62645
2009-01-21 00:35:19 +00:00
Dale Johannesen
fe750179ff
Add an IEEE remainder function, which is not
...
fully implemented yet and not used. This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.
llvm-svn: 62593
2009-01-20 18:35:05 +00:00
Chris Lattner
17844c7a88
improve compatibility with various versions of graphviz, patch by
...
Patrick Boettcher!
llvm-svn: 62592
2009-01-20 18:25:03 +00:00
Dale Johannesen
740e98704d
compile-time fmod was done incorrectly. PR 3316.
...
llvm-svn: 62528
2009-01-19 21:17:05 +00:00
Nick Lewycky
030c450fdc
Fix typo, sentence fragment.
...
llvm-svn: 62512
2009-01-19 17:42:33 +00:00
Mikhail Glushenkov
cbc26fdb6e
Support for multi-valued options in CommandLine
...
Makes possible to specify options that take multiple arguments (a-la
-sectalign on Darwin). See documentation for details.
llvm-svn: 62372
2009-01-16 22:54:19 +00:00
Misha Brukman
5cbf223916
Removed trailing whitespace from Makefiles.
...
llvm-svn: 61991
2009-01-09 16:44:42 +00:00
Steve Naroff
b0ad08b39a
Tweak --version to include the date and time.
...
llvm-svn: 61378
2008-12-23 18:41:47 +00:00
Nuno Lopes
10ab44a3a2
remove unused var
...
llvm-svn: 60770
2008-12-09 17:04:06 +00:00
Nick Lewycky
d745adedd7
Fixes for Visual Studio users. Patch by OvermindDL1 on llvm-dev!
...
llvm-svn: 60679
2008-12-08 00:45:02 +00:00
Ted Kremenek
123a35a81c
Have raw_fd_ostream keep track of the position in the file to make tell() go faster by not requiring a flush().
...
llvm-svn: 60560
2008-12-04 22:51:11 +00:00
Nuno Lopes
50343cd2fe
fix build on some machines. thanks buildbot
...
llvm-svn: 60175
2008-11-27 16:42:44 +00:00
Nuno Lopes
d5c2a144e1
fix my previous commit r60064: compare strings instead of pointers
...
llvm-svn: 60174
2008-11-27 16:37:02 +00:00
Bill Wendling
c6075401c2
Get rid of bogus "control may reach end of non-void function ‘...’ being
...
inlined" message.
llvm-svn: 60165
2008-11-27 08:00:12 +00:00
Ted Kremenek
e076257b8c
Add 'tell' method to raw_fd_ostream that clients can use to query the current location in the file the stream is writing to.
...
llvm-svn: 60085
2008-11-26 03:33:13 +00:00
Evan Cheng
496b042e20
Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer.
...
llvm-svn: 60072
2008-11-26 01:11:57 +00:00
Nuno Lopes
b472c9fac7
change AnnotationManager to use 'const char*' instead of std::string. this fixes the leakage of those strings and avoids the creation of such strings in static cosntructors (should result in a little improvement of startup time)
...
llvm-svn: 60064
2008-11-26 00:00:44 +00:00
Evan Cheng
2e5aeff676
convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics.
...
llvm-svn: 60042
2008-11-25 19:00:29 +00:00
Daniel Dunbar
ed90e701f0
Add Binary flag to raw_fd_ostream constructor.
...
Document raw_fd_ostream's treatment of "-".
llvm-svn: 59219
2008-11-13 05:01:07 +00:00
Dan Gohman
bde853911f
Overload AddInteger on int/long/long long instead of on int/int64_t,
...
to avoid overload ambiguities. This fixes build errors introduced
by r58623.
llvm-svn: 58632
2008-11-03 19:40:18 +00:00
Chris Lattner
2bfc72e65e
fix PR2953, an off-by-one error handling formatted i/o.
...
Thanks to Török Edwin for the awesome reduced testcase.
llvm-svn: 58199
2008-10-26 19:20:47 +00:00
Ted Kremenek
3c6de496b0
Added raw_fd_ostream::close().
...
llvm-svn: 58052
2008-10-23 23:49:09 +00:00
Julien Lerouge
e9de15b88a
Fix for PR2881: fix a small leak exposed by valgrind, using a ManagedStatic.
...
llvm-svn: 57984
2008-10-22 16:30:41 +00:00
Daniel Dunbar
1ca20df437
Clear raw_fd_ostream error string on success and explain behavior in
...
documentation.
Add C++ header marker.
llvm-svn: 57923
2008-10-21 19:53:10 +00:00
Dan Gohman
9c4b7d5c4f
Fix command-line option printing to print two spaces where needed,
...
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.
llvm-svn: 57521
2008-10-14 20:25:08 +00:00
Dale Johannesen
cc98e28f37
Change TAG_ names to DW_TAG for gcc (testsuite) compatibility.
...
llvm-svn: 57425
2008-10-12 21:23:01 +00:00
Dale Johannesen
ba074c0fed
Change Dwarf comments starting with AT_ to DW_AT_ to
...
match gcc. Helps with the testsuite.
llvm-svn: 57410
2008-10-12 06:20:47 +00:00
Chris Lattner
d57b7603f9
rearrange some code.
...
llvm-svn: 57384
2008-10-11 22:07:19 +00:00
Dale Johannesen
4f0bd68cfe
Add a "loses information" return value to APFloat::convert
...
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
llvm-svn: 57329
2008-10-09 23:00:39 +00:00
Dale Johannesen
54306fe499
Rename APFloat::convertToAPInt to bitcastToAPInt to
...
make it clearer what the function does. No functional
change.
llvm-svn: 57325
2008-10-09 18:53:47 +00:00
Dale Johannesen
7221af384d
Mark negative-zero-to-int conversion as Inexact,
...
since -0.0 can't be represented as an int.
This prevents llvm from reducing -0.0 to a
load-and-convert of int 0. Fixes
ieee.exp/mzero[2356].c in gcc testsuite.
llvm-svn: 57224
2008-10-07 00:40:01 +00:00
Dale Johannesen
6c6729f3a8
Be more precise about which conversions of NaNs
...
are Inexact. (These are not Inexact as defined
by IEEE754, but that seems like a reasonable way
to abstract what happens: information is lost.)
llvm-svn: 57218
2008-10-06 22:59:10 +00:00
Dale Johannesen
6271b0a83c
Temporarily revert functionality change from my previous patch;
...
it is too aggressive.
llvm-svn: 57203
2008-10-06 20:43:48 +00:00
Dale Johannesen
fff2995532
Mark shortening NaN conversions as Inexact. PR 2856.
...
Improve description of unsupported formats.
llvm-svn: 57185
2008-10-06 18:22:29 +00:00
Oscar Fuentes
a229b3c9a7
Initial support for the CMake build system.
...
llvm-svn: 56419
2008-09-22 01:08:49 +00:00
Cedric Venet
0f7b5666a2
Updating VC++ project.
...
Adding one include file and correct one declaration from class to struct in order to make llvm compile on VC2005.
llvm-svn: 55279
2008-08-24 11:56:40 +00:00
Chris Lattner
205af9643d
Add raw_stream adaptors that write into an std::string and SmallVector/SmallString.
...
llvm-svn: 55265
2008-08-23 22:43:04 +00:00
Chris Lattner
0c19df4871
Switch the asmprinter (.ll) and all the stuff it requires over to
...
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).
Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".
A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.
This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.
llvm-svn: 55263
2008-08-23 22:23:09 +00:00
Chris Lattner
da42964999
add #include
...
llvm-svn: 55252
2008-08-23 20:34:06 +00:00
Chris Lattner
22b52c984a
add a simple mechanism for formatted output. This gives raw_ostream's
...
all the power and risk of fprintf format strings. Use them like this:
OS << format("%10.4f", 42.0) << "\n" << format("%x", 42) << '\n';
llvm-svn: 55246
2008-08-23 19:23:10 +00:00
Dan Gohman
0e44e0d7a8
Add a clear() method to FoldingSet.
...
llvm-svn: 55210
2008-08-23 00:42:16 +00:00
Chris Lattner
d564f29957
improve support for systems that need unistd.h to get STDOUT_FILENO.
...
Patch contributed by Bjorn Reese!
llvm-svn: 55179
2008-08-22 15:45:00 +00:00
Owen Anderson
3ad8ac90b6
Fix write() when the string being written is larger than the buffer. This broke various ObjC testcases
...
with very long symbol names.
llvm-svn: 55148
2008-08-21 22:39:33 +00:00
Owen Anderson
d2850538db
Move non-trivial methods out of line to avoid code-size bloat.
...
llvm-svn: 55138
2008-08-21 20:58:52 +00:00
Owen Anderson
9371964f47
Use raw_ostream throughout the AsmPrinter.
...
llvm-svn: 55092
2008-08-21 00:14:44 +00:00
Chris Lattner
1ac3e2545b
Move the fast-path (<=i64) cases of various APInt methods inline
...
and the slow-path cases out of line. This speeds up instcombine
a bit in real world cases. Patch contributed by m-s.
llvm-svn: 55063
2008-08-20 17:02:31 +00:00
Dan Gohman
0f23237b0c
It's not necessary to check if a value is null before delete[].
...
llvm-svn: 55053
2008-08-20 14:55:37 +00:00
Argyrios Kyrtzidis
b97ff82bd4
Get raw_ostream.cpp to compile on MSVC.
...
llvm-svn: 54879
2008-08-17 09:25:21 +00:00
Chris Lattner
17f7165f84
Rework the routines that convert AP[S]Int into a string. Now, instead of
...
returning an std::string by value, it fills in a SmallString/SmallVector
passed in. This significantly reduces string thrashing in some cases.
More specifically, this:
- Adds an operator<< and a print method for APInt that allows you to
directly send them to an ostream.
- Reimplements APInt::toString to be much simpler and more efficient
algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter. This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873
2008-08-17 07:19:36 +00:00
Chris Lattner
8fcea67ae9
remove a dead APInt ctor.
...
llvm-svn: 54869
2008-08-17 04:58:58 +00:00
Chris Lattner
d3723fc8a2
add support for a cout/cerr analog (outs()/errs()) as well as
...
a simple adaptor class to give raw output capabilities to
something that wants to write to an ostream.
llvm-svn: 54865
2008-08-17 04:13:37 +00:00
Chris Lattner
d5bc0683fd
opening "-" automatically yields stdout.
...
llvm-svn: 54863
2008-08-17 03:53:23 +00:00
Chris Lattner
3394262a33
rename OutputData to 'write' to match ostream.
...
llvm-svn: 54857
2008-08-17 01:46:05 +00:00
Chris Lattner
84b94f77c6
add a new raw_ostream class which is an extremely high performance ostream that
...
can *only* output data (no seeking, reading, etc). This is adapted from the
clang "-E outputter", and is roughly 10% faster than stdio on darwin and 30%
(or more) faster than std::ostream.
llvm-svn: 54855
2008-08-17 01:35:29 +00:00
Dan Gohman
be5e69ed37
Avoid repeatedly reallocating the FoldingSetNodeID when searching
...
through multiple nodes in a bucket.
llvm-svn: 54687
2008-08-12 17:40:22 +00:00
Dan Gohman
e955c481fd
Fix several const-correctness issues, resolving some -Wcast-qual warnings.
...
llvm-svn: 54349
2008-08-05 14:45:15 +00:00
Dan Gohman
804c95df52
Fold the useful features of alist and alist_node into ilist, and
...
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.
Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.
Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.
llvm-svn: 54146
2008-07-28 21:51:04 +00:00
Wojciech Matyjewicz
f0d21cdd19
Fix PR2088. Use modulo linear equation solver to compute loop iteration
...
count.
llvm-svn: 53810
2008-07-20 15:55:14 +00:00
Dan Gohman
adec96f438
Reapply 53476 and 53480, with a fix so that it properly updates
...
the BB member to the current basic block after emitting
instructions.
llvm-svn: 53567
2008-07-14 18:19:29 +00:00
Evan Cheng
ef8412c822
Back out 53476 and 53480 for now. Somehow they cause llc to miscompile 179.art.
...
llvm-svn: 53502
2008-07-12 01:38:51 +00:00
Dan Gohman
36a69373dc
Add support for putting NamedRegionTimers in TimerGroups, and
...
use a timer group for the timers in SelectionDAGISel. Also,
Split scheduling out from emitting, to give each their own
timer.
llvm-svn: 53476
2008-07-11 21:54:34 +00:00
Dan Gohman
3707f1daba
Use find instead of lower_bound.
...
llvm-svn: 53474
2008-07-11 20:58:19 +00:00
Dan Gohman
e5932e5a3d
Add some basic Pool-allocation infrastructure. This adds a Recycler class,
...
for handling bookkeeping for deleted objects, as well as the alist class
template, for keeping lists of objects allocated from Recyclers, and some
related utilities.
llvm-svn: 53210
2008-07-07 22:58:06 +00:00
Owen Anderson
31936d6ab6
Add a version of AddString that takes a const char* so we can avoid extraneous
...
conversions to std::string.
llvm-svn: 52995
2008-07-01 23:49:59 +00:00
Dan Gohman
5ceb8b676c
Append to the ActiveTimers std::vector before looking at the timer instead
...
of after, so that any reallocation it does doesn't get counted for the pass
being timed. This probably doesn't account for a timing discrepancy I was
looking into, but I'm fixing it anyway.
llvm-svn: 52693
2008-06-24 22:07:07 +00:00
Wojciech Matyjewicz
41b744dc51
First step to fix PR2088. Implement routine to compute the
...
multiplicative inverse of a given number. Modify udivrem to allow input and
output pairs of arguments to overlap. Patch is based on the work by Chandler
Carruth.
llvm-svn: 52638
2008-06-23 19:39:50 +00:00
Dan Gohman
33204b7c20
Avoid creating a redundant zero APInt.
...
llvm-svn: 52602
2008-06-21 22:03:12 +00:00
Ted Kremenek
90ada832be
Consistently set "Buckets[NumBuckets] = reinterpret_cast<void*>(-1)" throughout FoldingSet.cpp.
...
llvm-svn: 52425
2008-06-17 19:12:43 +00:00
Zhou Sheng
1247c07742
As comments said, for negative value, the arithmetic
...
over-shift-right should return -1. So here it should be signed-extended,
when bitwidth larger than 64.
test case: llvm/test/ExecutionEngine/2008-06-05-APInt-OverAShr.ll
llvm-svn: 51999
2008-06-05 13:27:38 +00:00
Matthijs Kooijman
c9c67157d1
Give a proper error message when a command line option is defined more than
...
once (ie, at two different places in the source, not two times on the
commandline).
llvm-svn: 51771
2008-05-30 13:26:11 +00:00
Bill Wendling
33e396d041
Remove more iostream header includes. Needed to implement a "FlushStream"
...
function to flush a specified std::ostream.
llvm-svn: 51705
2008-05-29 21:46:33 +00:00
Dan Gohman
e3a6a18364
Tidy up whitespace in ConstantRange::print output.
...
llvm-svn: 51606
2008-05-27 20:29:07 +00:00
Dale Johannesen
fa48372a24
Don't assume underlying APInt type is limited
...
to 64 bits.
llvm-svn: 51135
2008-05-14 22:53:25 +00:00
Dale Johannesen
8d76cdb144
Remove undefined behavior in hex string->APFloat
...
conversion. Try 0x1.0000a4p+0f. Neil, please review.
llvm-svn: 51132
2008-05-14 22:05:31 +00:00
Dan Gohman
d78c400b5b
Clean up the use of static and anonymous namespaces. This turned up
...
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
2008-05-13 00:00:25 +00:00
Dan Gohman
02e5933fa3
Make firstEightPowers const.
...
llvm-svn: 50975
2008-05-12 16:38:14 +00:00
Dan Gohman
a8b7e78f54
Remove uses of llvm/System/IncludeFile.h that are no longer needed.
...
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Evan Cheng
86cb31862f
Fix more -Wshorten-64-to-32 warnings.
...
llvm-svn: 50659
2008-05-05 18:30:58 +00:00
Evan Cheng
82b9e96274
Suppress -Wshorten-64-to-32 warnings for 64-bit hosts.
...
llvm-svn: 50590
2008-05-02 21:15:08 +00:00
Gabor Greif
659e5c4bc9
fcntl.h is pretty standard on unix (without the sys/)
...
llvm-svn: 50475
2008-04-30 08:53:22 +00:00
Dan Gohman
f06226f506
Fix a pointer-arithmetic bug that caused 64-bit host pointer values to
...
be truncated to 32 bits. This fixes the recent Benchmarks/McCat/09-vor
regression on x86-64, among other things.
llvm-svn: 50372
2008-04-28 20:25:15 +00:00
Ted Kremenek
e51f22986b
Bug fix in BumpPtrAllocator: don't assume that all objects have the same alignment. "Bump" of the pointer for the next allocated object to be of the specified alignment.
...
llvm-svn: 50362
2008-04-28 17:58:07 +00:00
Mikhail Glushenkov
5653d3bc48
Add support for response files to the CommandLine library.
...
llvm-svn: 50355
2008-04-28 16:44:25 +00:00
Dan Gohman
c107d0020d
Make these variables static.
...
llvm-svn: 50196
2008-04-23 23:15:23 +00:00
Dale Johannesen
64bbdb17f5
Check that APFloat::convert is not trying to target
...
ppc long double, which doesn't work.
This may break some stuff temporarily, but I want to
avoid the propagation of code that assumes this works.
llvm-svn: 49983
2008-04-20 01:34:03 +00:00
Dan Gohman
53d3241b52
Use gv's --spartan option, which trades away an extra row of UI buttons
...
for more space for displaying the graph.
llvm-svn: 49730
2008-04-15 17:27:05 +00:00
Dan Gohman
f4bc782495
Make several symbols static.
...
llvm-svn: 49496
2008-04-10 21:11:47 +00:00
Bill Wendling
fc9f25dab0
Fix compilation errors on MSVC. Patch by Argiris Kirtzidis!
...
llvm-svn: 49055
2008-04-01 22:09:20 +00:00
Chris Lattner
6f2ffdb73f
Change the MemoryBuffer::getFile* methods to take just a pointer to the
...
start of a filename, not a filename+length. All clients can produce a
null terminated name, and the system api's require null terminated
strings anyway.
llvm-svn: 49041
2008-04-01 18:04:03 +00:00
Chris Lattner
a542518315
Reimplement MemoryBuffer::getFile with three enhancements:
...
1) stop using MappedFile.
2) if profitable use the sys::path::MapInFilePages api to
read the file.
3) otherwise fallback to read.
When sys::path::MapInFilePages is implemented, this provides
several benefits:
#1 : this avoids fragmenting memory for small files.
#2 : this avoids extraneous stat calls when the file size is known.
#3 : this only keeps the file descriptor open while reading the
file, not for the duration of the lifetime of the memory
buffer. This fixes a serious clang FD 'leak' problem.
I believe that this will work on a win32 machine, but I don't have
one to test on. I'd appreciate it if someone could check.
llvm-svn: 49031
2008-04-01 06:05:21 +00:00
Chris Lattner
bcfa564759
Remove the MappedFile::charBase member, rename base -> getBase() and
...
make getBase() return a const-correct pointer.
llvm-svn: 49025
2008-04-01 03:40:53 +00:00
Chris Lattner
314a1414d0
Change DiffFilesWithTolerance to be written in terms of MemoryBuffer,
...
not an mmapped file. This more closely matches its requirements and
provides an implicitly null terminated buffer, something this
routine had to emulate itself before.
llvm-svn: 49024
2008-04-01 03:39:49 +00:00
Chris Lattner
62385ba3a0
Remove MappedFile support for mapping files for write and exec
...
and shared. This complicates the design, is not used, and probably
doesn't even work.
llvm-svn: 49022
2008-04-01 03:10:22 +00:00
Dan Gohman
c60c67fc37
Add explicit keywords.
...
llvm-svn: 48801
2008-03-25 22:06:05 +00:00
Dan Gohman
bdc24adaaf
A quick nm audit turned up several fixed tables and objects that were
...
marked read-write. Use const so that they can be allocated in a
read-only segment.
llvm-svn: 48800
2008-03-25 21:45:14 +00:00
Bill Wendling
9a11a0174f
Add assert for non-hexadecimal radixes.
...
llvm-svn: 48421
2008-03-16 20:05:52 +00:00
Evan Cheng
4e97e94809
Fix a typo. It's causing consumer-typeset to miscompile. Perhaps more.
...
llvm-svn: 48035
2008-03-07 22:39:49 +00:00
Dan Gohman
105c1d4106
Add support to APInt for shift and rotate operations with APInt
...
instead of uint32_t for the shift/rotate count operand type.
llvm-svn: 47741
2008-02-29 01:40:47 +00:00
Dan Gohman
35723eb4f6
Add a method to APFloat to convert directly from APInt.
...
llvm-svn: 47738
2008-02-29 01:26:11 +00:00
Dan Gohman
63d2d1f554
Fix a bug that caused opt and other tools to silently ignore
...
invalid command-line options.
llvm-svn: 47523
2008-02-23 01:55:25 +00:00
Dan Gohman
360c86aed5
Add explicit keywords.
...
llvm-svn: 47382
2008-02-20 16:44:09 +00:00
Anton Korobeynikov
f275a49f7f
Add 'sink' cmdline option. Patch by Mikhail Glushenkov!
...
llvm-svn: 47377
2008-02-20 12:38:07 +00:00
Anton Korobeynikov
579f07135a
Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.
...
llvm-svn: 47367
2008-02-20 11:08:44 +00:00
Ted Kremenek
901540f118
Fixed bug in APInt::Profile() where the BitWidth field was not included in the
...
profile of the APSInt object. This caused unexpected Profile collisions where
none should have occurred.
llvm-svn: 47338
2008-02-19 20:50:41 +00:00
Ted Kremenek
d66c791904
Fixed bug in FoldingSetIteratorImpl where we did not correctly check if
...
we had reached the "fake bucket" after the last bucket, allowing the iterator
in some cases to run off the end of the hashtable.
llvm-svn: 47178
2008-02-15 21:12:46 +00:00
Dan Gohman
c354ebddd1
Fix a warning about comparison between signed and unsigned,
...
being consistent with the rest of the APInt implementation.
llvm-svn: 47138
2008-02-14 22:38:45 +00:00
Dan Gohman
8b4fa9dc0a
Add countTrailingOnes member functions to APInt.
...
llvm-svn: 47086
2008-02-13 21:11:05 +00:00
Ted Kremenek
6f30a0798f
Added "Profile" method to APFloat for use with FoldingSet.
...
Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary
objects to a profile via dispatch to FoldingSetTrait<T>::Profile().
Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their
functionality is now replaced using the above mentioned member template.
llvm-svn: 46957
2008-02-11 17:24:50 +00:00
Dan Gohman
4f26eb7270
Add support to FoldingSet for hashing APInt objects.
...
llvm-svn: 46833
2008-02-06 23:09:15 +00:00
Ted Kremenek
e288786356
Added "bucket_iterators" to FoldingSet. Bucket iterators allow iteration
...
over all the nodes in a particular bucket.
llvm-svn: 46716
2008-02-04 21:11:17 +00:00
Ted Kremenek
726933a589
Fixed 80 col. violation.
...
llvm-svn: 46709
2008-02-04 17:14:20 +00:00
Dale Johannesen
8ef8f24c40
Chris' change to print an approximation to long doubles
...
exposed a bug in APFloat's long double->double conversion of
NaNs. Broke several things in the ieee part of gcc testsuite.
llvm-svn: 46617
2008-01-31 18:34:01 +00:00
Dan Gohman
b456a15a5b
Remove top-level const qualifiers from casts, avoiding associated
...
compiler warnings.
llvm-svn: 46509
2008-01-29 12:08:20 +00:00
Lauro Ramos Venancio
0f54a09163
Simplify the code and fix a typo.
...
llvm-svn: 46458
2008-01-28 20:02:51 +00:00
Lauro Ramos Venancio
99929d20e7
Fix fpcmp infinite loop when comparing "29-266" with "29-268".
...
llvm-svn: 46455
2008-01-28 18:23:23 +00:00
Ted Kremenek
4875d2d997
Added FoldingSet style 'profiling' support for APSInt.
...
llvm-svn: 46189
2008-01-19 04:31:12 +00:00
Ted Kremenek
5c75d54c5b
Added FoldingSet style 'profiling' support for APInt.
...
llvm-svn: 46188
2008-01-19 04:23:33 +00:00
Ted Kremenek
c0259639ad
Made 'FoldingSetNodeID' a proper class instead of a nested class in
...
'FoldingSetNodeImpl' (previously 'FoldingSetNodeID' was a typedef of
'FoldingSetNodeImpl::NodeID').
Why? Clients can now easily forward declare 'FoldingSetNodeID' without having
to include FoldingSet.h.
llvm-svn: 46187
2008-01-19 04:22:50 +00:00
Chris Lattner
f3ebc3f3d2
Remove attribution from file headers, per discussion on llvmdev.
...
llvm-svn: 45418
2007-12-29 20:36:04 +00:00
Chris Lattner
a087a8d2ce
remove attribution from lib Makefiles.
...
llvm-svn: 45415
2007-12-29 20:09:26 +00:00
Anton Korobeynikov
ee6af40c95
Cygwin defines uint32_t as unsigned long. Unbreak call to std::min in this case
...
llvm-svn: 45342
2007-12-24 11:16:47 +00:00
Reid Spencer
0b1df1d3da
Don't have APInt.cpp depend upon DerivedTypes.h. This helps with splitting the
...
Support libraries separately into their own module.
llvm-svn: 44852
2007-12-11 06:53:58 +00:00
Chris Lattner
e5256754e7
proper #include order.
...
llvm-svn: 44707
2007-12-08 19:00:03 +00:00
Gordon Henriksen
4b41a6f529
Adding a StringPool data structure, which GC will use.
...
llvm-svn: 44705
2007-12-08 17:07:47 +00:00
Neil Booth
06f20ea4ba
Prior commit updated wrong if, apologies.
...
llvm-svn: 44614
2007-12-05 13:06:04 +00:00
Neil Booth
3ab004bca6
Handle zero correctly.
...
llvm-svn: 44613
2007-12-05 13:01:24 +00:00
Dale Johannesen
9d43e3d841
Handle 0 correctly in string->APFloat conversion.
...
llvm-svn: 44594
2007-12-05 01:10:19 +00:00
Chris Lattner
893fe3bbd1
Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.
...
llvm-svn: 44296
2007-11-23 22:42:31 +00:00
Chris Lattner
c2c4c7456c
Fix APInt::countTrailingZeros to return BitWidth if the input is zero instead of returning some random large number.
...
llvm-svn: 44294
2007-11-23 22:36:25 +00:00
Chris Lattner
44158478bb
Fix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN return
...
a valid but empty buffer if stdin is empty.
llvm-svn: 44219
2007-11-18 18:52:28 +00:00
Dale Johannesen
06a10df562
Fix denormal check in float->APInt conversion.
...
PR 1804.
llvm-svn: 44201
2007-11-17 01:02:27 +00:00
Chris Lattner
581f006f5d
make smallptrset more const and type correct, which caught a few
...
minor bugs.
llvm-svn: 43782
2007-11-06 22:12:43 +00:00
Neil Booth
758d0fd736
Remove some unnecessary C-style statics.
...
Restore an assertion that arithmetic can be performed on this format.
llvm-svn: 43638
2007-11-02 15:10:05 +00:00
Neil Booth
ae077d232c
Add back line whose removal somehow crept into prior patch
...
llvm-svn: 43627
2007-11-01 22:51:07 +00:00
Neil Booth
618d0fc377
When converting to integer, do bit manipulations in the destination
...
memory rather than in a copy of the APFloat. This avoids problems
when the destination is wider than our significand and is cleaner.
Also provide deterministic values in all cases where conversion
fails, namely zero for NaNs and the minimal or maximal value
respectively for underflow or overflow.
llvm-svn: 43626
2007-11-01 22:43:37 +00:00
Hartmut Kaiser
fc69d322f2
Clarified operator precedence.
...
Silenced VC++ warning.
llvm-svn: 43372
2007-10-25 23:15:31 +00:00
Chris Lattner
1b88e3c2dd
This requires rtti info because tblgen uses commandline,
...
and tblgen requires rtti.
llvm-svn: 43127
2007-10-18 15:57:29 +00:00
Neil Booth
9130551996
Fast-track obviously over-large and over-small exponents during decimal->
...
integer conversion. In some such cases this makes us one or two orders
of magnitude faster than NetBSD's libc. Glibc seems to have a similar
fast path.
Also, tighten up some upper bounds to save a bit of memory.
llvm-svn: 42984
2007-10-15 15:00:55 +00:00
Neil Booth
5fe658b21d
Consolidate logic for creating NaNs. Silence compiler warning.
...
llvm-svn: 42966
2007-10-14 10:39:51 +00:00
Neil Booth
06077e7c3c
Whether arithmetic is supported is a property of the semantics. Make it
...
so, and clean up the checks by putting them in an inline function.
llvm-svn: 42965
2007-10-14 10:29:28 +00:00
Neil Booth
4ed401b898
Separate out parsing of decimal number. Use this to only allocate
...
memory for the significand once up-front. Also ignore insignificant
trailing zeroes; this saves unnecessary multiplications later.
llvm-svn: 42964
2007-10-14 10:16:12 +00:00
Neil Booth
c799fe9ed9
If the power of 5 is exact, and the reciprocal exact, the error is zero not one half-ulps. This prevents an infinite loop in rare cases.
...
llvm-svn: 42950
2007-10-13 03:34:08 +00:00
Neil Booth
d502a82092
Remove duplicate comment.
...
llvm-svn: 42913
2007-10-12 16:05:57 +00:00
Neil Booth
b93d90e98c
Implement correctly-rounded decimal->binary conversion, i.e. conversion
...
from user input strings.
Such conversions are more intricate and subtle than they may appear;
it is unlikely I have got it completely right first time. I would
appreciate being informed of any bugs and incorrect roundings you
might discover.
llvm-svn: 42912
2007-10-12 16:02:31 +00:00
Neil Booth
e9dbe094aa
Remove a field that was never used.
...
llvm-svn: 42911
2007-10-12 15:35:10 +00:00
Neil Booth
146fdb3eeb
If we're trying to be arbitrary precision, unsigned char clearly won't cut it. Needed for dec->bin conversions.
...
llvm-svn: 42910
2007-10-12 15:33:27 +00:00
Neil Booth
7e74b17ad2
Don't attempt to mask no bits
...
llvm-svn: 42909
2007-10-12 15:31:31 +00:00
Dale Johannesen
007aa378ad
Next PPC long double bits. First cut at constants.
...
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
llvm-svn: 42865
2007-10-11 18:07:22 +00:00
Chris Lattner
f5ea386698
Add new MemoryBuffer::getMemBufferCopy method.
...
llvm-svn: 42815
2007-10-09 21:46:38 +00:00
Dan Gohman
66966403ce
Pass argc by value, not by reference, since it isn't modified.
...
llvm-svn: 42788
2007-10-09 16:04:57 +00:00
Chris Lattner
5c50f59690
Change a #include into a forward declaration
...
llvm-svn: 42781
2007-10-09 03:40:30 +00:00
Dan Gohman
2c6a821fd7
Move the space in overview output for commands out of each of the
...
commands and into the common code.
llvm-svn: 42752
2007-10-08 15:45:12 +00:00
Neil Booth
49c6aab7b8
Use APInt::tcExtract. It's cleaner, and works :)
...
llvm-svn: 42746
2007-10-08 14:39:42 +00:00
Neil Booth
b618216e56
Add a new function tcExtract for extracting a bignum from an
...
arbitrary range of bits embedded in the middle of another bignum.
This kind of operation is desirable in many cases of software
floating point, e.g. converting bignum integers to floating point
numbers of fixed precision (you want to extract the precision most
significant bits).
Elsewhere, add an assertion, and exit the shift functions early if
the shift count is zero.
llvm-svn: 42745
2007-10-08 13:47:12 +00:00
Neil Booth
03f58ab706
Add back convertFromSignExtendedInteger.
...
llvm-svn: 42735
2007-10-07 12:15:41 +00:00
Neil Booth
ba205229e7
Now that convertFromUnsignedParts has a sane, constant interface,
...
convertFromZeroExtendedInteger can be simplified as it doesn't need
to make a copy of the source bignum.
llvm-svn: 42734
2007-10-07 12:10:57 +00:00
Neil Booth
6c1c8588ae
Reimplement convertFromUnsignedInteger so it is passed a const bignum.
...
It used to modify its argument in-place.
This interface is saner and the implementation more efficient. It will
be needed for decimal->binary conversion.
llvm-svn: 42733
2007-10-07 12:07:53 +00:00
Neil Booth
5f00973393
convertFromInteger, as originally written, expected sign-extended
...
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.
llvm-svn: 42732
2007-10-07 11:45:55 +00:00
Neil Booth
d3985924f4
combineLostFractions does not need to be a member function
...
llvm-svn: 42729
2007-10-07 08:51:21 +00:00
Neil Booth
32897f5eb0
Cleaner, more general exponent output.
...
llvm-svn: 42690
2007-10-06 07:29:25 +00:00
Chris Lattner
2a9bcb9ea7
silence warnings in no-assert build.
...
llvm-svn: 42687
2007-10-06 06:13:42 +00:00
Neil Booth
c8b650ab14
Fix and clarify some comments.
...
llvm-svn: 42670
2007-10-06 00:43:45 +00:00
Neil Booth
0ea72a9a91
Generalize tcFullMultiply so that the operands can be of differing
...
part widths. Also, return the number of parts actually required to
hold the result's value.
Remove an over-cautious condition from rounding of float->hex conversion.
llvm-svn: 42669
2007-10-06 00:24:48 +00:00
Neil Booth
8f1946fa22
Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.
...
Useful for diagnostics and debugging.
llvm-svn: 42598
2007-10-03 22:26:02 +00:00
Chris Lattner
99f6ab7e4c
Add initial iterator support for folding set.
...
llvm-svn: 42589
2007-10-03 21:12:09 +00:00
Chris Lattner
8c41ed61d1
Simplify implementation of the FoldingSet circular list, a necessary step
...
to giving it iterators.
llvm-svn: 42586
2007-10-03 20:45:43 +00:00
Neil Booth
1ca1f80b38
Tweak RoundAwayFromZero the bit number below which is truncated, and make
...
it const.
Preparation for APFloat -> hexadecimal string conversion.
llvm-svn: 42576
2007-10-03 15:16:41 +00:00
Dale Johannesen
28a2c4a9c4
Simplify and fix signed int -> FP conversions.
...
llvm-svn: 42483
2007-09-30 18:17:01 +00:00
Neil Booth
9acbf5aaf9
Whitespace and compiler warning cleanup.
...
llvm-svn: 42373
2007-09-26 21:33:42 +00:00
Dale Johannesen
e7439eff5a
Make APFloat->int conversions deterministic even in
...
cases with undefined behavior.
llvm-svn: 42328
2007-09-25 23:07:07 +00:00
Dale Johannesen
4f55d9fe0f
Fix long double<->shorter FP type conversions
...
of zero, infinity, and NaNs.
llvm-svn: 42298
2007-09-25 17:25:00 +00:00
Neil Booth
a8d7269269
Handle storage complications of float->float conversions.
...
llvm-svn: 42220
2007-09-22 02:56:19 +00:00
Dale Johannesen
4230512f32
Change APFloat::convertFromInteger to take the incoming
...
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.
llvm-svn: 42210
2007-09-21 22:09:37 +00:00
Dale Johannesen
146a0ea071
Fix PR 1688. See comments there.
...
llvm-svn: 42181
2007-09-20 23:47:58 +00:00
Devang Patel
00064e1bab
Do not hide APInt::dump() inside #ifndef NDEBUG.
...
llvm-svn: 42068
2007-09-17 22:24:00 +00:00
Chris Lattner
6395e5060d
fix a gcc warning: comparison between signed and unsigned integer expressions
...
llvm-svn: 41972
2007-09-14 22:57:00 +00:00
Dale Johannesen
98d3a08d8f
Remove the assumption that FP's are either float or
...
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).
llvm-svn: 41967
2007-09-14 22:26:36 +00:00
Dan Gohman
14cf78cde5
And an FoldingSetImpl::NodeID::AddInteger overload for int64_t, to avoid
...
ambiguity.
llvm-svn: 41960
2007-09-14 20:48:42 +00:00
Dan Gohman
58c468fb09
Remove spurious consts. This fixes warnings with compilers that
...
are strict about such things.
llvm-svn: 41956
2007-09-14 20:08:19 +00:00
Dale Johannesen
521988b604
Compensate for partCount change in Bogus definition
...
(could break hash table in ConstantFP)
llvm-svn: 41874
2007-09-12 01:22:05 +00:00
Dale Johannesen
245dceb06d
Add APInt interfaces to APFloat (allows directly
...
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).
llvm-svn: 41858
2007-09-11 18:32:33 +00:00
Evan Cheng
ee8d9a0e81
Smarter Reset(). Instead of deallocating all memory regions and reallocate the
...
first region, just deallocate all but the last region in the list.
llvm-svn: 41782
2007-09-08 00:02:17 +00:00
Evan Cheng
3dba41bf37
Added Reset() to free all allocated memory regions and reset state to be the same as right after ctor.
...
llvm-svn: 41728
2007-09-05 21:41:34 +00:00
Dale Johannesen
728687c423
Fix mod so it actually works. Fix conversions to
...
native types to handle denormals correctly.
llvm-svn: 41726
2007-09-05 20:39:49 +00:00
Dale Johannesen
689d17d282
Oops, should be part of 41664; won't work very well without this piece.
...
llvm-svn: 41665
2007-08-31 23:35:31 +00:00
Dale Johannesen
3cf889f75e
Enhance APFloat to retain bits of NaNs (fixes oggenc).
...
Use APFloat interfaces for more references, mostly
of ConstantFPSDNode.
llvm-svn: 41632
2007-08-31 04:03:46 +00:00
Dale Johannesen
d246b2ca5c
Change LegalFPImmediates to use APFloat.
...
Add APFloat interfaces to ConstantFP, SelectionDAG.
Fix integer bit in double->APFloat conversion.
Convert LegalizeDAG to use APFloat interface in
ConstantFPSDNode uses.
llvm-svn: 41587
2007-08-30 00:23:21 +00:00
Dale Johannesen
bdea32d812
Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual.
...
This means backing out the preceding change to Constants.cpp, alas.
llvm-svn: 41378
2007-08-24 22:09:56 +00:00
Dale Johannesen
918c33c67a
Revised per review feedback from previous patch.
...
llvm-svn: 41353
2007-08-24 05:08:11 +00:00
Chris Lattner
3da18eb22a
silence some warnings in an optimized build.
...
llvm-svn: 41352
2007-08-24 03:02:34 +00:00
Dale Johannesen
a719a60609
Change internal representation of ConstantFP to use APFloat.
...
Interface to rest of the compiler unchanged, as yet.
llvm-svn: 41348
2007-08-24 00:56:33 +00:00
Chris Lattner
b0f158cfdf
rename APInt::toString -> toStringUnsigned for symmetry with toStringSigned()
...
Add an APSInt::toString() method.
llvm-svn: 41309
2007-08-23 05:15:32 +00:00
Chris Lattner
fe02c1f97f
initial checkin of Neil's APFloat work.
...
llvm-svn: 41203
2007-08-20 22:49:32 +00:00
Chris Lattner
6b69568f85
This adds a bunch of static functions that implement unsigned
...
two's complement bignum arithmetic. They could be used to
implement much of APInt, but the idea is they are enough to
implement APFloat as well, which the current APInt interface
is not suited for.
Patch by Neil Booth!
llvm-svn: 41124
2007-08-16 15:56:55 +00:00
Anton Korobeynikov
b61c63ecd0
Properly use const qualifiers
...
llvm-svn: 41111
2007-08-15 21:12:30 +00:00
Reid Spencer
155533cf73
Make getSTDIN return null if the standard input is empty, as the header file
...
documentation implies and as its uses depend.
llvm-svn: 40939
2007-08-08 20:01:58 +00:00
Reid Spencer
f13bcdc4a4
Escape some escapes that confuse doxygen.
...
llvm-svn: 40850
2007-08-05 19:33:11 +00:00
Chris Lattner
44f7d3aa0b
When clearing a SmallPtrSet, if the set had a huge capacity, but the
...
contents of the set were small, deallocate and shrink the set. This
avoids having us to memset as much data, significantly speeding up
some pathological cases. For example, this speeds up the verifier
from 0.3899s to 0.0763 (5.1x) on the testcase from PR1432 in a
release build.
llvm-svn: 40837
2007-08-05 07:32:14 +00:00
Owen Anderson
49f037ac29
Allow SmallPtrSet to hold pointers to const data.
...
llvm-svn: 40556
2007-07-27 18:07:02 +00:00
Owen Anderson
4c54024319
Make the copy constructor of SmallPtrSet much faster.
...
llvm-svn: 40474
2007-07-24 21:31:23 +00:00
Owen Anderson
ee99010782
Remember to free the heap allocated array if we're not going to use it.
...
llvm-svn: 40043
2007-07-19 06:45:33 +00:00
Owen Anderson
e21f270858
Fix an issue where assignments that caused a SmallPtrSet to become non-small
...
would result in calling realloc() on a null pointer. Instead, if we encounter
this situation, make a normal call to malloc().
llvm-svn: 40014
2007-07-18 19:54:15 +00:00
Reid Spencer
5060fd0fa3
Unbreak the build by putting calls to free into the implementation file and
...
having that implementation file #include <cstdlib>.
llvm-svn: 39952
2007-07-17 02:16:12 +00:00
Owen Anderson
81990a3fc3
Use realloc() to (potentially) resize the contents of SmallPtrSet in place.
...
llvm-svn: 39926
2007-07-16 21:27:44 +00:00
Nick Lewycky
ddc2f9ba57
Clarify the language. Pointed out by Duncan Sands.
...
llvm-svn: 39857
2007-07-14 17:41:03 +00:00
Nick Lewycky
61b4a265ee
Add alternate ConstantRange intersection algorithm.
...
llvm-svn: 39851
2007-07-14 02:51:34 +00:00
Owen Anderson
e33356b18e
Make the assignment operator for SmallPtrSet much faster for normal cases.
...
llvm-svn: 38474
2007-07-09 22:27:20 +00:00
Owen Anderson
3364abbb36
Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy
...
ctor while I'm at it.
Thanks to Chris Lattner for help with this patch.
llvm-svn: 38470
2007-07-09 20:59:01 +00:00
Owen Anderson
aee901745d
Fix an error in the assignment operator that was causing an infinite loop in GVNPRE.cpp.
...
Patch by Chis Lattner.
llvm-svn: 38467
2007-07-09 18:51:15 +00:00
Chris Lattner
85049a470e
implement operator= for smallptrset
...
llvm-svn: 38460
2007-07-09 16:54:03 +00:00
Gabor Greif
e16561cd5d
Here is the bulk of the sanitizing.
...
Almost all occurrences of "bytecode" in the sources have been eliminated.
llvm-svn: 37913
2007-07-05 17:07:56 +00:00
Nick Lewycky
5105adfcd1
Fix undefined behaviour reported by the new --enable-expensive-checks option.
...
llvm-svn: 37829
2007-07-01 03:06:30 +00:00
Owen Anderson
6d7b6f1ab8
Fix a bug in SmallPtrSet that was causing GVNPRE to enter an infinite loop.
...
llvm-svn: 37697
2007-06-22 00:11:18 +00:00
Chris Lattner
836e8f3f39
Two changes:
...
1. Make SmallPtrSet::erase faster in the small case by replacing a memmove
with a pointer copy.
2. Fix a bug where the null terminator at the end of the array in the small
case was not copied
llvm-svn: 37696
2007-06-21 23:23:32 +00:00
Nick Lewycky
d18b16034a
Fix edge case.
...
llvm-svn: 37532
2007-06-09 04:20:33 +00:00
Dale Johannesen
82810c8a13
Make tail merging the default, except on powerPC. There was no prior art
...
for a target-dependent default with a command-line override; this way
should be generally usable.
llvm-svn: 37285
2007-05-22 17:14:46 +00:00
Reid Spencer
b6af1aae35
Fix an assertion introduced by my last change to the toString method. We
...
can't use getZExtValue() to extract the low order bits for each digit.
Instead, we need to access the low order word directly.
llvm-svn: 37242
2007-05-19 00:29:55 +00:00
Reid Spencer
5c138133b7
Get rid of leading zeros in the output of toString.
...
llvm-svn: 37175
2007-05-17 19:23:02 +00:00
Reid Spencer
fffdf10566
For lshr by 0 bits, just return *this as a short cut. This also prevents
...
undefined behavior when the width > 64 bits.
llvm-svn: 37153
2007-05-17 06:26:29 +00:00
Reid Spencer
a93c981f66
Fix a bug in the "fromString" method where radix 2,8 and 16 values were
...
not being generated correctly because the shl operator does not mutate its
object but returns a new value. Also, make the distinction between radix
16 and the others more clear.
llvm-svn: 37111
2007-05-16 19:18:22 +00:00
Reid Spencer
98ed7db7ab
Make the results for the rotate functions correct when rotateAmt == 0.
...
llvm-svn: 37026
2007-05-14 00:15:28 +00:00
Reid Spencer
4c50b52f63
Add some things needed by the llvm-gcc version supporting bit accurate integer
...
types:
1. Functions to compute div/rem at the same time.
2. Further assurance that an APInt with 0 bitwidth cannot be constructed.
3. Left and right rotate operations.
4. An exactLogBase2 function which requires an exact power of two or it
returns -1.
llvm-svn: 37025
2007-05-13 23:44:59 +00:00
Reid Spencer
81ee020f64
Fix shl to produce the correct result when the bitwidth is > 64 and the
...
shift amount is 0. Previously this code would do a lshr by the bit width
which can lead to incorrect results.
llvm-svn: 37010
2007-05-12 18:01:57 +00:00
Chris Lattner
436370bac8
fix a memory leak
...
llvm-svn: 36981
2007-05-11 00:43:26 +00:00
Jeff Cohen
b6e144cffe
Unbreak VC++ build.
...
llvm-svn: 36901
2007-05-07 15:21:46 +00:00
Chris Lattner
275757a05e
Enhance MemoryBuffer to return error messages in strings if they occur.
...
llvm-svn: 36899
2007-05-06 23:32:36 +00:00
Chris Lattner
4211c20988
remove this file for now, we can bring it back from cvs if we need it in
...
the future (and integrate it with membuffer, etc)
llvm-svn: 36876
2007-05-06 19:10:47 +00:00
Chris Lattner
2fce8c5df8
remove libbzip2, it is dead
...
llvm-svn: 36875
2007-05-06 19:05:34 +00:00
Chris Lattner
d2517d6767
don't build bzip2 for now
...
llvm-svn: 36871
2007-05-06 09:31:32 +00:00
Chris Lattner
1761e05c5b
disable this for now
...
llvm-svn: 36870
2007-05-06 09:31:06 +00:00
Chris Lattner
5db36d3d82
Fix MemoryBuffer::getFile to return null if it has an error opening the
...
file instead of aborting.
llvm-svn: 36858
2007-05-06 07:24:46 +00:00
Chris Lattner
357882d27c
This is a patch to fix a compile error in STLExtras.h, and
...
a bug in GraphWriter.cpp.
Patch by Florian Brandner
llvm-svn: 36684
2007-05-03 18:32:10 +00:00
Chris Lattner
dad2d0939c
silence some annoying gcc 4.3 warnings
...
llvm-svn: 36680
2007-05-03 18:15:36 +00:00
Jeff Cohen
990a58f242
Fix MemoryBuffer breakage correctly.
...
llvm-svn: 36561
2007-04-29 14:43:31 +00:00
Jeff Cohen
50b2d2c6e3
Unbreak build.
...
llvm-svn: 36559
2007-04-29 14:21:44 +00:00
Chris Lattner
ee2d1f1ed2
Add a new memorybuffer class, to unify all the file reading code in the system
...
llvm-svn: 36553
2007-04-29 06:58:52 +00:00
Zhou Sheng
3178736d50
Using APInt more efficiently.
...
llvm-svn: 36475
2007-04-26 16:42:07 +00:00
Jeff Cohen
e7ce8f23f6
Fix PR1329.
...
llvm-svn: 36016
2007-04-14 21:50:21 +00:00
Reid Spencer
67378b22bb
We want the number of bits needed, not the power of 2.
...
llvm-svn: 35977
2007-04-14 00:00:10 +00:00
Reid Spencer
9329e7b626
Implement a getBitsNeeded method to determine how many bits are needed to
...
represent a string in binary form by an APInt.
llvm-svn: 35968
2007-04-13 19:19:07 +00:00
Zhou Sheng
01c175ec52
Make the apint construction more effective.
...
llvm-svn: 35960
2007-04-13 05:57:32 +00:00
Chris Lattner
af039c53c0
improve the patch for PR1318 to also support grouped options with custom
...
handlers (like the pass list). My previous fix only supported *new* command
line options, not additions to old ones.
This fixes test/Feature/load_module.ll
llvm-svn: 35935
2007-04-12 00:36:29 +00:00
Chris Lattner
83b53a5964
Fix PR1318 by reacting appropriately to a mutating option list.
...
llvm-svn: 35905
2007-04-11 15:35:18 +00:00
Reid Spencer
c49f2ef236
Fix an approximate calculation in an assertion not to give false negatives.
...
llvm-svn: 35901
2007-04-11 13:00:04 +00:00
Reid Spencer
21b76a9b99
For PR1291:
...
Change uses of sys::Path class to sys::PathWithStatus in those places where
the file status information is needed.
llvm-svn: 35743
2007-04-07 18:53:16 +00:00
Nick Lewycky
b89804f246
Add signExtend to ConstantRange, to complement zeroExtend and truncate.
...
llvm-svn: 35733
2007-04-07 15:41:33 +00:00
Chris Lattner
0e1c1d4ae3
Fix a bug in my earlier commit which exposed positional options backwards.
...
This fixes llvm-ar.
llvm-svn: 35727
2007-04-07 05:38:53 +00:00
Chris Lattner
5247f60d20
rearchitect the registration mechanism used by the command line option stuff.
...
This dramatically reduce the amount of memory allocated by the commandline stuff
at static init time, changing it to build local data structures when ParseCommandLineOptions
is called. In a dummy empty program that links some llvm libraries, this reduces
the number of malloc'd bytes from 4864 to 3360 on entry to main. Most of that
memory is now allocated by non-commandline related stuff.
llvm-svn: 35701
2007-04-06 21:06:55 +00:00
Chris Lattner
2031b02faf
remove the dead removeArgument method, rename Options to OptionsMap.
...
llvm-svn: 35690
2007-04-05 21:58:17 +00:00
Chris Lattner
c770a0273d
stringmap memory managed with malloc now
...
llvm-svn: 35666
2007-04-04 17:24:28 +00:00
Chris Lattner
adf83a3513
use calloc instead of new/memset, it is more efficient
...
llvm-svn: 35644
2007-04-04 00:44:31 +00:00
Chris Lattner
2376346a8e
Extend StringMap to support being initialized as completely empty. When
...
initialized this way, they do not do a malloc to allocate their buckets.
llvm-svn: 35642
2007-04-04 00:29:37 +00:00
Chris Lattner
64df4ba422
greatly reduce hte default size of stringmap.
...
llvm-svn: 35632
2007-04-03 22:15:38 +00:00
Nick Lewycky
f22938af1b
Implement union of wrapped sets.
...
llvm-svn: 35534
2007-04-01 03:47:44 +00:00
Reid Spencer
200c6f9c3d
For PR789:
...
Make the sys::Path::getFileStatus function more efficient by having it
return a pointer to the FileStatus structure rather than copy it. Adjust
uses of the function accordingly. Also, fix some memory issues in sys::Path.
llvm-svn: 35476
2007-03-29 19:05:44 +00:00
Reid Spencer
78b899f665
For PR789:
...
Updates for change in interface of getFileStatus method of sys::Path class.
llvm-svn: 35458
2007-03-29 16:48:16 +00:00
Zhou Sheng
0458c1db71
Fix a bug in getAllOnesValue() which broke
...
some test cases for bitwidth > 64.
llvm-svn: 35232
2007-03-21 04:34:37 +00:00
Jeff Cohen
e06855e684
Fix (and simplify) 48-bit byte swap.
...
Get pos/neg infinity the correct way.
llvm-svn: 35223
2007-03-20 20:42:36 +00:00
Reid Spencer
b1ec2e8ec7
Fix coding standards violation.
...
llvm-svn: 35189
2007-03-19 21:19:02 +00:00
Reid Spencer
6fae35acd3
Implement extension of sign bits for negative values in the uint64_t
...
constructor. This helps to fix test/Assembler/2007-03-19-NegValue.ll
llvm-svn: 35180
2007-03-19 20:37:47 +00:00
Reid Spencer
6223c05805
Revert the last patch as it violates the conditions of sext/zext.
...
llvm-svn: 35068
2007-03-12 18:37:25 +00:00
Zhou Sheng
3999ffa0c8
For APInt::z/sext(width), if width == BitWidth, just return *this.
...
llvm-svn: 35065
2007-03-12 17:47:45 +00:00
Nick Lewycky
e455937fae
Add getter methods for the extremes of a ConstantRange.
...
llvm-svn: 35056
2007-03-10 15:54:12 +00:00
Jeff Cohen
b622c11f77
Unbreak VC++ build.
...
llvm-svn: 34917
2007-03-05 00:00:42 +00:00
Reid Spencer
1825dd0d7c
Fix ashr for bitwidths > 64. This is now validated up to 1024 bits.
...
llvm-svn: 34852
2007-03-02 22:39:11 +00:00
Reid Spencer
cf8175617d
Use a better algorithm for rounding sqrt results. Change the FIXME about
...
this to a NOTE: because pari/gp results start to get rounded incorrectly
after 192 bits of precision. APInt and pari/gp never differ by more than
1, but APInt is more accurate because it does not lose precision after 192
bits as does pari/gp.
llvm-svn: 34834
2007-03-02 04:21:55 +00:00
Nick Lewycky
cf87f9eef5
Implement unionWith.
...
llvm-svn: 34833
2007-03-02 03:33:05 +00:00
Reid Spencer
c44bdae16b
Add a FIXME
...
llvm-svn: 34828
2007-03-02 02:01:34 +00:00
Reid Spencer
c442c84c8f
Fix a problem where shifting by 64-bits leads to incorrect results on PPC
...
but not on X86 becuase shift by word size is "undefined".
llvm-svn: 34825
2007-03-02 01:19:42 +00:00
Reid Spencer
1b8dfcbaaa
Combine two lines that can be.
...
llvm-svn: 34818
2007-03-01 23:30:25 +00:00
Reid Spencer
2f6ad4d3c3
Make the static table of results in sqrt const.
...
llvm-svn: 34791
2007-03-01 17:47:31 +00:00
Reid Spencer
742d1704e1
Add methods for bit width modification: sextOrTrunc, zextOrTrunc.
...
llvm-svn: 34789
2007-03-01 17:15:32 +00:00
Reid Spencer
6a44033465
Remove the "isSigned" parameters from ConstantRange. It turns out they
...
are not needed as the results are the same with or without it.
Patch by Nicholas Lewycky.
llvm-svn: 34782
2007-03-01 07:54:15 +00:00
Reid Spencer
c8841d2ea2
Use a real table in sqrt to shorten and quicken the code.
...
Thanks for the idea Chris.
llvm-svn: 34779
2007-03-01 06:23:32 +00:00
Reid Spencer
d99feafd5f
Add a square root function.
...
llvm-svn: 34775
2007-03-01 05:39:56 +00:00
Reid Spencer
9b3d6ec983
Move ConstantRange class to lib/Support from lib/Analysis and make its
...
interface not depend on Type or ICmpInst.
llvm-svn: 34761
2007-02-28 22:02:48 +00:00
Reid Spencer
91d3b3fce9
Make the trunc/sext/zext methods return APInt& so that these operations
...
can be chained together with other operations.
llvm-svn: 34743
2007-02-28 17:34:32 +00:00
Reid Spencer
66d0d572c2
Fix a bug in RoundDoubleToAPInt where it would force the size to 64 bits
...
instead of honoring the client's requested bit width.
llvm-svn: 34712
2007-02-28 01:30:08 +00:00
Reid Spencer
c2d433d47a
Join two lines that can be joined.
...
llvm-svn: 34705
2007-02-27 23:49:07 +00:00
Reid Spencer
31acef50ad
Implement countLeadingOnes() and getMinSignedBits(). This helps to minimize
...
the bit width of negative numbers by computing the minimum bit width for a
negative value. E.g. 0x1800000000000000 could be just 0x8000000000000000
llvm-svn: 34695
2007-02-27 21:59:26 +00:00
Reid Spencer
70cb5d4287
Improve APInt interface:
...
1. Add unsigned and signed versions of methods so a "bool" argument doesn't
need to be passed in.
2. Make the various getMin/getMax functions all be inline since they are
so simple.
3. Simplify sdiv and srem code.
llvm-svn: 34680
2007-02-27 20:24:31 +00:00
Reid Spencer
997d9e4585
Conform to single person attribution in file comment.
...
llvm-svn: 34678
2007-02-27 19:31:09 +00:00
Reid Spencer
54abdcf30b
1. Fix three serious bugs in the comparison code.
...
2. Change RoundDoubleToAPInt to take a bit width parameter. Use that
parameter to limit the bit width of the result.
llvm-svn: 34673
2007-02-27 18:23:40 +00:00
Reid Spencer
011651745c
Get rid of extraneous // in file comment.
...
llvm-svn: 34662
2007-02-27 07:35:18 +00:00
Reid Spencer
974551a7e9
Simplify and document RoundDoubleToAPInt.
...
llvm-svn: 34648
2007-02-27 01:28:10 +00:00
Reid Spencer
7c16cd2746
1. Make sure all delete operators of arrays use the array form of delete.
...
2. Rewrite operator=(const APInt& RHS) to allow the RHS to be a different
bit width than the LHS. This makes it possible to use APInt as the key
of a DenseMap, as needed for the IntConstants map in Constants.cpp
3. Fix operator=(uint64_t) to clear unused bits in case the client assigns
a value that has more bits than the APInt allows.
4. Assert that bit widths are equal in operator==
5. Revise getHashValue() to put the bit width in the low order six bits.
This should help to make i1 0, i2 0, ... i64 0 all distinct in the
IntConstants DenseMap.
llvm-svn: 34646
2007-02-26 23:38:21 +00:00
Reid Spencer
b2bc985a4e
Implement the getHashValue method.
...
Fix toString use of getValue to use getZExtValue()
llvm-svn: 34642
2007-02-26 21:02:27 +00:00
Reid Spencer
f09418d428
Re-enable this. The header was committed.
...
llvm-svn: 34634
2007-02-26 08:10:54 +00:00
Chris Lattner
d9fc268035
another missing header :( :( :(
...
llvm-svn: 34632
2007-02-26 07:51:00 +00:00
Reid Spencer
aa8dcfe441
1. Remove redundant calls to clearUsedBits().
...
2. Fix countTrailingZeros to use a faster algorithm.
3. Simplify sext() slightly by using isNegative().
4. Implement ashr using word-at-a-time logic instead of bit-at-a-time
5. Rename locals named isNegative so they don't clash with method name.
6. Fix fromString to compute negated value correctly.
llvm-svn: 34629
2007-02-26 07:44:38 +00:00
Reid Spencer
44eef169fa
Rewrite lshr to not do bit by bit copy but to copy and shift whole words.
...
This makes it much more efficient.
llvm-svn: 34618
2007-02-26 01:19:48 +00:00
Reid Spencer
fb55b7b99d
Fix sext operation. Shifting by zero would leave an incorrect mask.
...
llvm-svn: 34617
2007-02-25 23:54:00 +00:00
Reid Spencer
b6b5cc3e2f
1. Fix the flip() method to correctly flip all words of the APInt.
...
2. Implement the trunc, sext, and zext operations.
3. Improve fromString to accept negative values as input.
llvm-svn: 34616
2007-02-25 23:44:53 +00:00
Reid Spencer
a41e93be3d
1. Provide more detail in file comment.
...
2. Move comments for methods to .h file, delete them in .cpp file.
3. All places that were doing manual clear of high order bits now call the
clearUnusedBits() method in order to not depend on undefined behavior
of the >> operator when the number of bits shifted equals the word size.
4. Reduced # of loc by using the new result of clearUnusedBits() method.
5. Simplified logic (decreased indentation) in a few places.
6. Added code comments to larger functions that needed them.
7. Added FIXME notes about weak implementations of things (e.g. bit-by-bit
shift right is sub-optimal).
llvm-svn: 34603
2007-02-25 19:32:03 +00:00
Reid Spencer
28555779b4
Allow this to compile now that the header file is checked in.
...
llvm-svn: 34581
2007-02-25 07:30:14 +00:00
Chris Lattner
4ae31ba82c
this doesn't compile, disable it
...
llvm-svn: 34571
2007-02-25 02:32:44 +00:00
Reid Spencer
522ca7cd8b
Clean up lshr and ashr to coding standards.
...
Handle the single word cases for shiftAmt == BitWidth.
llvm-svn: 34569
2007-02-25 01:56:07 +00:00
Reid Spencer
ab0e08ae2f
Whoops, last word with bits in large shift left wasn't correct.
...
llvm-svn: 34565
2007-02-25 01:08:58 +00:00
Reid Spencer
a5c84d95fa
Fix the > 64 bits case for left shift.
...
llvm-svn: 34564
2007-02-25 00:56:44 +00:00
Reid Spencer
468ad911cb
Fix the remainder shifting in KnuthDiv.
...
llvm-svn: 34562
2007-02-24 20:38:01 +00:00
Reid Spencer
632ebdf8bd
1. Fix a bug in fromString for the <= 64bits case
...
2. Fix shl when shiftAmount == BitWidth.
llvm-svn: 34560
2007-02-24 20:19:37 +00:00
Reid Spencer
df6cf5ab71
1. Fix last bug in KnuthDiv. All divide tests pass up to 1024 bits now.
...
2. Clean up comments, style, coding standards, etc.
3. Simplify a constructor.
Extended testing revealed some additional bugs in shifting. I'll fix these
tomorrow.
llvm-svn: 34559
2007-02-24 10:01:42 +00:00
Reid Spencer
a5e0d200c9
1. Make internal functions take const arguments where they should, just
...
to be safe.
2. Make internal functions that return a carry/borrow return bool instead
of uint64_t because the carry/borrow can only be in range [0,1].
3. Assert that the pointers to KnuthDiv are all different so that the
result and operands can't overlap.
4. Add debug output to KnuthDiv function.
5. Fix a problem with KnuthDiv by separating the b's complement operation
from the subtraction borrow operation. This fixes a wide range of
division problems, but alas, not all of them.
llvm-svn: 34554
2007-02-24 03:58:46 +00:00
Chris Lattner
a5821eca0d
remove folding set debug output
...
llvm-svn: 34549
2007-02-24 01:41:48 +00:00
Chris Lattner
66330fdddb
Avoid TBAA issue.
...
llvm-svn: 34539
2007-02-23 22:31:24 +00:00
Reid Spencer
cb292e4a20
1. Fix a carry out problem in add if destination and x point to the same
...
memory (as done in fromString).
2. Implement Knuth divide more closely to what is recommended in his book.
3. Fix computation of the remainder for Knuth Divide (bad shifting).
4. Remove some cruft from the file
llvm-svn: 34518
2007-02-23 01:57:13 +00:00
Reid Spencer
867b4064ae
When converting from 64 to 32-bits, use the actual number of words to
...
extract the value, not the number of words implied by the active bits.
This fixes numerous, but not all divide bugs.
llvm-svn: 34484
2007-02-22 00:58:45 +00:00
Reid Spencer
e4ce71d07a
Fix countLeadingZeros in the case that the bitwidth evenly divides the
...
word size. This fixes all reads of uninitialized data (buffer over read)
and makes APInt.cpp memory clean, per valgrind. The only remaining
problem is division in a few cases.
llvm-svn: 34483
2007-02-22 00:22:00 +00:00
Reid Spencer
58a6a43cb3
Reorganize some code to make it clearer, avoid a few uninitialized memory
...
reads, and reduce the number of temporary APInt instances we construct.
llvm-svn: 34467
2007-02-21 08:21:52 +00:00
Reid Spencer
db2abec8ac
Fix the carry in addition.
...
llvm-svn: 34465
2007-02-21 05:44:56 +00:00
Reid Spencer
1ba833564e
1. Add a dump() method for faster debugging.
...
2. Change 0 initialization of union to larger component so all is zeroed.
3. Fix the borrow logic in subtraction so it works for > 128 bits.
4. Rewrite fromString to use a simpler but correct algorithm and also to
not set the bit width contrary to the user's request.
5. Optimize toString a bit by making it only do one Knuth divide per
iteration instead of two.
With these changes, all arithmetic passes (verified by pari/GP) up to
1024 bits except for certain division cases.
llvm-svn: 34463
2007-02-21 03:55:44 +00:00
Reid Spencer
74cf82e522
Fix countLeadingZeros to actually return the correct number.
...
Fix toString to correctly return "0" for zero valued APInts over 128 bits.
llvm-svn: 34459
2007-02-21 00:29:48 +00:00
Reid Spencer
7a6a8d5116
Make long addition and subtraction work. Speed things up by using internal
...
functions more.
llvm-svn: 34458
2007-02-20 23:40:25 +00:00
Reid Spencer
4bb430c4b4
Clean up variable names in operator*.
...
Attempt #3 for getting a portable INFINITY value.
llvm-svn: 34454
2007-02-20 20:42:10 +00:00
Reid Spencer
a83af6e1fc
Use INFINITY macro from math.h instead of constructing hex floating point
...
constants (avoids warnings).
llvm-svn: 34452
2007-02-20 18:29:12 +00:00
Reid Spencer
fb77b2ba13
First version that can process arith.cpp test case up to 1024 bits:
...
1. Ensure pVal is set to 0 in each constructor.
2. Fix roundToDouble to make correct calculations and not read beyond the
end of allocated memory.
3. Implement Knuth's "classical algorithm" for division from scratch and
eliminate buffer overflows and uninitialized mememory reads. Document
it properly too.
4. Implement a wrapper function for KnuthDiv which handles the 64-bit to
32-bit conversion and back. It also implement short division for the
n == 1 case that Knuth's algorithm can't handle.
5. Simplify the logic of udiv and urem a little, make them exit early, and
have them use the "divide" wrapper function to perform the division
or remainder operation.
6. Move the toString function to the end of the file, closer to where
the division functions are located.
Note: division is still broken for some > 64 bit values, but at least it
doesn't crash any more.
llvm-svn: 34449
2007-02-20 08:51:03 +00:00
Chris Lattner
4510c99a57
Not all managedstatics need object pointers.
...
llvm-svn: 34444
2007-02-20 06:18:57 +00:00
Reid Spencer
861c1cb67a
1. Fix some indentation and variable names in the get{Min,Max}Value methods.
...
2. Implement toString for power-of-2 radix without using divide and always
printing full words. This allows hex/binary to look at the bit
respresentation of the APInt as well as avoid bugs in divide.
llvm-svn: 34396
2007-02-18 22:29:05 +00:00
Reid Spencer
be4ddf6856
1. Use APINT_WORD_SIZE instead of sizeof(uint64_t)
...
2. Teach slt about signedness.
3. Teach roundToDouble to properly sign extend.
llvm-svn: 34391
2007-02-18 20:09:41 +00:00
Reid Spencer
a856b6e985
1. Remove dead code (lshift function).
...
2. Consolidate memory allocation into just two inline functions.
3. Convert "unsigned" to uint32_t to gaurantee its size.
4. Eliminate magic constants and replace with symbolic equivalent.
5. Improve code documentation slightly.
6. Simplify the logical operator code because bitwidths must be the same.
7. Fix indentation per coding standards.
8. Use exit-early style to reduce indentation in several functions.
llvm-svn: 34389
2007-02-18 18:38:44 +00:00
Reid Spencer
ee0a685ea1
Make add_1 exit early if carry is 0.
...
Fix line breaks and 80 cols violation.
Simplify operator^= since bitwidths must be the same.
llvm-svn: 34388
2007-02-18 06:39:42 +00:00
Reid Spencer
fbd48a566a
Implement signed output for toString.
...
Fix bugs in countLeadingZeros and countTrailingZeros.
llvm-svn: 34386
2007-02-18 00:44:22 +00:00
Reid Spencer
26c6616e4b
Fix some bugs in division logic.
...
llvm-svn: 34384
2007-02-17 22:38:07 +00:00
Reid Spencer
100502d256
Move static functions closer to their usage.
...
llvm-svn: 34363
2007-02-17 03:16:00 +00:00
Reid Spencer
3986776fbd
Clean up the divide and remainder logic a bit (exit early). Use more
...
meaningful variable names. Add comments to document the flow.
llvm-svn: 34362
2007-02-17 02:07:07 +00:00
Reid Spencer
a32372d110
Fix bugs introduced by constructor parameter order change.
...
llvm-svn: 34357
2007-02-17 00:18:01 +00:00
Reid Spencer
1d0721209d
Review changes:
...
1. Function style changes.
2. 80-col violations.
3. Better names for things.
4. Arrange constructors so they all take bit width first.
5. Add named signed and unsigned comparison functions and remove the
corresponding operators.
6. Remove operator&& and operator|| but provide a getBoolValue function which
converts to bool as comparison against 0. This allows the normal && and
|| operators to be used as if (X.getBoolValue() && Y.getBoolValue())
Note: this still doesn't function 100% yet. I'm working on the bugs now.
llvm-svn: 34353
2007-02-16 22:36:51 +00:00
Anton Korobeynikov
d01defedf6
Add possibility to set memory limit for binaries run via libSystem. This
...
is especially needed for bugpoint. This partly implements PR688
llvm-svn: 34349
2007-02-16 19:11:07 +00:00
Zhou Sheng
cfa2ac0592
Fix some buges:
...
1. Make getMinValue() returns the right value.
2. Fix the ByteSwap() crash problem.
3. Make Postfix increment work correctly.
4. Fix some bugs in LogBase2, Hi/LoBits and UDiv.
llvm-svn: 34304
2007-02-15 06:36:31 +00:00
Reid Spencer
0c5db23119
Use brute-force algorithm for to_string. It doesn't have to be efficient
...
at this point, it just needs to work so we can test things reliably.
llvm-svn: 34262
2007-02-14 02:52:25 +00:00
Reid Spencer
5153525402
Make some minor improvements to APInt:
...
1. Make all the operators use uppercase
2. Rename APIntRoundToDouble method just RoundToDouble, the APInt is
redundant.
3. Turn the class on for compilation.
llvm-svn: 34253
2007-02-13 22:41:58 +00:00
Zhou Sheng
d707d63317
1. Make APInt::shl work correctly and more efficiently.
...
2. Add functions to support the numberical conversion between APInt and
double/float.
llvm-svn: 34201
2007-02-12 20:02:55 +00:00
Chris Lattner
77baa56a70
Add support for removing elements out of StringMap.
...
llvm-svn: 34185
2007-02-11 20:58:00 +00:00
Chris Lattner
db08c1bc83
Replace the ugly FindValue method with STL-like find methods.
...
llvm-svn: 34183
2007-02-11 19:49:41 +00:00
Chris Lattner
9521fec8cf
remove support for stringmap visitors now that iterators exist.
...
llvm-svn: 34180
2007-02-11 08:22:15 +00:00
Chris Lattner
e15605ccbf
add support for iterators.
...
llvm-svn: 34179
2007-02-11 08:20:35 +00:00
Zhou Sheng
e93db8fba2
Eliminates friend function declaration inside APInt, instead, adds public
...
methods as those global function's internal implementation.
llvm-svn: 34083
2007-02-09 07:48:24 +00:00
Chris Lattner
751a42010b
Rename CStringMap -> StringMap, since it now supports nul characters in the
...
strings.
llvm-svn: 34064
2007-02-08 19:20:57 +00:00
Chris Lattner
259ba20bd8
Allow cstringmap to contain strings with nul characters in them.
...
llvm-svn: 34062
2007-02-08 19:08:37 +00:00
Zhou Sheng
11eea86410
Switched this file on accidently.
...
llvm-svn: 34054
2007-02-08 16:45:48 +00:00
Zhou Sheng
fbf61eaba7
As Chris and Reid suggested, remove "isSigned" field from APInt, instead,
...
add some signed/unsigned arithmetic operation functions into APInt.h to
handle the signed/unsigned issue. These functions will be defined inside a
namespace "APIntOps" which is inside llvm namespace.
llvm-svn: 34053
2007-02-08 14:35:19 +00:00
Zhou Sheng
3e8022d61d
As Chris suggested, fixed some problems. (This is the first part)
...
llvm-svn: 33989
2007-02-07 06:14:53 +00:00
Chris Lattner
e346767f06
do not let the table fill up with tombstones.
...
llvm-svn: 33973
2007-02-07 01:11:25 +00:00
Zhou Sheng
94b623aad4
As Reid suggested, fixed some problems.
...
llvm-svn: 33955
2007-02-06 06:04:53 +00:00
Chris Lattner
28cbd1d624
Disable this for now.
...
llvm-svn: 33953
2007-02-06 05:38:37 +00:00
Zhou Sheng
dac63788ab
Add a class APInt to represent arbitrary precision constant integral values.
...
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.
llvm-svn: 33951
2007-02-06 03:00:16 +00:00
Chris Lattner
92c5d1185f
Fix a bug in smallptrset::erase: in the small case, return true if the
...
element was in the set.
llvm-svn: 33931
2007-02-05 23:10:31 +00:00
Chris Lattner
010ee96261
Encode small integers more densely in foldingset, avoiding overflowing the SmallVector as often.
...
llvm-svn: 33864
2007-02-04 01:48:10 +00:00
Chris Lattner
4f5cdecde3
improve comments, add an assertion
...
llvm-svn: 33750
2007-02-01 05:33:21 +00:00
Devang Patel
9eb2caaeb6
Add PrintVersionMessage() that tools can use to print version number
...
without exiting program.
llvm-svn: 33737
2007-02-01 01:43:37 +00:00
Reid Spencer
e7422f6b8d
Add some debug output.
...
llvm-svn: 33718
2007-01-31 21:27:38 +00:00
Chris Lattner
0dbb13735e
minor cleanups. Fix off-by-one in accounting the number of nodes when the
...
table grows.
llvm-svn: 33698
2007-01-31 06:04:41 +00:00
Chris Lattner
a94523df7b
reformat comment
...
llvm-svn: 33675
2007-01-30 23:16:22 +00:00
Chris Lattner
39ab70cf80
implement SmallPtrSet::erase
...
llvm-svn: 33581
2007-01-27 07:59:10 +00:00
Chris Lattner
ab5d0ba168
add a note
...
llvm-svn: 33578
2007-01-27 07:18:32 +00:00
Chris Lattner
74102df857
Add a new SmallSet ADT specialized for pointers.
...
llvm-svn: 33577
2007-01-27 07:10:46 +00:00
Anton Korobeynikov
a41d9eca96
Moved disassembler to libSystem
...
llvm-svn: 33461
2007-01-23 10:26:08 +00:00
Anton Korobeynikov
3e956974b3
Adding disassembler interface and external hook to udis86 library.
...
llvm-svn: 33358
2007-01-19 17:25:17 +00:00
Chris Lattner
dff39e53f1
wow, the link was already broken :)
...
llvm-svn: 32963
2007-01-06 23:20:51 +00:00
Chris Lattner
8a7183b5b8
add a note
...
llvm-svn: 32962
2007-01-06 23:19:38 +00:00
Bill Wendling
4ec17c3951
The previous implementation of LLVM Streams wasn't removing symbols. This
...
one should.
llvm-svn: 32845
2007-01-03 22:37:27 +00:00
Chris Lattner
00bb216977
eliminate constructor from Statistic class. It is now impossible to get a
...
static constructor for them :). Transition complete.
llvm-svn: 32710
2006-12-19 23:17:40 +00:00
Chris Lattner
13bfd32f5d
Refactor statistic a big and introduce a horrible-but-necessary macro
...
(STATISTIC), which allows us to define statistics that don't introduce
static ctors into the .o files. I'm migrating code over to use this
incrementally.
llvm-svn: 32687
2006-12-19 21:27:47 +00:00
Bill Wendling
a77f14265b
Added an automatic cast to "std::ostream*" etc. from OStream. We then can
...
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Chris Lattner
8c9969ac03
Change the implementation of statistic to not need destructors at all.
...
Instead, the stat info is printed when llvm_shutdown() is called.
These also don't need static ctors, but getting rid of them is uglier:
still investigating. This reduces the number of static dtors in llvm from
~1400 to ~750.
llvm-svn: 32372
2006-12-08 20:00:42 +00:00
Bill Wendling
30c0f3367c
Don't use <sstream> in Streams.h but <iosfwd> instead.
...
llvm-svn: 32340
2006-12-07 23:41:45 +00:00
Bill Wendling
355fc5ad50
Removed more <iostream> includes
...
llvm-svn: 32321
2006-12-07 20:28:15 +00:00
Bill Wendling
f3baad3ee1
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Chris Lattner
5bbf770764
merge the Statistic and StatisticBase classes, eliminating virtual methods
...
and eliminating #includes from the Statistic.h file.
llvm-svn: 32282
2006-12-06 18:20:44 +00:00
Chris Lattner
700b873130
Detemplatize the Statistic class. The only type it is instantiated with
...
is 'unsigned'.
llvm-svn: 32279
2006-12-06 17:46:33 +00:00
Chris Lattner
228bcd3802
Add a helper function
...
llvm-svn: 31981
2006-11-28 22:32:35 +00:00
Bill Wendling
3750ae25a0
Removed #include <iostream> and replace with llvm_* streams.
...
llvm-svn: 31927
2006-11-26 10:52:51 +00:00
Reid Spencer
aa5c220665
Make the absolute/relative tolerance information easier to read/understand.
...
llvm-svn: 31908
2006-11-25 08:38:44 +00:00
Bill Wendling
9594f3a196
Moved definition of llvm_ostream wrappers to the Streams.cpp file.
...
llvm-svn: 31819
2006-11-17 09:54:47 +00:00
Bill Wendling
3315869498
Added wrappers for the std::cerr/std::cout objects. The wrappers will
...
soon replace all uses of those objects.
llvm-svn: 31817
2006-11-17 09:51:22 +00:00
Bill Wendling
d7fda04420
Added "DOUT" macro. This is used as a replacement for the std::cerr
...
stream. It centralizes the use of std::cerr so that static c'tor/d'tors
aren't scattered around all over the place. The way to use it is like this:
DOUT << "This is a status line: " << Var << "\n";
If "-debug" is specified, it will print. Otherwise, it'll not print. If
NDEBUG is defined, the DOUT does nothing.
llvm-svn: 31798
2006-11-17 00:49:12 +00:00
Jim Laskey
61feeb90f9
Remove redundant <cmath>.
...
llvm-svn: 31561
2006-11-08 19:16:44 +00:00
John Criswell
8ea2e68493
Include llvm/Support/DataTypes.h to define intptr_t.
...
This fixes the build on OpenBSD and potentially other systems.
llvm-svn: 31550
2006-11-08 15:04:35 +00:00
Rafael Espindola
f16dbf697a
assert.h -> cassert
...
llvm-svn: 31399
2006-11-03 01:38:14 +00:00
Rafael Espindola
a1fde82b6b
#include <assert.h>
...
llvm-svn: 31386
2006-11-02 23:48:53 +00:00
Jim Laskey
eb0fd251c1
Allow FoldingSet clients to pump up the initial hash size.
...
llvm-svn: 31377
2006-11-02 14:21:26 +00:00
Chris Lattner
149e666baf
add a highly efficient hash table that is specialized for mapping C strings
...
to some other type.
llvm-svn: 31286
2006-10-29 23:42:03 +00:00
Chris Lattner
b9de90377f
Add a new llvm::Allocator abstraction, which will be used by a container
...
I'm about to add. This is similar to, but necessarily different than, the
STL allocator class.
llvm-svn: 31285
2006-10-29 22:08:03 +00:00
Jim Laskey
179ebd3fc3
Try again.
...
llvm-svn: 31278
2006-10-29 09:19:59 +00:00
Jim Laskey
8f05a611e9
Not handling zero length strings.
...
llvm-svn: 31277
2006-10-29 08:27:07 +00:00
Jim Laskey
cef515fcc0
SmallVector append not insert.
...
llvm-svn: 31224
2006-10-27 19:38:32 +00:00
Jim Laskey
a9e9cae33e
Grrr.
...
llvm-svn: 31223
2006-10-27 19:20:12 +00:00
Jim Laskey
a88e609c0f
Temp patch for missing functionality.
...
llvm-svn: 31222
2006-10-27 19:14:16 +00:00
Bill Wendling
e0412f500e
MathExtras isn't in the llvm/ADT directory but in the llvm/Support directory.
...
llvm-svn: 31219
2006-10-27 18:47:29 +00:00
Jim Laskey
6ca4a345dd
Apply editorials.
...
llvm-svn: 31218
2006-10-27 18:05:12 +00:00
Jim Laskey
43bc1847a2
Breakout folding hash set from SelectionDAGCSEMap.
...
llvm-svn: 31215
2006-10-27 16:16:16 +00:00
Reid Spencer
309e03aea2
Beef up the output from DiffFilesWithTolerance by setting the error code
...
to describe the difference being reported. This assists with understanding
differences an llvm-test and should help with bugpoint too.
llvm-svn: 31044
2006-10-18 20:23:52 +00:00
Chris Lattner
5af1cbc5cf
avoid a ctor/dtor issue with the ProgramName global.
...
llvm-svn: 30925
2006-10-13 00:06:24 +00:00
Chris Lattner
adb19d6e8f
shrink anon-ns and mark stuff static. No functionality changes
...
llvm-svn: 30922
2006-10-12 22:09:17 +00:00
Chris Lattner
c374ec43b5
Fix a static dtor issue
...
llvm-svn: 30726
2006-10-04 22:13:11 +00:00
Chris Lattner
8111c59279
Fix more static dtor issues
...
llvm-svn: 30725
2006-10-04 21:52:35 +00:00
Chris Lattner
adf4095338
Define this in the correct n/s
...
llvm-svn: 30671
2006-09-29 18:43:14 +00:00
Chris Lattner
9daff49ebb
new helper class to provide more explicit management of static ctor/dtors.
...
llvm-svn: 30638
2006-09-28 00:31:55 +00:00
Chris Lattner
f5bed76353
Instantiate Statistic<> in one place, not in every .o file that uses it.
...
llvm-svn: 29971
2006-08-30 04:17:00 +00:00
Chris Lattner
2de6e33c06
Minor code cleanups
...
llvm-svn: 29917
2006-08-27 22:10:29 +00:00
Chris Lattner
3e5d60fcea
Add external definitions for commonly-used template specializations and add
...
anchor methods to others. This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).
llvm-svn: 29909
2006-08-27 12:45:47 +00:00
Reid Spencer
a38aa72771
Remove a character to avoid line exceeding 80 cols.
...
llvm-svn: 29860
2006-08-24 22:39:25 +00:00
Reid Spencer
2fe39fea85
For PR797:
...
This library no longer throws nor handles exceptions, so turn off the
REQUIRES_EH flag.
llvm-svn: 29849
2006-08-23 20:39:25 +00:00
Reid Spencer
d62a96323d
For PR797:
...
Final remove of exception handling from this file. lib/System can no longer
throw exceptions so there's no need for try/catch blocks here.
llvm-svn: 29848
2006-08-23 20:37:59 +00:00
Reid Spencer
bd156a901d
Make the ProgramName variable a std::string so we can eliminate the path
...
portion fo the program name via sys::Path().getLast(). This makes error
messages more readable since this is invariably used only in error
messages. Instead of:
/path/to/llvm/bin/directory/toolname: error message
we will now get:
toolname: error message
Also, since we always have a program name (even if its defaulted), don't
check to see if it is set or not when generating error messages. This
eliminates a bunch of constant strings, saving a little under 1K of data.
llvm-svn: 29842
2006-08-23 07:10:06 +00:00
Reid Spencer
efdc3a13cd
For PR797:
...
Adjust users of MappedFile to its new non-throwing interface. Note that in
most cases the lazy step of just throwing after a call to MappedFile was
installed. This was done in the name of incremental changes. Getting rid of
the new throw statements will take adjustment of interfaces and propagation
of errors to higher levels. Those changes will come in subsequent patches.
llvm-svn: 29817
2006-08-22 16:06:27 +00:00
Jim Laskey
5c51c2b4ab
Adding new Dwarf constants.
...
llvm-svn: 29798
2006-08-21 21:18:10 +00:00
Reid Spencer
944645af44
For PR797:
...
Adjust usage of the ExecuteAndWait function to use the last argument which
is the ErrMsg string. This is necessitated because this function no longer
throws exceptions on error.
llvm-svn: 29791
2006-08-21 06:04:45 +00:00
Reid Spencer
c295914b7a
For PR797:
...
Make sys::Program::ExecuteAndWait not throw exceptions and update any
affected code. It now return -9999 to signal that the program couldn't be
executed. Only one case (in bugpoint) actually examines the result code.
llvm-svn: 29785
2006-08-21 02:04:43 +00:00
Chris Lattner
5425637481
remove IncludeFile turds in MathExtras.h, which bloats every .o file that
...
#includes it.
llvm-svn: 29639
2006-08-11 23:52:54 +00:00
Reid Spencer
47b1ed7276
Remove the use of "IncludeFile" from this support facility. The mechanism
...
to build a loadable module is now correctly defined and documented so this
workaround isn't needed any longer.
llvm-svn: 29553
2006-08-07 23:20:15 +00:00
Jim Laskey
82cd9c513e
If the Program name was NULL then all further output sent to std::cerr was
...
suppressed.
llvm-svn: 29477
2006-08-02 20:15:56 +00:00
Chris Lattner
2091cc86af
Finegrainify namespacification, minor cleanups
...
llvm-svn: 29399
2006-07-28 22:21:01 +00:00
Chris Lattner
4857253d98
Change Path::getStatusInfo to return a boolean and error string on an error
...
instead of throwing an exception. This reduces the amount of code that is
exposed to exceptions (e.g. FileUtilities), though it is clearly only one step
along the way.
llvm-svn: 29395
2006-07-28 22:03:44 +00:00
Chris Lattner
6da9d8ecf9
libsupport still throws.
...
llvm-svn: 29394
2006-07-28 22:01:01 +00:00
Reid Spencer
421475cd3b
For PR780:
...
1. Move IncludeFile.h to System library
2. Move IncludeFile.cpp to System library
3. #1 and #2 required to prevent cyclic library dependencies for libSystem
4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h
5. Add IncludeFile support to various lib/System classes.
6. Add new lib/System classes to LinkAllVMCore.h
All this in an attempt to pull in lib/System to what's required for VMCore
llvm-svn: 29287
2006-07-26 16:18:00 +00:00
Chris Lattner
a0ddced752
Add an out-of-line virtual method to provide a home for the cl::option class.
...
llvm-svn: 29191
2006-07-18 23:59:33 +00:00
Chris Lattner
1025840417
Add two helpers for escaping and unescaping strings.
...
llvm-svn: 29151
2006-07-14 22:54:39 +00:00
Chris Lattner
a41def5801
LoadLibraryPermanently no longer throws an exception, so this code doesn't have
...
to catch it. Other minor cleanups.
llvm-svn: 29050
2006-07-07 17:14:04 +00:00
Chris Lattner
4f1b929022
This patch (written by Reid) changes compressor to never throw an exception.
...
llvm-svn: 29045
2006-07-07 17:00:12 +00:00
Chris Lattner
5418b0f39e
Modify the SlowOperationInformer interface to not throw exceptions.
...
llvm-svn: 29028
2006-07-06 22:34:06 +00:00
Chris Lattner
8ac22e748c
Print LLVM version info like this:
...
Low Level Virtual Machine (http://llvm.org/ ):
llvm version 1.8cvs
DEBUG build with assertions.
instead of like this:
Low Level Virtual Machine (llvm) 1.8cvs (see http://llvm.org/ ) ASSERTIONS ENABLED
Also, add a place for vendor version info.
llvm-svn: 29020
2006-07-06 18:33:03 +00:00
Reid Spencer
ee7eaa25cf
For PR801:
...
Refactor the Graph writing code to use a common implementation which is
now in lib/Support/GraphWriter.cpp. This completes the PR.
Patch by Anton Korobeynikov. Thanks, Anton!
llvm-svn: 28925
2006-06-27 16:49:46 +00:00
Chris Lattner
1c12a881fb
Add some out-of-line virtual dtors so that the class has a "home", preventing
...
vtables for (e.g.) Instruction from being emitted into every .o file.
llvm-svn: 28898
2006-06-21 16:53:47 +00:00
Jim Laskey
19f964e048
1. Support standard dwarf format (was bootstrapping in Apple format.)
...
2. Add vector support.
llvm-svn: 28807
2006-06-15 20:51:43 +00:00
Reid Spencer
54cb2d8533
For PR780:
...
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.
llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Chris Lattner
d63b1b5a1f
Move toolrunner out of libsupport into the bugpoint tool
...
llvm-svn: 28700
2006-06-06 22:31:36 +00:00
Reid Spencer
c3065b7d3f
Add the -Xlinker option to bugpoint which allows an option to be passed
...
through to gcc when its being used as a linker. This allows -L and -l
(and any other) options to be added so that non-complete bytecode files
can be processed with bugpoint. The -Xlinker option can be added as many
times as needed.
llvm-svn: 28692
2006-06-06 00:00:42 +00:00
Reid Spencer
b3171678ee
Make it possible to override the standard version printer. Not all tools
...
built with CommandLine.h will want the --version option to report that the
tool belongs to LLVM. To override simply pass a void func() to the
cl::SetVersionPrinter() function and that void func() will be called when
it is time to print the version information.
llvm-svn: 28687
2006-06-05 16:22:56 +00:00
Reid Spencer
a647c7ff42
Use archive libraries instead of object files for VMCore, BCReader,
...
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.
llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Reid Spencer
d8df61a4d0
Squelch this warning:
...
/bzlib.c:126: warning: string length `1056' is greater than the length `509' ISO
C89 compilers are required to support
llvm-svn: 28602
2006-05-31 21:53:42 +00:00
Chris Lattner
aa2372562e
Patches to make the LLVM sources more -pedantic clean. Patch provided
...
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Reid Spencer
26bb7c467f
For PR777:
...
Add an additional catch block to ensure that this function can't throw any
exceptions, even one's we're not expecting.
llvm-svn: 28309
2006-05-15 22:12:42 +00:00
Chris Lattner
1b7a51520c
Fix PR743: emit -help output of a tool to cout, not cerr.
...
llvm-svn: 28010
2006-04-28 05:36:25 +00:00
Jim Laskey
6d5c2a0156
Qualify dwarf namespace inside llvm namespace.
...
llvm-svn: 26409
2006-02-27 22:37:23 +00:00
Jim Laskey
22e47b9f4e
Re-orging file.
...
llvm-svn: 26401
2006-02-27 12:43:29 +00:00
Chris Lattner
2d2e2e3c0e
Let bugpoint work on sparc with v9 instructions enabled.
...
llvm-svn: 25958
2006-02-04 05:02:27 +00:00
Andrew Lenharth
4558e4ae10
dynamically allocate plugin space as needed
...
llvm-svn: 25652
2006-01-26 19:38:58 +00:00
Andrew Lenharth
bb4c9c0bd7
Remember plugins should someone like bugpoint want to know them.
...
llvm-svn: 25649
2006-01-26 18:36:50 +00:00
Chris Lattner
469640e506
Add explicit #includes of <iostream>
...
llvm-svn: 25509
2006-01-22 22:53:01 +00:00
Chris Lattner
c9fbba6fc0
Revert this, I didn't mean to commit it
...
llvm-svn: 25382
2006-01-17 00:40:24 +00:00
Chris Lattner
f64762c26e
Add support for programs with a null argv[0]
...
llvm-svn: 25379
2006-01-17 00:32:28 +00:00
Duraid Madina
b43eb8c75b
HP aCC chokes on this, but it's not required anyway: according to
...
the bzip2 homepage, only ancient (gcc 2.7.x ?) versions of GCC
require this? It certainly isn't needed for the current bzip2
sources.
llvm-svn: 25013
2005-12-26 05:00:25 +00:00
Duraid Madina
36501f5eb0
MERRY CHRISTMAS EVERYONE!!! (what better way to spend christmas than
...
to try building LLVM on HP-UX! (the Right Way seems to be to tear out
the ancient STL that HP ship and use http://incubator.apache.org/stdcxx/ )
llvm-svn: 25012
2005-12-26 04:56:16 +00:00
Reid Spencer
6197688c71
For PR351:
...
Move the system dependent portion to lib/System/*/Alarm.inc. This makes the
SlowOperationInformer platform independent.
llvm-svn: 24938
2005-12-22 03:31:26 +00:00
Chris Lattner
fdc8b19ad6
indicate when a tool is a debug build.
...
llvm-svn: 24374
2005-11-16 06:36:47 +00:00
Chris Lattner
bde3845548
DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now
...
llvm-svn: 23940
2005-10-24 02:26:13 +00:00
Chris Lattner
1e050bd88b
Only build .a file versions of these libraries, instead of .a and .o versions.
...
This should speed up build times.
llvm-svn: 23934
2005-10-24 02:05:35 +00:00
Chris Lattner
1a1ecf0679
Allow bugpoint+PPC codegen to use fsqrt
...
llvm-svn: 23128
2005-08-29 13:14:24 +00:00
Chris Lattner
d09a9a788b
Allow tools with "consume after" options (like lli) to take more positional
...
opts than they take directly. Thanks to John C for pointing this problem
out to me!
llvm-svn: 22717
2005-08-08 21:57:27 +00:00
Chris Lattner
d380d8412d
Reject command lines that have too many positional arguments passed (e.g.,
...
'opt x y'). This fixes PR493.
Patch contributed by Owen Anderson!
llvm-svn: 22705
2005-08-08 17:25:38 +00:00
Chris Lattner
fca31aee4f
200.sixtrack prints FP numbers with a very strange notation that uses D
...
instead of E for exponentials (e.g. 1.234D-43). Add support for this
notation.
llvm-svn: 22574
2005-08-02 00:11:53 +00:00
Jeff Cohen
5f4ef3c5a8
Eliminate all remaining tabs and trailing spaces.
...
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Reid Spencer
af48d8643d
Final Changes For PR495:
...
This chagne just renames some sys::Path methods to ensure they are not
misused. The Path documentation now divides methods into two dimensions:
Path/Disk and accessor/mutator. Path accessors and mutators only operate
on the Path object itself without making any disk accesses. Disk accessors
and mutators will also access or modify the file system. Because of the
potentially destructive nature of disk mutators, it was decided that all
such methods should end in the work "Disk" to ensure the user recognizes
that the change will occur on the file system. This patch makes that
change. The method name changes are:
makeReadable -> makeReadableOnDisk
makeWriteable -> makeWriteableOnDisk
makeExecutable -> makeExecutableOnDisk
setStatusInfo -> setStatusInfoOnDisk
createDirectory -> createDirectoryOnDisk
createFile -> createFileOnDisk
createTemporaryFile -> createTemporaryFileOnDisk
destroy -> eraseFromDisk
rename -> renamePathOnDisk
These changes pass the Linux Deja Gnu tests.
llvm-svn: 22354
2005-07-08 03:08:58 +00:00
Nate Begeman
b62a4c8da6
Add support for assembling .s files on mac os x for intel
...
Add support for running bugpoint on mac os x for intel
llvm-svn: 22351
2005-07-08 00:23:26 +00:00
Reid Spencer
c9c0473fa5
For PR495:
...
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:
appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set
Changes pass Dejagnu and llvm-test/SingleSource tests.
llvm-svn: 22349
2005-07-07 23:21:43 +00:00
Reid Spencer
5b891e9847
For PR495:
...
Change interface to Path class:
readable -> canRead
writable -> canWrite
executable -> canExecute
More (incremental) changes coming to close 495.
llvm-svn: 22345
2005-07-07 18:21:42 +00:00
Duraid Madina
33464ad3a2
HP-UX system headers make a mess of isinf(), so much so that gcc fixincludes
...
can't patch it up for c++ (works in C though)
llvm-svn: 22079
2005-05-16 06:45:57 +00:00
Chris Lattner
88bb4457fc
Capitalize
...
llvm-svn: 21964
2005-05-13 19:49:09 +00:00
Reid Spencer
39ec7f049d
Make sure that decompression checks for the case that bzip2 returns
...
BZ_OK (meaning more data is expected) but there is no more input data. In
this case, the input file is probably truncated. Generate an exception that
indicates this case when its detected.
llvm-svn: 21926
2005-05-13 07:05:37 +00:00
Chris Lattner
c18e92f3cd
Do not use "" as a sentinal for a missing argument! This fixes PR560.
...
llvm-svn: 21850
2005-05-10 23:20:17 +00:00
Misha Brukman
308a715acc
Why output multiple strings, let the compiler concatenate them for us for free
...
llvm-svn: 21845
2005-05-10 22:03:50 +00:00
Misha Brukman
7937b07940
* Order #includes as per style guide
...
* Combine multiple ``std::cerr <<'' statements into one for simplicity
llvm-svn: 21458
2005-04-22 19:13:22 +00:00
Misha Brukman
5191b4b2d0
Convert tabs to spaces
...
llvm-svn: 21440
2005-04-22 04:08:30 +00:00
Misha Brukman
10468d8a3c
Remove trailing whitespace
...
llvm-svn: 21422
2005-04-21 22:55:34 +00:00
Chris Lattner
24922c7a2b
Timers SHOULD NOT record the time taken to count the bytes allocated in the heap!
...
llvm-svn: 20765
2005-03-22 03:20:38 +00:00
Chris Lattner
252f546ceb
Fix a bug where we would consider " .99" and "1.0" different because of the
...
leading whitespace.
llvm-svn: 20647
2005-03-17 04:49:04 +00:00
Andrew Lenharth
7054073bb6
yay for camel_cvs diff
...
llvm-svn: 20552
2005-03-10 20:15:09 +00:00
Chris Lattner
b9f0cebeb5
get bugpoint working on ia64, by building .so's with -fpic. :)
...
llvm-svn: 20525
2005-03-09 03:31:02 +00:00
Chris Lattner
5315aa0ec6
Remove some stuff I checked in accidentally
...
llvm-svn: 20340
2005-02-27 04:32:35 +00:00
Chris Lattner
3e7a193bd7
Instead of doing a manual comparison loop, just use memcmp, thanks to JohnC
...
for the suggestion! :)
llvm-svn: 20203
2005-02-15 22:12:10 +00:00
Chris Lattner
9d0db6f602
Make this more efficient now that we know both files are the same length.
...
llvm-svn: 20202
2005-02-15 22:01:43 +00:00
Misha Brukman
f232a4582d
Fix spelling
...
llvm-svn: 20201
2005-02-15 21:59:53 +00:00
Reid Spencer
f4425b0208
Adjust DiffFilesWithTolerance to help poor cygwin's mmap facility by
...
handling zero length files a little more intelligently. If both files are
zero length then we return 0 (true) indicating a match. If only one of the
files is zero length then we return 1 (false) indicating that the files
differ. If the files don't agree in length then they can't match so we
skip the first loop that looks for a quick match.
llvm-svn: 20200
2005-02-15 21:47:02 +00:00
Chris Lattner
a3a55bf997
Work around GCC PR19958, which causes programs to sometimes crash after
...
printing help output or version info.
llvm-svn: 20180
2005-02-14 19:17:29 +00:00
Chris Lattner
dc01c3f058
Move helper function here.
...
llvm-svn: 20168
2005-02-13 23:13:47 +00:00
Chris Lattner
610ce2c678
Don't print a 'Total Execution Time' line for the 'Miscellaneous Ungrouped
...
Timers' section. Since these are random timers in the program it doesn't
make sense to sum them up.
llvm-svn: 20090
2005-02-09 18:41:32 +00:00
Tanya Lattner
5ca41e2b68
Make this work on systems where size_t == unsigned and where they are not
...
the same.
llvm-svn: 19929
2005-01-29 23:29:55 +00:00
Tanya Lattner
238cf92000
Make this work on systems where size_t is not the same as unsigned.
...
llvm-svn: 19928
2005-01-29 23:08:01 +00:00
Chris Lattner
800b72445f
This file was schizophrenic when it came to representing sizes. In some
...
cases it represented them as 'unsigned's, which are not enough for 64-bit
hosts. In other cases, it represented them as uint64_t's, which are
inefficient for 32-bit hosts.
This patch unifies all of the sizes to use size_t instead.
llvm-svn: 19918
2005-01-29 17:17:18 +00:00
Chris Lattner
bb4384ba71
After reading in a bc file, trim the resultant buffer down to what we
...
really need. This reduces 4M of memory consumption reading 176.gcc.
llvm-svn: 19916
2005-01-29 17:05:56 +00:00
Chris Lattner
173340640a
Finegrainify namespacification
...
llvm-svn: 19915
2005-01-29 16:53:02 +00:00
Chris Lattner
2295d0b7de
Memory used is a delta between memuse at the start of the time and the
...
memuse at the end, thus it is signed.
llvm-svn: 19904
2005-01-29 05:21:16 +00:00
Chris Lattner
6c43f5e5fe
Fix crash comparing empty file against nonempty file.
...
llvm-svn: 19782
2005-01-23 06:02:40 +00:00
Chris Lattner
b782187b32
Make DiffFilesWithTolerance take sys::Path's instead of std::strings
...
Delete dead functions.
llvm-svn: 19771
2005-01-23 03:31:02 +00:00
Chris Lattner
364e8b771d
Fix a bug in previous checkin
...
llvm-svn: 19769
2005-01-23 03:19:13 +00:00
Chris Lattner
16a4368c40
Add a new method, refactored out of fpcmp
...
llvm-svn: 19766
2005-01-23 03:13:43 +00:00
Jeff Cohen
c8f1f4bc8e
Use binary mode for reading/writing bytecode files
...
llvm-svn: 19751
2005-01-22 17:36:17 +00:00
Jeff Cohen
1a26d15c80
Use size_t instead of long to represent memory usage. long is 32 bits
...
on 64-bit Windows.
llvm-svn: 19393
2005-01-08 20:15:57 +00:00
Chris Lattner
867158cefd
Do not throw away bits for no reason
...
llvm-svn: 19378
2005-01-08 19:32:59 +00:00
Chris Lattner
2c5e4ed8f9
Silence a VS warning.
...
llvm-svn: 19377
2005-01-08 19:31:31 +00:00
Reid Spencer
4e8dd44733
Make printing a warning message optional in CheckBytecodeOutputToConsole.
...
llvm-svn: 19240
2005-01-02 00:10:03 +00:00
Reid Spencer
1263cfd14f
Implement a function to print a warning if bytecode output is to be sent to
...
a terminal/console.
llvm-svn: 19237
2005-01-01 23:56:20 +00:00
Reid Spencer
ad7bdf7400
Fix a bug that made the nightly tester *really* slow. During changes for
...
portability, the --track-space option was inadvertently ignored. This patch
fixes that so that sys::Process::GetMallocUsage() is only invoked if the
--track-spaces option is given. Apparently the mallinfo() call that
GetMallocUsage() uses is *very* slow, especially when processing very large
modules like projects/llvm-test/MultiSource/Applications/kimwitu++.
llvm-svn: 19163
2004-12-27 08:03:04 +00:00
Reid Spencer
5260b5b46d
For PR351:
...
Move non-portable FDHandle class to its only user: lib/Debugger
llvm-svn: 19106
2004-12-22 10:24:43 +00:00
Reid Spencer
92e8a5a0ea
Fix a bug where system time always equals user time
...
llvm-svn: 19075
2004-12-20 21:44:27 +00:00
Reid Spencer
ee556dd431
Put some header files back that Win32 needs.
...
llvm-svn: 19058
2004-12-20 03:59:23 +00:00
Reid Spencer
2708881067
For PR351:
...
* Move system dependent implementation out of this file.
* Make implementation use sys::Process::GetMallocUsage where necessary.
* Make implementation use sys::Process::GetTimeUsage where necessary.
llvm-svn: 19053
2004-12-20 00:59:04 +00:00
Reid Spencer
2d76ff5c85
For PR351:
...
* Pass sys::Path instead of std::string for paths
* Correct the types of arguments passed to RunProgramWithTimeout due to its
interface using sys::Path instead of std::string
* Replace "/dev/null" (not portable) with empty string which
sys::Program::ExecuteAndWait recognizes as "redirect to bit bucket"
llvm-svn: 19041
2004-12-19 18:00:21 +00:00
Reid Spencer
d44f845213
For PR351:
...
* Remove unneeded header files.
* Move RedirectFD static function to lib/System/Unix/Program.cpp
* Delete RunProgramWithTimeout, now implemented by
sys::Program::ExecuteAndWait. RunProgramWithTimeout is now a convenience func.
llvm-svn: 19040
2004-12-19 18:00:09 +00:00
Reid Spencer
beb9946af8
For PR351:
...
* Make the OutputC and OutputAsm functions work with sys::Path for the output
file name instead of using std::string.
* Get rid of extraneous "toString" calls.
* Change "removeFile" to sys::Path::destroyFile()
llvm-svn: 19000
2004-12-16 23:01:34 +00:00
Reid Spencer
ea71e3c89b
For PR351:
...
* Remove the "removeFile" function, now implemented by the
sys::Path::destroyFile method.
* Make the FileRemove work with a sys::Path instead of a std::string
llvm-svn: 18999
2004-12-16 23:00:05 +00:00
Reid Spencer
9329172767
For PR351:
...
* Remove #inclusion of FileUtilities.h, not needed any more.
* Convert getUniqueFilename -> sys::Pat::makeUnique()
llvm-svn: 18948
2004-12-15 01:51:56 +00:00
Reid Spencer
320a20ac45
For PR351:
...
Remove getUniqueFilename and CopyFile. These are now implemented by
sys::Path::makeUnique and sys::CopyFile, respectively.
llvm-svn: 18946
2004-12-15 01:46:54 +00:00
Reid Spencer
c2e22fea42
For PR351:
...
* Remove the ExecWait function. This is now in sys::Program::ExecuteAndWait
llvm-svn: 18927
2004-12-14 04:18:15 +00:00
Reid Spencer
87ad666bb3
Revert the last patch as it causes a static destruction ordering problem.
...
llvm-svn: 18925
2004-12-14 03:55:21 +00:00
Reid Spencer
d89ff0a5e1
For PR351:
...
Adjust to changes in the interface of FindExecutable, getting ToolRunner
ready for bigger things to come.
llvm-svn: 18919
2004-12-13 23:43:44 +00:00
Reid Spencer
dc49d865a1
For PR351:
...
* Remove isExecutable as its now implemented by sys::Path::executable
* Make FindExecutable a thin veneer over sys::Program::FindProgramByName.
llvm-svn: 18918
2004-12-13 23:41:37 +00:00
Reid Spencer
e42f222d36
For PR351:
...
Remove AllocateRWXMemory as it is not used any more in LLVM. The function
has been replaced with sys::Memory::AllocateRWX several months ago.
llvm-svn: 18912
2004-12-13 20:14:30 +00:00
Reid Spencer
6b8632850b
For PR351:
...
Remove the MakeFileReadable and MakeFileExecutable functions which are no
longer present in LLVM. They have been replaced with the sys::Path methods
makeReadable and makeExecutable, respectively.
llvm-svn: 18910
2004-12-13 20:08:14 +00:00
Reid Spencer
73fc525557
For PR351:
...
The ReadFileIntoAddressSpace and UnmapFileFromAddressSpace functions are no
longer used by LLVM. Remove them. Replacement functionality for both
functions is now encapsulated in the sys::MappedFile class.
llvm-svn: 18903
2004-12-13 18:28:59 +00:00
Reid Spencer
aa95684acd
For PR351: \
...
The getFileTimestamp and getFileSize functions have been removed from \
FileUtilities.{h,cpp}. They are replaced by Path::getTimestamp and \
Path::getSize,respectively.
llvm-svn: 18892
2004-12-13 17:01:53 +00:00
Reid Spencer
53bd3d0b1a
Get rid of some leaks found by VC leak detector.
...
Patch contributed by Morten Ofsted.
llvm-svn: 18889
2004-12-13 16:04:04 +00:00
Reid Spencer
21d9ef9e82
For PR351:Remove the file type checking methods (now in sys::Path)
...
llvm-svn: 18846
2004-12-13 02:57:41 +00:00
Reid Spencer
ca49210f65
Distribute headers and license files too
...
llvm-svn: 18505
2004-12-04 22:34:21 +00:00
Reid Spencer
95729469cc
Up the compression threshold to 64K so we avoid it for all but the largest
...
bytecode files. This should help linking substantially.
llvm-svn: 18378
2004-11-30 07:13:34 +00:00
Reid Spencer
4f44c95967
Functionality moved to portable lib/System/DynamicLibrary.cpp
...
implementation
llvm-svn: 18358
2004-11-29 14:11:41 +00:00
Reid Spencer
9ec2761bb7
Use System/DynamicLibrary instead of Support/DynamicLinker to implement.
...
llvm-svn: 18356
2004-11-29 14:07:46 +00:00
Reid Spencer
d1697bf2f7
Shared library extension is now in LTDL_SHLIB_EXT
...
llvm-svn: 18353
2004-11-29 12:40:21 +00:00
Reid Spencer
d49013f0b8
Add bzip2 subdirectory
...
llvm-svn: 18251
2004-11-25 19:38:28 +00:00
Reid Spencer
fa8d2e0b27
Remove zlib support in favor of our own bzip2 library
...
llvm-svn: 18250
2004-11-25 19:38:16 +00:00
Reid Spencer
c51e80a09f
Revise to LLVM makefile standards.
...
llvm-svn: 18246
2004-11-25 16:12:25 +00:00
Reid Spencer
a01ef71032
Initial Version from bzip2 Release 1.0.2.
...
llvm-svn: 18245
2004-11-25 16:11:36 +00:00
Reid Spencer
80bb693109
Implement and document prefix options with arbitrary values including an
...
= sign. This needed to support -DNAME=value options as pass-through in
llvmc.
llvm-svn: 18203
2004-11-24 06:13:42 +00:00
Tanya Lattner
d27b014459
Fixed assertion from triggering. We need to check if the commandline map is empty before checking if an arg exists.
...
llvm-svn: 18057
2004-11-20 23:35:20 +00:00
Chris Lattner
37bcd99622
Patches to avoid "leaking" memory on process exit. Patch contributed by
...
Morten Ofstad!
llvm-svn: 17998
2004-11-19 17:08:15 +00:00
Reid Spencer
dc23fe9ded
Allow this to compile even on machines that HAVE the bzlib library but do
...
NOT have the bzlib.h header file. Go figure.
llvm-svn: 17989
2004-11-19 15:56:28 +00:00
Reid Spencer
0bcf9e4da6
Undo last change as its unnecessary.
...
llvm-svn: 17985
2004-11-19 04:59:07 +00:00
Reid Spencer
5d76fa0a3c
Make a cast explicit.
...
llvm-svn: 17977
2004-11-19 03:20:09 +00:00
Reid Spencer
f0173e0c48
Add a comment to some code that at first glance just doesn't look right.
...
llvm-svn: 17886
2004-11-16 06:50:36 +00:00
Reid Spencer
5e5547045b
Per code review:
...
*Implement/Document the cl::extrahelp feature instead of the MoreHelp ptr.
llvm-svn: 17871
2004-11-16 06:11:52 +00:00
Reid Spencer
cf602a8e67
Implement the high level interface to make (de)compression easier.
...
llvm-svn: 17775
2004-11-14 22:04:46 +00:00
Reid Spencer
1f4ab8b449
Implement the MoreHelp utility that calls a function to printmore help information if the MoreHelp global is not null.
...
llvm-svn: 17774
2004-11-14 22:04:00 +00:00
Reid Spencer
6a1a10aa54
Tune compression:
...
bzip2: block size 9 -> 5, reduces memory by 400Kbytes, doesn't affect speed
or compression ratio on all but the largest bytecode files (>1MB)
zip: level 9 -> 6, this speeds up compression time by ~30% but only
degrades the compressed size by a few bytes per megabyte. Those few
bytes aren't worth the effort.
llvm-svn: 17647
2004-11-09 17:58:09 +00:00
Misha Brukman
3e5dd6d34c
* Convert tabs to spaces
...
* Order #includes according to style guide
* Remove extraneous blank lines
llvm-svn: 17639
2004-11-09 04:27:19 +00:00
Nate Begeman
1164955bf1
Allow hbd to be bugpointable on darwin by fixing common and linkonce codegen
...
llvm-svn: 17637
2004-11-09 04:01:18 +00:00
Misha Brukman
1df8148b01
Handle headers for compressed bytecode files
...
llvm-svn: 17634
2004-11-08 22:03:32 +00:00
Misha Brukman
8a75d2e73b
Replace uses of llvm.org with llvm.cs.uiuc.edu
...
llvm-svn: 17549
2004-11-07 00:58:38 +00:00
Misha Brukman
c7c8d88804
* Fix compilation on AIX: GCC's fixincludes eliminates isinf() declaration
...
* Move file comment to the top of the header where it belongs
llvm-svn: 17349
2004-10-29 23:17:45 +00:00
Reid Spencer
57cbe39d1e
Change Library Names Not To Conflict With Others When Installed
...
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Chris Lattner
d3642d720c
Patch to support MSVC, contributed by Morten Ofstad
...
llvm-svn: 17220
2004-10-25 18:47:10 +00:00
Chris Lattner
2e493d9e75
Patch to support MSVC, contributed by Morten Ofstad
...
llvm-svn: 17219
2004-10-25 18:46:05 +00:00
Reid Spencer
c1c320c335
We won't use automake
...
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer
6a11a75f31
Initial automake generated Makefile template
...
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Nate Begeman
e5e5b37b79
Pass -single_module option to gcc when linking dynamic libraries for use with bugpoint, so that we can bugpoint multiple .cp files
...
llvm-svn: 17102
2004-10-17 23:03:32 +00:00
Reid Spencer
ace94df71f
Update to reflect changes in Makefile rules.
...
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer
b84cbf2725
Initial version of automake Makefile.am file.
...
llvm-svn: 16885
2004-10-10 20:43:57 +00:00
Reid Spencer
04f1e90657
Excise the ill-advised RLCOMP compression algorithm and simply leave the
...
previously temporary NULLCOMP implementation that merely copies the data
verbatim without compression. Also, don't warn if there's no compression
library as that is taken care of during configuration time.
llvm-svn: 16654
2004-10-04 17:45:44 +00:00
Reid Spencer
2e3cc54e42
Add a context for the callback so different compression scenarios can be
...
distinguished. Tidy up documentation. Thanks, Chris.
llvm-svn: 16652
2004-10-04 17:29:25 +00:00
Chris Lattner
b4abe320bf
Fix build if not HAVE_BZIP2
...
llvm-svn: 16650
2004-10-04 16:33:25 +00:00
Reid Spencer
c89503753c
First version of a support utility to provide generalized compression in
...
LLVM that handles availability and unavailability of bzip2 and zlib.
llvm-svn: 16648
2004-10-04 10:49:41 +00:00
Alkis Evlogimenos
20f1b0bafb
Add includes and use std:: for standard library calls to make code
...
compile on windows. This patch was contributed by Paolo Invernizzi.
llvm-svn: 16539
2004-09-28 14:42:44 +00:00
Reid Spencer
45101043ef
Put in a #error in the event that we don't have an mmap that can map a file
...
into memor. This is just a reminder that the ReadFileIntoAddressSpace
function needs to be properly converted to lib/System and implemented via
read/write if there's no mmap of file support.
llvm-svn: 16428
2004-09-20 04:13:43 +00:00
Reid Spencer
7c16caa336
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer
9501b9b82b
Make CommandLine prefix error output with the name of the program.
...
llvm-svn: 16129
2004-09-01 04:41:28 +00:00
Reid Spencer
6fca37236d
Signals support has been moved to lib/System
...
llvm-svn: 16097
2004-08-29 19:36:34 +00:00
Misha Brukman
30cee49933
Move these files (which are dependent on VMCore) into VMCore
...
llvm-svn: 15825
2004-08-16 19:04:36 +00:00
Reid Spencer
2027a6ffdc
Allow any cl::opt to use the method getPosition() to retrieve the option's
...
absolute position on the command line. Similarly allow any cl::list to
use the method getPosition(n) to retrieve the absolute position of the nth
option in the list. This provides support for two things: (a) options like
-l that are actually positional and their order of occurrence matters when
they are intermixed with positional arguments like "a.o"; and (b) options
like -x LANG which affect only the positional arguments that come after
the option. In both cases, knowing the absolute position of a given option
helps.
llvm-svn: 15725
2004-08-13 19:47:30 +00:00
Chris Lattner
46303fdbf8
It is not possible to catch SIGKILL, don't bother trying.
...
llvm-svn: 15496
2004-08-04 18:14:24 +00:00
Reid Spencer
ff6cc1233e
Add a --version option for every tool that prints out:
...
Low Level Virtual Machine ($PACKAGE_NAME) $PACKAGE_VERSION
llvm-svn: 15454
2004-08-04 00:36:06 +00:00
Chris Lattner
d1980dbeba
Remove linux/solaris specific stuff.
...
llvm-svn: 15195
2004-07-25 07:34:00 +00:00
Chris Lattner
2731ead702
Get rid of the printout from the low-level system interface
...
llvm-svn: 15161
2004-07-24 07:50:48 +00:00
Chris Lattner
8171b14fcc
Pass timeouts into the low level "execute program with timeout" function
...
llvm-svn: 15160
2004-07-24 07:49:11 +00:00
Chris Lattner
f5da5de94a
Add support for killing the program if it executes for too long.
...
llvm-svn: 15158
2004-07-24 07:41:31 +00:00
Brian Gaeke
902dcf0729
These files don't need to include <iostream> since they include "Support/Debug.h".
...
llvm-svn: 15089
2004-07-21 20:50:33 +00:00
Brian Gaeke
84a69f1494
Solaris hack for isinf()
...
llvm-svn: 15058
2004-07-21 03:32:51 +00:00
Brian Gaeke
0810ebf56a
Add platform-independent wrapper function for isinf().
...
Patch contributed by Bill Wendling.
llvm-svn: 15050
2004-07-21 03:13:50 +00:00
Chris Lattner
46c48a9654
Err, fix last checkin
...
llvm-svn: 14995
2004-07-19 06:03:51 +00:00
Chris Lattner
874ffdd592
Fix bugpoint miscompilation support on OS/X
...
Patch contributed by the fabulous Nate Begeman.
llvm-svn: 14994
2004-07-19 06:00:17 +00:00
Chris Lattner
13e5831bd0
Add a workaround for a GCC 3.3.2 bug
...
llvm-svn: 14976
2004-07-18 21:56:20 +00:00
Misha Brukman
06773822b9
Correctly build shared objects on MacOS X for debugging code generators
...
llvm-svn: 14892
2004-07-16 19:45:45 +00:00
Chris Lattner
cae777bb4f
Bug fixes for PR341
...
llvm-svn: 14838
2004-07-15 01:29:12 +00:00
Chris Lattner
99dcad4584
Implicitly getting a new option by linking to support.o instead of support.a
...
is a bad idea. Make tools that want the option #include PluginSupport.h
explicitly.
llvm-svn: 14738
2004-07-11 01:04:33 +00:00
Chris Lattner
3a9fd4c421
Do not call Type::getUniqueID
...
llvm-svn: 14706
2004-07-08 22:09:34 +00:00
Brian Gaeke
84e1bb8eff
Work around apparent Apple compiler bug which was making all mangled
...
names start with l0_.
llvm-svn: 14651
2004-07-06 20:29:05 +00:00
Reid Spencer
eb04d9bcb4
Add #include <iostream> since Value.h does not #include it any more.
...
llvm-svn: 14622
2004-07-04 12:19:56 +00:00
Chris Lattner
d3ecc61840
Fix compilation on internix
...
llvm-svn: 14588
2004-07-03 01:21:05 +00:00
Brian Gaeke
ef178a43dd
Wrapper for c99 isnan()
...
llvm-svn: 14338
2004-06-22 23:54:38 +00:00
Misha Brukman
4b58581545
* Fix file header and name
...
* Order #includes alphabetically
llvm-svn: 14234
2004-06-18 15:38:49 +00:00
Misha Brukman
42a24823a1
Use the machine-independent method of querying the page size.
...
llvm-svn: 14233
2004-06-18 15:34:07 +00:00
Chris Lattner
07ab2d1d2d
Make all of this functionality work directly on win32. Properly conditionalize
...
system specific stuff on HAVE_MKSTEMP
llvm-svn: 14051
2004-06-07 19:37:24 +00:00
Chris Lattner
6068345cc5
Implement getTimeRecord natively in Win32, properly conditionalize the
...
getrusage implementation on HAVE_GETRUSAGE
llvm-svn: 14050
2004-06-07 19:34:51 +00:00
Alkis Evlogimenos
2c0735446b
Include cerrno.
...
llvm-svn: 14041
2004-06-05 08:59:43 +00:00
Chris Lattner
80adb79be2
Implement the new CopyFile function
...
llvm-svn: 13945
2004-06-02 00:52:22 +00:00
Misha Brukman
140f26ea46
Fix spelling, trim empty space, tighten up function header comment.
...
llvm-svn: 13940
2004-06-02 00:09:46 +00:00
Reid Spencer
9163bcdf0f
Moved this file to lib/Bytecode/Writer because its used there only.
...
llvm-svn: 13900
2004-05-30 00:09:32 +00:00
Chris Lattner
446ac25072
Thoroughly rehack the dynamic linking mechanisms on Win32. The Win32
...
dynamic linker does not automatically search libraries when looking up
symbols with GetProcAddress. Because of this we have to emulate it. The
only detail is that there doesn't seem to be a way to enumerate the
libraries loaded, so we have a gross hack (tm).
This make the JIT functional on win32 under cygwin.
llvm-svn: 13887
2004-05-28 23:54:07 +00:00
Chris Lattner
972c68fbdf
Prune #includes
...
llvm-svn: 13886
2004-05-28 23:35:39 +00:00
Chris Lattner
b6d6b931cc
Add support for getting executable memory on Windows. This is actually
...
much easier than on unix. :) The only evil thing is that windows.h defines
a macro named FindExecutable, which collides with one of our names.
The JIT now runs on windows, but it cannot resolve external functions
(like printf) yet.
llvm-svn: 13871
2004-05-28 01:20:58 +00:00
Chris Lattner
d54358279d
Add a new function for the JIT. libsupport is now the only library that
...
includes mman.h
llvm-svn: 13870
2004-05-28 00:59:40 +00:00
Chris Lattner
acc6cdda85
Add support for zero length files
...
llvm-svn: 13866
2004-05-28 00:34:42 +00:00
Chris Lattner
0e713bc208
Add a pair of functions to hide system specific details of mapping a file in for reading.
...
llvm-svn: 13863
2004-05-28 00:23:48 +00:00
Chris Lattner
db3da22f4b
Add DynamicLinker support for systems that provide windows.h
...
llvm-svn: 13851
2004-05-27 20:53:10 +00:00
Chris Lattner
ed317b2a29
Signals.h header moved. Eventually this should move into a lib/System library,
...
but not right now.
llvm-svn: 13811
2004-05-27 05:31:24 +00:00
Chris Lattner
1760ccd7b0
Changes to make libSupport build on systems that don't have the wait syscall.
...
llvm-svn: 13806
2004-05-27 01:20:55 +00:00
Reid Spencer
abac0ef0b7
Put SlotTable.h inclusion back at front of list to be coding standards
...
compliant. Thanks, Chris.
llvm-svn: 13771
2004-05-25 20:09:05 +00:00
Reid Spencer
37dd30c00a
Make some improvements suggested by Chris.
...
llvm-svn: 13765
2004-05-25 19:03:21 +00:00
Reid Spencer
4feb245a31
Adding the initial implementation of the SlotTable class. This class is
...
the Abstract Data Type that holds slot number values and associates them
with Type* and Value*. The SlotTable is simply the holder of the slot
numbers and provides a controlled interface for building the table. It does
not enforce any particular idiom or functionality for manipulating the slot
numbers.
This is part of bug_122. The SlotCalculator and SlotMachine classes will
follow.
llvm-svn: 13764
2004-05-25 18:44:51 +00:00
Alkis Evlogimenos
40f9a8730a
Remove this file as well as it is no longer needed nor it compiles
...
llvm-svn: 13762
2004-05-25 18:24:27 +00:00
Chris Lattner
a60f355c87
Implement the new cl::PositionalEatsArgs flag, refactor code a bit
...
llvm-svn: 13388
2004-05-06 22:04:31 +00:00
Brian Gaeke
706bd5bf2b
Apply simplification suggested by Chris: why assign() when operator = will do?
...
llvm-svn: 13364
2004-05-04 22:02:41 +00:00
Brian Gaeke
b3a9a0fcbd
Add "Args" optional argument to AbstractInterpreter factory methods, which
...
fills in a ToolArgs vector in the AbstractInterpreter if it is set. This
ToolArgs vector is used to pass additional arguments to LLI and/or LLC.
This is intended to address Bug 40.
Also, make -debug-only=toolrunner work for the LLC and CBE
AbstractInterpreters.
llvm-svn: 13356
2004-05-04 21:09:01 +00:00
Chris Lattner
82876bdb2a
Bugpoint was not correctly capturing stderr! This caused it to "find" bugs
...
that didn't exist, missing the ones that do :(
llvm-svn: 12978
2004-04-16 05:35:58 +00:00
Chris Lattner
b0d1e9d02e
lli no longer takes the -quiet option!
...
llvm-svn: 12674
2004-04-05 20:28:41 +00:00
Chris Lattner
c97b7b2285
Do not mangle intrinsics in any way!
...
llvm-svn: 12673
2004-04-05 20:17:53 +00:00
Brian Gaeke
5ade501501
Add autoconf support for isStandardOutAConsole ().
...
llvm-svn: 12638
2004-04-02 21:26:04 +00:00
Chris Lattner
454e18317d
Add new function, autoconf support required tho
...
llvm-svn: 12600
2004-04-02 05:04:03 +00:00
Chris Lattner
55481f78d3
Add some new methods
...
llvm-svn: 12539
2004-03-30 00:20:08 +00:00
Chris Lattner
5152b9ed34
Adjust to new itf
...
llvm-svn: 12534
2004-03-29 20:42:49 +00:00
Alkis Evlogimenos
33cb4260a5
Hide variable from other functions.
...
llvm-svn: 12118
2004-03-04 17:50:44 +00:00
Chris Lattner
120035898b
Make sure that at least one virtual method is defined in a .cpp file to avoid
...
having the compiler emit RTTI and vtables to EVERY translation unit.
llvm-svn: 11871
2004-02-26 07:24:18 +00:00
Misha Brukman
0025f1b044
`cat' is usually in /bin, not /usr/bin, at least on our systems.
...
llvm-svn: 11690
2004-02-21 21:51:41 +00:00
Chris Lattner
375e3a1d4a
When printing a stack trace, demangle it if possible. Since we are potentially
...
in a signal handler, allocating memory or doing other unsafe things is bad,
which means we should do it in a different process.
llvm-svn: 11689
2004-02-21 21:06:19 +00:00
Brian Gaeke
99983d569e
Use backtrace() and include execinfo.h, if they were detected by autoconf.
...
llvm-svn: 11658
2004-02-20 06:40:59 +00:00
Chris Lattner
79b88a7590
Disable the stack trace thing until we can get an autoconf test for it. This
...
call breaks on sparcs
llvm-svn: 11635
2004-02-19 21:21:23 +00:00
Chris Lattner
b0bedfa4b2
Implement new function
...
llvm-svn: 11631
2004-02-19 20:03:14 +00:00
Alkis Evlogimenos
3562c2dd9f
Make ToolExecutionError inherit std::exception and implement its
...
interface: getMessage() is gone, use what() instead.
llvm-svn: 11621
2004-02-19 07:39:26 +00:00
Alkis Evlogimenos
c94edd6cde
Print stacktrace in STDERR before dying on a fatal signal. Currently
...
the symbols are not demangled.
llvm-svn: 11620
2004-02-19 07:36:35 +00:00
Chris Lattner
8d05ebc2f9
Add support for just running the code generator
...
llvm-svn: 11611
2004-02-18 23:24:41 +00:00
Chris Lattner
03d993b265
indent correctly
...
llvm-svn: 11601
2004-02-18 20:58:00 +00:00
Chris Lattner
abcd97dcd8
Don't yell. BUGPOINT should yell, not the tool runner :)
...
llvm-svn: 11600
2004-02-18 20:57:38 +00:00
Chris Lattner
3163a98492
If there is an error running a tool, include the error message (e.g. assertion failure) in the exception
...
llvm-svn: 11597
2004-02-18 20:38:00 +00:00
Chris Lattner
08180ecfcf
When an error occurs executing a tool, we now throw an exception instead
...
of calling exit(1).
llvm-svn: 11593
2004-02-18 20:21:57 +00:00
Chris Lattner
70d42f6765
The C backend is no longer in llvm-dis, it's in llc
...
llvm-svn: 11533
2004-02-17 06:40:06 +00:00
Chris Lattner
5f25fb0dd7
Fix a bug in the recent rewrite of the leakdetector that caused all of the
...
nightly tests to be really messed up. The problem was that the new leakdetector
was depending on undefined behavior: the order of destruction of static objects.
llvm-svn: 11488
2004-02-15 23:33:48 +00:00
Alkis Evlogimenos
fccb75d91e
Modularize implementation of LeakDetector into a typed template
...
implementation class. This makes the code simpler and allows for more
types to be added easily. It also implements caching for generic
objects (it was only available for llvm objects).
llvm-svn: 11452
2004-02-14 23:33:39 +00:00
Chris Lattner
77687a9746
Fix the logic in the name mangler. If there are two symbols named 'X', and one
...
is external, make sure to mangle the *internal* one, not external one
llvm-svn: 11424
2004-02-14 00:30:23 +00:00
Chris Lattner
f3e6e63d71
Initialize the count instance variable.
...
llvm-svn: 11305
2004-02-11 03:29:16 +00:00
John Criswell
e6a41815f3
Fixes for PR214. Use the SHLIBEXT variable instead of hardcoding .so into
...
every file.
llvm-svn: 10976
2004-01-26 20:59:41 +00:00
Chris Lattner
14004da36c
This file goes away
...
llvm-svn: 10905
2004-01-17 19:35:57 +00:00
Chris Lattner
b1505c8594
Remove use of ConstantHandling itf
...
llvm-svn: 10800
2004-01-12 20:13:04 +00:00
Chris Lattner
d832807311
Remove config wrapper around <cerrno>
...
llvm-svn: 10747
2004-01-10 19:15:14 +00:00
Alkis Evlogimenos
96e9a91f55
Pass std::string to constructor as const reference to avoid multiple
...
copies.
llvm-svn: 10705
2004-01-06 09:16:02 +00:00
John Criswell
5782ca06fc
Not all platforms supports sighandler_t, so I changed it to use the older
...
return value from signal() (which should be the same type; it's just not
typedef'd).
This fixes the build on Solaris.
llvm-svn: 10675
2004-01-01 15:14:28 +00:00
Chris Lattner
78f1f51c66
* Add a new helper progress method
...
* Make sure that the user sees the 100% mark
* Don't bother printing out X.0%, just print out X%
llvm-svn: 10672
2003-12-31 10:20:38 +00:00
Chris Lattner
73546536b2
Add missing #include
...
llvm-svn: 10669
2003-12-31 07:31:10 +00:00