1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-28 14:32:51 +01:00
Commit Graph

558 Commits

Author SHA1 Message Date
Gordon Henriksen
543f859a00 Removing the silly CHelpers header by rolling wrap and unwrap into the C
bindings headers themselves, hidden behind #ifdef __cplusplus.

llvm-svn: 42666
2007-10-05 23:59:36 +00:00
Dan Gohman
50ba8a297c Add empty() member functions to a few container-like classes.
llvm-svn: 42487
2007-10-01 16:01:23 +00:00
Gordon Henriksen
b3d98e2023 Demoting CHelpers.h to include/llvm/Support.
llvm-svn: 42465
2007-09-29 01:38:42 +00:00
Gordon Henriksen
2571db23f1 My previous Registry.h header, as well as Collectors.h, which is the
registry for dynamically-loaded garbage collection compiler plugins.

llvm-svn: 42415
2007-09-27 19:34:27 +00:00
Ted Kremenek
c924fd3edf Previously GraphWriter assumed operator*() for node_iterator always
returned a reference type.  This patch allows operator*() to return a
non-reference type while still maintaining the old behavior when it
does return a reference type.

This patch was motivated when I tried to use "df_iterator" (see
llvm/ADT/DepthFirstIterator.h) as a "node_iterator", as df_iterator
does not return a reference type and thus we would get a compilation
error when trying to take the address of a temporary.

llvm-svn: 42151
2007-09-19 21:26:49 +00:00
Bill Wendling
d269356b02 Add support for appending a suffix to the end of a mangled name.
llvm-svn: 42071
2007-09-17 22:39:32 +00:00
Evan Cheng
5977c55f5d Added Reset() to free all allocated memory regions and reset state to be the same as right after ctor.
llvm-svn: 41728
2007-09-05 21:41:34 +00:00
David Greene
8cda5af2e7 Update GEP constructors to use an iterator interface to fix
GLIBCXX_DEBUG issues.

llvm-svn: 41697
2007-09-04 15:46:09 +00:00
Ted Kremenek
120f680489 Added Graphviz escaping for the '|' character.
llvm-svn: 41610
2007-08-30 17:01:41 +00:00
David Greene
5b85021be8 Update InvokeInst to work like CallInst
llvm-svn: 41506
2007-08-27 19:04:21 +00:00
Dan Gohman
e2c92effea Add explicit keywords and remove spurious trailing semicolons.
llvm-svn: 41482
2007-08-27 14:50:10 +00:00
David Greene
43c5188c32 Doxygenize comments.
llvm-svn: 41222
2007-08-21 14:57:58 +00:00
David Greene
6b3b5e7a54 Add FilteredPassNameParser along with PassArgFilter to filter passes
based on their Arg members.

llvm-svn: 41192
2007-08-20 19:54:01 +00:00
Reid Spencer
6f88014eeb Make it clear that getSTDIN returns null when stdin is empty.
llvm-svn: 40940
2007-08-08 20:02:20 +00:00
Chris Lattner
fb1e3a7d2c remove #if 0 code.
llvm-svn: 40880
2007-08-06 22:03:19 +00:00
Reid Spencer
5b204d32f8 @verbatim needs to be on a line by itself.
llvm-svn: 40865
2007-08-06 17:10:29 +00:00
Reid Spencer
3e54e72ef1 Fix minor doxygen nits.
llvm-svn: 40854
2007-08-05 20:06:04 +00:00
David Greene
f06a395bb9 New CallInst interface to address GLIBCXX_DEBUG errors caused by
indexing an empty std::vector.

Updates to all clients.

llvm-svn: 40660
2007-08-01 03:43:44 +00:00
Nick Lewycky
701e227136 Clarify the language. Pointed out by Duncan Sands.
llvm-svn: 39857
2007-07-14 17:41:03 +00:00
Nick Lewycky
42e8a060a0 Add alternate ConstantRange intersection algorithm.
llvm-svn: 39851
2007-07-14 02:51:34 +00:00
Dan Gohman
a83ac4f3b4 Add explicit keywords.
llvm-svn: 37925
2007-07-05 20:40:15 +00:00
Gabor Greif
5f705671e4 Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated.

llvm-svn: 37913
2007-07-05 17:07:56 +00:00
John Criswell
57e5ed4b5a Convert .cvsignore files
llvm-svn: 37801
2007-06-29 16:35:07 +00:00
Dan Gohman
e94ef99437 Allow DOUT to be used outside of the llvm namespace.
llvm-svn: 37753
2007-06-27 14:09:38 +00:00
Chris Lattner
1de26b7677 m_not should match vector not
llvm-svn: 37587
2007-06-15 06:13:47 +00:00
Chris Lattner
da86fddf1f Add a new LLVMBuilder class, which makes it simpler and more uniform to
create large amounts of instructions by separating the insertion point
logic from the logic of what to create.

