Commit Graph

72 Commits

Author SHA1 Message Date
Daniel Dunbar e5df197e70 Add SmallString unit test.
- Patch by Ryan Flynn!

llvm-svn: 76081
2009-07-16 17:00:06 +00:00
Owen Anderson b6b2530000 Move EVER MORE stuff over to LLVMContext.
llvm-svn: 75703
2009-07-14 23:09:55 +00:00
Dan Gohman 734759e5db Port this unittest to use LLVMContext.
llvm-svn: 75583
2009-07-14 01:26:26 +00:00
Nick Lewycky 571bf54569 Fix an error in ConstantRange::getSignedMax on wrapped ranges. Thanks once
again to Daniel Dunbar and KLEE!

llvm-svn: 75449
2009-07-13 04:50:21 +00:00
Nick Lewycky 5edc459220 'i8 full-range' sign extended to i16 should equal [-128, 128) not [-128, 127).
Found by Daniel Dunbar and KLEE.

llvm-svn: 75448
2009-07-13 04:17:23 +00:00
Owen Anderson 53a52215b5 Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context.  This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.

llvm-svn: 75445
2009-07-13 04:09:18 +00:00
Nick Lewycky 5302389442 Multiply was very wrong for wrapped ranges. This supplies a half-fix that will
generally return Full on all wrapped inputs. "Fixes" PR4545.

llvm-svn: 75444
2009-07-13 03:27:41 +00:00
Nick Lewycky 73b704dd9c Fix a bug summing two full sets. The overflow checking doesn't handle sets as
large as the full set, only those one size smaller. Thanks to Daniel Dunbar
who found this bug using Klee!

llvm-svn: 75443
2009-07-13 02:49:08 +00:00
Daniel Dunbar 6d6023b5f7 Clarify a FIXME.
llvm-svn: 75422
2009-07-12 19:45:34 +00:00
Nick Lewycky f1b8cb3760 Implement udiv for ConstantRanges.
llvm-svn: 75413
2009-07-12 05:18:18 +00:00
Nick Lewycky 071e176667 This is not overly conservative.
Some = [10, 2730). A subset of that is [1024..2048) which covers every possible
10-bit pattern.

llvm-svn: 75411
2009-07-12 02:28:40 +00:00
Nick Lewycky 2951c990cd Implement ConstantRange::multiply based on the code in LoopVR.
llvm-svn: 75410
2009-07-12 02:19:05 +00:00
Nick Lewycky fc69ee2cc6 Fix handling of max and full set.
A full set is a constant range that represents any number. If you take the
umax of that and [5, 10) you end up with [5, INT_MAX] because the values less
than 5 would be umax's against a value which is at least 5.

llvm-svn: 75372
2009-07-11 19:22:21 +00:00
Nick Lewycky 17a4fa84ee Break the world's largest unit test down a few logical lines. No semantic
changes.

llvm-svn: 75369
2009-07-11 18:43:20 +00:00
Dan Gohman a32ee1d3f2 Don't use a void return type with a function that returns a value.
llvm-svn: 75364
2009-07-11 13:56:14 +00:00
Owen Anderson c490dee828 Fix unit tests.
llvm-svn: 75262
2009-07-10 18:58:29 +00:00
Dan Gohman dc33ae27ed Revert the part of 75177 that split ConstantRange into two classes, and
merge the new functionality and unittests into ConstantRange. Thanks to
Nick Lewycky for pointing out that it isn't necessary to have two separate
classes here.

llvm-svn: 75191
2009-07-09 23:16:10 +00:00
Dan Gohman 5035fbf91c Add a ConstantSignedRange class, which does for signed integers
what ConstantRange does for unsigned integers. Factor out a
common base class for common functionality.

Add some new functions for performing arithmetic on constant
ranges. Some of these are currently just stubbed out with
conservative implementations.

Add unittests for ConstantRange and ConstantSignedRange.

llvm-svn: 75177
2009-07-09 22:07:27 +00:00
Jeffrey Yasskin 70415d97a8 Add an option to allocate JITed global data separately from code. By
default, this option is not enabled to support clients who rely on
this behavior.

Fixes http://llvm.org/PR4483

A patch to allocate additional memory for globals after we run out is
forthcoming.

Patch by Reid Kleckner!

llvm-svn: 75059
2009-07-08 21:59:57 +00:00
Devang Patel f04d63a398 Drop "constant" from
!0 = constant metadata !{...}

llvm-svn: 75057
2009-07-08 21:57:07 +00:00
Devang Patel 983c6b1b8f Update SLotTracker to handle MDNode slots.
Simplify MDNode printing.

llvm-svn: 75053
2009-07-08 21:44:25 +00:00
Owen Anderson 1cf085d558 Hold the LLVMContext by reference rather than by pointer.
llvm-svn: 74640
2009-07-01 21:22:36 +00:00
Owen Anderson 8bc174aef7 Fix unit tests for LLVMContext+Module.
llvm-svn: 74622
2009-07-01 18:14:20 +00:00
Dan Gohman 10f1733d9a Reapply 74494, this time removing the conflicting definition of operator<<
in APIntTest.cpp.

llvm-svn: 74550
2009-06-30 20:10:56 +00:00
Daniel Dunbar ec6fdb6750 Revert my intentional breakage.
llvm-svn: 74531
2009-06-30 16:26:57 +00:00
Daniel Dunbar c9de159696 Intentionally break a unittest to test my buildbot gtest command.
- Apologies in advance for the noise.

