1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
Commit Graph

2620 Commits

Author SHA1 Message Date
Reid Spencer
3e8a01d80f Remove definition and use of OtherVal enumerator. This just fixes a thinko.
llvm-svn: 14634
2004-07-06 01:30:36 +00:00
Reid Spencer
37b31cbcba Move SlotCalculator.h to lib/Bytecode/Writer since that is the only place
that needs it after the Type != Value changes (bug 122).

llvm-svn: 14605
2004-07-04 11:36:31 +00:00
Reid Spencer
725398ad54 Make all the virtual function (except destructor) inline so there are
default implementations without taking up a ton of space in a .cpp file.

llvm-svn: 14603
2004-07-04 11:29:56 +00:00
Reid Spencer
a53681ae93 Add a new, compatible, interface function for writing types as operands.
This is necessary because Types are no longer Values.

llvm-svn: 14598
2004-07-04 10:59:05 +00:00
Reid Spencer
925f7fd54c Added #include <iostream> since this header is no longer picked up from
the Value.h header.

llvm-svn: 14597
2004-07-04 10:58:20 +00:00
Reid Spencer
678b551d2b - Remove enumerator TypeVal since Values can't be types any more
- Remove isa_impl relationship between Types and Values
- Add OtherVal so "other" users can interact with Values.

llvm-svn: 14596
2004-07-04 10:52:28 +00:00
Reid Spencer
eb12af7769 There is no longer a "Type" primitive type because Values and Types are
now distinct.

llvm-svn: 14595
2004-07-04 10:50:43 +00:00
Reid Spencer
ff486345fd Constify usage of Type* on the interface to ensure SymbolTable doesn't
modify types (it never should). Clean up some comments.

llvm-svn: 14594
2004-07-04 10:49:41 +00:00
Reid Spencer
037f53dadd Remove all of the classof(const Value*) methods of the derived types since
the Type base class no longer derives from Value.

llvm-svn: 14593
2004-07-04 10:48:27 +00:00
Reid Spencer
01068980b7 Make Type have no base classes. Previously it inherited Value. Also
removed the TypeTyID and TypeTy members so that the notion of the
"Type Type" is no longer present in LLVM. Various other adjustments
resulting from these changes were also made.

llvm-svn: 14592
2004-07-04 10:46:49 +00:00
Alkis Evlogimenos
b60ef8f308 Add more operators.
llvm-svn: 14589
2004-07-04 01:30:54 +00:00
Chris Lattner
f0af72ac49 Fix Type::isSized() to realize that "{ opaque }" is not sized
llvm-svn: 14585
2004-07-02 23:20:17 +00:00
Chris Lattner
d61ef00bc5 Since we are in the department of redundancy department, at least be correct
llvm-svn: 14582
2004-07-02 18:41:18 +00:00
Chris Lattner
c71f8fcb8e Add a new pass for code generators to use
llvm-svn: 14562
2004-07-02 05:44:13 +00:00
Misha Brukman
3f5007bdd0 * Doxygenify comments
* Tabs-to-spaces

llvm-svn: 14549
2004-07-01 20:42:00 +00:00
Chris Lattner
4a33b02af8 Move init methods out of line to enable better assertions, contributed
by Vladimir Merzliakov!

llvm-svn: 14545
2004-07-01 20:22:31 +00:00
Chris Lattner
08fb05fe14 Now that we have happy mappings from MBBs->numbers, use them instead of keeping
a LV private map

llvm-svn: 14522
2004-07-01 06:14:57 +00:00
Chris Lattner
d9411df2c0 Change the implementation of the autonumbering for MBB's a bit to provide
the reverse mapping as well as the mapping from MBB->unsigned

llvm-svn: 14519
2004-07-01 06:01:36 +00:00
Reid Spencer
54405c93a8 Provide support for the BytecodeHandler interface which will be called by
the bcreader if one is supplied to the bytecode reader's interface
functions.

llvm-svn: 14489
2004-06-29 23:20:03 +00:00
Reid Spencer
30929e9de2 Fix include guard
Adjust comments
Make handlers for constants provide useful information.

llvm-svn: 14488
2004-06-29 23:18:52 +00:00
Reid Spencer
4007ca4da9 Adjust comments to match code.
Allow analysis to return the module created by the bcreader.

llvm-svn: 14487
2004-06-29 23:17:34 +00:00
Chris Lattner
89393e9cfd Add new header
llvm-svn: 14461
2004-06-28 06:31:26 +00:00
Chris Lattner
8f4173433d Remove dead file
llvm-svn: 14459
2004-06-28 00:46:54 +00:00
Chris Lattner
adff3f7355 Remove two dead passes
llvm-svn: 14456
2004-06-28 00:43:25 +00:00
Chris Lattner
7de3acb655 Move file to lib/Analysis/DataStructure
llvm-svn: 14454
2004-06-28 00:40:43 +00:00
Chris Lattner
08f4d224e7 Moved to lib/analysis/datastructure
llvm-svn: 14451
2004-06-28 00:30:29 +00:00
Chris Lattner
552cc597c5 Moved to lib/Analysis/DataStructure
llvm-svn: 14449
2004-06-28 00:27:34 +00:00
Chris Lattner
de1c8b455c Moved to lib/Analysis/DataStructure
llvm-svn: 14447
2004-06-28 00:20:39 +00:00
Chris Lattner
78e3b3650e Now that the SparcV9 specific MachineCodeForInstruction class uses it's own
map on the side, Instruction no longer has to be Annotable.  This reduces
the size of the Instruction class by another 4 bytes (on a 32-bit system).

llvm-svn: 14439
2004-06-27 18:57:34 +00:00
Chris Lattner
b6b8d6e242 This class is no longer an annotation
llvm-svn: 14437
2004-06-27 18:50:49 +00:00
Chris Lattner
642e65c537 Add a map of MachineCodeForInstruction objects to MachineFunctionInfo
llvm-svn: 14436
2004-06-27 18:50:30 +00:00
Chris Lattner
dd7c37af2e Eliminate the Instruction::iType field, folding it into the Value::VTy field.
This reduces the size of the instruction class by 4 bytes, and means that
isa<CallInst>(V) (for example) only needs to do one load from memory instead
of two.

