Commit Graph

864 Commits

Author SHA1 Message Date
Gabor Greif
0a0e68a7ea Introduce a new technique for merging BasicBlock with Instruction sentinel by superposition.
This looks dangerous, but isn't because the sentinel is accessed in special way only,
namely the Next and Prev fields of it, and these are guaranteed to exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65626 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27 08:41:37 +00:00
Ted Kremenek
638b8b446e Correctly implement ImmutableMap::getMaxElement() by getting the actual <key, value> pair.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65327 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23 17:28:16 +00:00
Ted Kremenek
1c7a666fce Add ImmutableMap::getMaxElement(), a method that returns the <key,value> pair in a ImmutableMap that has the highest ranked key.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65326 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23 17:27:18 +00:00
Ted Kremenek
07bf7efa0a Add version of StringsEqualNoCase that takes two null-terminated C-strings and compares up to 'len' characters. I tend to screw up string comparison functions, so anyone who is interested please review this\!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-21 18:25:30 +00:00
Misha Brukman
085a9ebbc7 Removed trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20 22:54:36 +00:00
Misha Brukman
a2769a33c9 Fixed lint errors:
* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65181 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20 22:20:18 +00:00
Dan Gohman
38deef9ce5 Add explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 16:37:45 +00:00
Ted Kremenek
3c172a2959 Fix bug where APSInt::operator-- incremented instead of decremented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-16 22:39:08 +00:00
Chris Lattner
5b22efa614 Add operator->, patch by Ben Laurie!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64378 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12 17:14:49 +00:00
Ted Kremenek
da5eb71550 Add method 'isSingleton()' to ImmutableSet. This returns true if the set contains exactly one element.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12 05:17:02 +00:00
Ted Kremenek
8bb332d45d Add FoldingSet profile method for bools. Patch by Ben Laurie!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11 20:53:17 +00:00
Bill Wendling
af9b6b264f These function return 'void'. Don't have 'return' return anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64136 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-09 12:31:26 +00:00
Dan Gohman
5471a00977 Change several SmallPtrSetImpl members from public to protected,
to make the encapsulation more clear.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64017 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-07 16:12:23 +00:00
Nick Lewycky
f996831427 Add an API for strings with possible NULLs in the middle. Refactor the other
two AddString methods to use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-07 04:57:08 +00:00
Chris Lattner
4715f6395e fix a pretty serious bug in StringMap where GetOrCreate(strstart,strend, z)
would not set new values to Z.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 01:54:10 +00:00
Chris Lattner
072e99ef9b Fix a bug in getMaxValue/getMinValue to pass the right signedness the
the constructed APSInt, patch suggested by Ben Laurie!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-30 01:58:19 +00:00
Roman Levenstein
8d8a0c36b7 Fix a bug in BitVector.h. All assignment operations (except the usual
assignment operator) were returning a copy of the bit vector, instead of a
reference! This old semantics probably did not meet the expectations.
With this patch, chained assignments happen to the right object.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-26 11:07:20 +00:00
Bill Wendling
d10aacea5e Get rid of warning about implicit 64-to-32 bit conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-22 02:10:33 +00:00
Steve Naroff
2b5326e724 Add explicit this-> (to make the VS compiler happy).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 23:49:23 +00:00
Douglas Gregor
c03c46a6af Fix ilist two-phase name lookup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62724 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 22:38:44 +00:00
Dale Johannesen
541ed9fd02 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 20:32:55 +00:00
Dale Johannesen
ed6af24e14 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62645 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 00:35:19 +00:00
Dale Johannesen
24b66a83ca 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62593 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-20 18:35:05 +00:00
Chris Lattner
9981b1f156 eliminate use of uint32_t to improve compatibility with cygwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-20 18:23:14 +00:00
Chris Lattner
2f39b29170 improve compatibility with cygwin, patch by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62535 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 22:00:18 +00:00
Duncan Sands
6ea5776f51 Get this building with gcc-4.4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62322 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-16 15:54:57 +00:00
Chris Lattner
3ff704fa2b add a new insertAfter method, patch by Tom Jablin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62158 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-13 07:43:51 +00:00
Misha Brukman
3a54b3dc87 Removed trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62000 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09 19:25:42 +00:00
Bill Wendling
38593664b0 * Don't explicitly cast "0" to "void*". This doesn't work well with specialized
StringMapEntryInitializer classes. Leave it for the compiler to figure out what
 the type is and what "0" should be transformed into.

