Chris Lattner
a6ecd35eab
* finegrainify namespacification of ArchiveReader.cpp
...
* Refactor reader stuff out of include/llvm/Bytecode/Primitives.h. This is
internal implementation details for the reader, not public interfaces!
llvm-svn: 10739
2004-01-10 19:00:15 +00:00
Chris Lattner
b9c0efb378
Refactor writer stuff out of include/llvm/Bytecode/Primitives.h. This is
...
internal implementation details for the writer, not public interfaces!
llvm-svn: 10738
2004-01-10 18:56:59 +00:00
Chris Lattner
231965667f
Finegrainify namespacification
...
llvm-svn: 10737
2004-01-10 18:49:43 +00:00
Chris Lattner
6e130238f7
Inching our way towards fixing PR82
...
llvm-svn: 10721
2004-01-09 05:42:34 +00:00
Chris Lattner
5f7770c06b
remove some useless #includes
...
llvm-svn: 10654
2003-12-30 07:55:21 +00:00
Chris Lattner
2827a074c2
Use new getFileSize function instead of sys/stat.h directly.
...
llvm-svn: 10650
2003-12-30 07:40:35 +00:00
Chris Lattner
6317315a2f
Factor FDHandle out of the bytecode reader into the FileUtilities.h support
...
routines.
llvm-svn: 10642
2003-12-29 21:35:05 +00:00
Chris Lattner
5ad07a3fbf
minor cleanups
...
llvm-svn: 10612
2003-12-26 06:16:00 +00:00
John Criswell
8740fbd052
Reverted back to revision 1.11. The previous fix doesn't really fix
...
anything; it just causes the bug to go dormant.
llvm-svn: 10585
2003-12-22 16:22:49 +00:00
John Criswell
80daeb4cdb
Fix PR#193.
...
Modified ReadArchiveBuffer() so that it dynamically allocates the
std::string object used to hold the bytecode object file's name. This is
necessary because it is passed by reference to the new Module that is
allocated to represent the bytecode object, and previously we were
using a std::string that disappeared on function exit.
llvm-svn: 10565
2003-12-20 22:37:29 +00:00
Brian Gaeke
81d68517ea
Make getObjectType() smarter about ranlibbed Mac OS X archives.
...
llvm-svn: 10493
2003-12-17 00:18:18 +00:00
Brian Gaeke
94157211b6
Throw better error messages, by calling strerror(errno) when we
...
get an error inside the bytecode reader.
llvm-svn: 10415
2003-12-12 00:47:44 +00:00
Brian Gaeke
e962a55ac5
In getObjectType(), doxygenify comment, and take a pointer to the
...
beginning of the archive member data as an argument.
Get rid of ParseLongFilenameSection(), which is dead.
In ReadArchiveBuffer(), implement support for 4.4BSD/MacOSX long filenames.
This is kind of invasive, because they prepend the long filename to the archive
member data, and then lie about the size. So we have to keep track of the real
size.
llvm-svn: 10392
2003-12-11 00:38:04 +00:00
Chris Lattner
a2ac517a20
Emit & read more compressed bytecode by not emitting a bytecodeblock for
...
each basic block in function. Instead, just emit a stream of instructions,
chopping up basic blocks based on when we find terminator instructions. This
saves a fairly substantial chunk of bytecode space. In stripped, sample
cases, for example, we get this reduction in size:
197.parser: 163036 -> 137180: 18.8% reduction
254.gap : 844936 -> 689392: 22.6%
255.vortex: 621724 -> 528444: 17.7%
...
Not bad for something this simple. :) Note that this doesn't require a new
bytecode version number at all, though version 1.1 should not need to support
the old format.
llvm-svn: 10280
2003-12-01 07:05:31 +00:00
Chris Lattner
60d2a51347
* Finegrainify namespacification
...
* Strength reduce several data structures which were left over from the
"bad old days"
* Minor efficiency improvements
* Major efficiency improvement: In BytecodeParser::insertValue, do not allocate
a new ValueTab entry just because some value exists with a large type. This
dramatically reduces the number of allocations/deallocations performed by the
bytecode reader, and speeds up parsing of Kimwitu++ from 34s to 17s. This is
to help address PR127
llvm-svn: 10085
2003-11-19 17:27:18 +00:00
Chris Lattner
4bb9013bb6
Minor efficiency improvements, finegrainify namespacification
...
llvm-svn: 10084
2003-11-19 17:21:11 +00:00
Chris Lattner
af14b55e1b
In the future, these slabs can be null...
...
llvm-svn: 10083
2003-11-19 17:20:42 +00:00
Chris Lattner
417f92b621
Minor efficiency improvements all over. Finegrainify Namespacification
...
llvm-svn: 10082
2003-11-19 17:17:36 +00:00
Chris Lattner
4c0e027b28
Fine grainify namespacification, #include file that defines the interface!
...
llvm-svn: 10081
2003-11-19 16:06:55 +00:00
Chris Lattner
e5b1d0a66d
Minor speedup to do less linear time searches of information we already have.
...
speeds up disassembly of kc++ by .6s
llvm-svn: 10079
2003-11-19 06:01:12 +00:00
Chris Lattner
b660dfb79a
Remove usage of ConstantPointer
...
llvm-svn: 10051
2003-11-17 17:28:29 +00:00
Brian Gaeke
e2e424701a
Implement skeletal support for __.SYMDEF (ranlib) sections in archives.
...
Correctly parse the Long Filename section of the archive.
When reading in archive members, set their ModuleIDs to
"ARCHIVENAME(MEMBERNAME)", as is traditional.
llvm-svn: 10043
2003-11-16 23:08:48 +00:00
Chris Lattner
ccac6e36fb
I can't believe the incompetence of the people I have to deal with around here.
...
These fools don't even wrap code at 80 columns.
Oh wait, _I_ wrote that. That explains a lot!!
llvm-svn: 9999
2003-11-14 16:34:25 +00:00
Chris Lattner
0ba2cec700
Fix PR 110: the constant folding code assumes that if something is not a
...
constant expression, but is of (for example) ubyte type, then it is a
ConstantUInt. This was not true for placeholders.
llvm-svn: 9994
2003-11-14 06:38:46 +00:00
Brian Gaeke
d25f86d683
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
2df84a62cd
no need for endl
...
llvm-svn: 9736
2003-11-05 19:53:32 +00:00
Chris Lattner
352ad83271
Add support for constant expr shifts
...
llvm-svn: 9735
2003-11-05 19:53:03 +00:00
Alkis Evlogimenos
9430d79c1f
Put DEBUG_OUTPUT at the top along with TRACE_LEVEL. Also fix the code
...
inside DEBUG_OUTPUT so that it compiles.
llvm-svn: 9614
2003-10-30 18:33:58 +00:00
Brian Gaeke
ee245ddcdf
Explicitly cast type, so we aren't passing output_vbr a size_t.
...
llvm-svn: 9590
2003-10-29 20:09:01 +00:00
John Criswell
de34542f41
Added LLVM copyright header.
...
llvm-svn: 9321
2003-10-21 15:17:13 +00:00
John Criswell
71d2894956
Added LLVM copyright notice to Makefiles.
...
llvm-svn: 9312
2003-10-20 22:26:57 +00:00
John Criswell
b402729b30
Added LLVM project notice to the top of every C++ source file.
...
Header files will be on the way.
llvm-svn: 9298
2003-10-20 19:43:21 +00:00
Chris Lattner
87843f87b8
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
...
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
620cb7e35a
Fix warning
...
llvm-svn: 9236
2003-10-18 19:48:10 +00:00
Chris Lattner
3ff64cf568
add support for new linkage types
...
llvm-svn: 9228
2003-10-18 06:30:21 +00:00
Chris Lattner
e4fc9caea1
Updated to emit the final 1.0 bytecode format. This supports weak linkage,
...
more efficient encoding of varargs calls, and the new varargs intrinsics.
llvm-svn: 9221
2003-10-18 05:54:48 +00:00
Chris Lattner
3f700e8e47
* New revised variable argument handling support
...
* More dense bytecode encoding for varargs calls (like printf)
* Eliminated the extremely old bytecode format. rev #0 is now 1.0
llvm-svn: 9220
2003-10-18 05:54:18 +00:00
Alkis Evlogimenos
5a1f705c88
Eliminate some extraneous code in SlotCalculator::insertVal().
...
Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(),
SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(),
SlotCalculator::insertVal() to SlotCalculator::insertValue(), and
SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue().
llvm-svn: 9190
2003-10-17 02:02:40 +00:00
Misha Brukman
54c766e934
Add separator between different types of readers.
...
llvm-svn: 9183
2003-10-16 21:19:54 +00:00
Chris Lattner
2bdaaa4e08
Add support for 'weak' linkage.
...
For now, we translate linkonce into weak linkage in the bytecode format because
we don't have enough bits to represent it. We will rev the bytecode version
soon anyways, so this will be fixed in the near future.
llvm-svn: 9170
2003-10-16 18:28:50 +00:00
Chris Lattner
0ad8f7bb8f
Minor cleanups
...
llvm-svn: 9079
2003-10-13 14:57:53 +00:00
Chris Lattner
8f34f82f84
Avoid calling getTypeSlot more
...
llvm-svn: 9077
2003-10-13 14:34:59 +00:00
Chris Lattner
09abbd2da6
This is a header file, thus it needs a -*-C++-*-
...
llvm-svn: 9072
2003-10-13 04:22:07 +00:00
Chris Lattner
b6c8569f05
Regularize header file comments
...
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner
c7042b310c
Ok, the "fix" for this is to do a real associative container. Symbol tables
...
are ordered by name, not by slot, so the previous solution wasn't any good.
On a large testcase, this reduces time to parse from 2.17s to 1.58s.
llvm-svn: 9002
2003-10-10 05:43:47 +00:00
Chris Lattner
3fd3ddbd2d
Another 10% performance improvement by not using replaceAllUsesWith
...
llvm-svn: 8994
2003-10-09 23:10:14 +00:00
Chris Lattner
b8883ea999
Reserve space for PHI nodes when we read them in. This provides a VERY
...
tasty 15% speedup on the testcase from Bill.
llvm-svn: 8993
2003-10-09 22:46:58 +00:00
Chris Lattner
7467b5ff4e
Use the version of getValue that takes the type plane instead of the type
...
if possible. This provides a consistent 8.5% speedup.
llvm-svn: 8991
2003-10-09 22:39:30 +00:00
Chris Lattner
85f5b18995
Pass a vector around to reduce dynamic allocation
...
Throw the RawInst class in an anon namespace
llvm-svn: 8990
2003-10-09 20:45:42 +00:00
Chris Lattner
36f2dcd3d5
Change getConstantValue to throw an exception on error, not return null
...
llvm-svn: 8988
2003-10-09 20:41:16 +00:00
Chris Lattner
c0abb16551
Remove potentially N^2 algorithm from symbol table reader. No speedup
...
in practice though
llvm-svn: 8985
2003-10-09 20:30:04 +00:00
Chris Lattner
8f99fbb02c
Major refactoring of the bytecode reader. This includes the following
...
changes:
* BytecodeReader::getType(...) used to return a null pointer
on error. This was only checked about half the time. Now we convert
it to throw an exception, and delete the half that checked for error.
This was checked in before, but psmith crashed and lost the change :(
* insertValue no longer returns -1 on error, so callers don't need to
check for it.
* Substantial rewrite of InstructionReader.cpp, to use more efficient,
simpler, data structures. This provides another 5% speedup. This also
makes the code much easier to read and understand.
llvm-svn: 8984
2003-10-09 20:22:47 +00:00
Chris Lattner
4eb71c8940
Significantly clean up parsing of instructions. This exceptionizes and
...
simplifies the control flow a bit. This provides a small (~3%) speedup,
but it's primarily a cleanup exercise.
llvm-svn: 8983
2003-10-09 18:25:19 +00:00
Chris Lattner
c527ed77b8
Eliminate the instruction placeholder. Simplify a bunch of code.
...
This results in no significant speedup, but does provide simpler code
llvm-svn: 8980
2003-10-09 06:14:26 +00:00
Chris Lattner
6f7b5bd63f
Eliminate the old LateResolveValues data structure, replacing it with a
...
new, simpler, ForwardReferences data structure. This is just the first
simple replacement, subsequent changes will improve the code more.
This simple change improves the performance of loading a file from HDF5
(contributed by Bill) from 2.36s to 1.93s, a 22% improvement. This
presumably has to do with the fact that we only create ONE placeholder for
a particular forward referenced values, and also may be because the data
structure is much simpler.
llvm-svn: 8979
2003-10-09 06:05:40 +00:00
Chris Lattner
3b7b192b6a
Remove a dead method
...
llvm-svn: 8978
2003-10-09 05:25:34 +00:00
Chris Lattner
55e1c2edfb
This patch substantially simplifies and cleans up handling of basic blocks
...
in the bytecode parser. Before we tried to shoehorn basic blocks into the
"getValue" code path with other types of values. For a variety of reasons
this was a bad idea, so this patch separates it out into its own data structure.
This simplifies the code, makes it fit in 80 columns, and is also much faster.
In a testcase provided by Bill, which has lots of PHI nodes, this patch speeds
up bytecode parsing from taking 6.9s to taking 2.32s. More speedups to
follow later.
llvm-svn: 8977
2003-10-08 22:52:54 +00:00
Chris Lattner
c920c81739
Inline the postResolveValues method. It was poorly named anyway
...
llvm-svn: 8976
2003-10-08 21:51:46 +00:00
Chris Lattner
a7d6d16c13
Various cleanups and simplifications. This speeds up reading a bytecode file
...
Bill gave me from 8.69s to 6.90s.
llvm-svn: 8971
2003-10-08 21:18:57 +00:00
Misha Brukman
7b758ed3b5
Destroy allocated resources on exception.
...
llvm-svn: 8969
2003-10-08 19:55:47 +00:00
Brian Gaeke
7bd96d6b90
All of our supported operating systems (so far) and FreeBSD technically
...
want you to include <sys/stat.h> for fstat(), struct stat, and friends.
llvm-svn: 8887
2003-10-06 03:30:28 +00:00
Chris Lattner
def80d731a
Rename AbstractModuleProvider -> ModuleProvider, to match the header file name,
...
and because, while the class used by the interface is abstract, the actual
concept is not.
llvm-svn: 8850
2003-10-04 20:14:59 +00:00
Chris Lattner
7a9db7a722
Transform two methods to return pointers directly instead of returning them
...
as 'by reference' arguments.
llvm-svn: 8849
2003-10-04 20:00:03 +00:00
Chris Lattner
0e866f36a0
Use V for values, not D.
...
llvm-svn: 8848
2003-10-04 19:29:21 +00:00
Chris Lattner
2b8c4bf029
Do not leak the ModuleProvider if releaseModule() throws.
...
llvm-svn: 8847
2003-10-04 19:19:37 +00:00
Chris Lattner
62331c44ab
There is no need for BytecodeParser to be an AbstractTypeUser. Instead, it
...
can just use PATypeHolders
llvm-svn: 8832
2003-10-02 20:26:18 +00:00
Chris Lattner
ae8b7c1a56
Just rethrow previous exception instead of making a new one
...
llvm-svn: 8718
2003-09-26 14:44:52 +00:00
Chris Lattner
222df3cfc5
Define the instance variable Buffer, not the automatic variable Buffer.
...
This was causing us to munmap random stuff, which is obviously bad.
llvm-svn: 8709
2003-09-25 04:13:53 +00:00
Chris Lattner
6d9f1022d5
Fix alignment problem
...
llvm-svn: 8707
2003-09-24 22:34:17 +00:00
Misha Brukman
08e8d47b1e
Actually assign the string correctly through the std::string pointer.
...
llvm-svn: 8704
2003-09-24 22:10:47 +00:00
Misha Brukman
c16b33f803
* Eliminate BytecodeBufferReader::Length member variable
...
* Kill unused ALIN_PTRS #define
* Set the error string if user passed it in to be compatible with former API
llvm-svn: 8701
2003-09-24 22:04:02 +00:00
John Criswell
92b65ebb52
Added code that ensures that we pass the beginning of the data buffer to
...
the parsing routines regardless of whether the buffer is re-aligned or not.
llvm-svn: 8693
2003-09-23 21:19:11 +00:00
Misha Brukman
12fd3ebd72
Stop returning bool and pass Instruction by reference;
...
return std::auto_ptr and use exceptions
llvm-svn: 8684
2003-09-23 16:17:50 +00:00
Misha Brukman
055804accd
Suggestions made by Chris:
...
* Instead of a #define, use inline function
* Fix the name on the #define, errr... now inline function to be more logical:
it doesn't CHECK the alignment, it PERFORMS the alignment
* To get string name of a Type*, use getDescription(), not getName()
llvm-svn: 8683
2003-09-23 16:15:29 +00:00
Misha Brukman
fbb96c627b
* Group class definitions & implementations together
...
* Make sure we align the buffer we're given
* Do not let exceptions propagate when the caller asks for a Module*
* Add doxygenified comments to wrapper functions
llvm-svn: 8682
2003-09-23 16:13:28 +00:00
Misha Brukman
63749f4126
* Constantify arguments to copy function
...
* Stop using a #define, make it an inline if statement
llvm-svn: 8678
2003-09-23 15:09:26 +00:00
Misha Brukman
e05ffcca52
Removed no longer used member variable.
...
llvm-svn: 8677
2003-09-22 23:58:08 +00:00
Misha Brukman
c68b0950aa
Added file header comment.
...
llvm-svn: 8675
2003-09-22 23:44:46 +00:00
Chris Lattner
b98aa0e0fb
Update file header for renamed file
...
llvm-svn: 8673
2003-09-22 23:42:00 +00:00
Misha Brukman
41f2a38c92
* Cleaned up code:
...
- no more passing around a string pointer to set errors
- no more returning booleans and checking for errors, we use C++ exceptions
* Broke functionality into 2 new classes, one reads from file, one from a stream
* Implemented lazy function streaming - the parser can read in a function at-a-time
llvm-svn: 8671
2003-09-22 23:38:23 +00:00
Chris Lattner
64791df910
Fix a spello Misha made while fixing one of my appostrifications
...
llvm-svn: 8510
2003-09-15 00:33:20 +00:00
Misha Brukman
629711a7c3
Fixed spelling and grammar.
...
llvm-svn: 8489
2003-09-11 22:34:13 +00:00
Chris Lattner
d75fa85cc1
Fix bug
...
llvm-svn: 8410
2003-09-08 19:43:46 +00:00
Chris Lattner
4ad8720f91
Add support for the unwind instruction
...
llvm-svn: 8408
2003-09-08 18:54:55 +00:00
Chris Lattner
049cadf854
Read volatile loads/stores
...
llvm-svn: 8401
2003-09-08 18:20:14 +00:00
Chris Lattner
cd6bbd3823
Remove a gross hack that was there to support bytecode files that are over a year old.
...
If you still have these suckers laying around, you have GOT to rebuild them. geeze.
llvm-svn: 8395
2003-09-08 18:04:16 +00:00
Chris Lattner
bc7004d26a
Add support for writing volatile load/stores
...
llvm-svn: 8394
2003-09-08 17:58:37 +00:00
Chris Lattner
a70297a209
Fix reading of invoke instrs
...
llvm-svn: 8365
2003-09-05 18:25:29 +00:00
Chris Lattner
1bb427b0a7
Whoa, we were misreading invoke instructions "normal" destinations quite badly.
...
llvm-svn: 8363
2003-09-05 05:27:58 +00:00
Chris Lattner
4caa92eca5
Non-functional change
...
llvm-svn: 8352
2003-09-04 23:47:07 +00:00
Chris Lattner
0b78090518
Avoid printing meaningless numbers
...
llvm-svn: 8342
2003-09-03 20:25:27 +00:00
Chris Lattner
4e722bde53
Follow the pattern of all other atu's
...
llvm-svn: 8340
2003-09-03 16:01:54 +00:00
Chris Lattner
03980a2b30
Allow modules to have 'any' pointer size and endianness. Luckily, we had
...
some space for extra flags, so we don't need to bump the revision number.
llvm-svn: 8118
2003-08-24 13:47:36 +00:00
Chris Lattner
f35db86ae4
Rename SwitchInst::dest_push_back -> addCase
...
llvm-svn: 8089
2003-08-23 23:14:52 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
1351c304dc
Remove redundant const qualifiers from cast<> expressions
...
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Chris Lattner
63ea851f94
Remove explicit const qualifiers
...
llvm-svn: 7245
2003-07-23 14:54:33 +00:00
Misha Brukman
5de3e14206
The word separate' only has one
e'.
...
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
John Criswell
258dfc0319
Merged in autoconf branch. This provides configuration via the autoconf
...
system.
llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner
75e1e892a6
Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.
...
llvm-svn: 6774
2003-06-18 19:22:36 +00:00
Chris Lattner
23450e834e
Fix bug: Assembler/2003-06-17-InvokeDisassemble.llx
...
"yes, invoke instructions can have just three arguments"
llvm-svn: 6736
2003-06-17 13:31:10 +00:00
Chris Lattner
0b18a0d886
Fix bug: Assembler/2003-05-03-BytecodeReaderProblem.llx
...
by emitting the type planes before any constants (which could be constant
expressions involving undefined types!)
llvm-svn: 6285
2003-05-22 18:35:38 +00:00
Chris Lattner
f354fef44b
Do not assert fail or crash when a bytecode parse fails!
...
llvm-svn: 6284
2003-05-22 18:26:48 +00:00
Chris Lattner
bb4bd699e0
Eliminate the uchar typedef, use unsigned char explicitly
...
llvm-svn: 6283
2003-05-22 18:08:30 +00:00
Chris Lattner
a8490da0eb
Fix Bug: Assembler/2003-05-12-MinIntProblem.llx
...
llvm-svn: 6123
2003-05-12 15:13:52 +00:00
Chris Lattner
e1faff42f4
Add support for the new va_arg instruction
...
llvm-svn: 6029
2003-05-08 02:44:12 +00:00
Misha Brukman
c881f68151
Fixed 'prevalent'.
...
llvm-svn: 5860
2003-04-23 02:59:05 +00:00
Chris Lattner
08a79481cd
Add support for reading and writing pointersize/endianness to and from bytecode
...
llvm-svn: 5839
2003-04-22 18:15:10 +00:00
Chris Lattner
3327cb03d4
Preserve module source information in the ModuleID
...
llvm-svn: 5836
2003-04-22 18:02:52 +00:00
Chris Lattner
c1da4513e0
Initial support for reading standard .a files
...
llvm-svn: 5820
2003-04-19 21:45:34 +00:00
Chris Lattner
8b1c27945b
Add support for reading unaligned bytecode buffers
...
llvm-svn: 5819
2003-04-19 21:45:17 +00:00
Chris Lattner
8453f87c9c
Fix a big bad bug I checked in yesterday :(
...
llvm-svn: 5807
2003-04-18 04:11:56 +00:00
Chris Lattner
545bebf00c
Add support to the bytecode reader/writer for the new linkage types
...
llvm-svn: 5790
2003-04-16 21:16:05 +00:00
Chris Lattner
fa4f750f3e
Add new linkage types to support a real frontend
...
llvm-svn: 5786
2003-04-16 20:28:45 +00:00
Chris Lattner
839f5a9077
Changes to the V2 bytecode format:
...
- Null values are implicitly encoded instead of explicitly, this makes
things more compact!
- More compactly represent ConstantPointerRefs
- Bytecode files are represented as:
Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
instead of
Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
which makes a lot of things simpler.
Writer changes:
- We now explictly encode versioning information in the bytecode files.
- This allows new code to read bytecode files produced by old code, but
new bytecode files can have enhancements such as the above. Although this
makes the reader a bit more complex (having to deal with old formats), the
writer only needs to be able to produce the most recent version.
llvm-svn: 5749
2003-03-19 20:56:46 +00:00
Chris Lattner
dd194d3844
* Bug fixes:
...
- Fix problems where the constant table would not get updated when
resolving constants causes other constants to change.
Changes to the V2 bytecode format
- Null values are implicitly encoded instead of explicitly, this makes
things more compact!
- More compactly represent ConstantPointerRefs
- Bytecode files are represented as:
Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
instead of
Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
which makes a lot of things simpler.
Changes to the reader:
- Function loading code is much simpler. We now no longer make function
PlaceHolderHelper objects to be replaced with real functions.
llvm-svn: 5748
2003-03-19 20:54:26 +00:00
Chris Lattner
1bb2b2b8c9
Infrastructure for more compact bytecode files and REAL support for versioning
...
llvm-svn: 5716
2003-03-06 17:55:45 +00:00
Chris Lattner
70b5574318
s/Method/Function in variable and method names
...
llvm-svn: 5715
2003-03-06 17:18:14 +00:00
Chris Lattner
66c7c883d3
Continue simplifying error handling, s/method/function
...
llvm-svn: 5714
2003-03-06 17:15:19 +00:00
Chris Lattner
5210697f31
Cleanup error handling constructs
...
llvm-svn: 5713
2003-03-06 17:03:28 +00:00
Chris Lattner
84c6e94784
Pull common code out
...
llvm-svn: 5712
2003-03-06 16:50:32 +00:00
Chris Lattner
f9b71aab86
Use the std namespace explicitly
...
llvm-svn: 5708
2003-03-06 16:32:25 +00:00
Chris Lattner
5282326985
Don't keep track of # big vs #small instructions seperately
...
llvm-svn: 5385
2003-01-21 20:13:49 +00:00
Chris Lattner
b5027095e5
- Eliminated the deferred symbol table stuff in Module & Function, it really
...
wasn't an optimization and it was causing lots of bugs.
llvm-svn: 4779
2002-11-20 18:36:02 +00:00
Chris Lattner
dd74dc44b6
- Fix a really nasty bug in the bytecode reader that caused it to fail
...
reading bytecode files with > 255 types in them, but only when optimization
is enabled. This was caused by GCC shrinking an enum to a single byte
instead of a whole word.
llvm-svn: 4266
2002-10-23 00:51:54 +00:00
Chris Lattner
a2c2d8af59
Wow, for some reason, when reading bytecode from stdin, we were only reading
...
4 bytes at a time. Change this to read blocks of 4k
llvm-svn: 4265
2002-10-22 23:55:24 +00:00
Chris Lattner
6ee0d4ed15
Clean up code a bit, no functionality changes.
...
llvm-svn: 4162
2002-10-14 03:34:17 +00:00
Chris Lattner
33988dc76d
There is no way to guarantee that constants are not forward referenced.
...
Handle forward referenced constants in a general way. This fixes bug:
Assembler/2002-10-13-ConstantEncodingProblem.llx and allows the SPEC
197.parser benchmark to be built
llvm-svn: 4161
2002-10-14 03:33:02 +00:00
Chris Lattner
82f54dca49
- Change Function's so that their argument list is populated when they are
...
constructed. Before, external functions would have an empty argument list,
now a Function ALWAYS has a populated argument list.
llvm-svn: 4149
2002-10-13 20:57:00 +00:00
Chris Lattner
fdf2ca9468
- Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
...
reflect the fact that it's a range being defined.
llvm-svn: 4147
2002-10-13 19:39:16 +00:00
Chris Lattner
7cf9f6f4b1
Updates to work with recent Statistic's changes:
...
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
llvm-svn: 4002
2002-10-01 22:38:41 +00:00
Anand Shukla
da24f223d3
Changed uchar to unsigned char in function ParseBytecodeBuffer, because seemingly it affects opt in uncertain ways :)
...
llvm-svn: 3866
2002-09-20 20:57:54 +00:00
Misha Brukman
ab67f309cd
On the quest of eliminating unnecessary includes.
...
llvm-svn: 3715
2002-09-14 02:18:57 +00:00
Chris Lattner
547be87c13
Change the MallocInst & AllocaInst ctors to take the allocated type, not the
...
pointer type returned.
llvm-svn: 3711
2002-09-13 22:28:50 +00:00
Chris Lattner
20b85d96e4
Eliminated the MemAccessInst class, folding contents into GEP class.
...
llvm-svn: 3487
2002-08-22 23:37:20 +00:00
Chris Lattner
969c616d51
Load & StoreInst no longer derive from MemAccessInst, so we don't have
...
to handle indexing anymore
llvm-svn: 3485
2002-08-22 22:49:05 +00:00
Chris Lattner
65c79aaf22
Emit an obnoxious warning message for bytecode that includes load/store
...
instructions that use indexing. Convert them transparently into a pair
of instructions.
llvm-svn: 3431
2002-08-21 22:55:27 +00:00
Chris Lattner
ebf7d3b8ff
Fix bug: test/Regression/Assembler/2002-08-19-BytecodeReader.llx
...
llvm-svn: 3384
2002-08-19 16:48:21 +00:00
Chris Lattner
8cc9a599b5
Turn off a debugging optimization that just slows bytecode reading down
...
llvm-svn: 3377
2002-08-18 00:38:32 +00:00
Chris Lattner
31188e9d7b
Fix stupid oversight of missing #include.
...
llvm-svn: 3367
2002-08-17 22:02:41 +00:00
Chris Lattner
f3d49adf85
- Finally nailed: test/Regression/Assembler/2002-08-16-ConstExprInlined.llx
...
- ParseConstantPool was resolving reference to value using the function
slot # instead of the global slot #.
- Bytecode reader changes:
- Remove the failure<> template from Bytecode Reader
- Remove extraneous #includes
- s/method/function/ a bit
- Eliminate the fwdRefs class that just added abstraction where it was not
needed, making things more complex.
- Use a vector instead of a list for function signatures.
llvm-svn: 3366
2002-08-17 22:01:27 +00:00
Chris Lattner
6a9d88347a
Remove support for Not ConstantExpr. This simplifies the unary case to only
...
have to support the cast instruction, so the function is renamed to getCast.
llvm-svn: 3328
2002-08-14 18:24:09 +00:00
Chris Lattner
1720a4c0b7
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
llvm-svn: 3161
2002-07-30 18:54:25 +00:00
Chris Lattner
12b9a2a7e6
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
llvm-svn: 3160
2002-07-30 18:54:22 +00:00
Chris Lattner
ec1a192b16
*** empty log message ***
...
llvm-svn: 3105
2002-07-26 18:40:14 +00:00
Chris Lattner
469e4fc557
Break line to fit 80 columns
...
llvm-svn: 3083
2002-07-25 15:40:04 +00:00
Chris Lattner
071b32361f
Register the WriteBytecodePass
...
llvm-svn: 3033
2002-07-23 19:56:44 +00:00
Chris Lattner
24bcbdd155
*** empty log message ***
...
llvm-svn: 3002
2002-07-23 17:52:38 +00:00
Chris Lattner
3f60c43a80
ConstExpr::getelementptr now takes a vector of Constants not Values
...
llvm-svn: 2948
2002-07-18 00:14:27 +00:00
Anand Shukla
14f0ab662d
added std:: to pair
...
llvm-svn: 2917
2002-07-16 00:04:57 +00:00
Anand Shukla
c01ca9bfd4
added std:: to vector
...
llvm-svn: 2916
2002-07-16 00:04:15 +00:00
Vikram S. Adve
e182dd58ae
Add support for writing ConstantExpr nodes.
...
llvm-svn: 2899
2002-07-14 23:08:30 +00:00
Vikram S. Adve
155a8ec344
Write out the plane for types first, since values of primitive types
...
may be constructed by expressions of other types (and so the
contents of the primitive type planes must come after all types).
Use a helper function outputConstantsInPlane in outputConstants to
do this.
llvm-svn: 2898
2002-07-14 23:07:51 +00:00
Vikram S. Adve
c5355ed343
Use a helper function outputConstantsInPlane in outputConstants.
...
llvm-svn: 2897
2002-07-14 23:05:53 +00:00
Vikram S. Adve
83551932d4
Add support for reading ConstantExpr nodes.
...
Add class ConstantFwdRefs to resolve forward references to constants
and to globals. (Hmm... this class could be renamed I guess.)
llvm-svn: 2896
2002-07-14 23:05:09 +00:00
Vikram S. Adve
81fee7fa10
Add support for reading ConstantExpr nodes.
...
Add class ConstantFwdRefs to resolve forward references to constants
and to globals (unified old code for globals into this).
llvm-svn: 2895
2002-07-14 23:04:18 +00:00
Chris Lattner
ab88b62968
Convert tabs to spaces
...
llvm-svn: 2805
2002-06-30 16:04:37 +00:00
Anand Shukla
b35aa2b2e7
changes to make it compatible with 64bit gcc
...
llvm-svn: 2790
2002-06-25 20:44:04 +00:00
Chris Lattner
d7cbd7d5d2
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2778
2002-06-25 16:13:21 +00:00
Chris Lattner
593394bb04
Fix constness problem
...
llvm-svn: 2759
2002-06-05 17:49:40 +00:00
Chris Lattner
8556c1936d
Fix constness problems now that the cast operators preserve the constness
...
of their argument
llvm-svn: 2758
2002-06-05 17:38:28 +00:00
Chris Lattner
fd8d5b852c
Replace all usages of Type::isPointerType with isa<PointerType>
...
llvm-svn: 2486
2002-05-06 16:15:30 +00:00
Chris Lattner
96e0c48175
Eliminate duplicate or unneccesary #include's
...
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner
321a8cf4ba
Split ConstantVals.h into Constant.h and Constants.h
...
llvm-svn: 2378
2002-04-28 19:55:58 +00:00
Chris Lattner
efd4654268
Remove unneccesary #include
...
llvm-svn: 2352
2002-04-28 04:50:19 +00:00
Chris Lattner
f43286a1e4
Make debugging code not use getStrValue
...
llvm-svn: 2295
2002-04-18 18:14:56 +00:00
Chris Lattner
5e12c7caf5
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
llvm-svn: 2216
2002-04-09 19:48:49 +00:00
Chris Lattner
cd3575a5cf
s/method/function
...
llvm-svn: 2177
2002-04-08 22:01:15 +00:00
Chris Lattner
8bfb164f22
llvm/Assembly/Writer.h is unneccesary except for extreme output
...
isLabelType is obsolete
llvm-svn: 2176
2002-04-08 21:59:36 +00:00
Chris Lattner
137fa92dce
* Move include/llvm/Analysis/SlotCalculator.h to include/llvm/SlotCalculator.h
...
because the slot calculator is already part of the VMCore library.
* Rename incorporateMethod and purgeMethod to *Function
llvm-svn: 2154
2002-04-07 22:49:37 +00:00
Chris Lattner
bc15ae64dd
Change references to the Method class to be references to the Function
...
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144
2002-04-07 20:49:59 +00:00
Chris Lattner
ff6ec9b552
Enable better debug output. When debugging the type system, print out the
...
type tables after reading a bytecode file to make sure they are ok
llvm-svn: 2126
2002-04-07 06:11:22 +00:00
Chris Lattner
8afff0c29a
s/MethodType/FunctionType
...
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner
798be9a43a
Add debug support
...
llvm-svn: 2105
2002-04-04 19:24:11 +00:00
Chris Lattner
8c98acc07f
s/Method/Function
...
llvm-svn: 2035
2002-03-29 03:51:11 +00:00
Chris Lattner
849c762b02
Change references from Method to Function
...
change references from MethodARgument to FunctionArgument
llvm-svn: 1991
2002-03-26 18:01:55 +00:00
Chris Lattner
c481e92886
Rename Method to Function
...
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner
b0a2c5546b
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner
071f08916e
Chuck fixed the GCC problems so this hack is now unneccesary
...
llvm-svn: 1519
2002-01-21 23:17:07 +00:00
Chris Lattner
3dc9a2a61f
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner
43c92f9dbd
Remove unsized array support
...
llvm-svn: 1461
2001-12-14 16:30:51 +00:00
Chris Lattner
8ab6f31913
Add pointer indexing support
...
llvm-svn: 1460
2001-12-14 16:30:09 +00:00
Chris Lattner
c4a5815033
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
f6b7da2bb5
Rename ConstPoolVal -> Constant
...
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
bcf2df7058
Split the PHINode class out from the iOther.h file into the iPHINode.h file
...
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner
f90b19a71c
Move support directory
...
llvm-svn: 1401
2001-11-29 16:32:16 +00:00
Chris Lattner
e577171af8
Implement internal method support
...
llvm-svn: 1374
2001-11-26 18:56:10 +00:00
Chris Lattner
47661d9be5
Implement array indexing
...
llvm-svn: 1337
2001-11-26 16:54:55 +00:00
Chris Lattner
7d0854c71e
Remove debug info :(
...
llvm-svn: 1280
2001-11-12 21:52:57 +00:00
Chris Lattner
a6ada3716c
Fix bug in new assertion
...
llvm-svn: 1279
2001-11-12 21:48:38 +00:00
Chris Lattner
3dc54c19b3
Add an assertion check
...
llvm-svn: 1276
2001-11-12 20:30:32 +00:00
Chris Lattner
2dce653a78
I don't know what I was thinking
...
llvm-svn: 1275
2001-11-12 20:30:12 +00:00
Chris Lattner
9010727e28
Fix obscure nasty bug with bytecode writing that could cause the last byte to be dropped.
...
llvm-svn: 1123
2001-11-04 21:32:41 +00:00
Chris Lattner
d61e4631f5
Fix major bugs in type resolution
...
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner
b0b7551e5f
Frivolous cleanups
...
llvm-svn: 973
2001-10-24 06:21:22 +00:00
Chris Lattner
668806b733
Dang it, do NOT check in code that enables debugging. Bad chris
...
llvm-svn: 972
2001-10-24 05:14:35 +00:00
Chris Lattner
7ec504f5dc
Changes to get some meaningful feedback from the bytecode reader. At some point this stuff should all be exception driven, but for now it is not.
...
llvm-svn: 970
2001-10-24 01:15:12 +00:00
Chris Lattner
1e04123949
Oops, didn't mean to check in enabled debugging support. :(
...
llvm-svn: 962
2001-10-23 03:21:42 +00:00
Chris Lattner
bc4f868dd8
Fixed a LONG standing, SCARY problem with bytecode encoding. It turns out to be an endian problem that only shows up with type 0 instructions in LARGE programs.
...
llvm-svn: 961
2001-10-23 03:21:10 +00:00
Chris Lattner
0553612e11
Allow unresolved/opaque types to be read and written to bytecode files
...
llvm-svn: 959
2001-10-23 01:53:22 +00:00
Chris Lattner
e8b0d4522f
Fix another annoying bug that took forever to track down. This one involves abstract type resolution at a bad time that broke symbol tables.
...
llvm-svn: 958
2001-10-23 01:53:01 +00:00
Chris Lattner
9c5e9e028e
Fix problem with a cast instruction that must be expanded to type 0
...
llvm-svn: 929
2001-10-21 00:14:44 +00:00
Chris Lattner
f790ec066e
Dang, we were losing the Constant bit on globals. Fix this
...
llvm-svn: 885
2001-10-18 06:11:23 +00:00
Chris Lattner
fd1ab08cba
Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
...
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
9acb843577
External methods shouldn't have argument lists
...
llvm-svn: 807
2001-10-14 23:28:41 +00:00
Chris Lattner
21a0de20bf
* Use new style casts more
...
* Add real support for global variable addresses initializing constants
* Fix encoding/decoding of VarArgs calls
* Support the Invoke instruction
llvm-svn: 761
2001-10-13 06:48:38 +00:00
Chris Lattner
601ab4b0ff
* Add real support for global variable addresses initializing constants
...
* Add minor optimization to BytecodeParser::refineAbstractType
* MethodType::get now take an explicit isVarArg parameter
* Fix encoding/decoding of VarArgs calls
* Support the Invoke instruction
llvm-svn: 760
2001-10-13 06:47:01 +00:00
Chris Lattner
5eb7388b84
Rename getNullPointer to getNull
...
llvm-svn: 708
2001-10-03 15:39:24 +00:00
Chris Lattner
a01eda3091
* Both Method & GlobalVariable now subclass GlobalValue
...
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
08b1dde37e
Commit more code over to new cast style
...
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83
Convert more code to use new style casts
...
Eliminate old style casts from value.h
llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80
Add more support for new style casts
...
Convert more code to use them
llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96
Add support for new style casts
...
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
b77eae1b27
Implement constant pointers, and null specifically in the parser, bytecode writer, and
...
bytecode reader.
llvm-svn: 668
2001-09-30 22:46:54 +00:00
Chris Lattner
9b45b18404
Pull iterators out of CFG.h and CFGdecls and put them in Support directory
...
llvm-svn: 664
2001-09-28 22:56:31 +00:00
Chris Lattner
ac91b150a7
Add support for global constants, and for initializers for constants
...
llvm-svn: 598
2001-09-18 04:01:05 +00:00
Chris Lattner
fb161a3063
Fix a bug with not removing method level types after compilation
...
llvm-svn: 582
2001-09-14 22:03:42 +00:00
Chris Lattner
00391ca46d
ModuleTyID doesn't exist anyymore
...
Use correct cast
llvm-svn: 539
2001-09-10 20:09:08 +00:00
Chris Lattner
ee86b5f051
getMethodType is now just getType
...
llvm-svn: 538
2001-09-10 20:08:52 +00:00
Chris Lattner
9d1629d688
Implement global variable support
...
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
28154ea366
* Emit bytecode using a deque instead of a vector to be faster
...
* Internal rep no longer has a constant pool
* Support emission of recursive types
* Don't output a constant pool for an external method
* The bytecode writer is no longer a module analyzer
llvm-svn: 449
2001-09-07 16:39:41 +00:00
Chris Lattner
0d073caf6c
* Remove support for internal constant pool
...
* Support globally unique constants
* Support recursive and forward referenced types
* Support abstract types
* Add new BCR_TRACE macro to enable debugging of why the bytecode reader
occasionally refuses to read something
llvm-svn: 448
2001-09-07 16:37:43 +00:00
Chris Lattner
64c7f2be62
* Make sure that the size of the type field can also control the output
...
instruction pattern.
llvm-svn: 324
2001-07-28 17:51:21 +00:00
Chris Lattner
29c977bd03
* Add calls to failure template so that it is actually possible to debug
...
why bytecode parsing is failing. Just put a breakpoint in the failure
templates.
llvm-svn: 323
2001-07-28 17:50:18 +00:00
Chris Lattner
fc1d7dd221
Add support for extern varargs methods & varargs method calls
...
llvm-svn: 297
2001-07-25 22:47:55 +00:00
Chris Lattner
2b73dd7866
Doh! Wrong accessor. Caused 'can not read bytecode' errors. :(
...
llvm-svn: 282
2001-07-23 18:51:23 +00:00
Chris Lattner
ff6c44f04f
Moved inline/llvm/Tools/* to include/llvm/Support/*
...
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner
964af23ab4
Add support to the bytecode writer to recognize floating point constants
...
llvm-svn: 190
2001-07-15 00:17:23 +00:00
Chris Lattner
856ac86318
Add support to the bytecode reader to recognize floating point constants
...
llvm-svn: 189
2001-07-15 00:17:18 +00:00
Chris Lattner
f3410f8701
* The parent of a constant pool is a symtabvalue, not a value.
...
llvm-svn: 181
2001-07-14 06:10:49 +00:00
Chris Lattner
6065e61656
Implementation of Store & GetElementPtr
...
llvm-svn: 164
2001-07-08 23:22:50 +00:00
Chris Lattner
dccda26cd8
Implemented shl, shl, & load instructions
...
llvm-svn: 161
2001-07-08 21:10:27 +00:00
Chris Lattner
3473967aeb
Moved Cast from being a Unary instruction to being an "Other" instruction
...
llvm-svn: 160
2001-07-08 19:03:27 +00:00
Chris Lattner
7a7ddef47e
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
1619a709b4
Convert BinaryOperand and UnaryOperator to only take instruction types of
...
the appropriate enum
llvm-svn: 153
2001-07-07 20:17:23 +00:00
Chris Lattner
c00392210d
Broad superficial changes:
...
* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
llvm-svn: 152
2001-07-07 19:24:15 +00:00
Chris Lattner
6f7587e4d3
Changed the fundemental architecture of Operands for Instructions. Now
...
Operands are maintained as a vector<Use> in the User class, and operator
iterators are provided as before. Getting an operand no longer requires
a virtual function call.
WARNING: getOperand(x) where x >= getNumOperands() will now assert instead
of returning null!
llvm-svn: 149
2001-07-07 08:36:50 +00:00
Chris Lattner
d616582a7a
Miscellaneous cleanups:
...
* Convert post to pre-increment for for loops
* Use generic programming more
* Use new Value::cast* instructions
* Use new Module, Method, & BasicBlock forwarding methods
* Use new facilities in STLExtras.h
* Use new Instruction::isPHINode() method
llvm-svn: 96
2001-06-27 23:41:11 +00:00
Chris Lattner
07b100a643
Convert ugly postincrement to efficient preincrement
...
llvm-svn: 89
2001-06-27 23:34:01 +00:00
Chris Lattner
287398c2a9
Renamed get.*Operator to create seeing that it would have to be qualified
...
with the classname anyways.
llvm-svn: 74
2001-06-25 07:31:31 +00:00
Chris Lattner
a6d2f96bdb
Updates to support
...
* Changes in PHI node structure
llvm-svn: 25
2001-06-11 15:04:40 +00:00
Chris Lattner
11c3121788
Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
...
to the UnaryOperator class (from the Instruction class).
llvm-svn: 21
2001-06-08 21:30:13 +00:00
Chris Lattner
e6b9b382e2
Initial revision
...
llvm-svn: 2
2001-06-06 20:29:01 +00:00