llvm-svn: 14434
2004-06-27 18:38:24 +00:00
Chris Lattner
f0870ad57b Get rid of Annotable's vtable. If anyone deletes an object through an Annotable*,
they get what they deserve.

This reduces the size of Instruction & Function by 4 bytes each.

llvm-svn: 14433
2004-06-27 18:36:39 +00:00
Chris Lattner
19e5c047c7 Make it obvious that this file is bad bad bad
llvm-svn: 14432
2004-06-27 18:21:20 +00:00
Chris Lattner
2926c33e27 Make ctor inline, change ValueTy ->unsigned
llvm-svn: 14430
2004-06-27 18:01:15 +00:00
Chris Lattner
b6833e4a48 Consider anything with a ValueType that is >= Instruction to be an instruction
llvm-svn: 14429
2004-06-26 20:51:50 +00:00
Chris Lattner
e7d0c7576f Rearrange some code.
llvm-svn: 14427
2004-06-26 20:33:27 +00:00
Chris Lattner
322e7a8990 Hey, why not just make 'new ReturnInst(BB)' DTRT?
llvm-svn: 14422
2004-06-25 23:10:30 +00:00
Chris Lattner
c466f996ca new ReturnInst(BB) does not "do the right thing". Add an assert to catch it
sooner rather than later.

llvm-svn: 14421
2004-06-25 23:06:57 +00:00
Chris Lattner
2420a80afa Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!
llvm-svn: 14397
2004-06-25 07:41:06 +00:00
Reid Spencer
776fdd441f - Changed Handler.h -> BytecodeHandler.h
- Fixed some small coding standard compliance issues in BytecodeHandler.h

llvm-svn: 14393
2004-06-25 02:32:27 +00:00
Chris Lattner
73f4c9fcd2 Okay, Module have not been known as 'C' for a LONG time now
llvm-svn: 14392
2004-06-25 00:42:23 +00:00
Chris Lattner
c5c6255889 Unbreak the build. tsk tsk
llvm-svn: 14390
2004-06-25 00:18:02 +00:00
Tanya Lattner
da38dc5180 Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.
llvm-svn: 14389
2004-06-25 00:13:11 +00:00
Misha Brukman
a2b7b5b128 Add a LowercaseString() utility function, courtesy of brg.
llvm-svn: 14383
2004-06-24 23:38:52 +00:00
Reid Spencer
fd6af2f261 Definition of the Bytecode Handler interface. Subclasses can override just
the methods they are interested in to perform out-of-band tasks while the
BytecodeReader is constructing a module. Handlers should *not* modify any
of the LLVM IR objects during this process.

llvm-svn: 14380
2004-06-24 23:05:07 +00:00
Chris Lattner
228e6d64d0 Remove distasteful method which is really part of the indvars pass
llvm-svn: 14359
2004-06-24 06:52:20 +00:00
Misha Brukman
0ae5becf22 Moved to include/llvm/Support
llvm-svn: 14350
2004-06-23 17:24:53 +00:00
Brian Gaeke
251a2b53ec Provide prototypes for IsNAN() wrapper.
llvm-svn: 14339
2004-06-23 00:25:24 +00:00
Brian Gaeke
68ace5fc48 Regenerated.
It looks to me like people haven't been running AutoRegen.sh. Grumble grumble.

llvm-svn: 14337
2004-06-22 23:47:23 +00:00
John Criswell
43a84d337d Added the llvm/test/Programs/Makefile.test Makefile.
Added a check for isnan() while I was at it.

llvm-svn: 14333
2004-06-22 21:35:10 +00:00
Misha Brukman
e38f7ed2cc Spell out `NoFramePointerElim' for readability.
llvm-svn: 14299
2004-06-21 21:17:44 +00:00
Misha Brukman
2b3c4ca665 Make a single `NoFPElim' switch available to all targets.
llvm-svn: 14296
2004-06-21 21:07:51 +00:00
Misha Brukman
03cf1fc233 Let's be consistent: listing format `os/arch'.
llvm-svn: 14293
2004-06-21 18:43:23 +00:00
Chris Lattner
3a8e3bce6c Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
code.  Patch contributed by Vladimir Prus.

llvm-svn: 14280
2004-06-21 12:12:12 +00:00
Chris Lattner
6f6b95abe2 Header moved into the CodeGen directory
llvm-svn: 14267
2004-06-20 07:50:32 +00:00
Chris Lattner
9da4181217 Start moving IntrinsicLowering out of VMCore into libcodegen, as per PR346
llvm-svn: 14264
2004-06-20 07:40:46 +00:00
Chris Lattner
ba933051e3 Add methods like BinaryOperator::createAdd that take an instruction to insert
before.

llvm-svn: 14261
2004-06-20 05:02:56 +00:00
Chris Lattner
49af533d57 Initial checkin of the StableBasicBlockNumbering, a little helper class for computing
(strangely enough) a stable (determinstic) numbering for basic blocks.

llvm-svn: 14246
2004-06-19 08:41:59 +00:00
Misha Brukman
d3a8478981 Add a target-independent way to query page size.
llvm-svn: 14232
2004-06-18 15:30:25 +00:00
Chris Lattner
0cd29ae2cd Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Brian Gaeke
9f7f63256d I'm afraid this doesn't exist.
llvm-svn: 14193
2004-06-16 00:26:45 +00:00
Chris Lattner
7c3600a50e isnan is dead
llvm-svn: 14191
2004-06-15 21:52:58 +00:00
Alkis Evlogimenos
9b28aef6cb Add the isunordered intrinsic.
llvm-svn: 14159
2004-06-12 19:19:14 +00:00
Chris Lattner
a8fd205112 It is no longer 2001
llvm-svn: 14157
2004-06-11 21:12:22 +00:00
Misha Brukman
4fdc92647b Fix grammar: 's is for possessive only.
llvm-svn: 14155
2004-06-11 16:50:21 +00:00
Reid Spencer
efdd7cd3ac Implement tracking of bytecode instruction size and the number of long
instructions generated.

