Commit Graph

83 Commits

Author SHA1 Message Date
Chris Lattner
0c19df4871 Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream.  Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
 1) This makes Value::print be non-virtual.
 2) AP[S]Int and ConstantRange can no longer print to ostream directly, 
    use raw_ostream instead.
 3) This fixes a bug in raw_os_ostream where it didn't flush itself 
    when destroyed.
 4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream 
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.

llvm-svn: 55263
2008-08-23 22:23:09 +00:00
Matthijs Kooijman
be31571ca5 Document BasicBlock::Create.
llvm-svn: 54210
2008-07-30 12:53:14 +00:00
Dan Gohman
804c95df52 Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.

Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.

Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.

llvm-svn: 54146
2008-07-28 21:51:04 +00:00
Anton Korobeynikov
cf3acae26e For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
llvm-svn: 51687
2008-05-29 17:41:17 +00:00
Dan Gohman
f96e1371e8 Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to
use it instead of duplicating its functionality.

llvm-svn: 51499
2008-05-23 21:05:58 +00:00
Nick Lewycky
4d43d3c72c 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
Gabor Greif
e9ecc68d8f 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
Nick Lewycky
cc24104703 Two things. Preserve the unwind_to when splitting a BB.
Add the ability to remove just one instance of a BB from a phi node. This fixes
the compile error in the tree now.

llvm-svn: 48085
2008-03-09 05:04:48 +00:00
Nick Lewycky
35e92c7bea Not all users of a BB are Instructions any more.
llvm-svn: 48047
2008-03-08 07:48:41 +00:00
Nick Lewycky
3cc9be0b59 Add an unwind_to field to basic blocks, making them Users instead of Values.
This is the first checkin for PR1269, the new EH infrastructure.

llvm-svn: 47802
2008-03-02 02:48:09 +00:00
Chris Lattner
e9cc742a17 Don't attribute in file headers anymore. See llvmdev for the
discussion of this change.  Boy are my fingers tired. ;-)

llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Gordon Henriksen
14a5569f4e Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day

llvm-svn: 44760
2007-12-10 02:14:30 +00:00
Gordon Henriksen
3e5be66ccb Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!
llvm-svn: 44747
2007-12-09 22:46:10 +00:00
Dan Gohman
aad83c8ee5 Remove meaningless qualifiers from return types, avoiding compiler warnings.
llvm-svn: 44240
2007-11-19 20:46:23 +00:00
Chris Lattner
3d1937591d better portability for intptr_t.
llvm-svn: 37221
2007-05-18 07:07:05 +00:00
Chris Lattner
4a1e0b8c3e make next/prev accessors private
llvm-svn: 36207
2007-04-17 18:16:39 +00:00
Jeff Cohen
38be56ddf5 Fix build breakage on 64-bit systems.
llvm-svn: 36193
2007-04-17 05:33:04 +00:00
Chris Lattner
422cfcdcb3 The (negative) offset from a SymbolTableListTraits-using ilist to its container
object is always constant.  As such, evaluate it at compile time instead of storing
it as an ivar in SymbolTableListTraits.  This shrinks every SymbolTableListTraits
ilist by a word, shrinking BasicBlock from 44->40 bytes, Function from 96->88 bytes,
and Module from 60->52 bytes.

llvm-svn: 36189
2007-04-17 04:04:14 +00:00
Chris Lattner
b47aa543bb Refactor SymbolTableListTraits to only have a single pointer in it, instead
of two.  This shrinkifies Function by 8 bytes (104->96) and Module by 8
bytes (68->60).  On a testcase of mine, this reduces the memory used to
read a module header from 565680b to 561024, a little over 4K.

llvm-svn: 36188
2007-04-17 03:26:42 +00:00
Dan Gohman
a789d31517 Rename Value::getValueType to getValueID, to avoid confusion with
other things named getValueType.

llvm-svn: 35964
2007-04-13 18:12:09 +00:00
Dan Gohman
ac8fe43024 Add the 'explicit' keyword to several constructors that accept one
argument that don't appear intended as implicit-conversion operators.

