Duncan Sands
b854603cb5
Add some convenience methods for manipulating
...
call attributes.
llvm-svn: 53223
2008-07-08 08:38:44 +00:00
Dan Gohman
60e964b34c
Add some basic Pool-allocation infrastructure. This adds a Recycler class,
...
for handling bookkeeping for deleted objects, as well as the alist class
template, for keeping lists of objects allocated from Recyclers, and some
related utilities.
llvm-svn: 53210
2008-07-07 22:58:06 +00:00
Dan Gohman
ddcc08e98f
Make BumpPtrAllocator noncopyable.
...
llvm-svn: 53188
2008-07-07 18:38:14 +00:00
Dan Gohman
68abfdf98d
Add a space between * and /* to help simple-minded lexers.
...
llvm-svn: 53187
2008-07-07 18:34:27 +00:00
Dan Gohman
dd9c91e583
Remove uses of "llvm/Support/Debug.h" from LLVM include files, which
...
all happened be unnecessary.
llvm-svn: 53182
2008-07-07 18:14:29 +00:00
Dan Gohman
955fdc7a4c
Add explicit keywords.
...
llvm-svn: 53179
2008-07-07 18:00:37 +00:00
Eric Christopher
4c3e39e220
Add a couple more helper functions to deal with
...
creating global constant strings and pointers
to global constant strings.
llvm-svn: 53051
2008-07-02 22:57:59 +00:00
Dan Gohman
9d5c1f8b60
Fix apostrophes in a comment.
...
llvm-svn: 52972
2008-07-01 18:12:31 +00:00
Owen Anderson
6ba41f78c9
Add a NextPowerOf2 function to calculate the next power of two greater than a given integer.
...
llvm-svn: 52839
2008-06-27 21:48:21 +00:00
Chris Lattner
f55505b7be
Tweak IRBuilder to explicitly call the setName(const char*) method on Value
...
instead of passing the name into the instruction ctors. Since most
instruction ctors take their name as an std::string, this avoids copying the
string to the heap and a malloc and free.
Patch by Pratik Solanki!
llvm-svn: 52832
2008-06-27 18:49:21 +00:00
Bill Wendling
36ebc296c1
Remove warnings about shadowed and unused variables.
...
llvm-svn: 52791
2008-06-26 18:11:45 +00:00
Owen Anderson
fd1b58fd7b
Use a DenseMap instead of an std::map for mangled name lookup. This is
...
improves AsmPrinter runtime on instcombine from 0.3920s to 0.3836s.
llvm-svn: 52787
2008-06-26 17:20:16 +00:00
Dan Gohman
7ee5cc0883
Make Allocate<T>() return a T* instead of a void*. And use
...
static_cast instead of reinterpret_cast.
llvm-svn: 52686
2008-06-24 17:49:26 +00:00
Matthijs Kooijman
6216df14cb
* Make CallSite::hasArgument const and let it take a const parameter.
...
llvm-svn: 51989
2008-06-05 08:04:58 +00:00
Matthijs Kooijman
de47a7518d
Add CallSite::hasArgument to allow for seeing if a call passes a certain value as an argument quickly.
...
llvm-svn: 51946
2008-06-04 16:31:12 +00:00
Evan Cheng
ce2c3b07ba
Revert 51775.
...
llvm-svn: 51795
2008-05-30 22:47:19 +00:00
Evan Cheng
8ebaae9d1c
Patches for building llvm on Solaris x86. Contributed by Nathan Keynes.
...
llvm-svn: 51775
2008-05-30 17:16:20 +00:00
Bill Wendling
2ba98ca60f
Remove more iostream header includes. Needed to implement a "FlushStream"
...
function to flush a specified std::ostream.
llvm-svn: 51705
2008-05-29 21:46:33 +00:00
Anton Korobeynikov
f77142326f
For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
...
llvm-svn: 51687
2008-05-29 17:41:17 +00:00
Steve Naroff
a1c616ae1d
Silence a warning about "*/" outside a comment.
...
llvm-svn: 51287
2008-05-20 00:46:15 +00:00
Bill Wendling
1866fa680f
Remove warnings about unused parameters and shadowed variables.
...
llvm-svn: 51266
2008-05-19 20:15:12 +00:00
Gabor Greif
d61f20217a
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
...
llvm-svn: 51200
2008-05-16 19:29:10 +00:00
Dan Gohman
821bf58428
IR support for extractvalue and insertvalue instructions. Also, begin
...
moving toward making structs and arrays first-class types.
llvm-svn: 51157
2008-05-15 19:50:34 +00:00
Nate Begeman
472144535b
Add support to IR builder for new vicmp, vfcmp routines
...
llvm-svn: 51127
2008-05-14 20:29:46 +00:00
Nate Begeman
b5b1e1353b
Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef
...
for details. CodeGen support coming in a follow up patch
llvm-svn: 50985
2008-05-12 19:01:56 +00:00
Chris Lattner
69724eed32
add support for pattern matching 'neg'
...
llvm-svn: 50883
2008-05-09 05:20:27 +00:00
Dan Gohman
a84b75df17
Remove uses of llvm/System/IncludeFile.h that are no longer needed.
...
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Bill Wendling
9facb00af6
Using "unsigned" was masking the "size_t" version of this method.
...
llvm-svn: 50668
2008-05-05 20:51:58 +00:00
Evan Cheng
d9353009b7
Fix more -Wshorten-64-to-32 warnings.
...
llvm-svn: 50659
2008-05-05 18:30:58 +00:00
Chris Lattner
3835284f4c
Add CreateCall3/CreateCall4 at Eric's request.
...
llvm-svn: 50515
2008-05-01 05:23:45 +00:00
Chris Lattner
09cf777a96
Add a spiffy little "CreateCall2" method, which can be used to make
...
a function call that takes two Value*'s as arguments.
llvm-svn: 50514
2008-05-01 05:11:00 +00:00
Ted Kremenek
fd04109260
Add more alignment enums.
...
llvm-svn: 50363
2008-04-28 17:58:20 +00:00
Mikhail Glushenkov
4c358b3125
Add support for response files to the CommandLine library.
...
llvm-svn: 50355
2008-04-28 16:44:25 +00:00
Nick Lewycky
1f831c0f57
Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
...
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
2008-04-25 16:53:59 +00:00
Nick Lewycky
97179cb16f
Whoops! Undo r50087, unbreak the build.
...
llvm-svn: 50088
2008-04-22 05:20:06 +00:00
Nick Lewycky
e708ae5ffd
Reverse r47989. Part of removing 'unwinds to' support.
...
llvm-svn: 50087
2008-04-22 05:16:51 +00:00
Scott Michel
4b37c88f48
Workaround for PR2207, in which pred_iterator assert gets triggered due to a
...
wee problem in Xcode 2.[45]/gcc 4.0.1.
llvm-svn: 49831
2008-04-16 23:46:39 +00:00
Gabor Greif
32b4942a0a
merge of r49785 (from branches/ggreif/use-diet): pass V to dyn_cast by const reference, this avoids copy-constructing and destructing all the time. especially important if these constructors are not accessible
...
llvm-svn: 49787
2008-04-16 11:43:47 +00:00
Chris Lattner
f5e5f92891
Add support for equality comparison of CallSite's.
...
llvm-svn: 49616
2008-04-13 19:40:26 +00:00
Duncan Sands
c5f548f784
Merge LLVMBuilder and FoldingBuilder, calling
...
the result IRBuilder. Patch by Dominic Hamon.
llvm-svn: 49604
2008-04-13 06:22:09 +00:00
Devang Patel
f08f0a6de6
Add CreateGetResult()
...
llvm-svn: 49398
2008-04-08 20:41:22 +00:00
Devang Patel
dd9f2ea01f
Add multiple value return instruction constructor.
...
llvm-svn: 49374
2008-04-08 07:30:13 +00:00
Gabor Greif
6c6b8a57f3
API changes for class Use size reduction, wave 1.
...
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
2008-04-06 20:25:17 +00:00
Duncan Sands
9931451472
If a value is cast to its own type, then the cast
...
is not needed.
llvm-svn: 49210
2008-04-04 08:28:13 +00:00
Torok Edwin
b96b953a5c
Add new file Support/DataFlow.h.
...
It allows Use-Def and Def-Use relations to be treated as graphs.
llvm-svn: 49088
2008-04-02 14:57:52 +00:00
Chris Lattner
d141d16ed7
Change the MemoryBuffer::getFile* methods to take just a pointer to the
...
start of a filename, not a filename+length. All clients can produce a
null terminated name, and the system api's require null terminated
strings anyway.
llvm-svn: 49041
2008-04-01 18:04:03 +00:00
Bill Wendling
d098d38269
De-constify the input to the "operator >>" method as it is modified.
...
Patch by dekruijf@cs.wisc.edu !
llvm-svn: 48782
2008-03-25 18:16:52 +00:00
Chris Lattner
1642451cf7
add some convenience methods for creating GEP instructions and
...
struct types. Patch by David Chisnall, with some tweaks.
llvm-svn: 48531
2008-03-19 05:06:05 +00:00
Chris Lattner
7925cc72c0
Reimplement the parameter attributes support, phase #1 . hilights:
...
1. There is now a "PAListPtr" class, which is a smart pointer around
the underlying uniqued parameter attribute list object, and manages
its refcount. It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
ParamAttrsWithIndex's, no need to make a SmallVector of a specific
size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
dereferencing the pointer is simplified to just access the
PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
bit simpler.
Phase #2 will rename some stuff (e.g. PAListPtr) and do other less
invasive changes.
llvm-svn: 48289
2008-03-12 17:45:29 +00:00
Nick Lewycky
5f274047bd
Treat BBs that use BBs as proper predecessors and successors in the CFG.
...
llvm-svn: 47989
2008-03-06 06:54:53 +00:00