llvm-svn: 37332
2007-05-27 15:09:34 +00:00
Dale Johannesen
fe0fe14411 Make tail merging the default, except on powerPC. There was no prior art
for a target-dependent default with a command-line override; this way
should be generally usable.

llvm-svn: 37285
2007-05-22 17:14:46 +00:00
Dan Gohman
17cd3485e1 Use templates for the GraphType for DefaultDOTGraphTraits' members instead
of just using void*. This allows it to be used with graph adapters like
Inverse.

llvm-svn: 37032
2007-05-14 14:23:27 +00:00
Jeff Cohen
2e8263c013 Unbreak VC++ build.
llvm-svn: 36901
2007-05-07 15:21:46 +00:00
Chris Lattner
112d26a164 Enhance MemoryBuffer to return error messages in strings if they occur.
llvm-svn: 36899
2007-05-06 23:32:36 +00:00
Chris Lattner
7dbcbe7af5 remove dead header
llvm-svn: 36884
2007-05-06 19:46:23 +00:00
Chris Lattner
cee444cf93 Add a helper that either opens a file or stdin.
llvm-svn: 36835
2007-05-06 04:41:59 +00:00
Chris Lattner
8b4f0920ab remove extraneous type qualifiers
llvm-svn: 36679
2007-05-03 18:14:56 +00:00
Chris Lattner
4749cca517 Add a new memorybuffer class, to unify all the file reading code in the system
llvm-svn: 36553
2007-04-29 06:58:52 +00:00
Chris Lattner
2ba953680f Fix a very strange assertion message, patch by Christopher Lamb
CVS: ----------------------------------------------------------------------

llvm-svn: 36267
2007-04-20 03:27:36 +00:00
Anton Korobeynikov
f3e62a428a Removed tabs everywhere except autogenerated & external files. Add make
target for tabs checking.

llvm-svn: 36146
2007-04-16 18:10:23 +00:00
Dan Gohman
2d4b1767ab Rename Value::getValueType to getValueID, to avoid confusion with
other things named getValueType.

llvm-svn: 35964
2007-04-13 18:12:09 +00:00
Chris Lattner
9564abbfb5 improve the patch for PR1318 to also support grouped options with custom
handlers (like the pass list).  My previous fix only supported *new* command
line options, not additions to old ones.

This fixes test/Feature/load_module.ll

llvm-svn: 35935
2007-04-12 00:36:29 +00:00
Reid Spencer
aad3d1f6c8 For PR1291:
Change to use PathWithStatus

llvm-svn: 35746
2007-04-07 19:50:21 +00:00
Nick Lewycky
ec51e934ef Add signExtend to ConstantRange, to complement zeroExtend and truncate.
llvm-svn: 35733
2007-04-07 15:41:33 +00:00
Chris Lattner
0160bf7114 rearchitect the registration mechanism used by the command line option stuff.
This dramatically reduce the amount of memory allocated by the commandline stuff
at static init time, changing it to build local data structures when ParseCommandLineOptions
is called.  In a dummy empty program that links some llvm libraries, this reduces
the number of malloc'd bytes from 4864 to 3360 on entry to main.  Most of that
memory is now allocated by non-commandline related stuff.

llvm-svn: 35701
2007-04-06 21:06:55 +00:00
Chris Lattner
d0cc2333d1 Switch some vectors to smallvectors. This reduces amount of malloc'd
memory that occurs before main starts from 5104 to 4864 bytes with a dummy
example app.

llvm-svn: 35698
2007-04-06 18:36:18 +00:00
Chris Lattner
2f1c6daeae Eliminate unneeded virtual methods
llvm-svn: 35697
2007-04-06 18:06:27 +00:00
Chris Lattner
4272783ca4 eliminate a virtual method
llvm-svn: 35691
2007-04-05 22:21:39 +00:00
Chris Lattner
d33f94f2d2 remove the dead removeArgument method, rename Options to OptionsMap.
llvm-svn: 35690
2007-04-05 21:58:17 +00:00
Jeff Cohen
2f87ca6cc7 Be more explicit concerning argument sizes.
Use VC++ byteswap intrinsics.

llvm-svn: 35267
2007-03-22 19:11:57 +00:00
Nick Lewycky
2af4a3ab17 Add getter methods for the extremes of a ConstantRange.
llvm-svn: 35056
2007-03-10 15:54:12 +00:00
Jeff Cohen
98c99a3a02 Unbreak VC++ build.
llvm-svn: 34917
2007-03-05 00:00:42 +00:00
Chris Lattner
69aafa4be8 fix 80 col violations, mark arrays static
llvm-svn: 34915
2007-03-04 23:33:03 +00:00
Anton Korobeynikov
af46a0e4a2 Fix uninitialized use of variable. Remove tabs and fix identation.
llvm-svn: 34850
2007-03-02 22:19:41 +00:00
Owen Anderson
6d3b179de3 Fix a typo.
llvm-svn: 34836
2007-03-02 05:03:07 +00:00
Owen Anderson
070c37407c Use GCC intrinsics when available, and use smarter fallbacks when not.
llvm-svn: 34812
2007-03-01 21:16:30 +00:00
Reid Spencer
3f3487918c Remove the "isSigned" parameters from ConstantRange. It turns out they
are not needed as the results are the same with or without it.

