Chris Lattner
a6735ae8d1
add resize, move swap out of line
...
llvm-svn: 29823
2006-08-22 17:28:57 +00:00
Reid Spencer
e9b9e6a6c2
For PR797:
...
Adjust users of MappedFile to its new non-throwing interface. Note that in
most cases the lazy step of just throwing after a call to MappedFile was
installed. This was done in the name of incremental changes. Getting rid of
the new throw statements will take adjustment of interfaces and propagation
of errors to higher levels. Those changes will come in subsequent patches.
llvm-svn: 29817
2006-08-22 16:06:27 +00:00
Reid Spencer
9fbfd7c399
For PR797:
...
Make MappedFile not throw any exceptions.
llvm-svn: 29816
2006-08-22 16:04:22 +00:00
Chris Lattner
0a5e21e28d
Switch to using smallvector for liveintervals. This speeds up live interval
...
analysis 11% on kc++.
llvm-svn: 29812
2006-08-22 06:32:56 +00:00
Chris Lattner
19d59ce917
add a bunch more operations, including swap, insert, erase, front(), and
...
bugfixes for operator=.
llvm-svn: 29811
2006-08-22 06:27:16 +00:00
Chris Lattner
2e9885371b
move LiveInterval state all together
...
llvm-svn: 29806
2006-08-21 23:15:12 +00:00
Jim Laskey
db9724d6e4
Adding new Dwarf constants.
...
llvm-svn: 29798
2006-08-21 21:18:10 +00:00
Reid Spencer
8b5b0a7fb3
For PR797:
...
Change interface for error recovery without exceptions.
llvm-svn: 29789
2006-08-21 06:00:58 +00:00
Reid Spencer
88f6824b35
Fix the documentation for this file.
...
llvm-svn: 29788
2006-08-21 05:37:03 +00:00
Reid Spencer
eb02f1c668
For PR885:
...
Consolidate the LinkAllAnalyses.h and LinkAllPasses.h headers into one
so there is no dupliation.
llvm-svn: 29787
2006-08-21 05:34:03 +00:00
Reid Spencer
5ed787710d
For PR797:
...
Make sys::Program::ExecuteAndWait not throw exceptions and update any
affected code. It now return -9999 to signal that the program couldn't be
executed. Only one case (in bugpoint) actually examines the result code.
llvm-svn: 29785
2006-08-21 02:04:43 +00:00
Chris Lattner
1bee472fca
vpkuwus didn't work, due to this typo
...
llvm-svn: 29776
2006-08-18 19:25:35 +00:00
Reid Spencer
c7c0e6c6ef
For PR797:
...
Rid the Assembly Parser of exceptions. This is a really gross hack but it
will do until the Assembly Parser is re-written as a recursive descent.
The basic premise is that wherever the old "ThrowException" function was
called (new name: GenerateError) we set a flag (TriggerError). Every
production checks that flag and calls YYERROR if it is set. Additionally,
each call to ThrowException in the grammar is replaced with GEN_ERROR
which calls GenerateError and then YYERROR immediately. This prevents
the remaining production from continuing after an error condition.
llvm-svn: 29763
2006-08-18 08:43:06 +00:00
Chris Lattner
db290f7479
Constify some methods. Patch provided by Anton Vayvod, thanks!
...
llvm-svn: 29756
2006-08-17 22:00:08 +00:00
Chris Lattner
a2eba83561
switch the SUnit pred/succ sets from being std::sets to being smallvectors.
...
This reduces selectiondag time on kc++ from 5.43s to 4.98s (9%). More
significantly, this speeds up the default ppc scheduler from ~1571ms to 1063ms,
a 33% speedup.
llvm-svn: 29743
2006-08-17 00:09:56 +00:00
Chris Lattner
c0e2997872
add an accessor
...
llvm-svn: 29739
2006-08-16 22:57:08 +00:00
Chris Lattner
1e0b221fb2
Convert vector to smallvector: 4% speedup.
...
llvm-svn: 29735
2006-08-16 22:12:48 +00:00
Chris Lattner
402986c13f
silence a warning.
...
llvm-svn: 29734
2006-08-16 22:09:24 +00:00
Chris Lattner
c1654416d6
Change the use_list to be a smallvector instead of a vector. This reduces
...
isel time from 6.79s to 5.53s (22%) on kc++ with a release build on ppc.
Go smallvector! :)
llvm-svn: 29731
2006-08-16 21:01:10 +00:00
Chris Lattner
cccfd59edf
add a way to have multiple modules in a JIT :)
...
llvm-svn: 29723
2006-08-16 02:53:27 +00:00
Chris Lattner
1eabe5fb58
initial changes to support JIT'ing from multiple module providers, implicitly
...
linking the program on the fly.
llvm-svn: 29721
2006-08-16 01:24:12 +00:00
Chris Lattner
2cd25d1642
Bugfixes for smallvector when the element size is small and N is small.
...
llvm-svn: 29720
2006-08-16 01:23:31 +00:00
Chris Lattner
cb3adb8225
Start using SDVTList more consistently
...
llvm-svn: 29711
2006-08-15 19:11:05 +00:00
Chris Lattner
ff1826e850
add a new SDVTList type and new SelectionDAG::getVTList methods to streamline
...
the creation of canonical VTLists.
llvm-svn: 29709
2006-08-15 17:46:01 +00:00
Chris Lattner
28369b8d7d
Make getNodeValueTypes methods public.
...
llvm-svn: 29688
2006-08-14 23:54:24 +00:00
Chris Lattner
8e8d9a3358
Add a new getNode() method that takes a pointer to an already-intern'd list
...
of value-type nodes. This avoids having to do mallocs for std::vectors of
valuetypes when a node returns more than one type.
llvm-svn: 29685
2006-08-14 23:31:51 +00:00
Devang Patel
91349ea154
Avoid extra string copy.
...
llvm-svn: 29684
2006-08-14 23:27:36 +00:00
Devang Patel
c97ee74e6a
Use mangler, instead of addUnderscore(), to get mangled name.
...
Now, LLVMSymbol keeps symbol original name and mangled name.
llvm-svn: 29679
2006-08-14 22:36:16 +00:00
Chris Lattner
9ff7eb17e0
remove SelectionDAG::InsertISelMapEntry, it is dead
...
llvm-svn: 29677
2006-08-14 22:24:39 +00:00
Chris Lattner
fe1fd00ce8
Add code to resize the CSEMap hash table. This doesn't speedup codegen of
...
kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :)
llvm-svn: 29675
2006-08-14 22:19:25 +00:00
Chris Lattner
67305e3cf6
avoid a warning
...
llvm-svn: 29674
2006-08-14 21:47:50 +00:00
Nate Begeman
0e92042770
Emit .set directives for jump table entries when possible, which reduces
...
the number of relocations in object files, shrinkifying them.
llvm-svn: 29650
2006-08-12 21:29:52 +00:00
Chris Lattner
7d59e9d16c
Track # nodes in a CSEMap.
...
llvm-svn: 29643
2006-08-12 01:07:51 +00:00
Chris Lattner
5510fa4ac5
Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%
...
speedup in isel time.
llvm-svn: 29640
2006-08-11 23:55:53 +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
Chris Lattner
870808beda
move code out of line so that GCC doesn't inline it at -O3
...
llvm-svn: 29636
2006-08-11 23:40:23 +00:00
Chris Lattner
6c9bcb32a3
Split SmallVector into SmallVector and SmallVectorImpl, which allows us to
...
eliminate code duplication due to the 'N' parameter.
llvm-svn: 29634
2006-08-11 23:19:51 +00:00
Chris Lattner
a271f8f58c
Remove 8 more std::map's.
...
llvm-svn: 29631
2006-08-11 21:55:30 +00:00
Chris Lattner
173c5fb3f3
remove old piece of the V9 backend.
...
llvm-svn: 29628
2006-08-11 21:11:35 +00:00
Chris Lattner
c3f78d1407
Start moving leaf nodes over to the CSEMap.
...
llvm-svn: 29625
2006-08-11 21:00:46 +00:00
Chris Lattner
c3def8c8f4
new method for adding ints
...
llvm-svn: 29622
2006-08-11 18:53:44 +00:00
Chris Lattner
3c504c013b
eliminate the NullaryOps map, use CSEMap instead.
...
llvm-svn: 29621
2006-08-11 18:38:11 +00:00
Chris Lattner
d154649343
Change one ReplaceAllUsesWith method to take an array of operands to replaceinstead of a vector of operands.
...
llvm-svn: 29617
2006-08-11 17:46:44 +00:00
Chris Lattner
cc742c4155
Remove now-dead method.
...
llvm-svn: 29615
2006-08-11 17:40:26 +00:00
Chris Lattner
587718e305
remove a (now) unused getNode method.
...
llvm-svn: 29613
2006-08-11 17:25:05 +00:00
Chris Lattner
8dd142b7b7
Doxygenify some methods.
...
llvm-svn: 29592
2006-08-10 06:00:40 +00:00
Chris Lattner
7b1362fa52
Start eliminating temporary vectors used to create DAG nodes. Instead, pass
...
in the start of an array and a count of operands where applicable. In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap. In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time. The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566
2006-08-08 02:23:42 +00:00
Chris Lattner
5f8473bc02
capacity is a pointer, not a value
...
llvm-svn: 29564
2006-08-08 01:54:17 +00:00
Chris Lattner
03c7b425a2
add a new assign method
...
llvm-svn: 29562
2006-08-08 01:44:16 +00:00
Chris Lattner
be2fc7b875
Eliminate some malloc traffic by allocating vectors on the stack. Change some
...
method that took std::vector<SDOperand> to take a pointer to a first operand
and #operands.
This speeds up isel on kc++ by about 3%.
llvm-svn: 29561
2006-08-08 01:09:31 +00:00
Chris Lattner
3bb43d2173
Add ctor that initializes from a range.
...
llvm-svn: 29560
2006-08-08 00:37:50 +00:00
Chris Lattner
3e1a9b0188
Remove assertions from the SmallVector class. They slow down clients of
...
smallvector too much in a release build. Removing them speeds up isel 4%.
llvm-svn: 29556
2006-08-07 23:41:59 +00:00
Chris Lattner
8058dae7a7
New CSEMap datastructure impl
...
llvm-svn: 29555
2006-08-07 23:31:24 +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
1661ffa2eb
Revamp the "CSEMap" datastructure used in the SelectionDAG class. This
...
eliminates a bunch of std::map's in the SelectionDAG, replacing them with a
home-grown hashtable.
This is still a work in progress: not all the maps have been moved over and the
hashtable never resizes. That said, this still speeds up llc 20% on kimwitu++
with -fast -regalloc=local using a release build.
llvm-svn: 29550
2006-08-07 23:03:03 +00:00
Evan Cheng
a42653b7ae
Move DAGSize to SelectionDAGISel; it's used in tablegen'd isel code.
...
llvm-svn: 29547
2006-08-07 22:16:08 +00:00
Chris Lattner
a4af471488
Add a clear method to SmallVector
...
llvm-svn: 29542
2006-08-07 05:45:34 +00:00
Chris Lattner
3bf9d47cf1
Silence a warning on x86-64, reported by chandlerc.
...
llvm-svn: 29535
2006-08-06 18:12:50 +00:00
Evan Cheng
627a71290f
This causes some random crashes.
...
llvm-svn: 29534
2006-08-05 17:31:00 +00:00
Reid Spencer
982a99456c
Update the auto* tools: autoconf 2.60, libtool 1.5.22, automake 1.9.6.
...
Update ltld.[ch] to version 1.5.22.
Correct the notes about updating these tools (autoconf/README.TXT)
Add configure options for getting the correct option for including a whole
archive when linking.
llvm-svn: 29529
2006-08-04 18:18:08 +00:00
Chris Lattner
154ffd3c8f
Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which
...
also make it simpler.
llvm-svn: 29524
2006-08-04 17:45:20 +00:00
Chris Lattner
55dad5c6ac
update comment
...
llvm-svn: 29507
2006-08-03 18:57:28 +00:00
Chris Lattner
0b8dd1f32f
remove some more dead sparcv9 support stuff
...
llvm-svn: 29506
2006-08-03 18:55:44 +00:00
Devang Patel
5effcf449a
Fix typo.
...
llvm-svn: 29497
2006-08-03 16:34:35 +00:00
Devang Patel
9cc4c00c10
Add new tool, lto, to do link time optimization. This tool installs
...
dynamic library that linker can use to optimize llvm byte codes at
link time.
llvm-svn: 29494
2006-08-03 15:44:57 +00:00
Evan Cheng
7bdbdf9ae7
AssignTopologicalOrder now returns the vector of SDNode* by reference to
...
avoid the expensive operation of copying a vector.
It also returns a maximum id by value.
llvm-svn: 29478
2006-08-02 21:58:44 +00:00
Jim Laskey
6d121090d3
Final polish on machine pass registries.
...
llvm-svn: 29471
2006-08-02 12:30:23 +00:00
Jim Laskey
f850832788
Breaking out specialized classes.
...
llvm-svn: 29470
2006-08-02 12:27:50 +00:00
Chris Lattner
58aeae17a7
Add dominates/properlyDominates queries to IDom.
...
llvm-svn: 29456
2006-08-01 22:24:47 +00:00
Jim Laskey
f9f462bc5e
Now that the ISel is available, it's possible to create a default instruction
...
scheduler creator.
llvm-svn: 29452
2006-08-01 19:14:14 +00:00
Jim Laskey
f5e160063e
1. Change use of "Cache" to "Default".
...
2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.
More to follow.
llvm-svn: 29450
2006-08-01 18:29:48 +00:00
Chris Lattner
ceecdbc08e
Remove some now-dead methods. Use getFileStatus instead.
...
llvm-svn: 29447
2006-08-01 18:16:02 +00:00
Jim Laskey
29880272a9
Forgot the added files for plugable machine passes.
...
llvm-svn: 29436
2006-08-01 16:31:08 +00:00
Jim Laskey
b92b14f422
Introducing plugable register allocators and instruction schedulers.
...
llvm-svn: 29434
2006-08-01 14:21:23 +00:00
Evan Cheng
e4fdb294ae
Added AssignTopologicalOrder() to assign each node an unique id based on their topological order.
...
llvm-svn: 29431
2006-08-01 08:20:41 +00:00
Chris Lattner
504adc58b7
Modify setStatusInfoOnDisk to not throw an exception.
...
llvm-svn: 29402
2006-07-28 22:36:17 +00:00
Chris Lattner
d7873a0757
Modify Path::eraseFromDisk to not throw an exception.
...
llvm-svn: 29400
2006-07-28 22:29:50 +00:00
Chris Lattner
4ff291d865
Update comments.
...
llvm-svn: 29398
2006-07-28 22:09:37 +00:00
Chris Lattner
f4c7ceebaf
Change Path::getStatusInfo to return a boolean and error string on an error
...
instead of throwing an exception. This reduces the amount of code that is
exposed to exceptions (e.g. FileUtilities), though it is clearly only one step
along the way.
llvm-svn: 29395
2006-07-28 22:03:44 +00:00
Chris Lattner
b0bf058d33
The smallvector dtor should destroy the elements.
...
Implement pop_back.
Chage some code to use 'iterator' instead of T*. This unbreaks operators=.
llvm-svn: 29380
2006-07-28 05:03:42 +00:00
Evan Cheng
5f0e94c299
Rename IsFoldableBy to CanBeFoldedleBy
...
llvm-svn: 29376
2006-07-28 01:03:48 +00:00
Evan Cheng
3b5f1c6248
Remove InFlightSet hack. No longer needed.
...
llvm-svn: 29373
2006-07-28 00:47:19 +00:00
Jim Laskey
f77eeceeba
Working toward registration of register allocators.
...
llvm-svn: 29360
2006-07-27 20:05:00 +00:00
Evan Cheng
4ceeac4159
Resolve BB references with relocation.
...
llvm-svn: 29351
2006-07-27 18:21:10 +00:00
Evan Cheng
60d02d04dd
Add basic block machine relocation.
...
llvm-svn: 29349
2006-07-27 18:18:13 +00:00
Evan Cheng
bdb2562804
AssignNodeIds should return unsigned.
...
llvm-svn: 29343
2006-07-27 07:36:47 +00:00
Evan Cheng
a8e15977aa
Remove NodeDepth; Add NodeId which is a unique id per node per DAG. It can only be set by SelectionDAG.
...
llvm-svn: 29336
2006-07-27 06:38:21 +00:00
Evan Cheng
1e640aeee8
Let each target specific isel provide routine to check if a chain producing node is foldable by another.
...
llvm-svn: 29335
2006-07-27 06:36:49 +00:00
Evan Cheng
39112023f1
Move synchronizeICache from TargetJITInfo into a static function in JITEmitter.cpp
...
llvm-svn: 29334
2006-07-27 06:33:55 +00:00
Chris Lattner
f2d0e0296a
Use std::copy instead of custom loops to take advantage of STL optimizations.
...
Add a new append method for appending a range.
llvm-svn: 29323
2006-07-27 03:38:08 +00:00
Nate Begeman
3d5f5b4e8b
Support jump tables when in PIC relocation model
...
llvm-svn: 29318
2006-07-27 01:13:04 +00:00
Chris Lattner
b4165c39d7
Rename RelocModel::PIC to PIC_, to avoid conflicts with -DPIC.
...
llvm-svn: 29307
2006-07-26 21:12:04 +00:00
Reid Spencer
c2eb650e39
For PR780:
...
Put the rest of lib/System into LinkAllVMCore.h. This makes all of
lib/System available to programs that #include LinkALlVMCore.h so that
loadable modules linked into those programs can depend on all of lib/System
being available.
llvm-svn: 29288
2006-07-26 16:55:39 +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
d4d69f64dd
Add a new llvm::SmallVector template, which is similar to the vector class, but
...
contains optimizations to avoid heap allocation if the vector size is smaller
than some threshold. This can significantly improve the performance of code
that allocates many small vectors by eliminating tons of small malloc/free's.
llvm-svn: 29281
2006-07-26 06:22:30 +00:00
Jim Laskey
d7e656f90b
Moving this function to a permanent home to prevent a dependency cycle created
...
by the inline heuristic. Was preventing llvm-gcc4 from building.
llvm-svn: 29278
2006-07-25 23:22:00 +00:00
Evan Cheng
beeb4e5c8c
- Refactor the code that resolve basic block references to a TargetJITInfo
...
method.
- Added synchronizeICache() to TargetJITInfo. It is called after each block
of code is emitted to flush the icache. This ensures correct execution
on targets that have separate dcache and icache.
- Added PPC / Mac OS X specific code to do icache flushing.
llvm-svn: 29276
2006-07-25 20:40:54 +00:00
Jim Laskey
a67adda697
Use an enumeration to eliminate data relocations.
...
llvm-svn: 29249
2006-07-21 20:57:35 +00:00
Devang Patel
07e0d34f7d
Add new constructor to accept vector of exported names while creating
...
InternalizePass.
llvm-svn: 29222
2006-07-20 17:48:05 +00:00
Evan Cheng
0675bc6539
Make sub- and super- register classes const.
...
llvm-svn: 29200
2006-07-19 05:58:18 +00:00
Chris Lattner
2d0f9f0d59
Move MVT::getVectorType out of line, it is large and shouldn't be inlined.
...
llvm-svn: 29195
2006-07-19 00:40:45 +00:00
Chris Lattner
3415e20ae6
Add an out-of-line virtual method for the sdnode class to give it a home.
...
llvm-svn: 29192
2006-07-19 00:00:37 +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
ac585b37b1
Add an out-of-line virtual function to home class.
...
llvm-svn: 29154
2006-07-14 23:08:47 +00:00
Chris Lattner
6548505f71
Add two helper functions
...
llvm-svn: 29150
2006-07-14 22:54:06 +00:00
Chris Lattner
cff735d69e
Add another helper method.
...
llvm-svn: 29147
2006-07-14 22:19:18 +00:00
Chris Lattner
b78b91260b
Add a new method for bugpoint to use.
...
llvm-svn: 29142
2006-07-14 19:37:01 +00:00
Chris Lattner
e5e2e8d917
Change the callgraph representation to store the callsite along with the
...
target CG node. This allows the inliner to properly update the callgraph
when using the pruning inliner. The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.
This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
llvm-svn: 29120
2006-07-12 18:29:36 +00:00
Jim Laskey
6fe083c694
1. Support for c++ mangled names.
...
2. Support for private/protected class members.
llvm-svn: 29104
2006-07-11 15:58:09 +00:00
Reid Spencer
cb66ae964e
Finish removal of EH usage from the Archive library. The REQUIRES_EH flag
...
in lib/Bytecode/Archive/Makefile is now removed. One small step closer to
a smaller LLVM.
llvm-svn: 29067
2006-07-07 20:56:50 +00:00
Reid Spencer
9f4deeabf4
Remove EH use from the Archive library and adjust its users accordingly.
...
llvm-svn: 29066
2006-07-07 19:09:14 +00:00
Chris Lattner
14264d4f2e
#include <iosfwd> not <ostream>
...
llvm-svn: 29061
2006-07-07 18:10:59 +00:00
Chris Lattner
8116948fa5
Change AllocateRWX/DeallocateRWX to not throw an exception.
...
llvm-svn: 29058
2006-07-07 17:32:37 +00:00
Chris Lattner
832e60566f
Change LoadLibraryPermanently to not throw an exception.
...
llvm-svn: 29048
2006-07-07 17:12:36 +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
15f896e231
Fix an embarassing bug reid noticed
...
llvm-svn: 29031
2006-07-07 00:01:01 +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
792190e73d
Change the ModuleProvider interface to not throw exceptions.
...
llvm-svn: 29024
2006-07-06 21:35:01 +00:00
Chris Lattner
55c8fc6873
Change the verifier to never throw an exception. Instead verifyModule can
...
optionally return the string error, which is an easier api for clients to
use anyway.
llvm-svn: 29016
2006-07-06 18:00:01 +00:00
Evan Cheng
a6c9288186
Added option -code-model to set code model (only used in 64-bit) mode. Valid
...
values include small, kernel, medium, large, and default.
llvm-svn: 29009
2006-07-06 01:53:36 +00:00
Evan Cheng
90a25bcd6f
Ugly hack! Add helper functions InsertInFlightSetEntry and
...
RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.
llvm-svn: 28987
2006-06-29 23:57:05 +00:00
Evan Cheng
6ec6e10b48
Add support to print 4-, 8-, and 16- byte constant literals in special
...
sections. e.g. On Darwin that would be .literal4 and .literal8.
llvm-svn: 28977
2006-06-29 00:26:09 +00:00
Chris Lattner
de354efbfe
Add support for hidden visibility
...
llvm-svn: 28968
2006-06-28 21:38:04 +00:00
Evan Cheng
6572fa9869
Allow EmitConstantPool to be redefined by derived classes.
...
llvm-svn: 28952
2006-06-28 00:52:32 +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
Chris Lattner
70a5120be9
Add a new method.
...
llvm-svn: 28915
2006-06-26 19:20:25 +00:00
Jim Laskey
a8284f65e1
Add and sort "sections" in debug lines. This always stepping through
...
code in sections other than ".text", including weak sections like ctors and
dtors.
llvm-svn: 28909
2006-06-23 12:51:53 +00:00
Evan Cheng
2db138d4b0
Added jump table address relocation.
...
llvm-svn: 28908
2006-06-23 01:02:37 +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
Chris Lattner
a396e6d9ba
Add some out-of-line virtual dtors so that the class has a "home", preventing
...
vtables for (e.g.) Instruction from being emitted into every .o file.
llvm-svn: 28898
2006-06-21 16:53:47 +00:00
Evan Cheng
72794862e1
Fix non-64-bit clean code.
...
llvm-svn: 28891
2006-06-21 00:29:14 +00:00
Andrew Lenharth
18494fd192
Fix build on old compilers
...
llvm-svn: 28869
2006-06-20 15:32:17 +00:00
Andrew Lenharth
f0ecdbe7ef
Do partial inlining in BU. This resolves more call sites. Also add options to merge in globals during recursion and to back annotate DSNodes when function pointers are resolved. This makes PA work for a whole lot more things (unresolved call sites being what has been killing various DSA based passes)
...
llvm-svn: 28859
2006-06-19 18:23:36 +00:00
Evan Cheng
6909286861
Clean up
...
llvm-svn: 28851
2006-06-17 01:42:20 +00:00
Chris Lattner
c6a5850ceb
Simplify the targetdata ctor by not passing in a "targetname" which is always
...
ignored.
llvm-svn: 28829
2006-06-16 18:21:53 +00:00
Chris Lattner
9fcdb0d7e5
Remove ctor with each piece specifyable (which causes overload ambiguities),
...
add a new init method.
llvm-svn: 28828
2006-06-16 18:11:26 +00:00
Andrew Lenharth
71d1cfa5c4
move header
...
llvm-svn: 28818
2006-06-16 14:33:53 +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
Evan Cheng
276a39d956
Avoid undesirable behavior when assert is not enabled.
...
llvm-svn: 28793
2006-06-15 08:10:27 +00:00
Evan Cheng
07d8ccec50
Instructions with variable operands (variable_ops) can have a number required
...
operands. e.g.
def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops),
"call {*}$dst", [(X86call GR32:$dst)]>;
TableGen should emit operand informations for the "required" operands.
Added a target instruction info flag M_VARIABLE_OPS to indicate the target
instruction may have more operands in addition to the minimum required
operands.
llvm-svn: 28791
2006-06-15 07:22:16 +00:00
Jim Laskey
bd680a03fd
Change versioning to per debug info descriptor (merged with tag.)
...
llvm-svn: 28782
2006-06-14 14:45:39 +00:00
Jim Laskey
69d5018a05
Place dwarf headers at earliest possible point. Well behaved when skipping
...
functions.
llvm-svn: 28781
2006-06-14 11:35:03 +00:00
Andrew Lenharth
a2bda5b0e1
Start on my todo list
...
llvm-svn: 28752
2006-06-12 16:07:18 +00:00
Owen Anderson
15b85dbfa5
Re-commit the safe parts of my 6/9 patch. Still working on fixing the unsafe parts.
...
llvm-svn: 28748
2006-06-11 19:22:28 +00:00
Evan Cheng
d99c8e2e5f
Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).
...
llvm-svn: 28747
2006-06-11 09:32:57 +00:00
Owen Anderson
6c2f7512a6
Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass assert
...
on this.
llvm-svn: 28738
2006-06-09 18:33:30 +00:00
Owen Anderson
0d9583aa41
Update some comments, and expose LCSSAID in preparation for having other passes
...
require LCSSA.
llvm-svn: 28734
2006-06-08 20:02:53 +00:00
Reid Spencer
aa140d6fef
For PR804:
...
Change the file size field of StatusInfo to be uint64_t instead of size_t
so that we know it is always 64 bits. This prevents some overflow on
systems where size_t is 32 bits when it ought to be 64.
llvm-svn: 28726
2006-06-08 17:00:08 +00:00
Vladimir Prus
5278a7380e
New method BasicBlock::getFirstNonPHI.
...
llvm-svn: 28724
2006-06-08 15:46:18 +00:00
Reid Spencer
3c338b3803
For PR787:
...
Provide new llvm::sys::Program facilities for converting the stdout and
stdin to binary mode. There is no standard way to do this and the available
mechanisms are platform specific. Adjust the bytecode reader and writer to
use these methods when their input is stdin or output is stdout. THis avoids
the problem with \n writing CRLF to a bytecode file on windows.
Patch Contributed by Michael Smith.
llvm-svn: 28722
2006-06-07 23:18:34 +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
Chris Lattner
71f6e90ae3
Add a virtual dtor to the InlineAsm class so that the principle method of
...
the class can be defined in InlineAsm.cpp
llvm-svn: 28718
2006-06-07 22:47:44 +00:00
Reid Spencer
2b5d481ae1
Previous version of this file wasn't supposed to be committed. This version
...
attempts to get all of libVMCore.a through the least number of declarations.
llvm-svn: 28716
2006-06-07 22:09:38 +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
Chris Lattner
bfbee64ecf
Add PowerPC intrinsics to support dcbz[l]
...
llvm-svn: 28696
2006-06-06 21:29:23 +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
370c74131e
For PR778:
...
Move file-scoped documentation to class-scoped so it is more readily
accessible.
llvm-svn: 28689
2006-06-05 16:29:06 +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
Reid Spencer
f640054d89
For PR633:
...
Add configure checks for setjmp/longjmp for Chris. I can't believe this easy
PR has been outstanding for so long. If I don't get to something, please
remind me! :)
llvm-svn: 28686
2006-06-05 16:11:07 +00:00
Reid Spencer
5b66af25d5
Some enhancements for gv/graphviz/dot/dotty support and better handling of
...
paths under MingW.
llvm-svn: 28685
2006-06-05 15:54:38 +00:00
Reid Spencer
6587691f1e
For PR798:
...
Have configure find the "dotty" program and adjust configuration.
llvm-svn: 28674
2006-06-02 23:13:18 +00:00
Chris Lattner
0f5ef733cc
Force anything that #includes llvm/Transforms/Utils/UnifyFunctionExitNodes.h
...
to link in the implementation. Thanks to Anton Korobeynikov for figuring out
what was going on here.
llvm-svn: 28660
2006-06-02 18:40:06 +00:00
Reid Spencer
e23e4b438c
Remove some flags backed out from earlier attempts at getting MING32W
...
configuration settled down.
llvm-svn: 28651
2006-06-02 00:40:35 +00:00
Chris Lattner
3d631893f9
Fix -pedantic warning
...
llvm-svn: 28634
2006-06-01 17:17:46 +00:00
Reid Spencer
acdd4a2bf8
Provide support for detecting if the Win32 imaghlp and psapi libraries
...
are available. These libraries are used in lib/System and should be
included on the link line or if not available generate an error when
building lib/System.
llvm-svn: 28628
2006-06-01 16:55:59 +00:00
Reid Spencer
bbc22e1a8a
Favor C++ casts over C casts in C++ code.
...
llvm-svn: 28622
2006-06-01 07:03:53 +00:00
Reid Spencer
2c6d390a60
Change from using a stub function to a stub variable for passing to the
...
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.
llvm-svn: 28621
2006-06-01 07:02:51 +00:00
Chris Lattner
2429ec5fdf
Fix utostr once and for all, by making there only be one function named
...
utostr. To keep the efficiency in the 32-bit case, make it check to see if
the value is 32-bits and if so switch over to the faster 32-bit case.
llvm-svn: 28601
2006-05-31 21:25:50 +00:00
Andrew Lenharth
5fd55605ed
4 billion names is enough for anyone. And really fix the build on alpha this time
...
llvm-svn: 28598
2006-05-31 20:40:36 +00:00
Andrew Lenharth
ed197672a8
Fix build breakage on alpha, without causing it on x86. as a bonus, all platforms can invent the same number of unique names now
...
llvm-svn: 28596
2006-05-31 20:18:28 +00:00
Andrew Lenharth
3338cc0b80
revert for now
...
llvm-svn: 28595
2006-05-31 19:16:26 +00:00
Andrew Lenharth
ec7c3a9662
make 64-bit safe and fix the build on alpha
...
llvm-svn: 28593
2006-05-31 18:56:42 +00:00
Reid Spencer
2d7af150ca
Make the getNamedFunction and getNamedGlobal methods be const. They don't
...
change the module in any way and we should enforce that.
llvm-svn: 28588
2006-05-31 16:40:28 +00:00
Vladimir Prus
563b5b45d1
Clarify type naming.
...
llvm-svn: 28587
2006-05-31 16:03:20 +00:00
Vladimir Prus
3967260b59
Improve InstVisitor docs.
...
llvm-svn: 28586
2006-05-31 15:30:18 +00:00
Reid Spencer
1e1cfbb6fe
Provide a simpler interface for getting a ConstantArray from a character
...
string. Instead of specifying the length, just specify whether the user
wants a terminating null or not. The default is "true" to retain the same
behavior as previously provided by this function.
llvm-svn: 28562
2006-05-30 18:15:07 +00:00
Vladimir Prus
68c8d8b4dd
Make doc comment visible in doxygen output. Clarify Type construction.
...
llvm-svn: 28555
2006-05-30 15:49:30 +00:00
Reid Spencer
a79b2a00c1
Properly document the second form of ConstArray::get()
...
llvm-svn: 28553
2006-05-30 08:26:13 +00:00
Reid Spencer
ce05d51e82
Adjust the interface to ConstantArray::get. The previous
...
implementation always added a null byte to the end of the string. It turns
out that this is not always wanted. By adding a length parameter we preserve
this behavior when length==0 (default value) but also allow other lengths
(not null terminated) to be created.
llvm-svn: 28552
2006-05-30 08:23:18 +00:00
Andrew Lenharth
bc04a6c143
Since there was interest on the mailing list, this is a utility pass that
...
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
llvm-svn: 28545
2006-05-29 22:58:38 +00:00
Reid Spencer
1b73ead96d
Replace an old C-style cast with a C++ cast (squelch warning)
...
llvm-svn: 28533
2006-05-29 02:32:43 +00:00
Chris Lattner
0f467023c2
Fix pastos in comments
...
llvm-svn: 28522
2006-05-27 06:57:55 +00:00
Chris Lattner
fcb019fcb6
Implement a new method: CloneAndPruneFunctionInto, as documented.
...
llvm-svn: 28518
2006-05-27 01:21:50 +00:00
Chris Lattner
c8b9439f3a
Add an interface to constant fold and instruction given it's opcode, type
...
and operands.
llvm-svn: 28516
2006-05-27 01:17:40 +00:00
Chris Lattner
990b00b325
Add a new sentry node type, allowing assertions to catch trivial
...
use-after-deleted errors.
llvm-svn: 28513
2006-05-27 00:40:15 +00:00
Evan Cheng
f53c4cc192
Change RET node to include signness information of the return values. e.g.
...
RET chain, value1, sign1, value2, sign2
llvm-svn: 28509
2006-05-26 23:09:09 +00:00
Owen Anderson
93098cfc4c
Skeletal LCSSA pass. This is currently non-functional. Expect functionality
...
and documentation updates soo.
llvm-svn: 28495
2006-05-26 13:58:26 +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
Evan Cheng
5d83c6ad6a
CALL node change: now containing signness of each argument.
...
llvm-svn: 28460
2006-05-25 00:54:33 +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
f604017e47
Patches to make the LLVM sources more -pedantic clean. Patch provided
...
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Evan Cheng
6909147763
-enable-unsafe-fp-math implies -enable-finite-only-fp-math
...
llvm-svn: 28437
2006-05-23 18:18:46 +00:00
Vladimir Prus
b609f27099
Make class comment visible in Doxygen.
...
llvm-svn: 28436
2006-05-23 15:32:15 +00:00