* Un-disable the unit tests which test the StringMapEntryInitializer class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61922 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08 08:26:46 +00:00
Misha Brukman
538fbb5086 Remove extra blank line and space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08 06:11:51 +00:00
Misha Brukman
8bb5e99013 * Added unittests for StringMap
* Fixed but in StringMap::clear()
* Removed trailing whitespace

Original patch by Talin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61914 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08 04:48:20 +00:00
Misha Brukman
e21a6bae80 * Fixed spelling of "sentinel"
* Removed trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08 02:21:23 +00:00
Dan Gohman
d68a07650c Tidy up #includes, deleting a bunch of unnecessary #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05 17:59:02 +00:00
Dan Gohman
2c8a1522db Add several more unimplemented operator overloads to ilist_iterator
to help catch errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04 03:22:42 +00:00
Nick Lewycky
ccc776fd83 Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02 05:01:22 +00:00
Cedric Venet
c1edbfc2ba Add explicit this-> for some member function in templated base class.
These call are probably dependent but VS with /Za don't seems to think so. We need to help him.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60978 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-13 10:55:13 +00:00
Dan Gohman
b79a01111d Move the conversion to intptr_t to a separate statement. This
avoids GCC's warning even on 64-bit hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60706 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:41:24 +00:00
Ted Kremenek
4cd3145223 Use 'delete []' instead of 'delete' in OwningArray::reset().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60703 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:28:11 +00:00
Dan Gohman
994fd5354b Use intptr_t instead of unsigned here, which is more appropriate
in a really obscure way, but more importantly has the side effect
of avoiding a GCC warning in the case that IntType is bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60677 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 21:28:00 +00:00
Chris Lattner
7f50863e52 add a new pop_back_val method which returns the value popped. This is
heretical from a STL standpoint, but is oh-so-useful for things that 
can't throw exceptions when copied, like, well, everything in LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60587 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05 07:11:05 +00:00
Chris Lattner
1d93b2e1b6 Fix isIntN to work with APInts > 64 bits. This method is only
used by clang apparently.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60446 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-02 23:33:29 +00:00
Chris Lattner
b6bbe6320b add densemap range insertion method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60400 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-02 06:08:04 +00:00
Chris Lattner
c65fc3bd27 reenable array_pod_sort, this time hopefully happy on 64-bit
and big endian systems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60371 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 21:11:25 +00:00
Chris Lattner
7b6113c6e2 don't #include <algorithm> into the llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60365 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 19:45:45 +00:00
Chris Lattner
de5debfb58 switch to std::sort until I have time to sort this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60354 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 17:00:08 +00:00
Chris Lattner
545fc87454 define array_pod_sort in terms of operator< instead of my brain
damaged approximation.  This should fix it on big endian platforms
and on 64-bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60352 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 16:50:01 +00:00
Chris Lattner
4329c42840 don't assume iterators implicitly convert to pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60336 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 06:50:46 +00:00
Chris Lattner
99d0015735 Introduce a new array_pod_sort function and switch LSR to use it
instead of std::sort.  This shrinks the release-asserts LSR.o file
by 1100 bytes of code on my system.