Patch by Nicholas Lewycky.

llvm-svn: 34782
2007-03-01 07:54:15 +00:00
Owen Anderson
cbbf9aa6b0 Use the GCC built-in for PopulationCount when it's available, and use a faster
algorithm when it's not.  This should be particularly noticeable in the
64-bit case.

llvm-svn: 34776
2007-03-01 05:41:28 +00:00
Reid Spencer
f119927a6f Move ConstantRange class to lib/Support from lib/Analysis and make its
interface not depend on Type or ICmpInst.

llvm-svn: 34761
2007-02-28 22:02:48 +00:00
Reid Spencer
965067a054 For PR1205:
Remove ConstantInt from ConstantRange interface and adjust its users to
compensate.

llvm-svn: 34758
2007-02-28 19:57:34 +00:00
Reid Spencer
e2b4631435 For PR1205:
First round of ConstantRange changes. This makes all CR constructors use
only APInt and not use ConstantInt. Clients are adjusted accordingly.

llvm-svn: 34756
2007-02-28 18:57:32 +00:00
Reid Spencer
2b933467ad For PR1205:
Convert ConstantRange class to use APInt internally as its value type for
the constant range, instead of ConstantInt.

llvm-svn: 34745
2007-02-28 17:36:23 +00:00
Chris Lattner
08e1470365 add a way to register an arbitrary cleanup function.
llvm-svn: 34442
2007-02-20 06:08:37 +00:00
Andrew Lenharth
3c51b17d7b I love non-deturminism. Returning objects with references to stack objects is a bad idea (TM).
llvm-svn: 34210
2007-02-13 00:37:50 +00:00
Nick Lewycky
b994bafc0f Fix comments to match names of functions.
llvm-svn: 34173
2007-02-11 00:58:49 +00:00
Chris Lattner
e5eb7d79d3 add helper method.
llvm-svn: 34155
2007-02-10 19:54:24 +00:00
Chris Lattner
ae8f9f7df4 StableBasicBlockNumbering is conceptually just a wrapper around UniqueVector,
so we should actually use a UniqueVector to implement it.

llvm-svn: 33935
2007-02-05 23:19:24 +00:00
Bill Wendling
bc1c8e70ac Use unsigned char& instead of std::vector<>::reference.
llvm-svn: 33896
2007-02-05 02:37:07 +00:00
Bill Wendling
d2623ac830 Added some accessor methods.
llvm-svn: 33814
2007-02-03 02:38:15 +00:00
Reid Spencer
591bfa1e0b Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.

llvm-svn: 33776
2007-02-02 02:16:23 +00:00
Jim Laskey
52a12383a4 Support for non-landing pad exception handling.
llvm-svn: 33755
2007-02-01 16:31:34 +00:00
Reid Spencer
2d41dbae16 Fix a homonymo in a comment.
llvm-svn: 33754
2007-02-01 12:09:51 +00:00
Devang Patel
46a1a617f5 Add PrintVersionMessage() that tools can use to print version number
without exiting program.

llvm-svn: 33737
2007-02-01 01:43:37 +00:00
Anton Korobeynikov
2079992c16 Moved disassembler to libSystem
llvm-svn: 33461
2007-01-23 10:26:08 +00:00
Reid Spencer
e33c18f4d2 For PR970:
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!

llvm-svn: 33415
2007-01-21 00:29:26 +00:00
Anton Korobeynikov
944088f221 Adding disassembler interface and external hook to udis86 library.
llvm-svn: 33358
2007-01-19 17:25:17 +00:00
Bill Wendling
af4f1b8791 Have the OutputBuffer take the is64Bit and isLittleEndian booleans.
llvm-svn: 33316
2007-01-18 01:23:11 +00:00
Bill Wendling
19aee9b178 Refactored output buffer methods from MachO and ELF writers.
llvm-svn: 33310
2007-01-17 22:17:24 +00:00
Zhou Sheng
23d24526b2 For PR1043:
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.

llvm-svn: 33073
2007-01-11 12:24:14 +00:00
Bill Wendling
05f7a367a2 The previous implementation of LLVM Streams wasn't removing symbols. This
one should.

llvm-svn: 32845
2007-01-03 22:37:27 +00:00
Reid Spencer
4428c3483b For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.

llvm-svn: 32751
2006-12-23 06:05:41 +00:00
Chris Lattner
6a34f2718f Doxgenate comments.
Add GreatestCommonDivisor64

