Chris Lattner
e82c10f5df
add some slice helper methods.
...
llvm-svn: 126878
2011-03-02 20:55:51 +00:00
Dan Gohman
304de5bc17
Simplify this code.
...
llvm-svn: 126785
2011-03-01 22:07:32 +00:00
Chris Lattner
7513f07004
add the ability to walk the scope tree and insert at not-the-current
...
scope.
llvm-svn: 126591
2011-02-27 22:51:57 +00:00
Chris Lattner
3fac41ace4
add a data() method.
...
llvm-svn: 126590
2011-02-27 22:51:37 +00:00
Daniel Dunbar
d4a7704765
Support: Add llvm::AreStatisticsEnabled().
...
llvm-svn: 126558
2011-02-26 23:17:12 +00:00
Cameron Zwarich
af4779907f
Add a getNumSignBits() method to APInt.
...
llvm-svn: 126379
2011-02-24 10:00:20 +00:00
Frits van Bommel
68294aa16c
Implement TODO for implicit C-array-to-ArrayRef conversion.
...
llvm-svn: 126311
2011-02-23 13:43:06 +00:00
Nick Lewycky
0c9c9c5beb
Fix C++0x incompatibility. The signature of std::make_pair<> changes from:
...
template <class T1, class T2> pair<T1,T2> make_pair(const T1&, const T2&);
to
template <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&);
so explicitly specifying the template arguments to make_pair<> is going to break
when C++0x rolls through. Replace them with equivalent std::pair<>. Patch by
James Dennett!
llvm-svn: 126256
2011-02-22 22:48:47 +00:00
Argyrios Kyrtzidis
a3437f732e
Allow getting the address of the value in a PointerUnion or PointerIntPair if one is
...
confident enough that he knows what he is doing.
llvm-svn: 126019
2011-02-19 03:55:58 +00:00
Ted Kremenek
cfdacb2104
Add ImmutableMap methods 'manualRetain()', 'manualRelease()', and 'getRootWithoutRetain()' to help more aggressively reclaim memory in the static analyzer.
...
llvm-svn: 126011
2011-02-19 01:59:21 +00:00
Nadav Rotem
ad2fd4eada
Enhance constant folding of bitcast operations on vectors of floats.
...
Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.
llvm-svn: 125776
2011-02-17 21:22:27 +00:00
NAKAMURA Takumi
00228d0c2c
Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.
...
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.
llvm-svn: 125747
2011-02-17 12:24:17 +00:00
Duncan Sands
061150ac1b
Spelling fix: consequtive -> consecutive.
...
llvm-svn: 125563
2011-02-15 09:23:02 +00:00
Chris Lattner
f800339278
fix comments
...
llvm-svn: 125543
2011-02-15 00:23:53 +00:00
Chris Lattner
0848675c80
fix some typos.
...
llvm-svn: 125536
2011-02-15 00:06:37 +00:00
Chris Lattner
ee7f7c2494
revert my ConstantVector patch, it seems to have made the llvm-gcc
...
builders unhappy.
llvm-svn: 125504
2011-02-14 18:15:46 +00:00
Chris Lattner
34f32cb4c2
Switch ConstantVector::get to use ArrayRef instead of a pointer+size
...
idiom. Change various clients to simplify their code.
llvm-svn: 125487
2011-02-14 07:55:32 +00:00
Chris Lattner
cf712db15a
add a new ArrayRef class. This is intended to replace the idiom we
...
use in many places where we pass a pointer and size to abstract APIs
that can take C arrays, std::vector, SmallVector, etc. It is to arrays
what StringRef is to strings.
llvm-svn: 125486
2011-02-14 07:35:09 +00:00
Nick Lewycky
e980f95634
Fix typo in comment.
...
llvm-svn: 125480
2011-02-14 06:14:20 +00:00
Chris Lattner
307c1d4847
add a helper method.
...
llvm-svn: 125453
2011-02-13 08:04:16 +00:00
Douglas Gregor
cd73e97a29
Poison the relational operators ==, !=, <, <=, >=, > on llvm::Optional
...
objects, since they'll end up using the implicit conversion to "bool"
and causing some very "fun" surprises.
llvm-svn: 125380
2011-02-11 18:13:20 +00:00
Dan Gohman
a5cb7ac412
Optimize po_iterator: don't do redundant lookups.
...
llvm-svn: 125211
2011-02-09 19:25:31 +00:00
Duncan Sands
cfc61f7efb
Remove NoVendor and NoOS, added in commit 123990, from Triple. While it
...
may be useful to understand "none", this is not the place for it. Tweak
the fix to Normalize while there: the fix added in 123990 works correctly,
but I like this way better. Finally, now that Triple understands some
non-trivial environment values, teach the unittests about them.
llvm-svn: 124720
2011-02-02 10:08:38 +00:00
Evan Cheng
0e8c521bbd
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
llvm-svn: 124639
2011-02-01 01:14:13 +00:00
Nick Lewycky
8258d2da8c
Add DenseSet::resize for API parity with DenseMap::resize.
...
llvm-svn: 124370
2011-01-27 09:10:42 +00:00
Renato Golin
cf89d692dc
Clang was not parsing target triples involving EABI and was generating wrong IR (wrong PCS) and passing the wrong information down llc via the target-triple printed in IR. I've fixed this by adding the parsing of EABI into LLVM's Triple class and using it to choose the correct PCS in Clang's Tools. A Clang patch is on its way to use this infrastructure.
...
llvm-svn: 123990
2011-01-21 18:25:47 +00:00
Jakob Stoklund Olesen
785d31a2d2
Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results
...
when no virtual registers have been allocated.
It was only used to resize IndexedMaps, so provide an IndexedMap::resize()
method such that
Map.grow(MRI.getLastVirtReg());
can be replaced with the simpler
Map.resize(MRI.getNumVirtRegs());
This works correctly when no virtuals are allocated, and it bypasses the to/from
index conversions.
llvm-svn: 123130
2011-01-09 21:58:20 +00:00
Jakob Stoklund Olesen
9a7e67d141
Use IndexedMap for MachineRegisterInfo as well. No functional change.
...
llvm-svn: 123106
2011-01-09 03:05:46 +00:00
Jakob Stoklund Olesen
b3820cdc22
Use an IndexedMap for LiveOutRegInfo to hide its dependence on TargetRegisterInfo::FirstVirtualRegister.
...
llvm-svn: 123096
2011-01-08 23:10:50 +00:00
Chris Lattner
c6ccec7faf
add a handy typedef.
...
llvm-svn: 122726
2011-01-03 03:16:20 +00:00
Chris Lattner
c375dcd5f5
really get this working with a custom allocator.
...
llvm-svn: 122722
2011-01-03 01:38:29 +00:00
Chris Lattner
85f8315219
Enhance ScopedHashTable to allow it to take an allocator argument.
...
llvm-svn: 122721
2011-01-03 01:29:37 +00:00
Jakob Stoklund Olesen
86786c46c2
Use IntEqClasses to compute connected components of live intervals.
...
llvm-svn: 122296
2010-12-21 00:48:17 +00:00
Jakob Stoklund Olesen
26b4e8ec0a
Add ADT/IntEqClasses.h as a light-weight implementation of EquivalenceClasses.h.
...
This implementation already exists as ConnectedVNInfoEqClasses in
LiveInterval.cpp, and it seems to be generally useful to have a light-weight way
of forming equivalence classes of small integers.
IntEqClasses doesn't allow enumeration of the elements in a class.
llvm-svn: 122293
2010-12-21 00:04:46 +00:00
Nick Lewycky
de10f6132c
Use the new way of silencing this warning.
...
llvm-svn: 122195
2010-12-19 20:57:14 +00:00
Nick Lewycky
c85935836b
Add missing standard headers. Patch by Joerg Sonnenberger!
...
llvm-svn: 122193
2010-12-19 20:43:38 +00:00
Jakob Stoklund Olesen
64c013d79d
Add more checks to IntervalMapOverlaps::advance() to ensure that advanceTo sees
...
monotonic keys.
llvm-svn: 122093
2010-12-17 22:07:54 +00:00
Jakob Stoklund Olesen
f17722908c
It is allowed to call IntervalMap::const_iterator::advanceTo() with a key that
...
moves the iterator to end(), and it is valid to call it on end().
That means it is valid to call advanceTo() with any monotonic key sequence.
llvm-svn: 122092
2010-12-17 22:07:51 +00:00
Michael J. Spencer
f2bf8518fb
Support/Path: Deprecate PathV1::isAbsolute.
...
llvm-svn: 122086
2010-12-17 21:21:31 +00:00
Jakob Stoklund Olesen
aec6ae67a1
Fix crash when IntervalMapOverlaps::advanceTo moves past the last overlap.
...
llvm-svn: 122081
2010-12-17 19:18:38 +00:00
Jakob Stoklund Olesen
40f23cd5ca
Provide LiveIntervalUnion::Query::checkLoopInterference.
...
This is a three-way interval list intersection between a virtual register, a
live interval union, and a loop. It will be used to identify interference-free
loops for live range splitting.
llvm-svn: 122034
2010-12-17 04:09:47 +00:00
Jakob Stoklund Olesen
9681be67c5
Add basic test exposing many bugs.
...
llvm-svn: 121995
2010-12-16 19:46:09 +00:00
Jakob Stoklund Olesen
ae68a4eb6d
Add IntervalMapOverlaps - An iterator for overlapping intervals in two
...
IntervalMaps.
The IntervalMaps can have different template parameters, but the KeyT and Traits
types must be the same.
Tests are forthcoming.
llvm-svn: 121935
2010-12-16 01:18:29 +00:00
Jakob Stoklund Olesen
3fbb216a33
Remove debugging code.
...
llvm-svn: 121738
2010-12-14 00:37:52 +00:00
Michael J. Spencer
c4c4e1133d
Support: Move c_str from SmallVector back to SmallString and add a free standing
...
templated c_str in Windows.h to replace it.
llvm-svn: 121381
2010-12-09 17:37:18 +00:00
Jakob Stoklund Olesen
87009679c3
Fix begin() and end() on const IntervalMap.
...
llvm-svn: 121200
2010-12-07 23:18:43 +00:00
Jay Foad
79e18ed269
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
...
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
2010-12-07 08:25:19 +00:00
Michael J. Spencer
e5298b0f07
Support/ADT: Move c_str() from SmallString to SmallVectorImpl. The Windows PathV2
...
implementation needs it for wchar_t and SmallVectorImpl in general.
llvm-svn: 120984
2010-12-06 04:27:42 +00:00
Benjamin Kramer
e2e8053264
APInt: microoptimize a few methods.
...
llvm-svn: 120912
2010-12-04 18:05:36 +00:00
Benjamin Kramer
ec7938f7af
Simplify APInt::getAllOnesValue.
...
llvm-svn: 120911
2010-12-04 16:37:47 +00:00