summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support
Commit message (Collapse)AuthorAgeFilesLines
* Add new TargetRegistry.Daniel Dunbar2009-07-151-0/+136
| | | | | | | | | | | | | | | | | | | | | | | Targets implement a single global Target structure which will live in a new <Target>/TargetInfo library; this will be present in any image which the target is usable in. - Optional target specific classes can then be registered and attached to the Target description. - Registration for normal Targets will be done via the initialization functions instead of using static constructors. - This allows clients to use a single interface to obtain target data, without requiring the code generator be linked in. It also provides a natural extension point for adding new optional target data (assembler parser, disassembler, etc.). - This also provides a new entry point for obtaining a target for a particular triple (without a module). - Not yet used, however this should eventually replace the TargetMachineRegistry. llvm-svn: 75739
* minor syntax cleanupChris Lattner2009-07-141-11/+5
| | | | llvm-svn: 75707
* Update CMake file.Ted Kremenek2009-07-141-0/+1
| | | | llvm-svn: 75677
* Have asm printers use formatted_raw_ostream directly to avoid aDavid Greene2009-07-142-1/+14
| | | | | | dynamic_cast<>. llvm-svn: 75670
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-146-36/+36
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* After converting assert(0) to LLVM_UNREACHABLE we lost file/line location.Torok Edwin2009-07-141-1/+5
| | | | | | | Fix by making the LLVM_UNREACHABLE pass __FILE__ and __LINE__ to llvm_unreachable. llvm-svn: 75631
* Add NetBSD to the Triple class, patch by Krister Walfridsson!Chris Lattner2009-07-131-0/+3
| | | | llvm-svn: 75489
* Make some more changes suggested by Chris. Manipulators go away.David Greene2009-07-131-58/+41
| | | | llvm-svn: 75472
* Switch to raw_ostream.Daniel Dunbar2009-07-131-35/+35
| | | | llvm-svn: 75451
* Fix an error in ConstantRange::getSignedMax on wrapped ranges. Thanks onceNick Lewycky2009-07-131-7/+3
| | | | | | again to Daniel Dunbar and KLEE! llvm-svn: 75449
* 'i8 full-range' sign extended to i16 should equal [-128, 128) not [-128, 127).Nick Lewycky2009-07-131-1/+1
| | | | | | Found by Daniel Dunbar and KLEE. llvm-svn: 75448
* Multiply was very wrong for wrapped ranges. This supplies a half-fix that willNick Lewycky2009-07-131-6/+6
| | | | | | generally return Full on all wrapped inputs. "Fixes" PR4545. llvm-svn: 75444
* Fix a bug summing two full sets. The overflow checking doesn't handle sets asNick Lewycky2009-07-131-0/+2
| | | | | | | large as the full set, only those one size smaller. Thanks to Daniel Dunbar who found this bug using Klee! llvm-svn: 75443
* Improve sys::Path::makeAbsolute on Win32.Daniel Dunbar2009-07-121-1/+1
| | | | | | | | - Patch by Viktor Kutuzov! - Minor tweak by me to add llvm_unreachable calls on FIXMEd error paths. llvm-svn: 75424
* Implement udiv for ConstantRanges.Nick Lewycky2009-07-121-4/+26
| | | | llvm-svn: 75413
* Implement ConstantRange::multiply based on the code in LoopVR.Nick Lewycky2009-07-121-3/+13
| | | | llvm-svn: 75410
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-116-35/+41
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* Fix handling of max and full set.Nick Lewycky2009-07-111-4/+0
| | | | | | | | 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
* Clarify and simplify.Nick Lewycky2009-07-111-1/+1
| | | | llvm-svn: 75366
* Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin2009-07-111-2/+2
| | | | | | and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
* Move a method that creates constant ranges relative to another constant rangeNick Lewycky2009-07-111-0/+72
| | | | | | | | | | per icmp predicate out of predsimplify and into ConstantRange. Add another utility method that determines whether one range is a subset of another. Combine with the former to determine whether icmp pred range, range is known to be true or not. llvm-svn: 75357
* Make changes suggested by Chris and eliminate newly-added raw_ostreamDavid Greene2009-07-102-1/+74
| | | | | | | | | hooks as they're no longer needed. The major change with this patch is to make formatted_raw_ostream usable by any client of raw_ostream. llvm-svn: 75283
* Add some hooks that a redesigned AsmStream needs to do its job. TheseDavid Greene2009-07-091-0/+1
| | | | | | allow derived classes to examine the stream buffer before it's flushed. llvm-svn: 75199
* Revert the part of 75177 that split ConstantRange into two classes, andDan Gohman2009-07-091-513/+28
| | | | | | | | 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
* Add a ConstantSignedRange class, which does for signed integersDan Gohman2009-07-091-19/+572
| | | | | | | | | | | | | 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
* Add support for other GraphViz display tools. This can helpDavid Greene2009-07-091-6/+48
| | | | | | | with very large graphs, where dot isn't necessarily the most visually pleasing way of looking at the graph. llvm-svn: 75144
* Allow users of GraphWriter to display graphs asynchronously. ThisDavid Greene2009-07-081-15/+30
| | | | | | | provides a way to quickly dump a bunch of graph information to dot files and display them. It's a timesaver when working on large systems. llvm-svn: 75056
* Fix build.Mike Stump2009-07-071-0/+1
| | | | llvm-svn: 74936
* Have scoped mutexes take referenes instead of pointers.Owen Anderson2009-07-074-15/+15
| | | | llvm-svn: 74931
* Fix braces.Torok Edwin2009-07-071-4/+2
| | | | llvm-svn: 74923
* Introduce new error handling API.Torok Edwin2009-07-071-0/+53
| | | | | | | | This will replace exit()/abort() style error handling with an API that allows clients to register custom error handling hooks. The default is to call exit(1) when no error handler is provided. llvm-svn: 74922
* switch the .ll parser to use SourceMgr.Chris Lattner2009-07-021-10/+21
| | | | llvm-svn: 74735
* add an explicit class for holding llvm::SourceMgr diagnostics and useChris Lattner2009-07-021-19/+52
| | | | | | | | | | | | | | | it to print them. This gives us column numbers in the diag line. Before: t.s:4: error: unexpected token in argument list mov %eax %edx ^ now: t.s:4:11: error: unexpected token in argument list mov %eax %edx ^ llvm-svn: 74732
* Tweak FindExecutable so that relative executable paths work as well.Daniel Dunbar2009-07-011-2/+3
| | | | llvm-svn: 74645
* Fix FindExecutable to work if given an absolute executable path name.Daniel Dunbar2009-07-011-5/+10
| | | | | | - Patch by Viktor Kutuzov, with tweaks by me. llvm-svn: 74608
* Reapply 74494, this time removing the conflicting definition of operator<<Dan Gohman2009-06-301-0/+6
| | | | | | in APIntTest.cpp. llvm-svn: 74550
* Temporarily revert r74494. It was causing failures in the unit tests.Bill Wendling2009-06-301-6/+0
| | | | llvm-svn: 74515
* Fix the build on Cygwin. Patch by Aaron Gray.Owen Anderson2009-06-301-1/+1
| | | | llvm-svn: 74510
* Define an operator<< for APInt to be used with std::ostream.Dan Gohman2009-06-301-0/+6
| | | | | | | This will allow it to be used in unittests that use gtest's EXPECT_EQ. llvm-svn: 74494
* Normalize SourceMgr messages.Daniel Dunbar2009-06-301-3/+7
| | | | | | | | | | | | - Don't print "Parsing" in front of every message. - Take additional "type" argument which is prepended to the message (with ": ") if given. - Update clients to print errors (warnings) as: <filename>:<line number>: error(warning): ... llvm-svn: 74489
* Add triple for OpenBSD.Duncan Sands2009-06-291-0/+3
| | | | llvm-svn: 74422
* Use atomic operations for accessing this global counter.Owen Anderson2009-06-261-3/+6
| | | | llvm-svn: 74294
* Fix linking of llvm-ld and lli with CMake, from Xerxes RånbyDouglas Gregor2009-06-261-0/+2
| | | | llvm-svn: 74285
* Support thread-local pretty stack traces.Owen Anderson2009-06-251-7/+8
| | | | llvm-svn: 74227
* Use atomic operations when accessing statistics, and make the lazy ↵Owen Anderson2009-06-231-4/+8
| | | | | | initialization of statistics actually threadsafe. llvm-svn: 74005
* Make timers threadsafe again. This isn't quite as nice as I'd hoped (it ↵Owen Anderson2009-06-231-1/+53
| | | | | | | | | | uses locking rather than atomic arithmetic), but should work on all the platforms we care about. I might revisit this if a totally awesome way to do it occurs to me. llvm-svn: 74002
* Revert my last series of commits related to Timer and 64-bit atomics. Not ↵Owen Anderson2009-06-231-19/+19
| | | | | | | | all the targets we care about are capable of supporting it. llvm-svn: 73993
* Switched size_t to int64_t to prevent type mismatch in call to max.Lang Hames2009-06-231-2/+2
| | | | llvm-svn: 73988
* Actually, these need to be signed integers, not unsigned.Owen Anderson2009-06-231-2/+2
| | | | llvm-svn: 73978
* Use 64-bit integer counters for tracking time, rather than doubles. This ↵Owen Anderson2009-06-231-17/+17
| | | | | | will be more atomic op friendly. llvm-svn: 73974
OpenPOWER on IntegriCloud