llvm-svn: 32661
2006-12-19 01:11:32 +00:00
Bill Wendling
7f6a73eb5c Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.

llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Bill Wendling
fe0af72bc4 Don't use <sstream> in Streams.h but <iosfwd> instead.
llvm-svn: 32340
2006-12-07 23:41:45 +00:00
Bill Wendling
a3246c4272 Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.

llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Jim Laskey
25d00cc31d Ignoring the upper 32 bits of a 64 bit constant is not a good thing.
llvm-svn: 32294
2006-12-06 22:47:14 +00:00
Chris Lattner
30bf130327 add a helper to call llvm_shutdown()
llvm-svn: 32249
2006-12-06 01:01:14 +00:00
Chris Lattner
1b0e89e022 Start moving pass registration over to using the ManagedStatic mechanism.
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler.  Analysis groups up next.

llvm-svn: 32108
2006-12-01 23:27:45 +00:00
Chris Lattner
e91ec14530 remove 'target constructor' support.
llvm-svn: 32100
2006-12-01 22:00:50 +00:00
Reid Spencer
52d8c5bd3b Get the delegation right for InstVisitor.
llvm-svn: 32025
2006-11-29 21:37:00 +00:00
Bill Wendling
4effa38086 Replacing std::iostreams with llvm iostreams. Some of these changes involve
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.

llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Bill Wendling
4157840bd6 Added a temporary hack to get the llvm-streams to work for future checkins.
llvm-svn: 31978
2006-11-28 22:21:29 +00:00
Bill Wendling
250560d106 Protect against null streams.
llvm-svn: 31937
2006-11-27 10:45:49 +00:00
Reid Spencer
992d9788b3 For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.

llvm-svn: 31931
2006-11-27 01:05:10 +00:00
Bill Wendling
78be822ec4 Add method that will take a function pointer so that it can handle things
like "llvm_cerr << std::flush";

llvm-svn: 31926
2006-11-26 10:51:51 +00:00
Reid Spencer
6e34ef887b For PR950:
First in a series of patches to convert SetCondInst into ICmpInst and
FCmpInst using only two opcodes and having the instructions contain their
predicate value. Nothing uses these classes yet. More patches to follow.

llvm-svn: 31867
2006-11-20 01:22:35 +00:00
Bill Wendling
48bd5207a4 Used llvm_ostream instead of std::ostream objects. This will reduce use
of the icky <iostream> class.

llvm-svn: 31818
2006-11-17 09:52:49 +00:00
Bill Wendling
dbbb5112c5 Added wrappers for the std::cerr/std::cout objects. The wrappers will
soon replace all uses of those objects.

llvm-svn: 31817
2006-11-17 09:51:22 +00:00
Bill Wendling
efe40f4316 #ifndef NDEBUG the "if (Stream) ..." stuff.
llvm-svn: 31803
2006-11-17 01:43:48 +00:00
Bill Wendling
d2627f76dd Adjusted the // comments so that doxygen picks them up.
llvm-svn: 31801
2006-11-17 01:13:12 +00:00
Bill Wendling
748f1ae70b Added "DOUT" macro. This is used as a replacement for the std::cerr
stream. It centralizes the use of std::cerr so that static c'tor/d'tors
aren't scattered around all over the place. The way to use it is like this:

       DOUT << "This is a status line: " << Var << "\n";

If "-debug" is specified, it will print. Otherwise, it'll not print. If
NDEBUG is defined, the DOUT does nothing.

llvm-svn: 31798
2006-11-17 00:49:12 +00:00
Jim Laskey
c7044db565 math.h creates ambiguity
llvm-svn: 31591
2006-11-09 08:26:22 +00:00
Jim Laskey
03b3ec783d math.h for C's sake.
llvm-svn: 31590
2006-11-09 08:05:39 +00:00
Jim Laskey
c42c7476ce Make sure <cmath> comes first
llvm-svn: 31559
2006-11-08 18:48:14 +00:00
Jim Laskey
092c00cb14 Add backup support for HUGH_VALF.
llvm-svn: 31553
2006-11-08 17:19:29 +00:00
Reid Spencer
da1f5b882a For PR950:
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.

llvm-svn: 31542
2006-11-08 06:47:33 +00:00
Reid Spencer
3d33eff52e Fix a small bug noticed on code review.
llvm-svn: 31476
2006-11-06 18:47:14 +00:00
Jeff Cohen
e1003da1a2 Unbreak VC++ build.
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Reid Spencer
1abf69e923 For PR950:
Replace the REM instruction with UREM, SREM and FREM.

llvm-svn: 31369
2006-11-02 01:53:59 +00:00
Chris Lattner
6a498a7658 Add a new llvm::Allocator abstraction, which will be used by a container
I'm about to add.  This is similar to, but necessarily different than, the
STL allocator class.

llvm-svn: 31285
2006-10-29 22:08:03 +00:00
Reid Spencer
6833ffe8b8 For PR950:
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.

