Rafael Espindola
45e6c195d7
First step in fixing PR8927:
...
Add a unnamed_addr bit to global variables and functions. This will be used
to indicate that the address is not significant and therefore the constant
or function can be merged with others.
If an optimization pass can show that an address is not used, it can set this.
Examples of things that can have this set by the FE are globals created to
hold string literals and C++ constructors.
Adding unnamed_addr to a non-const global should have no effect unless
an optimization can transform that global into a constant.
Aliases are not allowed to have unnamed_addr since I couldn't figure
out any use for it.
llvm-svn: 123063
2011-01-08 16:42:36 +00:00
Jay Foad
814f1bb8e3
Remove the "ugly" method BranchInst::setUnconditionalDest().
...
llvm-svn: 123026
2011-01-07 20:26:51 +00:00
Michael J. Spencer
1d3c4a7b94
UnitTests/Path: Add magical tests. This will also test identify_magic.
...
llvm-svn: 122948
2011-01-06 05:58:02 +00:00
Michael J. Spencer
1f06360002
UnitTests/Path: More ASSERT_NO_ERROR cleanup.
...
llvm-svn: 122947
2011-01-06 05:57:54 +00:00
Michael J. Spencer
42368cc15f
UnitTests/Path: Fix typo, add error number, and enable the directory cleanup code.
...
llvm-svn: 122885
2011-01-05 16:39:46 +00:00
Michael J. Spencer
346a13381a
UnitTests/PathV2: Setup a test fixture to make tracking created file system
...
entities easier.
llvm-svn: 122880
2011-01-05 16:39:05 +00:00
Michael J. Spencer
52714863db
Support/PathV2: Implement directory iteration on POSIX.
...
llvm-svn: 122879
2011-01-05 16:38:57 +00:00
Michael J. Spencer
3b264ba91a
UnitTests/Path: Produce useful diagnostics on error.
...
llvm-svn: 122812
2011-01-04 17:00:18 +00:00
Chris Lattner
1be1fe033c
fix PR8867: a crash handling fp128. Thanks to Nick for the testcase.
...
llvm-svn: 122613
2010-12-29 01:33:36 +00:00
Jeffrey Yasskin
9b43f33620
Change all self assignments X=X to (void)X, so that we can turn on a
...
new gcc warning that complains on self-assignments and
self-initializations.
llvm-svn: 122458
2010-12-23 00:58:24 +00:00
Jakob Stoklund Olesen
baee655c5e
Add ADT/IntEqClasses.h as a light-weight implementation of EquivalenceClasses.h.
...
This implementation already exists as ConnectedVNInfoEqClasses in
LiveInterval.cpp, and it seems to be generally useful to have a light-weight way
of forming equivalence classes of small integers.
IntEqClasses doesn't allow enumeration of the elements in a class.
llvm-svn: 122293
2010-12-21 00:04:46 +00:00
Jakob Stoklund Olesen
00b29fbdec
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
54912ed921
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
Jakob Stoklund Olesen
213de04d75
Fix crash when IntervalMapOverlaps::advanceTo moves past the last overlap.
...
llvm-svn: 122081
2010-12-17 19:18:38 +00:00
Jakob Stoklund Olesen
649a72b94e
Complete tests for IntervalMapOverlaps.
...
llvm-svn: 122019
2010-12-17 01:31:49 +00:00
Jakob Stoklund Olesen
af49e9774a
Add basic test exposing many bugs.
...
llvm-svn: 121995
2010-12-16 19:46:09 +00:00
Michael J. Spencer
f616b218c8
Support/PathV2: Change most functions in the path namespace to return their work
...
via their return value instead of an out parameter.
llvm-svn: 121149
2010-12-07 17:04:04 +00:00
Frits van Bommel
716f34c6fb
CMake: Fix warning in gtest header used by unit tests.
...
llvm-svn: 121127
2010-12-07 10:22:07 +00:00
Jay Foad
583abbc4df
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
...
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
2010-12-07 08:25:19 +00:00
NAKAMURA Takumi
7291ebc353
unittests/CMakeLists.txt: Tweak unittests' layout to be identical to GNU build.
...
llvm-svn: 121117
2010-12-07 07:41:23 +00:00
Michael J. Spencer
1e090f0b8f
Support/PathV2: Remove the error_code return type from all functions in the path
...
namespace. None of them return anything except for success anyway. These will be
converted to returning their result soon.
llvm-svn: 121109
2010-12-07 03:57:37 +00:00
Michael J. Spencer
92903a3339
Support/PathV2: Move make_absolute from path to fs.
...
llvm-svn: 121108
2010-12-07 03:57:17 +00:00
Michael J. Spencer
7ecd94cc0b
Support/FileSystem: Add directory_iterator implementation.
...
llvm-svn: 120989
2010-12-06 04:28:42 +00:00
Michael J. Spencer
4fb115d2f3
Unittests/Support/PathV2: Add FileSystem tests.
...
llvm-svn: 120888
2010-12-04 03:18:42 +00:00
Jakob Stoklund Olesen
e7ed7b6cfd
Add IntervalMap::iterator::set{Start,Stop,Value} methods that allow limited
...
editing of the current interval.
These methods may cause coalescing, there are corresponding set*Unchecked
methods for editing without coalescing. The non-coalescing methods are useful
for applying monotonic transforms to all keys or values in a map without
accidentally coalescing transformed and untransformed intervals.
llvm-svn: 120829
2010-12-03 19:02:00 +00:00
Michael J. Spencer
6e74e11c85
Support/FileSystem: Add remove implementation.
...
llvm-svn: 120817
2010-12-03 17:53:43 +00:00
Benjamin Kramer
23e6bdf1ae
unittests/Support/PathV2: remove(3) requires a terminated string.
...
llvm-svn: 120803
2010-12-03 12:33:32 +00:00
Michael J. Spencer
b5ca6447bb
Unittests/Support/PathV2: Cleanup and remove output.
...
llvm-svn: 120785
2010-12-03 02:22:34 +00:00
Michael J. Spencer
ab16054770
unittests/Support/PathV2: Comment out test because some systems are saying that
...
a file exists when it shouldn't.
llvm-svn: 120784
2010-12-03 02:10:30 +00:00
Michael J. Spencer
4571040ea1
Support/FileSystem: Add unique_file and exists implementations.
...
llvm-svn: 120776
2010-12-03 01:21:28 +00:00
Michael J. Spencer
75942f9d93
Make valgrind happy.
...
llvm-svn: 120616
2010-12-01 22:28:42 +00:00
Michael J. Spencer
f2cc8287ed
Support/ADT/Twine: Add toNullTerminatedStringRef.
...
llvm-svn: 120600
2010-12-01 20:37:30 +00:00
Michael J. Spencer
9ceae88ffc
unittests/Support/PathV2: Fix -pedantic warning.
...
llvm-svn: 120590
2010-12-01 19:23:49 +00:00
Jay Foad
25a5e4ca1f
PR5207: Rename overloaded APInt methods set(), clear(), flip() to
...
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
2010-12-01 08:53:58 +00:00
Michael J. Spencer
a72df5fae8
Support/PathV2: Add is_{absolute,relative} implementation.
...
llvm-svn: 120560
2010-12-01 06:21:53 +00:00
Michael J. Spencer
112a769379
Support/PathV2: Add has_{root_path,root_name,root_directory,parent_path,filename,stem,extension} implementation.
...
llvm-svn: 120559
2010-12-01 06:03:50 +00:00
Michael J. Spencer
4d0c6fdda6
unittests/Support/PathV2: Make tests much shorter; although harder to understand.
...
I'm going to replace this all anyway with a proper table and separated tests
when done.
llvm-svn: 120558
2010-12-01 06:03:33 +00:00
Michael J. Spencer
87106c59ed
Support/PathV2: Add extension implementation.
...
llvm-svn: 120550
2010-12-01 03:37:41 +00:00
Michael J. Spencer
956955ed8b
Support/PathV2: Add stem implementation.
...
llvm-svn: 120547
2010-12-01 03:18:33 +00:00
Michael J. Spencer
142692006b
Support/PathV2: Add filename implementation.
...
llvm-svn: 120546
2010-12-01 03:18:17 +00:00
Michael J. Spencer
8002500ee1
Support/PathV2: Add native implementation.
...
llvm-svn: 120539
2010-12-01 02:48:27 +00:00
Michael J. Spencer
fb3a95d8e2
Support/PathV2: Add replace_extension implementation.
...
llvm-svn: 120514
2010-12-01 00:52:55 +00:00
Michael J. Spencer
9c594095a6
Support/PathV2: Add remove_filename implementation.
...
llvm-svn: 120513
2010-12-01 00:52:28 +00:00
Michael J. Spencer
545cbdf063
Support/PathV2: Implement reverse iteration and parent_path.
...
llvm-svn: 120496
2010-11-30 23:28:07 +00:00
Michael J. Spencer
b775d0b3ad
Support/PathV2: Fix 80 col.
...
llvm-svn: 120349
2010-11-29 23:35:49 +00:00
Michael J. Spencer
3ef91c5593
unittests: Merge SystemTests back into SupportTests.
...
llvm-svn: 120330
2010-11-29 22:29:04 +00:00
Michael J. Spencer
ebad2f9d36
Support: Add PathV2 implementation.
...
llvm-svn: 120329
2010-11-29 22:28:51 +00:00
Michael J. Spencer
447762da85
Merge System into Support.
...
llvm-svn: 120298
2010-11-29 18:16:10 +00:00
Jakob Stoklund Olesen
7aad398e0a
Disallow overlapping inserts, even when inserting the same value.
...
We always disallowed overlapping inserts with different values, and this makes
the insertion code smaller and faster.
If an overwriting insert is needed, it can be added as a separate method that
trims any existing intervals before inserting. The immediate use cases for
IntervalMap don't need this - they only use disjoint insertions.
llvm-svn: 120264
2010-11-28 22:17:11 +00:00
Jakob Stoklund Olesen
8710e4f1ef
Add default constructors for iterators.
...
These iterators don't point anywhere, and they can't be compared to anything.
They are only good for assigning to.
llvm-svn: 120239
2010-11-28 07:21:48 +00:00