llvm-svn: 35280
2007-03-23 18:44:11 +00:00
Bill Wendling
a77f14265b 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
Chris Lattner
456a806692 Override use_back in instruction/basicblock to provide more type information.
llvm-svn: 30678
2006-09-30 22:20:34 +00:00
Chris Lattner
4091f4690a add method, correct comment
llvm-svn: 30584
2006-09-23 04:03:45 +00:00
Vladimir Prus
b5b6dc49e2 New method BasicBlock::getFirstNonPHI.
llvm-svn: 28724
2006-06-08 15:46:18 +00:00
Reid Spencer
9017064cc7 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
Chris Lattner
64b830bc0c Remove some dead argument names which irritates GCC at certain warning levels.
llvm-svn: 23979
2005-10-25 17:59:28 +00:00
Chris Lattner
1344253e3f add a helper method
llvm-svn: 22767
2005-08-12 22:13:27 +00:00
Jeff Cohen
33a030e36c Eliminate tabs and trailing spaces.
llvm-svn: 22520
2005-07-27 05:53:44 +00:00
Reid Spencer
756d049c06 Fix a thinko in the documentation of the splitBasicBlock method. The branch
instruction is added to the original block, not the new block.

llvm-svn: 21513
2005-04-25 00:31:53 +00:00
Misha Brukman
01cada8797 Remove trailing whitespace
llvm-svn: 21408
2005-04-21 20:19:05 +00:00
Chris Lattner
eb958b0e45 add an argument.
llvm-svn: 21254
2005-04-12 18:51:53 +00:00
Chris Lattner
4d6b6d4d6e remove reverse BB iterators.
llvm-svn: 20601
2005-03-15 05:17:48 +00:00
Chris Lattner
cdb9bfc150 remove all of the various setName implementations, consolidating them into
Value::setName, which is no longer virtual.

llvm-svn: 20464
2005-03-05 19:51:50 +00:00
Chris Lattner
f18c871b58 Remove the second argument to Value::setName, it is never needed.
llvm-svn: 20457
2005-03-05 18:59:36 +00:00
Chris Lattner
ce046ac9c6 add a new method.
llvm-svn: 20293
2005-02-24 02:37:26 +00:00
Chris Lattner
f6c93e36c7 Improve conformance with the Misha spelling benchmark suite
llvm-svn: 19930
2005-01-30 00:09:23 +00:00
Chris Lattner
f84ecca5f3 Adjust to changes in ilist
llvm-svn: 19922
2005-01-29 18:41:00 +00:00
Chris Lattner
a2b02a8b05 Warning fixes for VC++, contributed by Morten Ofstad!
llvm-svn: 17831
2004-11-15 19:02:35 +00:00
Chris Lattner
7dfc2d29ac Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++.  Patch contributed by Morten Ofstad!

llvm-svn: 17281
2004-10-27 16:14:51 +00:00
Chris Lattner
273207f32f Add long overdue methods
llvm-svn: 16921
2004-10-11 22:21:13 +00:00
Reid Spencer
7c16caa336 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Chris Lattner
9e650d4583 Don't use identifiers that start with an _
llvm-svn: 13992
2004-06-03 21:12:02 +00:00
Misha Brukman
926e0f9eef Minor aesthetic alignments; no functional changes.
llvm-svn: 13593
2004-05-17 22:28:21 +00:00
Misha Brukman
40c6d6d307 * Minor aesthetic alignment of iterator declarations
* Removed redundant function comments

llvm-svn: 13592
2004-05-17 22:25:12 +00:00
Chris Lattner
6926059d37 Remove long obsolete method. switch instructions are first class entities in the CFG, and have been for a LOOOONG time.
llvm-svn: 11303
2004-02-11 01:17:58 +00:00
Chris Lattner
040ad3afa8 Delete the BasicBlock ctor that only takes a BasicBlock to insert before. This
fails when the basic block points to the function->end.  Instead, require that
the client pass in the function AND the basicblock to insert into.

llvm-svn: 11112
2004-02-04 03:57:34 +00:00
Chris Lattner
604d5f36fe Remove broken doxygen comments
llvm-svn: 10869
2004-01-15 04:37:10 +00:00
Brian Gaeke
960707c335 Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
eeabc3f846 Expose new print methods
llvm-svn: 9620
2003-10-30 23:41:19 +00:00