llvm-svn: 31195
2006-10-26 06:15:43 +00:00
Chris Lattner
cf5bfb0e80 simplify trivial function
llvm-svn: 30924
2006-10-12 23:50:28 +00:00
Nick Lewycky
3c69e2291b Fix usage example.
llvm-svn: 30837
2006-10-09 18:33:08 +00:00
Jim Laskey
3d44b337d9 Add ability to annotate (color) nodes in a viewGraph.
llvm-svn: 30686
2006-10-02 12:26:53 +00:00
Chris Lattner
30da1ba0a2 new helper class to provide more explicit management of static ctor/dtors.
llvm-svn: 30638
2006-09-28 00:31:55 +00:00
Chris Lattner
3c4ca91dbd Add support for pattern matching cast operations
llvm-svn: 30454
2006-09-18 05:17:11 +00:00
Chris Lattner
47f39eb3db Add new option to leave asm names alone
llvm-svn: 30149
2006-09-07 18:20:41 +00:00
Chris Lattner
dc7bad1787 Remove a dead class.
llvm-svn: 29918
2006-08-27 22:11:07 +00:00
Chris Lattner
db0a995bbe add directive to disable inlining
llvm-svn: 29912
2006-08-27 13:16:05 +00:00
Chris Lattner
33bd5dcfb7 s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
llvm-svn: 29911
2006-08-27 12:54:02 +00:00
Chris Lattner
91f098c9f7 Add external definitions for commonly-used template specializations and add
anchor methods to others.  This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).

llvm-svn: 29909
2006-08-27 12:45:47 +00:00
Chris Lattner
a72e220a25 New place to put compiler-specific functionality. This replaces Visibility.h,
and provides macros that can be used to make explicit instantiations of
template specializations, which is a gcc-specific feature.

llvm-svn: 29908
2006-08-27 12:42:45 +00:00
Reid Spencer
71c3f66dc6 For PR797:
Final removal of exceptions from lib/System and adjustment of users to
accommodate.

llvm-svn: 29846
2006-08-23 20:34:57 +00:00
Reid Spencer
353b72a7c0 Make the sys::Path::GetTemporaryDirectory method not throw exceptions and
adjust users of it to compensate.

llvm-svn: 29831
2006-08-22 19:01:30 +00:00
Jim Laskey
db9724d6e4 Adding new Dwarf constants.
llvm-svn: 29798
2006-08-21 21:18:10 +00:00
Chris Lattner
4966686ef8 remove IncludeFile turds in MathExtras.h, which bloats every .o file that
#includes it.

llvm-svn: 29639
2006-08-11 23:52:54 +00:00
Reid Spencer
20aee8ad5d Remove the use of "IncludeFile" from this support facility. The mechanism
to build a loadable module is now correctly defined and documented so this
workaround isn't needed any longer.

llvm-svn: 29553
2006-08-07 23:20:15 +00:00
Chris Lattner
d7873a0757 Modify Path::eraseFromDisk to not throw an exception.
llvm-svn: 29400
2006-07-28 22:29:50 +00:00
Reid Spencer
10b9edbb69 For PR780:
1. Move IncludeFile.h to System library
2. Move IncludeFile.cpp to System library
3. #1 and #2 required to prevent cyclic library dependencies for libSystem
4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h
5. Add IncludeFile support to various lib/System classes.
6. Add new lib/System classes to LinkAllVMCore.h
All this in an attempt to pull in lib/System to what's required for VMCore

llvm-svn: 29287
2006-07-26 16:18:00 +00:00
Chris Lattner
d2ad578246 Add an out-of-line virtual method to provide a home for the cl::option class.
llvm-svn: 29191
2006-07-18 23:59:33 +00:00
Chris Lattner
067c6a4cca Add functions to compute ceil(log2(N)) to match functions for floor(log2(N))
llvm-svn: 29168
2006-07-18 00:47:10 +00:00
Chris Lattner
e54ce5af47 This patch (written by Reid) changes compressor to never throw an exception.
llvm-svn: 29045
2006-07-07 17:00:12 +00:00
Chris Lattner
24d2f48b07 Modify the SlowOperationInformer interface to not throw exceptions.
llvm-svn: 29028
2006-07-06 22:34:06 +00:00
Chris Lattner
de354efbfe Add support for hidden visibility
llvm-svn: 28968
2006-06-28 21:38:04 +00:00
Reid Spencer
938be45012 For PR801:
Refactor the Graph writing code to use a common implementation which is
now in lib/Support/GraphWriter.cpp. This completes the PR.

Patch by Anton Korobeynikov. Thanks, Anton!

llvm-svn: 28925
2006-06-27 16:49:46 +00:00
Reid Spencer
ecf6ddfe47 Whoops, missed a couple more C-style casts.
llvm-svn: 28905
2006-06-21 22:19:00 +00:00
Reid Spencer
9fda67cfdf Use C++ style casts instead of C-style casts to shut up compiler warnings
when compiling with -pedantic. Passes regression tests on Linux.