We should start using array_pod_sort where possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60335 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 06:49:59 +00:00
Eli Friedman
3864cd4cab Fix bogus assertion using getSExtValue for legitimate values, like -1 in
an 128-bit-wide integer.  No testcase; the issue I ran into depends on 
local changes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60311 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-01 00:43:48 +00:00
Chris Lattner
012618f0fc add the rest of the comparison routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-30 19:10:41 +00:00
Chris Lattner
b911824620 fix indentation. std::pair is "isPod" if the first/second are both isPod.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60262 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-30 00:50:20 +00:00
Torok Edwin
10ca770020 protect against negative values that would exceed allowed bit width
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60239 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 08:52:45 +00:00
Chris Lattner
b9cf75a15f apparently GCC doesn't believe that I understand C
precedence rules.  Pacify it.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60237 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 08:36:39 +00:00
Duncan Sands
3f7dba7b17 Typo fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60236 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 08:03:35 +00:00
Chris Lattner
d63e618212 Fix sentinels to use correctly 'aligned' pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60229 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 01:36:16 +00:00
Chris Lattner
9ac30537aa Fix spello, add DenseMapInfo specialization for PointerIntPair.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60228 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 01:18:05 +00:00
Chris Lattner
d55da4de04 fix comment typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60227 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 23:57:26 +00:00
Chris Lattner
762ac83271 fix a bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60225 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 23:36:15 +00:00
Chris Lattner
34b763694e add a generic "bitmangled pointer" class, which allows a parameterized
pointer and integer type to be used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60224 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 23:31:44 +00:00
Ted Kremenek
9f1f00ab1b Add typedef to StringMapEntry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60134 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-27 00:17:25 +00:00
Chris Lattner
0fbdfc3664 add an operator= to assign to smallstring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59715 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20 07:09:17 +00:00
Zhongxing Xu
69e3bd10ec move partial template specialization to FoldingSet.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59434 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 02:40:00 +00:00
Zhongxing Xu
0cf717d6b8 Fix 80-col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59394 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-16 04:44:41 +00:00
Zhongxing Xu
f5b55475b3 Add partial specialization of FoldingSetTrait for ImmutableList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59387 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-16 04:23:49 +00:00
Zhongxing Xu
2c228834fc Fix 80-column violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59385 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-16 04:14:33 +00:00
Zhongxing Xu
2ef5d4cd6a Add Profile method to ImmutableList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59362 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15 09:26:02 +00:00
Duncan Sands
c04b6917c1 Work around PR1000.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58984 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10 10:05:09 +00:00
Chris Lattner
886645a3c3 split out the functionality of utohexstr into a new utohex_buffer
helper.  This allows us to convert numbers to hex without necessarily
needing to make a std::string to hold the result.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58961 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10 04:22:46 +00:00
Dan Gohman
20cd13f54f Overload AddInteger on int/long/long long instead of on int/int64_t,
to avoid overload ambiguities. This fixes build errors introduced
by r58623.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58632 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03 19:40:18 +00:00
Nick Lewycky
b90c37f64c Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58594 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03 03:50:40 +00:00
Daniel Dunbar
9a40d3361a Return bool (inserted) from StringSet::insert as for StringMap::insert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58268 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 20:50:02 +00:00
David Greene
13e781ebe7 Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58256 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 18:15:15 +00:00
Ted Kremenek
30f100e140 Fix incorrect testing for the end of the both strings in CStrInCStrNoCase. This could cause a read-out-of-bounds error if s2 is smaller than s1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22 23:16:52 +00:00
Ted Kremenek
e06e91122f constify some methods and variables in ImmutableList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57894 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 05:59:33 +00:00
Dan Gohman
254a886057 Implement a SmallVector insert method that can insert multiple
copies of a value, and add several additional utilities to make
SmallVector better conform to the Container concept.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57616 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-16 00:15:24 +00:00
Dan Gohman
3d4227bec5 Fix several places that called mapped_iterator's constructor without
passing in a function object.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57615 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-16 00:12:39 +00:00
Daniel Dunbar
c9debfbf06 Add llvm::hexdigit to StringExtras (number -> hexadecimal char)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57536 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-14 23:26:20 +00:00
Chris Lattner
75d53d6bd0 this was to be removed after 2.4 branched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57422 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-12 18:57:09 +00:00
Chris Lattner
71f95b8531 random cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57383 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-11 22:06:50 +00:00
Dale Johannesen
23a98551ab Add a "loses information" return value to APFloat::convert
and APFloat::convertToInteger.  Restore return value to
IEEE754.  Adjust all users accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09 23:00:39 +00:00
Dale Johannesen
7111b02c73 Rename APFloat::convertToAPInt to bitcastToAPInt to
make it clearer what the function does.  No functional
change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09 18:53:47 +00:00
Rafael Espindola
73c3a94df9 Add bound checks in SmallVector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56432 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 10:06:26 +00:00
Oscar Fuentes
3d01fc7de8 Initial support for the CMake build system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 01:08:49 +00:00
Ted Kremenek
ed871805f7 Added static methods to APSInt: getMinValue and getMaxValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56355 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-19 18:01:14 +00:00
Daniel Dunbar
7b75fbf224 Add DenseMap::lookup:
/// lookup - Return the entry for the specified key, or a default
  /// constructed value if no such entry exists.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55523 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-29 00:48:44 +00:00
