Commit Graph

31 Commits

Author SHA1 Message Date
Chris Lattner
944fac71e0 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 22:23:09 +00:00
Anton Korobeynikov
c40c8b333d Remove asmprinters from examples by default. This reduces their size by ~5%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54890 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17 13:55:33 +00:00
Chris Lattner
fad86b003a Rework the routines that convert AP[S]Int into a string. Now, instead of
returning an std::string by value, it fills in a SmallString/SmallVector
passed in.  This significantly reduces string thrashing in some cases.

More specifically, this:
 - Adds an operator<< and a print method for APInt that allows you to 
   directly send them to an ostream.
 - Reimplements APInt::toString to be much simpler and more efficient
   algorithmically in addition to not thrashing strings quite as much.

This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter.  This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17 07:19:36 +00:00
Gabor Greif
7cbd8a3e92 API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51200 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 19:29:10 +00:00
Gabor Greif
051a950000 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06 20:25:17 +00:00
Chris Lattner
fc001bbfc3 remove attributions from examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45420 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:37:57 +00:00
Chris Lattner
57360d1f1c remove attributions from the rest of the llvm makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45416 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:11:13 +00:00
Chris Lattner
9132a2b818 rename APInt::toString -> toStringUnsigned for symmetry with toStringSigned()
Add an APSInt::toString() method.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-23 05:15:32 +00:00
Reid Spencer
34bd70de3c Adjust for changes in GenericValue type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34969 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 17:24:31 +00:00
Chris Lattner
680f2f016e eliminate vector-related ctors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34227 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 06:06:26 +00:00
Reid Spencer
bc0895a596 Add a #include to resolve IntegerType class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33384 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:45:05 +00:00
Chris Lattner
6a98754ebb add some casts to support a change in the getOrInsertFunction interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32984 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-07 07:40:09 +00:00
Reid Spencer
db8d2bed6a For PR950:
Convert signed integer types to signless.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32786 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 05:50:28 +00:00
Reid Spencer
b83eb6447b For PR950:
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-20 07:07:24 +00:00
Chris Lattner
885e3cb7f3 Use llvm-config to determine what to link in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30092 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-04 06:04:03 +00:00
Jeff Cohen
afebb44928 Minor corrections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27042 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-24 03:11:31 +00:00
Jeff Cohen
66c5fd6c53 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23888 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23 04:37:20 +00:00
Chris Lattner
47968e4dfd These are legal for tail calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21723 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 05:59:50 +00:00
Misha Brukman
237cef4b0b Remove trailing whitespace at the end of lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21380 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-20 16:42:34 +00:00
Alkis Evlogimenos
1d9f262b9d Stop using abegin and aend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20610 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 07:20:55 +00:00
Reid Spencer
8f631784f7 Use LLVMLIBS=JIT to get JIT libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18333 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 07:17:18 +00:00
Reid Spencer
815cbcf0f1 Fix PR456:\
Tools and libraries will be built into $(BUILD_OBJ_ROOT)/$(BuildMode)/bin and \
$(BUILD_OBJ_ROOT)/$(BuildMode)/lib, respectively. Furthermore, the example \
programs will go in $(BUILD_OBJ_ROOT)/$(BuildMode)/examples to keep them \
separate from the tools and hopefully out of the PATH. Install targets \
have not changed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-18 10:03:46 +00:00
Misha Brukman
a9504af512 Use the shared Makefile.JIT for JIT-enablement, which also enables the examples
to have the JIT functioning on more platforms than just x86


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16993 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-14 19:02:13 +00:00
Reid Spencer
66e7cd0eea Correct the file header to reflect the new "examples" home for the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16295 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 20:30:11 +00:00
Reid Spencer
86e5aef1ce Add library LLVMsystem.a because the JIT now needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16285 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:29:44 +00:00
Reid Spencer
3a168a7d68 Moved small examples from /projects/SmallExamples to /examples.
Made the "ModuleMaker" into an example since its just one source file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16003 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-23 19:29:54 +00:00
Reid Spencer
f3b4755aa0 Make the SmallExamples programs compile in their new home.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15923 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 20:09:14 +00:00
Chris Lattner
95f114c5a9 Switch to using the JIT now that it can directly call zeroarg functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15795 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:31:57 +00:00
Chris Lattner
e8bf58c170 Simplify code, make it print the constructed module before it is run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15792 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:21:54 +00:00
Reid Spencer
54706d6801 Fix a copy & paste error .. correct the description of the program.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15623 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-10 19:18:51 +00:00
Reid Spencer
26a4ba73d3 Adding a simple example of how to use the JIT.
Contributed by Valery A. Khamenya. THANKS, Valery!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15622 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-10 19:14:36 +00:00