llvm-svn: 28904
2006-06-21 21:54:54 +00:00
Jim Laskey
120281ddcf 1. Revise vector debug support.
2. Update docs for vector debug support and new version control.

3. Simplify serialization of DebugDescInfo subclasses.

llvm-svn: 28816
2006-06-16 13:14:03 +00:00
Jim Laskey
849c76e55c 1. Support standard dwarf format (was bootstrapping in Apple format.)
2. Add vector support.

llvm-svn: 28807
2006-06-15 20:51:43 +00:00
Chris Lattner
497d2b6701 Add some more matcher classes for shifts.
llvm-svn: 28804
2006-06-15 19:25:28 +00:00
Reid Spencer
854aa3ca41 For PR780:
1. Add #includes to LinkAllVMCore.h to get Mangler.o and InlineAsm.o
2. Make Mangler.h and InlineAsm.h use the macros to ensure linkage
3. Make each of the tools with --load options include LinkAllVMCore.h
This should be the last set of changes for this bug and 800.

llvm-svn: 28719
2006-06-07 23:03:13 +00:00
Reid Spencer
560366562b For PR780:
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
   with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.

llvm-svn: 28715
2006-06-07 22:00:26 +00:00
Reid Spencer
fb62eb9b47 For PR780:
This change was suggested by Chris so that we can select an alternate
(or even no-op) implementation of the link assurance. I'm committing this
for your review, Chris. If the names and definitions are okay, I'll adjust
all the .h and .cpp files in a later patch.

llvm-svn: 28712
2006-06-07 20:35:46 +00:00
Reid Spencer
3832b7f9c4 For PR780:
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.

llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Chris Lattner
2701560055 Move toolrunner out of libsupport into the bugpoint tool
llvm-svn: 28700
2006-06-06 22:31:36 +00:00
Reid Spencer
ff02d7d45a Add the -Xlinker option to bugpoint which allows an option to be passed
through to gcc when its being used as a linker. This allows -L and -l
(and any other) options to be added so that non-complete bytecode files
can be processed with bugpoint. The -Xlinker option can be added as many
times as needed.

llvm-svn: 28692
2006-06-06 00:00:42 +00:00
Reid Spencer
24f0a4a816 Make it possible to override the standard version printer. Not all tools
built with CommandLine.h will want the --version option to report that the
tool belongs to LLVM. To override simply pass a void func() to the
cl::SetVersionPrinter() function and that void func() will be called when
it is time to print the version information.

llvm-svn: 28687
2006-06-05 16:22:56 +00:00
Vladimir Prus
3967260b59 Improve InstVisitor docs.
llvm-svn: 28586
2006-05-31 15:30:18 +00:00
Chris Lattner
819480fcb2 Fix breakage on platforms where string/cassert don't pull in int64_t.
llvm-svn: 28464
2006-05-25 05:59:50 +00:00
Reid Spencer
574d4e6992 For PR786:
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.