Chris Lattner
944fac71e0 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 22:23:09 +00:00
Dan Gohman
535de1a8c1 Add a clear() method to FoldingSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 00:42:16 +00:00
Dan Gohman
55beb6ded8 Add an empty() member to FoldingSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55182 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22 16:14:23 +00:00
Dan Gohman
1501cdbf63 Fix SmallVector's size calculation so that a size of 0 is
handled correctly, and change a few SmallVector uses to use
size 0 to more clearly reflect their intent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55181 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22 16:07:55 +00:00
Chris Lattner
2dba6a1bdb consolidate DenseMapInfo implementations, and add one for std::pair.
Patch contributed by m-s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55167 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22 05:08:25 +00:00
Chris Lattner
55767f69c5 remove redundant include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55116 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21 06:41:07 +00:00
Chris Lattner
aac0513ed0 Fix the build with gcc 4.3 as the host, patch by Zhongxing Xu!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55115 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21 06:25:28 +00:00
Nick Lewycky
cbd56db62b Fix build on GCC 4.3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55110 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21 05:36:03 +00:00
Chris Lattner
98f8ccfad0 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55063 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20 17:02:31 +00:00
Chris Lattner
fad86b003a 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17 07:19:36 +00:00
Chris Lattner
9f17eb0b79 remove a dead APInt ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54869 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17 04:58:58 +00:00
Owen Anderson
0c5a560b03 Add a value_type typedef to SmallVector, to make it more compatible with STL adapters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54819 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-15 18:45:51 +00:00
Ted Kremenek
183cc32e49 Removed redundant ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54789 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-14 21:17:07 +00:00
Daniel Dunbar
7fb842420a Add default constructor to APSInt
- Creates uninitialized APInt. 
 - Prevents need for embedding arbitrary constants when used as an out
   parameter, for example.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54757 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-13 20:53:17 +00:00
