Dan Gohman
835b142edd
Don't use identifiers that start with an underscore followed
...
by a capital letter, which invokes undefined behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83206 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01 17:39:52 +00:00
Devang Patel
1e9a727f10
Create empty StringRef is incoming cstring is NULL.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83082 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29 18:39:56 +00:00
Daniel Dunbar
27dba671c3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22 03:34:53 +00:00
Chris Lattner
c936fe8cb3
write rfind in terms of npos as daniel requested
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82414 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 22:54:26 +00:00
Chris Lattner
05a32c8ab1
move a couple non-trivial methods out of line, add new
...
find_first_of/find_first_of methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 01:22:16 +00:00
Chris Lattner
db513bc096
add size_t and a version of rfind that allows specification of where
...
to scan from.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 00:38:28 +00:00
Chris Lattner
63c6b7dc67
add some more overloads of StringRef::getAsInteger for
...
common and useful integer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19 23:58:48 +00:00
Chris Lattner
3670a01d0b
add a simple c_str() method to SmallString.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82337 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19 23:57:31 +00:00
Chris Lattner
cea1438cf5
provide a "strtoull" operation that works on StringRef's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82322 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19 19:47:14 +00:00
John McCall
2fed70daaf
Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
...
instead of the PtrTraits provided. Allows PointerIntPair to contain a
PointerUnion safely, as long as the bits add up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17 20:35:18 +00:00
Chris Lattner
d7bd78e36e
add a version of the APFloat constructor that initializes to 0.0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82110 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17 01:08:43 +00:00
Daniel Dunbar
e65512809a
Add StringRef::{rfind, rsplit}
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82087 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16 22:38:48 +00:00
Dan Gohman
75144f93eb
Fix apostrophos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81856 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 15:08:33 +00:00
Chris Lattner
270fc1077b
switch scciterator to use DenseMap instead of std::map
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 04:37:49 +00:00
Chris Lattner
724f675144
give densemap iterators real iterator traits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81538 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 18:15:46 +00:00
Daniel Dunbar
baf9b56230
Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
...
name (e.g. "ppc") to the appropriate constant.
Also, StringRefize additional Triple constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08 23:32:51 +00:00
Duncan Sands
8ecbe8d974
Mark constants as unsigned, as pointed out by icc
...
warnings (#174 ). Patch by Erick Tryzelaar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81111 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-06 11:45:14 +00:00
Duncan Sands
59bf4fcc06
Public and private corrections, warned about by icc ( #304 ).
...
Patch by Erick Tryzelaar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81107 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-06 08:55:57 +00:00
Benjamin Kramer
ee3d6fd219
Delete unused #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-05 08:50:14 +00:00
Benjamin Kramer
be5cded586
Prune #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81052 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 22:45:23 +00:00
Ted Kremenek
8b8a7fcf68
Make ImmutableMap/ImmutableSet quicker by only canonicalizing the tree after an
...
Add or Remove operation complete, and not while building the intermediate tree.
This trades a little bit more memory usage for less accesses to the FoldingSet. On a benchmark for the clang static analyzer, this shaves off another 13% of execution time when using field/array sensitivity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 22:07:30 +00:00
Ted Kremenek
9bd2acb3b2
Set the 'cached digest' flag after computing the digest for an
...
ImutAVLTree. This was accidentally left out, and essentially caused
digest caching to be ignored in ImmutableMap and ImmutableSet (this
bug was detected from shark traces that showed ComputeDigest was in
the hot path in the clang static analyzer).
This reduces the running time of the clang static analyzer on an
example benchmark by ~32% for both RegionStore (field-sensitivty) and
BasicStore (without field-sensitivity).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 04:21:34 +00:00
Gabor Greif
b97cb9cbe1
restore semantics of operator* (removing a FIXME I had to introduce in r80224)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 20:54:23 +00:00
Chris Lattner
32859c71d6
make DenseMap::clear() early exit if there is nothing to do.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30 05:55:04 +00:00
Gabor Greif
7362ce08cb
eliminate all 80-col violations that I have introduced in my recent checkins (and some others more)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 23:44:33 +00:00
Gabor Greif
4c75054b01
re-apply r80197, now that iterator.h is not mentioned any more
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 17:07:35 +00:00
Gabor Greif
f0891be8bd
Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80224 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 06:41:46 +00:00
Bill Wendling
fffb7266fe
--- Reverse-merging r80147 into '.':
...
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in
Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.
Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 03:29:26 +00:00
Gabor Greif
c42afd7946
now that include/llvm/ADT/iterator.h.in is not attempted to be built, its prerequisite can go away too
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80180 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 23:35:33 +00:00
Gabor Greif
a626e16b38
nobody includes llvm/ADT/iterator.h any more,
...
so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy,
but I wait till I see that configure gets regenerated, as it depends on it. I'll commit
then.
There are still some AC_* tests in the configure.ac dealing with iterators, those can
be zapped probably too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80147 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 21:36:59 +00:00
Gabor Greif
7309be6735
Remove all the LLVM_COMPACTIFY_SENTINELS-related macro magic as discussed with Chris on IRC. Anybody wanting to debug sentinel dereferencing problems must revert this patch and perform the indicated modifications.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80128 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 19:16:32 +00:00
Mike Stump
e1182b5599
Allow unsigned long long DenseMapInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80118 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 18:02:19 +00:00
Chris Lattner
be1f788676
some mips and some sparc compilers apparently
...
predefine mips and sparc respectively. Just overrule them :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80072 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 05:00:16 +00:00
Gabor Greif
2600ca8b3f
re-committing yesterday's r79938.
...
This time there is no additional include of llvm/Config/config.h
at all. Instead I use a hard-coded preprecessor symbol:
LLVM_COMPACTIFY_SENTINELS
(should this work on the self-hosting buildbot, then
cleanups come next)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 21:25:22 +00:00
Bill Wendling
f63097f223
--- Reverse-merging r79938 into '.':
...
U include/llvm/BasicBlock.h
U include/llvm/ADT/ilist_node.h
U include/llvm/ADT/ilist.h
U include/llvm/CodeGen/SelectionDAG.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/MachineBasicBlock.h
U include/llvm/Function.h
Revert r79938. It was causing self-hosting build failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79960 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 00:05:04 +00:00
Gabor Greif
fd7a918e58
Resubmit an earlier patch of mine:
...
reduce the size of relevant "ghostly" sentinels
by a pointer.
This attempt now makes the compactification dependent
on the configure variable LLVM_COMPACT_SENTINELS
and should not cause any bootstrap failures for
llvm-gcc any more.
Please note that this is not yet the final version,
and (as settled with Chris) I shall take out the
autofoo/cmake portions in the next days.
This will also lose the assertability on sentinel
dereferencing and operator++, but that seems
an acceptable price to pay for the simplified
build logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 21:34:17 +00:00
Daniel Dunbar
688b55b436
Add llvm::Triple::getArchTypePrefix for getting the intrinsic prefix for an
...
identifier architecture.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 09:53:06 +00:00
Chris Lattner
91021d3390
remove the dead std::ostream APInt inserter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 23:11:28 +00:00
Chris Lattner
bbbfa99d3d
remove a few DOUTs here and there.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 06:35:02 +00:00
Daniel Dunbar
39db3439bf
Change SmallString::operator{=,+=} to take a StringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79729 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 06:06:46 +00:00
Anton Korobeynikov
7e844f128e
Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
...
This fixes PR2555
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 22:10:30 +00:00
Daniel Dunbar
5149932068
Add a fast path for setName("") on an unnamed value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:37:23 +00:00
Eli Friedman
74db89e30f
Add triple parsing support for TCE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79461 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 20:46:03 +00:00
Daniel Dunbar
dddfd34e32
Switch to SmallString::str from SmallString::c_str, and remove
...
SmallString::c_str.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 20:07:03 +00:00
Daniel Dunbar
04087d069a
Add SmallString::str (which returns a StringRef); this is more efficient than
...
c_str().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79453 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 19:57:55 +00:00
Daniel Dunbar
921be7a6f2
Remove SmallString::append_*int* methods; how many copies of int -> str
...
conversion code do we really need?
- S.append_uint(N) can be replaced with 'raw_svector_ostream(S) << N' which is
somewhat slower due to the extra set up cost, but still plenty fast
(especially if the svector set up cost can be amortized).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 19:28:18 +00:00
Daniel Dunbar
c2da6fb3e5
Add SmallVector::{capacity,set_size}.
...
- These allow clients to make use of the extra elements in the vector which
have already been allocated, without requiring them to be value initialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:48:28 +00:00
Daniel Dunbar
651aa689cc
Improve Triple to recognize the OS in i386-mingw32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 19:26:55 +00:00
Daniel Dunbar
323a3e6533
Fix pasto in StringRef::count(char)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79356 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 18:34:22 +00:00
Daniel Dunbar
5caba3bcb1
Add StringRef::count({char,StringRef})
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 18:26:35 +00:00
Misha Brukman
b2bacd9263
Fixed spelling of MSP430.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79333 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 13:50:28 +00:00
Daniel Dunbar
2447389bac
Recognize xscale as an ARM arch.
...
- Patch by Yonggang Luo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 04:51:26 +00:00
Daniel Dunbar
fdb0b7b555
Add Triple matching for pic16 arch and solaris OS.
...
- Patch by Yonggang Luo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79314 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 04:43:27 +00:00
Oscar Fuentes
f70bc559a1
Make a declaration consistent with its definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79220 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 04:10:20 +00:00
Erick Tryzelaar
a15d890c34
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79210 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 23:36:19 +00:00
Daniel Dunbar
689ad6ef3f
Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
...
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 02:33:34 +00:00
Daniel Dunbar
ac55b85438
Add StringRef::front (with some small tweaks while I was in the area).
...
- Patch by Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 02:03:30 +00:00
Dan Gohman
a9ad04191c
This void is implicit in C++.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78848 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 22:10:57 +00:00
Gabor Greif
e2b16504be
catch a typo and simplify call syntax
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78804 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 09:05:11 +00:00
Chris Lattner
8e6208304b
add support for mingw64 target triples.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 06:32:10 +00:00
Chris Lattner
dfc17f75e8
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 06:19:40 +00:00
Daniel Dunbar
0ad7f9bb2f
StringRef: Add find(char) and find(StringRef).
...
Also, regroup functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 20:47:15 +00:00
Chris Lattner
e36df3fd31
add a simple back() method to StringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78544 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 00:44:02 +00:00
Daniel Dunbar
094da67bd7
STLExtras: Add less_ptr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78521 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-09 03:36:59 +00:00
Dan Gohman
1eaf391458
Use std::string() instead of std::string("").
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78364 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 01:43:45 +00:00
Daniel Dunbar
c9af366fc3
Add StringRef::endswith
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-05 15:48:26 +00:00
Daniel Dunbar
3c2d4bf97f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03 04:03:51 +00:00
Daniel Dunbar
275872e799
Fix some comments referring to std::cerr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03 01:02:24 +00:00
Daniel Dunbar
bf4fc28303
Adjust comment to distinguish between target name and triple target name they
...
match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02 19:41:20 +00:00
Jakob Stoklund Olesen
d950941e13
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02 17:32:10 +00:00
Ted Kremenek
458ba32680
Make default ctor for ImmutableSet::iterator public.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77762 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01 01:28:23 +00:00
Dan Gohman
fb3af88ba7
Split DenseMapInfo into a separate header file, so that it can be
...
included separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77693 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31 18:18:19 +00:00
Daniel Dunbar
2d8bc0fe70
Twine: Directly support int, long, and long long types.
...
- This should resolve Cygwin gcc ambiguities.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77624 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 21:15:14 +00:00
Daniel Dunbar
0fffbafa96
Twine: Use raw_ostream::write_hex, remove unused itohexstr method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:30:19 +00:00
Daniel Dunbar
bd17a295c1
Remove itohexstr, which only had one user.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:18:54 +00:00
Daniel Dunbar
fe09b2098a
Twines: Don't allow implicit conversion from integers, this is too tricky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77605 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:37:43 +00:00
Daniel Dunbar
0165a2ca89
Twine: Provide [u]int{32,64} conversions via implicit constructors instead of
...
explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77576 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 03:47:15 +00:00
Douglas Gregor
26ef510d5d
Fix a typo, and all of its copies
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77489 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 18:27:22 +00:00
Douglas Gregor
e657ec6701
Implement PointerUnion4.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77487 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 18:19:47 +00:00
Benjamin Kramer
37e3fe9ad7
MSVC build fix. Patch by Olaf Krzikalla!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 11:21:25 +00:00
Daniel Dunbar
763457e70b
Twines: Support numeric conversion directly (uitostr, etc).
...
- Provides static constructors for doing number to string conversions without
using temporaries.
- There are several ways to do this, I think given the Twine constraints this
is the simplest one.
- One FIXME for fast number -> hex conversion.
- Added another comment on one last major bit of perf work Twines need, which
is to make raw_svector_ostream more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77445 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 07:08:44 +00:00
Chris Lattner
7e763ebd98
Use the RHS length instead of the LHS length. They are both the same,
...
but this ends up compiling code like this:
int foo(const StringRef &R) {
return R == "food";
}
to use a constant sized memcmp instead of a variable memcmp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77160 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 17:46:03 +00:00
Daniel Dunbar
8c2f1d7e44
Oops, forgot XCore. Sorry XCore!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77125 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 04:52:45 +00:00
Daniel Dunbar
6337f15b5a
Update for API change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77124 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 04:23:03 +00:00
Daniel Dunbar
a14d225ef4
Update Triple to use StringRef/Twine based APIs.
...
- This is now shorter, simpler, safer, and more efficient, what a deal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 03:31:47 +00:00
Daniel Dunbar
d61918fc68
Add StringRef::{slice, split}, two convenient string operations which are simple
...
and efficient on a StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77117 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 03:18:15 +00:00
Jeffrey Yasskin
f595d6dd9a
Add a missing ilist_node.h #include to SparseBitVector, and add a very short
...
test for it. The test is by no means complete, but it tests the problem I was
fixing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 00:33:57 +00:00
Daniel Dunbar
3f0e83067d
Move to raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 09:53:24 +00:00
Daniel Dunbar
050578fb4a
Fix constructor types
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76958 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 07:12:20 +00:00
Daniel Dunbar
2538f7ab2e
Add Twine ADT.
...
- Not currently used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76956 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 07:04:27 +00:00
Daniel Dunbar
6316fbcb04
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 18:17:34 +00:00
Chris Lattner
f0395160f9
enhance DepthFirstIterator to support more robust operations in the face
...
of code mutating the graph while it is being traversed. Patch by
Olaf Krzikalla!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 06:30:28 +00:00
Chris Lattner
903cb3908e
remove a really old and dead header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76855 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 04:59:02 +00:00
Daniel Dunbar
b834a7b73c
Define npos in a way that should make MSVC happier.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 21:08:31 +00:00
Daniel Dunbar
85f49835c2
Add missing include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76655 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 21:33:58 +00:00
Torok Edwin
d06c59821a
Add freed memory poisoning in !NDEBUG mode for DenseMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:01:37 +00:00
Daniel Dunbar
7cb6860185
Move StringRef comparison operators out of class.
...
Also, tweak the return type of size().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 17:25:46 +00:00
Daniel Dunbar
f5fdf73238
Add StringRef::{substr, startswith}.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 09:18:49 +00:00
Daniel Dunbar
4cf95d75c6
Add StringRef class, with fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 07:28:51 +00:00
Daniel Dunbar
aafa94260d
Remove redundant qualifiers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-19 01:42:34 +00:00
Chris Lattner
cd2b4c1846
Fix a fixme, patch by Ryan Flynn!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75716 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 00:36:04 +00:00
Chris Lattner
b8ac841c9a
Add NetBSD to the Triple class, patch by Krister Walfridsson!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75489 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13 20:22:23 +00:00
Dan Gohman
d6a2aab53e
Add an optional optimization to FoldingSet to allow ID values to be
...
stored rather than recomputed on each bucket traversal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13 18:25:44 +00:00
Ted Kremenek
8f3cfb4c65
ImmutableMap/ImmutableSet: Allow caching of ImutAVLTree digests while the tree
...
is still mutable. My experiments show this reduces the amount of times we
compute a full tree digest by over 50% on very small cases, and potentially much
larger on others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75207 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10 00:33:43 +00:00
Ted Kremenek
633eb95f3e
ImmutableSet/ImmutableMap: Allow caching of null digests by properly using a flag to record if the digest of an ImutAVLTree has been cached.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 18:34:41 +00:00
Douglas Gregor
7c718222cd
Make SmallPtrSet iterators real iterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75073 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 23:53:54 +00:00
Chris Lattner
151f369c53
fix a bug in post-order iterators with external storage, patch by
...
Olaf Krzikalla!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74933 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 18:43:48 +00:00
Dan Gohman
38a253ddf7
Reapply 74494, this time removing the conflicting definition of operator<<
...
in APIntTest.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 20:10:56 +00:00
Bill Wendling
527b6e6292
Temporarily revert r74494. It was causing failures in the unit tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74515 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 07:05:27 +00:00
Owen Anderson
5ec56cc438
Fix the build on Cygwin. Patch by Aaron Gray.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74510 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 05:33:46 +00:00
Dan Gohman
670031666c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74494 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 01:28:08 +00:00
Sebastian Redl
37c286c181
Fix three MSVC 2008 warnings that completely clutter the build output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 17:12:06 +00:00
Duncan Sands
cd1267d2d6
Add triple for OpenBSD.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74422 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 13:36:13 +00:00
Dan Gohman
1d3b26ac02
Add a 'const' in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74389 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27 20:53:16 +00:00
Owen Anderson
1c47c7db1e
Update for DOTGraphTraits changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 20:41:17 +00:00
Owen Anderson
92915e31e9
Use atomic operations when accessing statistics, and make the lazy initialization of statistics actually threadsafe.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 21:19:38 +00:00
Duncan Sands
852cd112ed
Add support for AuroraUX. Patch by evocallaghan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 14:40:01 +00:00
Owen Anderson
be24f1b7fb
Owen Anderson 2009-06-15: Use a SmallPtrSet here, for speed and to match df_iterator.
...
Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73438 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 22:54:48 +00:00
Torok Edwin
23e1e727bd
fix build on VC++2k8.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 20:32:59 +00:00
Mike Stump
6330084a66
Dcoument that the opauque value used to construct QNaNs is truncated
...
as necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 21:02:35 +00:00
Mike Stump
7d36d39e63
Add some documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 15:19:29 +00:00
Mike Stump
c5ca713b80
Add support for letting the client choose different flavors of NaNs. Testcase to be
...
added in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72606 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 03:49:43 +00:00
Daniel Dunbar
7eaf057e54
Add llvm::triple constructor from arch, vendor, os strings, and recognize
...
DragonFly OS type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22 02:24:11 +00:00
Jay Foad
c5d73afa48
Tighten up the asserts in SmallVector::operator[]().
...
If this causes any new assertion failures that I didn't catch in
testing, the fix is usually to change "&v[0]" to "v.data()" for some
SmallVector v.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72221 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-21 19:48:58 +00:00
Jay Foad
e3e51c0038
Use v.data() instead of &v[0] when SmallVector v might be empty.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-21 09:52:38 +00:00
Jay Foad
82fe2935bf
Implement new SmallVector::data() methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72209 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-21 09:00:37 +00:00
Bill Wendling
13bb81addf
Use struct instead of class to make MCVS compile.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71600 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12 21:50:43 +00:00
Douglas Gregor
01746745f1
Add terminal width detection to llvm::sys::Process. This is needed to
...
fix Clang PRs 4148 and 4183.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11 18:05:52 +00:00
John Mosby
b9cfbd94ab
Shrink wrapping in PEI:
...
- reduces _static_ callee saved register spills
and restores similar to Chow's original algorithm.
- iterative implementation with simple heuristic
limits to mitigate compile time impact.
- handles placing spills/restores for multi-entry,
multi-exit regions in the Machine CFG without
splitting edges.
- passes test-suite in LLCBETA mode.
Added contains() method to ADT/SparseBitVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71438 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11 17:04:19 +00:00
Mike Stump
fe095f39e7
Restore minor deletion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04 18:40:41 +00:00
Stuart Hastings
f0e4cac7eb
Prevent looping when DenseSet is abused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70572 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01 20:47:53 +00:00
Jay Foad
4e5ea553d0
Move helper functions for optimizing division by constant into the APInt
...
class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70488 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30 10:15:35 +00:00
Bill Wendling
3485d25a0e
I cast, therefore I think I know what I'm doing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70151 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26 20:12:38 +00:00
Bill Wendling
b14a495c36
Use uint64_t instead of unsigned.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26 19:46:41 +00:00
Chris Lattner
1e8db00e3b
revert an incorrect patch. This causes crashes all over the place on a
...
64-bit build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70147 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26 19:44:20 +00:00
Bill Wendling
610cb31ac9
Suppress warnings about conversion shortening 64-bit to 32-bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26 18:10:20 +00:00
Chris Lattner
11d8fb9609
DenseMap.h needs <new> because it explicitly calls operator new/delete.
...
Patch by John McCall!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25 19:50:14 +00:00
Owen Anderson
747972914a
Fix for PR3946, in which SmallVector could behave strangely in corner cases.
...
Patch by Peter Johnson.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-22 07:16:54 +00:00
Douglas Gregor
17893a5fb6
Add a static APInt::getNumWords
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68977 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-13 19:43:10 +00:00
Chris Lattner
5c5f5a2ec2
fix a broken assertion in ilist_iterator, which caused it to crash in the
...
bad case instead of actually assert. Bug pointed out by Jakob Stoklund
Olesen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10 15:47:17 +00:00
Chris Lattner
d0dfbe096d
fix overflow checks in SmallVector:
...
"The code was doing "if (End+NumInputs > Capacity) ...". If End is
close to 0xFFFFFFFF and NumInputs is large, it'll overflow, the
condition will come out false, and the vector won't grow to
accommodate the new elements, and the program will crash in memmove."
Patch by Jeffrey Yasskin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68277 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02 03:06:26 +00:00
Daniel Dunbar
23e97b05da
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01 21:53:23 +00:00
Misha Brukman
b035842c34
Fixed spelling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68248 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01 21:33:08 +00:00
Chris Lattner
dd255a6247
Add range insert method for DenseSet and define DenseMapInfo for chars.
...
Patch by Kevin Fan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01 19:50:49 +00:00
Dan Gohman
de551f91d8
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68227 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01 18:45:54 +00:00
Douglas Gregor
41222823db
Allow the use of pointers to const within PointerUnion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68159 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31 23:19:54 +00:00
Chris Lattner
bdd376ccb2
add some accessors so I can play games with DenseMaps.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31 20:57:23 +00:00
Douglas Gregor
da84b25b13
Stop guessing, start thinking, and make PointerUnion3::is actually be correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68126 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31 18:31:03 +00:00
Douglas Gregor
a7425d7fde
Really, really fix PointerUnion3::is
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68079 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31 00:34:31 +00:00
Douglas Gregor
2048cdb08e
Make PointerUnion3::get work properly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 21:44:13 +00:00
Chris Lattner
f54229192c
update comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68060 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:44:04 +00:00
Chris Lattner
e8bc475668
add a PointerUnion3 class and generalize PointerUnion to work with
...
anything pointer-like, which may or may not actually be a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:29:27 +00:00
Chris Lattner
c6a4b6b78b
fix the PointerLikeTypeTraits specialization for PointerIntPair to
...
allow the traits to be specified as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:28:50 +00:00
Chris Lattner
54e01d06db
add missing space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 13:26:05 +00:00
Chris Lattner
3a9fe06bfe
add some comments, add a dyn_cast method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67992 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 07:03:30 +00:00
Chris Lattner
f341a47d10
When forming sentinels for empty/tombstone, make sure to respect the
...
pointer's expected number of zero low-bits.
This should fix the breakage I introduced recently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67990 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:33:22 +00:00
Chris Lattner
ba315c1ee7
add helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:32:46 +00:00
Chris Lattner
2491e4657d
Add a simple type-safe bit-mangling pointer union class. This allows
...
you to do things like:
/// PointerUnion<int*, float*> P;
/// P = (int*)0;
/// printf("%d %d", P.is<int*>(), P.is<float*>()); // prints "1 0"
/// X = P.get<int*>(); // ok.
/// Y = P.get<float*>(); // runtime assertion failure.
/// Z = P.get<double*>(); // does not compile.
/// P = (float*)0;
/// Y = P.get<float*>(); // ok.
/// X = P.get<int*>(); // runtime assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:06:02 +00:00
Chris Lattner
540db8bcb8
Allow a specific PointerIntPair instance to use a specific Pointer trait:
...
some pointer instances have properties that not all of a type have.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67986 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:02:20 +00:00
Chris Lattner
e30173ac33
Replace the PointerLikeTypeTraits::getNumLowBitsAvailable
...
function with a new NumLowBitsAvailable enum, which makes the
value available as an integer constant expression.
Add PointerLikeTypeTraits specializations for Instruction* and
Use** since they are only guaranteed 4-byte aligned.
Enhance PointerIntPair to know about (and enforce) the alignment
specified by PointerLikeTypeTraits. This should allow things
like PointerIntPair<PointerIntPair<void*, 1,bool>, 1, bool>
because the inner one knows that 2 low bits are free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 04:32:37 +00:00
Chris Lattner
8ee1b5e916
rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for
...
# low bits free, and move to its own header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67973 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 00:39:30 +00:00
Chris Lattner
4d4177b9b3
teach SmallPtrSet that PointerIntPair is "basically a pointer".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 00:18:42 +00:00
Chris Lattner
1717f3af08
declare everything as class to avoid angering the VC++ gods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67931 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 07:48:03 +00:00
Chris Lattner
6de6030718
add a traits class for SmallPtrSet that allows us to stick things that are
...
"basically pointers" into it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67930 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 07:44:53 +00:00
Dan Gohman
9c01f2dd0b
Revert r67844. This fixes the llvm-gcc-4.2 build on Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67856 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-27 18:37:13 +00:00
Duncan Sands
76d3838454
Reapply r66415, which was reverted in r66426 for
...
causing a bootstrap failure. Bootstraps here on
x86-32-linux and x86-64-linux. Requested by the
author Gabor Greif who says that a bug that might
have been causing the failure has since been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67844 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-27 15:29:38 +00:00
Chris Lattner
dae2206390
Fix PR3860 by correcting a predicate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67473 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-22 19:22:53 +00:00
Chris Lattner
3ee87b6f9d
add some inline methods for infix operators on sparse vectors,
...
tidy some df iteration stuff, patch by John Mosby!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-21 05:40:09 +00:00
Daniel Dunbar
e889d837a4
Add StringMap::lookup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-12 01:16:06 +00:00
Bill Wendling
9aaa0796ad
Revert r66415. It's causing failures during bootstrap builds:
...
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c: In function '__muldi3':
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:567: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c: In function '__lshrdi3':
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:421: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
make[5]: *** [libgcc/./_lshrdi3.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: *** [libgcc/./_muldi3.o] Error 1
make[5]: *** [libgcc/./_negdi2.o] Error 1
--- Reverse-merging (from foreign repository) r66415 into '.':
U include/llvm/BasicBlock.h
U include/llvm/ADT/ilist_node.h
U include/llvm/CodeGen/SelectionDAG.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/MachineBasicBlock.h
U include/llvm/Function.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66426 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-09 18:01:33 +00:00
Gabor Greif
5c3e7b1718
in builds without asserts we do not need to allocate the Next pointer in "ghostly" sentinels
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66415 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-09 07:09:01 +00:00
Nick Lewycky
59fad7d933
Remove configurey-fu to autodetect hash_map and hash_set now that they are
...
no longer used in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-09 06:16:26 +00:00
Gabor Greif
c23b8719ef
Give sentinel traits the right to determine the policy where the sentinel is kept.
...
This should result in less indirect memory accesses, less dead writes and tighter code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66061 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-04 20:36:44 +00:00
Gabor Greif
83b5752747
drop support for GCC 2.x as it is hopelessly broken anyway
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65864 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 19:49:29 +00:00
Gabor Greif
b141e397d5
make traits more flexible by splitting out node-related fragment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65690 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28 10:17:32 +00:00
Gabor Greif
a05764c4fb
group friendship
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27 15:46:23 +00:00
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