llvm-svn: 28453
2006-05-24 19:21:13 +00:00
Chris Lattner
96c4ae0fa3 Improve documentation on throwing, it is not complete still though. :(
llvm-svn: 28294
2006-05-14 19:07:07 +00:00
Reid Spencer
0be60af352 Add a #include <cassert> for situations where Casting.h is used standalone.
Patch contributed by Vladimir Prus.

llvm-svn: 28280
2006-05-13 17:50:38 +00:00
Reid Spencer
1a7e67d221 Don't use old-style casts. This prevents compiler warnings when CommandLine.h
is used in projects that have stricter warning control than LLVM. This also
helps us find casts more easily if we ever need to.

llvm-svn: 28263
2006-05-12 19:20:55 +00:00
Reid Spencer
b569daf7a6 Add in missing #defines for _OpenBSD_ systems.
llvm-svn: 27850
2006-04-20 00:18:39 +00:00
Chris Lattner
e2d0c1084a Add a new shufflevector instruction
llvm-svn: 27507
2006-04-08 01:15:18 +00:00
Jim Laskey
867301543c Generate local variable and scope information and equivalent dwarf forms.
llvm-svn: 26989
2006-03-23 18:07:55 +00:00
Jim Laskey
ffef675325 Remove comma from enum list.
llvm-svn: 26456
2006-03-01 20:48:20 +00:00
Jim Laskey
c73a56236e Switch back to using actual dwarf tags. Simplifies code without loss to other
debug forms.

llvm-svn: 26455
2006-03-01 20:39:36 +00:00
Jim Laskey
cb47e213c0 Qualify dwarf namespace inside llvm namespace.
llvm-svn: 26409
2006-02-27 22:37:23 +00:00
Jim Laskey
939d2084ad Re-orging file.
llvm-svn: 26401
2006-02-27 12:43:29 +00:00
Chris Lattner
307a2b55bb Fix typo that caused build failures for things trying to use m_Or.
llvm-svn: 26153
2006-02-13 23:06:39 +00:00
Andrew Lenharth
c2973ea159 Remember plugins should someone like bugpoint want to know them.
llvm-svn: 25649
2006-01-26 18:36:50 +00:00
Jim Laskey
036aa0ddc9 Split out Dwarf constants for use outside DwarfWriter.
llvm-svn: 25646
2006-01-26 14:45:22 +00:00
Chris Lattner
4cefd6fa96 This header should not pull in <iostream>
llvm-svn: 25511
2006-01-22 22:54:51 +00:00
Robert Bocchino
dc31d8561b Support for the insertelement operation.
llvm-svn: 25405
2006-01-17 20:06:42 +00:00
Jeff Cohen
ae3d2a938b Fix generous source of VC++ truncation warnings.
llvm-svn: 25311
2006-01-14 02:17:20 +00:00
Nate Begeman
4750001146 Add bswap intrinsics as documented in the Language Reference
llvm-svn: 25309
2006-01-14 01:25:24 +00:00
Robert Bocchino
1088fb019d Added an instruction and constant expression for the extractelement
operation.

llvm-svn: 25176
2006-01-10 19:04:13 +00:00
Chris Lattner
3a18b19a03 Allow per-character control over what target assemblers allow in symbol
names.  This also changes the default to allow all of "$_." in addition
to letters and numbers as symbol names.  If you don't want this, use
markCharUnacceptable to remove one of these or markCharAcceptable to add
to the set.  This corresponds with what GAS accepts by default.

llvm-svn: 24291
2005-11-10 21:39:12 +00:00
Chris Lattner
2ba7f5a64d Add a new option for targets that accept quoted labels.
llvm-svn: 24283
2005-11-10 19:30:07 +00:00
Chris Lattner
6ce2a3d52e Remove M, which is dead. Eliminate a dead typedef. Add comments.
llvm-svn: 24282
2005-11-10 19:02:52 +00:00
Chris Lattner
5b0d543080 This method is no longer static
llvm-svn: 24280
2005-11-10 18:55:09 +00:00
Chris Lattner
4e377b5d6d minor interface changes.
llvm-svn: 24276
2005-11-10 18:46:57 +00:00
Jeff Cohen
342597c279 Eliminate use of sed in Visual Studio builds.
llvm-svn: 24003
2005-10-26 14:48:53 +00:00
Chris Lattner
b299faa5c1 Move the END_WITH_NULL marker. Vladimir suggests that this works better with
GCC 4.1.  I tried it with 4.0 and 3.3 and it seems fine.

llvm-svn: 23957
2005-10-24 05:03:46 +00:00
Jeff Cohen
dda264c50a Work around GCC's dislike of attributes on function definitions.
llvm-svn: 23896
2005-10-23 15:22:50 +00:00
Jeff Cohen
a38c737e85 When a function takes a variable number of pointer arguments, with a zero
pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.

The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.

llvm-svn: 23888
2005-10-23 04:37:20 +00:00
Chris Lattner
26f6c4de3d Fix errors when compiling with -pedantic
llvm-svn: 23719
2005-10-14 00:33:05 +00:00
Jeff Cohen
3151f1ba38 Remove prolific source of VC++ truncation warnings.
llvm-svn: 23657
2005-10-07 05:29:25 +00:00
Chris Lattner
9c069d09a5 Annotate nodes with their addresses if a graph requests it.
This is Jim's feature implemented so that graphs could 'opt-in' and get
this behavior.  This is currently used by selection dags.

llvm-svn: 23576
2005-10-01 00:19:21 +00:00
Chris Lattner
2a439615b7 add a method
llvm-svn: 23575
2005-10-01 00:17:07 +00:00
Jim Laskey
7dcadb97aa Reverting change moving to selection dag graph.
llvm-svn: 23568
2005-09-30 19:33:41 +00:00
Jim Laskey
35efa80550 Add the node name (thus the address) to node label.
llvm-svn: 23565
2005-09-30 19:11:53 +00:00
Chris Lattner
96f29dbdbe Make this slightly more efficient by pushing actual type information down
into the evaluator.  This shrinks a release build of instcombine's text
section from 216363 to 215975 bytes (on PPC).

llvm-svn: 23468
2005-09-27 06:38:05 +00:00
Chris Lattner
830b7b7f9a change proto slightly
llvm-svn: 23420
2005-09-24 08:23:53 +00:00
Nate Begeman
5ad0e12280 Add support for count trailing zeroes, and population count. These are
needed for folding constants in the upcoming dag combiner.

llvm-svn: 23163
2005-08-31 00:25:01 +00:00
Jim Laskey
a841c4183a Change unsigned lng to unsigned.
llvm-svn: 23077
2005-08-26 09:24:46 +00:00
Jim Laskey
236ef88c39 Added cl::bits option type (bit vectors). See "Collecting options as a set
of flags" in the Command Line doc.

llvm-svn: 23067
2005-08-25 23:31:45 +00:00
Jim Laskey
4878a218a4 Recommended to use std::algorithms instead.
llvm-svn: 23046
2005-08-25 16:21:56 +00:00
Jim Laskey
86cc9d4550 Added support for generic linear/binary search.
llvm-svn: 23044
2005-08-25 13:32:25 +00:00
Jim Laskey
b45eb1e518 include/llvm/Support/MathExtras.h
llvm-svn: 22846
2005-08-17 23:54:12 +00:00
Jim Laskey
f183efcfa2 Added support for converting raw bits to FP, and FP to raw bits. The intent
is to avoid the distraction of the union declarations.

llvm-svn: 22830
2005-08-17 17:27:47 +00:00
Chris Lattner
b2f675c588 Fix an obvious bug in the Log2 stuff that broke SingleSource/UnitTests/2005-05-12-Int64ToFP
last night.

llvm-svn: 22630
2005-08-03 20:53:19 +00:00
Chris Lattner
42474809e3 Wrap comments to 80 cols, fix code sequence for CountLeadingZeros_64 on
non-ppc GCC 4.0 machines.  Patch by Jim Laskey!

llvm-svn: 22618
2005-08-03 16:53:58 +00:00
Chris Lattner
260411fd9f Fix another bug in the clz patch that caused miscompilations when !gcc4
llvm-svn: 22616
2005-08-03 01:04:40 +00:00
Chris Lattner
420424b477 Fix the non-gcc 4.0 paths for countleadingzeros
Patch fixed by Jim Laskey

llvm-svn: 22598
2005-08-02 20:21:33 +00:00
Chris Lattner
4b86bc6f31 Fix inverted conditionals
llvm-svn: 22597
2005-08-02 20:06:18 +00:00
Chris Lattner
a9994bf67a Fix the non-gcc 4.0 path to compile
llvm-svn: 22593
2005-08-02 19:21:51 +00:00
Chris Lattner
eed3c76305 Consolidate all of the various log2 computing functions into MathExtras.h.
Also, provide accelerated implementations when building with GCC.
Patch contributed by Jim Laskey!

llvm-svn: 22591
2005-08-02 19:15:30 +00:00
Jeff Cohen
81980781a1 Eliminate tabs and trailing spaces.
llvm-svn: 22520
2005-07-27 05:53:44 +00:00
Reid Spencer
78910545f0 For PR540:
This patch completes the changes for making lli thread-safe. Here's the list
of changes:
* The Support/ThreadSupport* files were removed and replaced with the
  MutexGuard.h file since all ThreadSupport* declared was a Mutex Guard.
  The implementation of MutexGuard.h is now based on sys::Mutex which hides
  its implementation and makes it unnecessary to have the -NoSupport.h and
  -PThreads.h versions of ThreadSupport.

* All places in ExecutionEngine that previously referred to "Mutex" now
  refer to sys::Mutex

* All places in ExecutionEngine that previously referred to "MutexLocker"
  now refer to MutexGuard (this is frivolous but I believe the technically
  correct name for such a class is "Guard" not a "Locker").

These changes passed all of llvm-test. All we need now are some test cases
that actually use multiple threads.

llvm-svn: 22404
2005-07-12 15:51:55 +00:00
Reid Spencer
04d734c2f6 Final Changes For PR495:
This chagne just renames some sys::Path methods to ensure they are not
misused. The Path documentation now divides methods into two dimensions:
Path/Disk and accessor/mutator. Path accessors and mutators only operate
on the Path object itself without making any disk accesses. Disk accessors
and mutators will also access or modify the file system. Because of the
potentially destructive nature of disk mutators, it was decided that all
such methods should end in the work "Disk" to ensure the user recognizes
that the change will occur on the file system. This patch makes that
change. The method name changes are:

makeReadable        -> makeReadableOnDisk
makeWriteable       -> makeWriteableOnDisk
makeExecutable      -> makeExecutableOnDisk
setStatusInfo       -> setStatusInfoOnDisk
createDirectory     -> createDirectoryOnDisk
createFile          -> createFileOnDisk
createTemporaryFile -> createTemporaryFileOnDisk
destroy             -> eraseFromDisk
rename              -> renamePathOnDisk

These changes pass the Linux Deja Gnu tests.

llvm-svn: 22354
2005-07-08 03:08:58 +00:00
Reid Spencer
5534b2d505 For PR495:
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:

appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set

Changes pass Dejagnu and llvm-test/SingleSource tests.

llvm-svn: 22349
2005-07-07 23:21:43 +00:00
Andrew Lenharth
108f509fb5 header file changes for varargs
llvm-svn: 22253
2005-06-18 18:31:30 +00:00