Bill Wendling
eb4ab60bed Removed unused parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54262 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-01 05:50:13 +00:00
Dan Gohman
fed90b6d09 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-28 21:51:04 +00:00
Anton Korobeynikov
4aad12c9cd Remove bogus assertion. This unbreaks mingw, where ConstantSDNode
has alignment 8 and LoadSDNode (used as LargestT template) - 4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53782 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-19 05:52:44 +00:00
Ted Kremenek
a052246590 Inline typedef for alist_iterator::pointer to work with MSVC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53517 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-12 18:28:46 +00:00
Nick Lewycky
066075030a operator[] is not defined for list::iterator. Overload it in ilist::iterator
to prevent silly things from happening accidentally. PR2171


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53507 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-12 07:00:52 +00:00
Ted Kremenek
eca64f0980 Minor tweaks to the ImmutableList iterator interface.
Added partial specialization of DenseMapInfo<T> for ImmutableList.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53485 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 22:43:07 +00:00
Ted Kremenek
0ebf14c4bb Make typedef public to make MSVC++ happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53433 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 23:24:20 +00:00
Ted Kremenek
3000357ab5 Make some typedefs public to make MSVC++ happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53432 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 23:09:45 +00:00
Ted Kremenek
ccaa6540fc Make typedefs in ilist public (Visual C++ errors out when they are private).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53431 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 22:58:10 +00:00
Bill Wendling
98fd7f6b2f Pull r53428 from Gaz into mainline:
Remove warnings about unused/shadowed variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53430 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 22:57:49 +00:00
Ted Kremenek
07f3cf76c6 Added ImmutableMap constructor that accepts a const TreeTy*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53429 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 22:57:10 +00:00
Dan Gohman
4f4b348437 Tidy up #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53426 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 22:26:19 +00:00
Duncan Sands
df99c29e7b Correct a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53401 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 11:21:59 +00:00
Dan Gohman
e14d81deeb 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 22:58:06 +00:00
Dan Gohman
9ff0f0ea39 Make ilist noncopyable too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53190 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:43:32 +00:00
Dan Gohman
f178700829 Don't use std::advance just to increment or decrement by one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53189 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:39:33 +00:00
Dan Gohman
d24c62c67e Remove unnecessary static_casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53181 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:08:20 +00:00
Dan Gohman
ccd95b5f9c Remove an unnecessary reinterpret_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53180 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:07:36 +00:00
Dan Gohman
1002c02034 Add explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:00:37 +00:00
Dan Gohman
6b345ee9b2 Make DenseMap's insert return a pair, to more closely resemble std::map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 17:46:23 +00:00
Ted Kremenek
aa5044d3ce Removed ImmutableMap::SlimFind and replaced it with ImmutableMap::lookup. The new method does the same thing, except that it returns a pointer to the mapped data type, and not to an internal tree node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53171 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 16:20:55 +00:00
Dan Gohman
08c09496c2 Use operator new instead of new char[].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53067 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:59:36 +00:00
Owen Anderson
93ee2fd7da Have DenseSet::insert return a bool indicating whether the insertion succeeded or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53033 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:29:59 +00:00
Chris Lattner
509e4f30e8 optimize StringMap::clear
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 05:30:45 +00:00
Chris Lattner
fce6e546aa Add a new (simple) StringMap::clear method, patch by Pratik
Solanki!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 05:26:32 +00:00
Ted Kremenek
445723bfb0 Implemented operator!= for the ImmutableList iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 00:06:55 +00:00
Owen Anderson
72e61b8501 Add a version of AddString that takes a const char* so we can avoid extraneous
conversions to std::string.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 23:49:59 +00:00
Ted Kremenek
e1bf7fdcb4 Added partial specialization of FoldingSetTrait for pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 22:30:13 +00:00
Seo Sanghyeon
ff4d609ec5 Compilation fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52950 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 05:27:28 +00:00
Dan Gohman
f4d7708972 Make SmallVector's grow use memcpy in common cases
instead of std::uninitialized_copy, which uses memmove.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52928 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 21:45:13 +00:00
Dan Gohman
7c6618926a Use plain operator new instead of new char[].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52927 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 21:33:02 +00:00
Ted Kremenek
30389141c9 Added some comments and some cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52922 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 20:41:22 +00:00
Ted Kremenek
3771902e92 Added ImmutableList, a companion ADT to ImmutableSet and ImmutableMap that is used to represent a purely functional list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52911 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 18:07:38 +00:00
Chris Lattner
f25381ed35 add convenience 'constructors'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52908 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 18:02:44 +00:00
Bill Wendling
8032020cf2 Remove warnings about shadowed and unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52791 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26 18:11:45 +00:00
Dan Gohman
2b08676ca8 Pass std::string by reference. Thanks Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52678 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-24 16:40:22 +00:00
Dan Gohman
caf746aa5a Add a clear() method to PriorityQueue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52656 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-23 23:47:46 +00:00
Dan Gohman
2904538fc3 Simplify erase_one slightly. It's not necessary to preserve
the value of the element to be erased while the heap is
being updated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52646 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-23 21:46:21 +00:00
Dan Gohman
84701836bf Add methods to StringMap to erase entries by key.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52640 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-23 21:07:03 +00:00
Wojciech Matyjewicz
300c6c5167 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52638 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-23 19:39:50 +00:00
Dan Gohman
3627e34486 Add a priority queue class, which is a wrapper around std::priority_queue
and provides fairly efficient removal of arbitrary elements. Switch
ScheduleDAGRRList from std::set to this new priority queue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52582 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-21 18:35:25 +00:00
Owen Anderson
2b7470eb54 Fix use of placement new to actually use an address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52423 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-17 18:07:43 +00:00
Duncan Sands
8eab8a2798 Remove some DAG combiner assumptions about sizes
of integer types.  Fix the isMask APInt method to
actually work (hopefully) rather than crashing
because it adds apints of different bitwidths.
It looks like isShiftedMask is also broken, but
I'm leaving that one to the APInt people (it is
not used anywhere).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52142 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09 11:32:28 +00:00
Chris Lattner
d10e467ad9 Add a simple, but efficient, generic scoped hash table
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52112 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09 00:42:10 +00:00
Chris Lattner
b8d0b807fc add a predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51842 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-01 18:09:04 +00:00
Dan Gohman
11bf2ace55 Add an operator< for SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51791 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 22:37:47 +00:00
Dan Gohman
cdff51cabc Fix an error in the comment for APInt::getMinSignedBits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51720 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 00:46:49 +00:00
Anton Korobeynikov
81fb27cc3a Remove guard, so *each* inclusion will result in a warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51708 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 21:57:11 +00:00
Dan Gohman
1baa88e3de Prune and tidy #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 19:52:31 +00:00
Anton Korobeynikov
b372d59a11 Add file with warning for backward comptibility. Should be removed after 2.4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51693 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 18:18:15 +00:00
Anton Korobeynikov
1ff4ed726b Update guards
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51692 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 18:17:53 +00:00