llvm-svn: 14154
2004-06-11 15:10:38 +00:00
Reid Spencer
7172b26a18 Revert an unneeded interface change to Instruction.h
llvm-svn: 14137
2004-06-11 03:06:43 +00:00
Chris Lattner
b07bf147cd I misled Alkis: LLVM should have isnan, not isunordered.
isunordered(X, Y) === isnan(X) | isnan(Y)

Remove isunordered, add isnan.

llvm-svn: 14132
2004-06-11 02:29:43 +00:00
Alkis Evlogimenos
1ae8b4e7c4 Add the isunordered intrinsic.
llvm-svn: 14127
2004-06-11 01:08:18 +00:00
Reid Spencer
b2f8a70990 Updated the BytecodeAnalysis data structure to contain additional fields
needed for analysis of individual functions.

llvm-svn: 14125
2004-06-10 22:28:11 +00:00
Reid Spencer
aa6ccbcdee Added an isPhiNode(unsigned) static method to determine if an opcode is
a PhiNode or not. Needed by Bytecode Analyzer.

llvm-svn: 14124
2004-06-10 22:27:10 +00:00
Misha Brukman
d3374cf482 Remove extra space.
llvm-svn: 14117
2004-06-10 12:51:35 +00:00
Reid Spencer
ce1adf1ff0 Implemented the bulk of the functionality. Cleaned up the code.
llvm-svn: 14113
2004-06-10 08:09:13 +00:00
Chris Lattner
9a3779e0a0 Add new BinaryOperator::createAdd/Sub/... methods to avoid having to type
llvm::Instruction:: all of the time.

llvm-svn: 14105
2004-06-10 01:43:29 +00:00
Reid Spencer
149dc84ce8 Add some new fields for bytecode analysis.
llvm-svn: 14092
2004-06-09 06:18:53 +00:00
Reid Spencer
323cc6283d Cleaned up a dead header file to prevent duplicate definition warnings
in doxygen.

llvm-svn: 14084
2004-06-09 04:38:34 +00:00
Chris Lattner
2e3aa45491 I checked and no clients expect this to return null for unconditional branches
Simplify code and make it more uniform.

llvm-svn: 14077
2004-06-08 22:03:05 +00:00
Brian Gaeke
fb83999991 Add a forwarding method pop_front() that allows you to delete instructions
from the beginning of a MBB.

llvm-svn: 14074
2004-06-08 18:52:47 +00:00
Brian Gaeke
4b0b12c188 Add a TmpInstruction ctor that doesn't take a MCFI.
llvm-svn: 14073
2004-06-08 18:52:46 +00:00
Chris Lattner
95ac084df9 Apparently a particular vendor compiler uses the struct/class tag to MANGLE
symbols with.  Therefore, if you do not use struct/class consistently, you can
get LINK ERRORS.  grr.

This fixes the link errors for libsupport and vmcore.

-Chris