llvm-svn: 74530
2009-06-30 16:11:58 +00:00
Daniel Dunbar 7cbba368fb Fix order of arguments to EXPECT_EQ
llvm-svn: 74441
2009-06-29 19:57:24 +00:00
Torok Edwin 24c7835d19 Call doInitialization(), releaseMemory(), and doFinalization() for on-the-fly passes as well.
Also don't call finalizers for LoopPass if initialization was not called.
Add a unittest that tests that these methods are called, in the proper
order, and the correct number of times.

llvm-svn: 74438
2009-06-29 18:49:09 +00:00
Jeffrey Yasskin 0b08f3d7cc Add a JITEventListener interface that gets called back when a new function is
emitted or the machine code for a function is freed.  Chris mentioned that we
may also want a notification when a stub is emitted, but that'll be a future
change.  I intend to use this to tell oprofile where functions are emitted and
what lines correspond to what addresses.

llvm-svn: 74157
2009-06-25 02:04:04 +00:00
Daniel Dunbar 71ea89dd86 Sketch streamer support for .align, .org functionality.
llvm-svn: 74109
2009-06-24 19:25:34 +00:00
Daniel Dunbar f782ebc0cb We decided to not worry about Atoms for now, it should be straightforward to
reintroduce them later.

Also, don't require MCSection* when creating a symbol.

llvm-svn: 74081
2009-06-24 17:00:42 +00:00
Daniel Dunbar de5777022c MCStreamer: Test printing values.
llvm-svn: 74076
2009-06-24 16:05:35 +00:00
Daniel Dunbar 9faf273fc4 Start MCAsmStreamer implementation.
llvm-svn: 74044
2009-06-24 01:03:06 +00:00
Misha Brukman 67a1ffa59c Reversed order of args in EXPECT_EQ() macros to be in the correct order:
EXPECT_EQ(expected, actual) .  This will make error messages understandable as
it uses terms such as "expected" and "actual" based on the order of arguments.

llvm-svn: 73150
2009-06-09 21:48:57 +00:00
Nick Lewycky adbc284666 Give embedded metadata its own type instead of relying on EmptyStructTy.
llvm-svn: 72610
2009-05-30 05:06:04 +00:00
Daniel Dunbar 5d8165435d Fix a compile warning.
llvm-svn: 71993
2009-05-18 03:44:24 +00:00
Nick Lewycky b8f9b7a965 Make MDNode use CallbackVH. Also change MDNode to store Value* instead of
Constant* in preperation of a future change to support holding non-Constants
in an MDNode.

llvm-svn: 71407
2009-05-10 20:57:05 +00:00
Dan Gohman 745ad4486e Apply Jeffrey Yasskin's CallbackVH patch, with minor tweaks from me
to make the copy constructor and destructor protected, and corresponding
adjustments to the unittests.

llvm-svn: 70644
2009-05-02 21:10:48 +00:00
Stuart Hastings e54523d56e Prevent looping when DenseSet is abused.
llvm-svn: 70572
2009-05-01 20:47:53 +00:00
Jeffrey Yasskin 41f2477a50 Add tests for WeakVH and AssertingVH. These pointed out that the overloads for
the comparison operators were not only unnecessary in the presence of the
implicit conversion; they caused ambiguous overload errors. So I deleted them.

llvm-svn: 70243
2009-04-27 20:32:07 +00:00
Chris Lattner abd9bc89c5 Add a new TypeBuilder helper class, which eases making LLVM IR types.
Patch by Jeffrey Yasskin!

llvm-svn: 70084
2009-04-25 22:14:04 +00:00
Chris Lattner b869a0ade1 Fix PR4040: APInt's string constructor is too strict
patch by Jeff Yasskin!

llvm-svn: 70058
2009-04-25 18:34:04 +00:00
Chris Lattner a776fc78a9 "I got annoyed at the compiler warnings from ConstantInt::get(Ty, -1,
true), and casts make me nervous and are verbose anyway, so here's a
ConstantInt::getSigned(Ty, int64_t) method. Just overloading
ConstantInt::get() to take an int64_t too would cause ambiguous
overload errors."

Patch by Jeffrey Yasskin!

llvm-svn: 69958
2009-04-24 05:30:14 +00:00
Owen Anderson d4f5537c5e Use the testcase from PR2791.
llvm-svn: 69846
2009-04-23 00:15:26 +00:00
Nick Lewycky 8b4db2da2b Fix pointer casting problem.
llvm-svn: 68668
2009-04-09 03:10:03 +00:00
Misha Brukman f02d62deeb Fixed compiler warning.
llvm-svn: 68664
2009-04-09 00:42:37 +00:00
Misha Brukman 680336d12f * Fixed calls to APInt ctor to work for negative values on Darwin/x86
* Converted C-style casts to C++-style casts

llvm-svn: 68613
2009-04-08 16:17:23 +00:00
Nick Lewycky 49f891958f Add support for embedded metadata to LLVM. This introduces two new types of
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.

llvm-svn: 68420
2009-04-04 07:22:01 +00:00
Bill Wendling 66b3fffa60 Make the constants fit.
llvm-svn: 68258
2009-04-01 22:44:18 +00:00
Daniel Dunbar 4abd56677d Add llvm::Triple class for abstracting access to target triples.
- The code is silly, I'm just amusing myself. Rewrite to be efficient
   if you like. :)

Also, if you wish to debate the proper names of the triple components
I'm all ears.

llvm-svn: 68252
2009-04-01 21:53:23 +00:00