llvm-svn: 14070
2004-06-08 17:44:21 +00:00
Misha Brukman
db138d0f67 Fix case of doxygen directive `\p': it's lowercase.
llvm-svn: 14068
2004-06-08 13:49:17 +00:00
Chris Lattner
0c385225b2 Add documentation to the TargetFrameInfo class, contributed by Vladimir Prus
llvm-svn: 14060
2004-06-08 06:23:17 +00:00
Reid Spencer
03ec821b37 Clean up documentation and make it possible for the BytecodeAnalyzer to
store the output of the bytecode dumper.

llvm-svn: 14058
2004-06-08 05:55:53 +00:00
Reid Spencer
329505d08b Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This tool
will (eventually) provide statistical analysis of bytecode files as well
as the ability to dump them in a low level format (slot numbers not
resolved). The purpose of this is to aid in the Type!=Value change of
bug 122. With this initial release, llvm-abcd merely dumps out the
bytecode. However, the infrastructure for separating bytecode parsing from
handling the parsing events is in place. The style chosen is similar to
SAX XML parsing where a handler object is called to handlign the parsing
events. This probably isn't useful to anyone but me right now as there is
no analysis yet, and the dumper doesn't work on every bytecode file. It
will probably be useful by the end of this week. Note that there is some
duplication of code from the bytecode reader.  This was done to eliminate
errors from being introduced in the reader and to minimize the impact to
other LLVM developers. At some point, the Analyzer and the Reader will be
integrated to use the same infrastructure. Also, sorry for the minor change
to Instruction.h but I just couldn't bring myself to write code that
depends on Instruction internals.

llvm-svn: 14048
2004-06-07 17:53:43 +00:00
John Criswell
ed7b25499c Added checks for mkstemp and getrusage.
llvm-svn: 14047
2004-06-07 14:26:24 +00:00
Chris Lattner
169b067879 Macros are baaad.
llvm-svn: 14039
2004-06-05 00:54:11 +00:00
Chris Lattner
757a99eb41 Don't #include <unistd.h> directly, go through the config files
llvm-svn: 14038
2004-06-05 00:27:38 +00:00
Chris Lattner
202207c83f Warning foo
llvm-svn: 14035
2004-06-05 00:17:13 +00:00
Misha Brukman
b07dadab93 Revert ostream back to reference: the only user (llvm-tv) no longer needs it.
llvm-svn: 14029
2004-06-04 21:10:35 +00:00
Chris Lattner
6ec14eee8b Add some constants for VC
llvm-svn: 14028
2004-06-04 20:58:34 +00:00
Chris Lattner
1cfb453364 Fix a *really* dumb warning on VC
llvm-svn: 14025
2004-06-04 20:47:19 +00:00
Chris Lattner
68ee80d686 Fix more warnings
llvm-svn: 14024
2004-06-04 20:39:05 +00:00
Chris Lattner
192d223d78 Remove support for printing strings from the cached writer
llvm-svn: 14023
2004-06-04 20:34:51 +00:00
Chris Lattner
73c62c067f GCC doesn't like prefix form of cast with two identifiers I guess.
llvm-svn: 14021
2004-06-04 20:21:53 +00:00
Chris Lattner
db1b83334e Silence a warning
llvm-svn: 14019
2004-06-04 20:10:17 +00:00
Chris Lattner
494d2b2caa Add ssize_t for VC++
llvm-svn: 14018
2004-06-04 20:06:33 +00:00
Chris Lattner
0a5701bc3d <io.h> provides read/write/open/...
llvm-svn: 14017
2004-06-04 20:05:35 +00:00
Chris Lattner
52d1b9e247 Visual C has something resembling a stat function, but it doesn't provide S_ISREG
llvm-svn: 14016
2004-06-04 20:03:06 +00:00
Chris Lattner
4db85f02c4 Make this work on VC++, pull the HAVE_ALLOCA_H case out instead of duplicating
it.  This code can probably be dramatically simplified, as I suspect that the
pragma and other stuff is not needed with C++ compilers.

llvm-svn: 14015
2004-06-04 19:25:50 +00:00
Chris Lattner
646490b874 Add more needed typedefs
llvm-svn: 14014
2004-06-04 19:11:04 +00:00
Chris Lattner
bfe3149bf3 Add explicit casts to silence warnings. There is no need to use snprintf here.
llvm-svn: 14013
2004-06-04 19:10:30 +00:00
Chris Lattner
0dc2095242 Make this work with VC++
llvm-svn: 14012
2004-06-04 19:01:49 +00:00
Chris Lattner
11d0f8d30e Fix a nasty bug that caused areAliases to always return false.
Bug fix courtesy of Anshu Dasgupta

llvm-svn: 14011
2004-06-04 17:03:11 +00:00
Misha Brukman
d608ac24d7 Clarify documentation and use correct doxygen comment form /// vs. // .
Thanks to Vladimir Prus for corrections.

llvm-svn: 14009
2004-06-04 14:51:25 +00:00
Chris Lattner
ee9db04c44 The prototype for ParseCommandLineOptions changed at some point, but this
was never updated.  I guess GCC just ignores the prototype

llvm-svn: 13995
2004-06-03 22:07:26 +00:00
Chris Lattner
a079b13320 Adjust argument to match destination data type
llvm-svn: 13993
2004-06-03 21:14:56 +00:00
Chris Lattner
54280727f7 Don't use identifiers that start with an _
llvm-svn: 13992
2004-06-03 21:12:02 +00:00
Chris Lattner
00604592aa Only use the non-standards-compliant std::distance on the compiler that is
buggy, not for all compilers that are not GCC 3

llvm-svn: 13990
2004-06-03 18:48:59 +00:00
Misha Brukman
0366f47359 Fix case of doxygen directive \p.
llvm-svn: 13985
2004-06-03 15:14:00 +00:00
Brian Gaeke
e3e792cefa Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, its
only concrete implementation.

llvm-svn: 13977
2004-06-03 02:45:09 +00:00
Chris Lattner
2963942e84 Delete the V9 specific findOptimalStorageSize method, inlining it into all callers.
Substantially clean up all target implementations by having the OPTIONAL get*Info
methods return a pointer instead of a reference.  This allows us to have default
implementations!

llvm-svn: 13950
2004-06-02 05:53:25 +00:00
Chris Lattner
4ce125fa2c Add a new CopyFile function
llvm-svn: 13944
2004-06-02 00:51:20 +00:00
Chris Lattner
3b0942f64e On win32, process.h provides some of the traditional stuff that unistd
provides.  This seems like a relatively clean way to get it.

llvm-svn: 13936
2004-06-01 23:47:00 +00:00
Alkis Evlogimenos
4ca4d3e7c9 Add comparator useful for natural comparisons on collections with
pointers to objects.

llvm-svn: 13909
2004-05-30 07:45:09 +00:00
Chris Lattner
6548651756 Fix bizzare problems when you include Config/dlfcn and Config/windows.h in
the same xlation unit

llvm-svn: 13885
2004-05-28 21:07:11 +00:00
Chris Lattner
66a81809ff Eliminate this form of SymbolTable::remove. It ignores the type argument
anyway.  Add a form that takes a type_iterator for the C backend.

llvm-svn: 13873
2004-05-28 05:30:29 +00:00
Chris Lattner
a691850f26 Add a new function for the JIT
llvm-svn: 13869
2004-05-28 00:58:48 +00:00
Chris Lattner
77bd6789a8 Add a pair of functions to hide system specific details of mapping a file in for reading.
llvm-svn: 13863
2004-05-28 00:23:48 +00:00
Chris Lattner
93ec1684c5 An "autoconf wrapper" for the infamous windows.h file
llvm-svn: 13849
2004-05-27 20:51:22 +00:00
John Criswell
4b96ba79aa Added a check for a new header file.
My apologies for changing config.h.in.  Now you will all have to
re-configure.

llvm-svn: 13846
2004-05-27 20:40:39 +00:00
Chris Lattner
60be6e4483 Beta-test moving a header from include/Support into the llvm hierarchy:
it seems to work :)

llvm-svn: 13814
2004-05-27 05:42:33 +00:00
Chris Lattner
04dd3fe76d Moved header from include/Support/ to include/llvm/System
llvm-svn: 13810
2004-05-27 05:30:18 +00:00
Alkis Evlogimenos
2c463a8a99 Add constructors that take a BasicBlock to append to, to the rest of
the llvm::Instruction hierarchy.

llvm-svn: 13800
2004-05-27 00:15:23 +00:00
Alkis Evlogimenos
bf27c54995 Inline trivial constructors.
llvm-svn: 13797
2004-05-26 22:07:18 +00:00
Reid Spencer
9a0451787d Provide the correct patch for bug 345. The solution is to add a setTypeName
function to llvmAsmParser.y and then use it in the one place in the grammar
that needs it. Also had to make Type::setName public because setTypeName
needs it in order to retain compatibility with setValueName.

llvm-svn: 13795
2004-05-26 21:48:31 +00:00
Reid Spencer
e4f0ec88eb Tighten up checking on SymbolTable interface to make it illegal to pass a
Type* where a Value* is expected.

llvm-svn: 13794
2004-05-26 21:46:18 +00:00
Alkis Evlogimenos
edff018f18 Refactor common initialization code in private init() functions.
This is a first step in supplying append to basic block constructors
for all instruction types.

llvm-svn: 13793
2004-05-26 21:41:09 +00:00
Misha Brukman
d6ce85d48c Fix spelling of doxygen directive.
llvm-svn: 13791
2004-05-26 17:42:51 +00:00
Reid Spencer
dccf1747a1 Part of bug 122:
This change removes the BuildBytecodeInfo flag from the SlotCalculator
class. This flag was needed to distinguish between the Bytecode/Writer
and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can
remove this flag and simplify some code. Also, some minor name changes
to CachedWriter.h needed to be committed (missed in previous commit).

llvm-svn: 13785
2004-05-26 07:37:11 +00:00
Reid Spencer
8e6d7148c1 Make the constructor explicit so we can't implicitly convert bool to
SlotTable.

llvm-svn: 13766
2004-05-25 19:09:25 +00:00
Reid Spencer
92adcaf58c Adding the initial implementation of the SlotTable class. This class is
the Abstract Data Type that holds slot number values and associates them
with Type* and Value*. The SlotTable is simply the holder of the slot
numbers and provides a controlled interface for building the table. It does
not enforce any particular idiom or functionality for manipulating the slot
numbers.

This is part of bug_122. The SlotCalculator and SlotMachine classes will
follow.

llvm-svn: 13764
2004-05-25 18:44:51 +00:00
Reid Spencer
122d536042 Removed unused, useless header file.
llvm-svn: 13757
2004-05-25 17:28:35 +00:00
Reid Spencer
495ac831bb Give Type its own dump() method in preparation for Type != Value.
llvm-svn: 13746
2004-05-25 08:46:04 +00:00
Reid Spencer
987a052f3a Completely rewrote the class. SymbolTable now separates Type* from Value* in preparation\
for making Type not derive from Value. There are now separate interfaces \
for looking up, finding, and inserting Types and Values. There are also \
three separate iterator interfaces, one for type planes, one for the types \
(type type plane), and one for values within a type plane. See the \
documentation in the Header file.

llvm-svn: 13745
2004-05-25 08:45:53 +00:00
Reid Spencer
33a58c0a10 Convert dump() method to call Type::dump() instead of Value::dump().
llvm-svn: 13744
2004-05-25 08:45:42 +00:00
Chris Lattner
0185a86e38 Add some helpers
llvm-svn: 13737
2004-05-25 05:32:13 +00:00
Tanya Lattner
7cf16701f7 Moved MachineBasicBlock deconstructor to cpp file and removed it from LeakDetector to fix memory leak bug.
llvm-svn: 13718
2004-05-24 07:14:35 +00:00
Tanya Lattner
aabaaec037 Added MachineFunction parent* to MachineBasicBlock. Customized ilist template
to set the parent when a MachineBasicBlock is added to a MachineFunction.

llvm-svn: 13716
2004-05-24 06:11:51 +00:00
Tanya Lattner
55477a5af1 Changed clone to be const.
Changed copy constructor to set parent, prev, and next pointers to null.

llvm-svn: 13706
2004-05-24 03:14:18 +00:00
Chris Lattner
a65df8b576 Add the new GC intrinsics
llvm-svn: 13686
2004-05-23 21:16:33 +00:00
Chris Lattner
f9d9fd95bd Add a new prototype
llvm-svn: 13685
2004-05-23 21:16:13 +00:00
Chris Lattner
bdc2cf6dec Several *major* changes to the AA interfaces:
1. Provide interfaces so that clients can update alias analyses to reflect
   the changes made by the transformations.
2. Change how alias analysis implementations work overall.  In particular,
   now clients will automatically forward to chained AA implementations: they
   don't have to remember to do it themselves.

llvm-svn: 13678
2004-05-23 21:12:38 +00:00
Chris Lattner
fe63a87a98 Add interfaces to update value numbering results
llvm-svn: 13677
2004-05-23 21:11:17 +00:00
Chris Lattner
0588bd19d2 Rename a method
llvm-svn: 13676
2004-05-23 21:10:58 +00:00
Tanya Lattner
e755fc6689 Fixed up my changes to add support for cloning Machine Instructions.
llvm-svn: 13665
2004-05-23 20:58:02 +00:00
Alkis Evlogimenos
b8938f3fec Remove virtual destructor from InstVisitor. This class should never be
used through a base pointer/reference so inproper destruction should
never be an issue. Removing this last virtual function also saves 4
bytes off each InstVisitor instance.

llvm-svn: 13664
2004-05-23 20:54:39 +00:00
Tanya Lattner
2848065a29 Adding support to clone MachineInstr
llvm-svn: 13661
2004-05-23 19:35:12 +00:00
Vikram S. Adve
35a7240e8a Remember the set of leaders. Also compute on demand and cache the equiv
class for each leader.   Finally, rename Elem2ECLeaderMap to Elem2LeaderMap
(most of the changed lines are only due to the latter).

llvm-svn: 13651
2004-05-23 08:05:14 +00:00
Vikram S. Adve
f4fed4aaa2 Add getCaller() method.
llvm-svn: 13650
2004-05-23 08:02:45 +00:00
Vikram S. Adve
893c53a559 Fix size/offset assertion to allow negative offsets and folded nodes.
llvm-svn: 13644
2004-05-23 07:34:53 +00:00
Brian Gaeke
f00f4ca846 Fix a typo in the head-of-file comment.
Rewrite the comments about the different versions of BuildMI, to
better emphasize their differences.

llvm-svn: 13642
2004-05-23 05:04:00 +00:00
Chris Lattner
628e839194 It's not clear to me whether the old version was correct C++ code, but in
any case it's not portable.

llvm-svn: 13621
2004-05-21 18:38:16 +00:00
Chris Lattner
068c3a1858 Starting an identifier with an _ is not legal C/C++ code.
llvm-svn: 13620
2004-05-21 18:37:13 +00:00
Alkis Evlogimenos
fd3b0971bf Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.
llvm-svn: 13602
2004-05-19 19:17:48 +00:00
Misha Brukman
eb2d4f5589 Minor aesthetic alignments; no functional changes.
llvm-svn: 13593
2004-05-17 22:28:21 +00:00
Misha Brukman
d32edbdc09 * Minor aesthetic alignment of iterator declarations
* Removed redundant function comments

llvm-svn: 13592
2004-05-17 22:25:12 +00:00
Brian Gaeke
6e9dd8d3cc Define erase forwarding method on traces
llvm-svn: 13591
2004-05-17 21:17:21 +00:00
Brian Gaeke
b964085c4c Fix a comment.
llvm-svn: 13518
2004-05-12 21:57:23 +00:00
Brian Gaeke
0315644cd7 Add a NextMBBNumber field w/ incrementing accessor method, for
function-level unique numbering of MBBs.

llvm-svn: 13513
2004-05-12 21:35:21 +00:00
Brian Gaeke
a0d9f814da Add a Number field w/ accessor method, for function-level unique numbering
of MBBs.

Add non-const MachineBasicBlock::getParent() accessor method.

llvm-svn: 13512
2004-05-12 21:35:20 +00:00
Chris Lattner
337ea7709a Add support for inserting all prototypes up-front
llvm-svn: 13431
2004-05-09 04:29:49 +00:00
Tanya Lattner
c69bb49340 Fixed up sched graph.
llvm-svn: 13428
2004-05-08 16:14:24 +00:00
Tanya Lattner
9b4ee61855 Registering the ModuloScheduling pass.
llvm-svn: 13427
2004-05-08 16:14:02 +00:00
Tanya Lattner
f97f4f8760 Changed CPUResource to allow access to max num users for a resource.
Also added ModuloScheduling as a friend.

llvm-svn: 13426
2004-05-08 16:13:26 +00:00
Chris Lattner
49980050b5 Add the enum corresponding to the source change I made earlier
llvm-svn: 13395
2004-05-07 02:27:32 +00:00
Alkis Evlogimenos
6345ab33dd Fix for gcc3.4: invalid use of forward delacred class on line 93
llvm-svn: 13370
2004-05-06 02:07:42 +00:00
Brian Gaeke
dfe0d9af07 Move the stuff that fixes the size, orientation & fonts of graphs to
the debugging functions that call "dot". These fixed settings have
various problems: for example, the fixed size that is set in the graph
traits classes is not appropriate for turning the dot file into a PNG,
and if TrueType font rendering is being used, the 'Courier' TrueType font
may not be installed. It seems easy enough to specify these things on the
command line, anyhow.

llvm-svn: 13366
2004-05-05 06:10:06 +00:00
Brian Gaeke
2165451812 Apply simplification suggested by Chris: why assign() when operator = will do?
llvm-svn: 13364
2004-05-04 22:02:41 +00:00
Brian Gaeke
ba26360c7e Add "Args" optional argument to AbstractInterpreter factory methods, which
fills in a ToolArgs vector in the AbstractInterpreter if it is set. This
ToolArgs vector is used to pass additional arguments to LLI and/or LLC.
This is intended to address Bug 40.

Also, make -debug-only=toolrunner work for the LLC and CBE
AbstractInterpreters.

llvm-svn: 13356
2004-05-04 21:09:01 +00:00
Misha Brukman
4d6a3d4e1e Provide visit(Module&) and visitModule(Module&) functionality.
llvm-svn: 13353
2004-05-04 18:30:38 +00:00
Brian Gaeke
e9fab81769 Add BBTrace accessor method and data member.
llvm-svn: 13351
2004-05-04 17:11:13 +00:00
Brian Gaeke
c9d203e3d2 New header file containing profile info enums shared between the C++ analysis
libraries and the C runtime support library

llvm-svn: 13347
2004-05-04 16:57:57 +00:00
Chris Lattner
2e752b62b4 Initialize member out of paranoia
llvm-svn: 13319
2004-05-02 16:06:40 +00:00
Brian Gaeke
397162e886 Chris told me to take these assertions out a few days ago, but I forgot to
check this in.

llvm-svn: 13313
2004-05-02 01:04:52 +00:00
Chris Lattner
dd7eb23ccf Stop LiveVariables from using BasicBlocks as part of the mapping, instead
use MachineBasicBlocks.

llvm-svn: 13300
2004-05-01 21:23:35 +00:00
Chris Lattner
939685e14b Move the GraphTraits for MachineBasicBlocks to the MachineBasicBlock file.
llvm-svn: 13299
2004-05-01 21:05:34 +00:00
Tanya Lattner
6332b09438 Sorry, now friend class name should be right!!
llvm-svn: 13294
2004-04-30 20:48:37 +00:00
Tanya Lattner
7a414c92c2 Fixed friend class name for ModuloScheduling.
llvm-svn: 13293
2004-04-30 20:47:59 +00:00
Tanya Lattner
185c13da4c Fixed friend class name for ModuloSched
llvm-svn: 13292
2004-04-30 20:46:40 +00:00
Tanya Lattner
077c819d5a Removing MachineResource class.
llvm-svn: 13291
2004-04-30 20:40:38 +00:00
Brian Gaeke
af5e2f1ea5 Add machine-CFG graph traits specializations.
llvm-svn: 13288
2004-04-29 17:43:55 +00:00
Misha Brukman
3673c653b5 * Make contained ostream not public.
* Remove various print methods that called the Value* method, just have one that
  all subclasses of Value will use anyway.
* Remove template for printing constant references
* Add methods to print char* and strings
* setStream now sets the stream on the contained AssemblyWriter

llvm-svn: 13246
2004-04-28 19:22:58 +00:00
Misha Brukman
dd23f36ed6 * Add ability to get and set the output stream
* New feature: outputting a Type* as symbolic, controlled via the stream
  similarly to sending std::hex to change number format

llvm-svn: 13226
2004-04-28 15:30:33 +00:00
Brian Gaeke
8e3668faca Add pred./succ. list size methods.
llvm-svn: 13214
2004-04-28 04:46:35 +00:00
Brian Gaeke
369fa0ed81 Move private methods to end of class decl at Chris's request
llvm-svn: 13210
2004-04-28 04:15:06 +00:00
Brian Gaeke
d63179c70b Fix thinkos that Chris caught for me.
Make pred mutators private.

llvm-svn: 13209
2004-04-28 03:59:48 +00:00
Brian Gaeke
213538a039 Add machine-code CFG support: MachineBasicBlocks may now have their own
predecessors and successors

llvm-svn: 13208
2004-04-28 02:16:33 +00:00
Chris Lattner
adacba2678 Fix warning
llvm-svn: 13189
2004-04-27 18:21:56 +00:00
Chris Lattner
02c65b5395 Changes to fix up the inst_iterator to pass to boost iterator checks. This
patch was graciously contributed by Vladimir Prus.

llvm-svn: 13185
2004-04-27 15:13:33 +00:00
Brian Gaeke
9679a3b445 Because I like being able to instantiate the cfgprinter from external projects,
this header file is born.

llvm-svn: 13176
2004-04-26 16:27:53 +00:00
Brian Gaeke
1aada2b128 Fix a typo in a comment.
llvm-svn: 13174
2004-04-26 16:26:21 +00:00
Misha Brukman
d41853bbe2 Aggregating function arguments is now an option. Default is `no', as before.
llvm-svn: 13142
2004-04-23 23:54:34 +00:00
Chris Lattner
b2e1576e72 Remove the SCEV::expandCodeFor method, add a new SCEVVisitor class.
llvm-svn: 13133
2004-04-23 21:28:25 +00:00
Brian Gaeke
071e2bce64 Merged this file into the SparcV9 target.
llvm-svn: 13128
2004-04-23 18:17:03 +00:00
Brian Gaeke
2f5697a29f Add emitWordAt() - a quick and dirty interface that the machine-dependent
emitters can use to emit "relocations".

llvm-svn: 13116
2004-04-23 17:11:12 +00:00
Misha Brukman
1dc8e19185 Clarify the logic: the flag is renamed to `deleteFn' to signify it will delete
the function instead of isolating it. This also means the condition is reversed.

llvm-svn: 13112
2004-04-22 23:00:51 +00:00
Misha Brukman
94f0180757 Add a boolean flag to delete this function from module, leaving the rest behind.
Useful in manual debugging when bugpoint isn't quite up to snuff.

llvm-svn: 13110
2004-04-22 22:51:37 +00:00
Chris Lattner
c79f8aeb82 Add an ugly cast
llvm-svn: 13107
2004-04-22 15:00:36 +00:00
Chris Lattner
bfc19a576a Add a method
llvm-svn: 13105
2004-04-22 14:56:51 +00:00
Alkis Evlogimenos
021d5aa5eb Declare iterator as public since it is defined as such (gcc-3.4 fix)
llvm-svn: 13090
2004-04-21 16:10:40 +00:00
Chris Lattner
522abc00b8 Allow getting the module from a call graph
llvm-svn: 13086
2004-04-20 21:52:12 +00:00
Chris Lattner
ce041cae67 Change it to take a callgraph, from which we can get a module
llvm-svn: 13085
2004-04-20 21:52:07 +00:00
Chris Lattner
c3714a870c Add the ability for SCC passes to initialize and finalize themselves
llvm-svn: 13084
2004-04-20 21:30:06 +00:00
Chris Lattner
10c5fa0de9 Add accessor for a Loop Unswitching pass
llvm-svn: 13066
2004-04-19 06:28:37 +00:00
Chris Lattner
6aa66a1cae Eliminate a poorly conceived method
llvm-svn: 13065
2004-04-19 06:26:46 +00:00
Chris Lattner
c35a86f48b * Improve file header comment
* Remove #include
* Add some methods to update loop/loopinfo
* Stop explicitly holding the loop depth in the Loop class.  Instead, just
  dynamically calculate it.  This makes it easier to update LoopInfo as a
  result of transformations.

llvm-svn: 13059
2004-04-19 03:03:19 +00:00
Chris Lattner
0ce3a74370 Provide an interface that is more convenient for iterating over the blocks
in a loop.

llvm-svn: 13052
2004-04-18 23:37:03 +00:00
Chris Lattner
83017d0b1b Add new method.
llvm-svn: 13049
2004-04-18 22:45:16 +00:00
Chris Lattner
7174acca00 Change the ExitBlocks list from being explicitly contained in the Loop
structure to being dynamically computed on demand.  This makes updating
loop information MUCH easier.

llvm-svn: 13045
2004-04-18 22:14:10 +00:00
Chris Lattner
b17c6d4732 Add a new method
llvm-svn: 13035
2004-04-18 06:54:34 +00:00
Chris Lattner
a8ec64511a Allow clients to delete loops, add a new method
llvm-svn: 13031
2004-04-18 05:37:42 +00:00
Chris Lattner
27fd823c1b Add prototype
llvm-svn: 13029
2004-04-18 05:20:32 +00:00
Brian Gaeke
76f386fd75 Switch to including <iostream> for compatibility with gcc-3.0.x (Debian).
llvm-svn: 12990
2004-04-16 16:28:33 +00:00
Brian Gaeke
2a087ad673 Include <string> for compatibility with gcc 3.0.x (the system compiler on
Debian.)

llvm-svn: 12985
2004-04-16 15:57:14 +00:00
Misha Brukman
7c46021fe7 Assert if Instruction is being deleted before being removed from BasicBlock.
llvm-svn: 12982
2004-04-16 15:46:43 +00:00
Misha Brukman
3fa1037635 Don't use invalid HTML in doxygen comments.
llvm-svn: 12963
2004-04-15 15:24:55 +00:00
Chris Lattner
5c992ad183 Add some helpful methods
llvm-svn: 12959
2004-04-15 15:15:40 +00:00
Chris Lattner
0d220df227 Publically export all of these classes from the ScalarEvolutions.cpp file
llvm-svn: 12957
2004-04-15 15:06:59 +00:00
Brian Gaeke
cd21d1e40f Add a copy constructor for TargetData.
llvm-svn: 12948
2004-04-14 17:45:48 +00:00
Chris Lattner
ffd151e5a9 Temporarily hack in the intrinsics that John added. I expect him to finish up their addition, but in the meantime, the build should not be broken.
llvm-svn: 12938
2004-04-14 02:22:54 +00:00
Chris Lattner
2bf8038c69 Add new interfaces
llvm-svn: 12918
2004-04-13 19:28:32 +00:00
Chris Lattner
fd1cfeeb1d Add some methods that are useful for updating loop information.
llvm-svn: 12871
2004-04-12 20:26:17 +00:00
Chris Lattner
12e1831ffe Change the call graph class to have TWO external nodes, making call graph
SCC passes much more useful.  In particular, this should fix the incredibly
stupid missed inlining opportunities that the inliner suffered from.

llvm-svn: 12860
2004-04-12 05:36:32 +00:00
Chris Lattner
ba50022f83 Make comments above APIs reflect what they should do.
llvm-svn: 12830
2004-04-11 16:42:50 +00:00
Chris Lattner
d0345fb4a1 New method to allow more efficient clients
llvm-svn: 12829
2004-04-11 16:35:30 +00:00
Chris Lattner
3def8f7eab Note to self: SAVE FILES!
llvm-svn: 12823
2004-04-10 22:32:47 +00:00
Chris Lattner
50afdb258f Add an interface to update value numbering
llvm-svn: 12822
2004-04-10 22:32:09 +00:00
Chris Lattner
697d1d7df2 Clarify interface
llvm-svn: 12805
2004-04-10 06:11:29 +00:00
John Criswell
d4fe3ec1d1 Added the llvm.readport and llvm.writeport intrinsics.
llvm-svn: 12780
2004-04-08 20:26:21 +00:00
Brian Gaeke
95213bd702 This file does not appear to be included anywhere.
llvm-svn: 12777
2004-04-08 19:36:26 +00:00
Brian Gaeke
14dadd43e1 This file is no longer used.
llvm-svn: 12767
2004-04-07 21:01:22 +00:00
Chris Lattner
1b6512141d Be more restrictive with the index types we allow for sequential types
llvm-svn: 12650
2004-04-05 01:25:21 +00:00
Chris Lattner
eb1caeca2a Add ConstantExpr::get(Sign|Zero)Extend methods
llvm-svn: 12648
2004-04-04 23:20:30 +00:00
Chris Lattner
81e7a8ffc5 Support iteration over constant instructions
llvm-svn: 12645
2004-04-04 19:46:54 +00:00
Chris Lattner
5eab55b846 Allow for use of arbitrary iterator types...
llvm-svn: 12642
2004-04-03 23:29:11 +00:00
Brian Gaeke
8a82884f63 Regenerated using autoheader-2.57.
llvm-svn: 12637
2004-04-02 21:26:03 +00:00
Chris Lattner
409ef7935c Remove obsolete files
llvm-svn: 12633
2004-04-02 20:56:24 +00:00
Chris Lattner
292d3956ae cleanup some long-dead code
llvm-svn: 12628
2004-04-02 20:46:26 +00:00
Chris Lattner
eba77e8c71 Ignore configure produced files
llvm-svn: 12627
2004-04-02 20:34:30 +00:00
Chris Lattner
74911ffd6b Add a new analysis
llvm-svn: 12619
2004-04-02 20:23:17 +00:00
Chris Lattner
c0fede30c5 Make the verifier API more complete and useful
llvm-svn: 12608
2004-04-02 15:44:33 +00:00
Chris Lattner
d6b2556f07 Add new function
llvm-svn: 12601
2004-04-02 05:04:12 +00:00
Misha Brukman
da1fac0cee Fix grammar.
llvm-svn: 12590
2004-04-01 17:15:42 +00:00
Chris Lattner
c241db65d6 Allow converting a builder to an iterator
llvm-svn: 12586
2004-04-01 04:03:10 +00:00
Brian Gaeke
e7f4f73f67 Add clear() forwarding method.
llvm-svn: 12580
2004-03-31 22:43:12 +00:00
Chris Lattner
34112aa99f Improve description, add warning
llvm-svn: 12570
2004-03-31 21:59:07 +00:00
Chris Lattner
3f24ea6ccf MachineBasicBlock::remove should not change the iterator passed into it
llvm-svn: 12569
2004-03-31 21:58:50 +00:00
Chris Lattner
58a6a4d57a Add a simple select instruction lowering pass
llvm-svn: 12540
2004-03-30 18:41:10 +00:00
Chris Lattner
e78381e9f1 Add some new methods
llvm-svn: 12539
2004-03-30 00:20:08 +00:00