Commit Graph

2369 Commits

Author SHA1 Message Date
Misha Brukman
b41dabd8ad Make a single `NoFPElim' switch available to all targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14296 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 21:07:51 +00:00
Misha Brukman
877338c6cf Let's be consistent: listing format `os/arch'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14293 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 18:43:23 +00:00
Chris Lattner
418da55c89 Rename Interval class to LiveInterval to avoid conflicting with the already
existing llvm::Interval class.

Patch contributed by Vladimir Prus!
http://mail.cs.uiuc.edu/pipermail/llvmbugs/2004-June/000710.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 13:10:56 +00:00
Chris Lattner
c2dfb8bb90 Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
code.  Patch contributed by Vladimir Prus.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14280 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 12:12:12 +00:00
Chris Lattner
2fce098f94 Header moved into the CodeGen directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14267 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 07:50:32 +00:00
Chris Lattner
90a62c8d4b Start moving IntrinsicLowering out of VMCore into libcodegen, as per PR346
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14264 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 07:40:46 +00:00
Chris Lattner
762a76b891 Add methods like BinaryOperator::createAdd that take an instruction to insert
before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 05:02:56 +00:00
Chris Lattner
c8fd918aa1 Initial checkin of the StableBasicBlockNumbering, a little helper class for computing
(strangely enough) a stable (determinstic) numbering for basic blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14246 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-19 08:41:59 +00:00
Misha Brukman
0ed24ad968 Add a target-independent way to query page size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14232 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18 15:30:25 +00:00
Chris Lattner
f70c22b019 Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17 18:19:28 +00:00
Brian Gaeke
694ffc0850 I'm afraid this doesn't exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14193 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-16 00:26:45 +00:00
Chris Lattner
4ee623de0b isnan is dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14191 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 21:52:58 +00:00
Alkis Evlogimenos
9685372062 Add the isunordered intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14159 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-12 19:19:14 +00:00
Chris Lattner
51a54e6f1b It is no longer 2001
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 21:12:22 +00:00
Misha Brukman
6e404b897b Fix grammar: 's is for possessive only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14155 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 16:50:21 +00:00
Reid Spencer
1cf5024de1 Implement tracking of bytecode instruction size and the number of long
instructions generated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14154 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 15:10:38 +00:00
Reid Spencer
8a9a3706ff Revert an unneeded interface change to Instruction.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 03:06:43 +00:00
Chris Lattner
137cc4fc8c I misled Alkis: LLVM should have isnan, not isunordered.
isunordered(X, Y) === isnan(X) | isnan(Y)

Remove isunordered, add isnan.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 02:29:43 +00:00
Alkis Evlogimenos
f616f22e81 Add the isunordered intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 01:08:18 +00:00
Reid Spencer
38a6cfe41e Updated the BytecodeAnalysis data structure to contain additional fields
needed for analysis of individual functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14125 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 22:28:11 +00:00
Reid Spencer
def0e55c87 Added an isPhiNode(unsigned) static method to determine if an opcode is
a PhiNode or not. Needed by Bytecode Analyzer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 22:27:10 +00:00
Misha Brukman
236b7e2142 Remove extra space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14117 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 12:51:35 +00:00
Reid Spencer
00c28a7481 Implemented the bulk of the functionality. Cleaned up the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14113 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 08:09:13 +00:00
Chris Lattner
5118872dd2 Add new BinaryOperator::createAdd/Sub/... methods to avoid having to type
llvm::Instruction:: all of the time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14105 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 01:43:29 +00:00
Reid Spencer
4502b37d7a Add some new fields for bytecode analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14092 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:18:53 +00:00
Reid Spencer
6269ded8ee Cleaned up a dead header file to prevent duplicate definition warnings
in doxygen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14084 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 04:38:34 +00:00
Chris Lattner
97baedc8c5 I checked and no clients expect this to return null for unconditional branches
Simplify code and make it more uniform.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 22:03:05 +00:00
Brian Gaeke
0bbcd6bfd1 Add a forwarding method pop_front() that allows you to delete instructions
from the beginning of a MBB.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:47 +00:00
Brian Gaeke
777a1cde66 Add a TmpInstruction ctor that doesn't take a MCFI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:46 +00:00
Chris Lattner
85b0195f0e 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 17:44:21 +00:00
Misha Brukman
ef39012738 Fix case of doxygen directive `\p': it's lowercase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 13:49:17 +00:00
Chris Lattner
c07c0df634 Add documentation to the TargetFrameInfo class, contributed by Vladimir Prus
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14060 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 06:23:17 +00:00
Reid Spencer
381022b61f Clean up documentation and make it possible for the BytecodeAnalyzer to
store the output of the bytecode dumper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 05:55:53 +00:00
Reid Spencer
dac69c83c2 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14048 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-07 17:53:43 +00:00
John Criswell
d66215607c Added checks for mkstemp and getrusage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14047 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-07 14:26:24 +00:00
Chris Lattner
5df5a428d3 Macros are baaad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14039 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:54:11 +00:00
Chris Lattner
49b007b01b Don't #include <unistd.h> directly, go through the config files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14038 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:27:38 +00:00
Chris Lattner
96698a5ec7 Warning foo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14035 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:17:13 +00:00
Misha Brukman
acc9076e86 Revert ostream back to reference: the only user (llvm-tv) no longer needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14029 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 21:10:35 +00:00
Chris Lattner
bc2de3c515 Add some constants for VC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14028 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:58:34 +00:00
Chris Lattner
775b08d9e8 Fix a *really* dumb warning on VC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14025 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:47:19 +00:00
Chris Lattner
43714d11ea Fix more warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14024 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:39:05 +00:00
Chris Lattner
fb04197c01 Remove support for printing strings from the cached writer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14023 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:34:51 +00:00
Chris Lattner
63d64a80bc GCC doesn't like prefix form of cast with two identifiers I guess.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14021 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:21:53 +00:00
Chris Lattner
c285da73a4 Silence a warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14019 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:10:17 +00:00
Chris Lattner
745feacfd6 Add ssize_t for VC++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14018 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:06:33 +00:00
Chris Lattner
5811862f23 <io.h> provides read/write/open/...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14017 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:05:35 +00:00
Chris Lattner
a833fca56c Visual C has something resembling a stat function, but it doesn't provide S_ISREG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14016 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:03:06 +00:00
Chris Lattner
44eaf9b354 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14015 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:25:50 +00:00
Chris Lattner
d1e89d657c Add more needed typedefs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14014 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:11:04 +00:00
Chris Lattner
2908ca78b0 Add explicit casts to silence warnings. There is no need to use snprintf here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14013 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:10:30 +00:00
Chris Lattner
6549b82535 Make this work with VC++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14012 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:01:49 +00:00
Chris Lattner
4f02562ec1 Fix a nasty bug that caused areAliases to always return false.
Bug fix courtesy of Anshu Dasgupta


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14011 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 17:03:11 +00:00
Misha Brukman
a7afa37f3c Clarify documentation and use correct doxygen comment form /// vs. // .
Thanks to Vladimir Prus for corrections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14009 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 14:51:25 +00:00
Chris Lattner
51ae205adf The prototype for ParseCommandLineOptions changed at some point, but this
was never updated.  I guess GCC just ignores the prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13995 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 22:07:26 +00:00
Chris Lattner
d924d6b35d Adjust argument to match destination data type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13993 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 21:14:56 +00:00
Chris Lattner
caeb8b4041 Don't use identifiers that start with an _
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13992 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 21:12:02 +00:00
Chris Lattner
6bf7ca5f6f Only use the non-standards-compliant std::distance on the compiler that is
buggy, not for all compilers that are not GCC 3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13990 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 18:48:59 +00:00
Misha Brukman
046b1622eb Fix case of doxygen directive \p.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13985 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 15:14:00 +00:00
Brian Gaeke
498231bc60 Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, its
only concrete implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13977 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 02:45:09 +00:00
Chris Lattner
36c2a05935 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13950 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:53:25 +00:00
Chris Lattner
2a7f15e50b Add a new CopyFile function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13944 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 00:51:20 +00:00
Chris Lattner
6db8c2c5ca On win32, process.h provides some of the traditional stuff that unistd
provides.  This seems like a relatively clean way to get it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13936 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-01 23:47:00 +00:00
Alkis Evlogimenos
6924063bf2 Pull Interval class out of LiveIntervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13910 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:46:27 +00:00
Alkis Evlogimenos
1da7e8e0b3 Add comparator useful for natural comparisons on collections with
pointers to objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13909 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:45:09 +00:00
Alkis Evlogimenos
26f5a69e52 When spilling an register, introduce a new temporary for each of its
spills. This allows for more flexibility when allocating registers for
spill code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:24:39 +00:00
Alkis Evlogimenos
f717a05698 Remove defs vector from live intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13892 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 16:18:57 +00:00
Chris Lattner
3796024fb8 Fix bizzare problems when you include Config/dlfcn and Config/windows.h in
the same xlation unit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13885 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 21:07:11 +00:00
Chris Lattner
eaca89b48e Eliminate this form of SymbolTable::remove. It ignores the type argument
anyway.  Add a form that takes a type_iterator for the C backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 05:30:29 +00:00
Chris Lattner
34e40d44c2 Add a new function for the JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13869 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 00:58:48 +00:00
Chris Lattner
eb08299518 Add a pair of functions to hide system specific details of mapping a file in for reading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13863 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 00:23:48 +00:00
Chris Lattner
f0f3c06a90 An "autoconf wrapper" for the infamous windows.h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13849 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 20:51:22 +00:00
John Criswell
b2815e0139 Added a check for a new header file.
My apologies for changing config.h.in.  Now you will all have to
re-configure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13846 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 20:40:39 +00:00
Chris Lattner
3166440855 Moved header from include/Support/ to include/llvm/System
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13810 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 05:30:18 +00:00
Alkis Evlogimenos
75dbe8eafa Add constructors that take a BasicBlock to append to, to the rest of
the llvm::Instruction hierarchy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13800 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 00:15:23 +00:00
Alkis Evlogimenos
f6e8cb4954 Inline trivial constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13797 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 22:07:18 +00:00
Reid Spencer
75719bf239 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13795 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:48:31 +00:00
Reid Spencer
9b41dcfa60 Tighten up checking on SymbolTable interface to make it illegal to pass a
Type* where a Value* is expected.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13794 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:46:18 +00:00
Alkis Evlogimenos
e5828f1fa7 Refactor common initialization code in private init() functions.
This is a first step in supplying append to basic block constructors
for all instruction types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13793 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:41:09 +00:00
Misha Brukman
6f3512865e Fix spelling of doxygen directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13791 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 17:42:51 +00:00
Reid Spencer
798ff64328 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13785 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 07:37:11 +00:00
Reid Spencer
a85b8cf110 Make the constructor explicit so we can't implicitly convert bool to
SlotTable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13766 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 19:09:25 +00:00
Reid Spencer
293a55f9f0 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13764 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 18:44:51 +00:00
Reid Spencer
e0b295afd6 Removed unused, useless header file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13757 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 17:28:35 +00:00
Reid Spencer
ec55b08fd0 Give Type its own dump() method in preparation for Type != Value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:46:04 +00:00
Reid Spencer
bdfb668fee 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:45:53 +00:00
Reid Spencer
3afbb1ab10 Convert dump() method to call Type::dump() instead of Value::dump().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13744 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:45:42 +00:00
Chris Lattner
02140b025d Add some helpers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13737 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 05:32:13 +00:00
Tanya Lattner
17fb34bf8c Moved MachineBasicBlock deconstructor to cpp file and removed it from LeakDetector to fix memory leak bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13718 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 07:14:35 +00:00
Tanya Lattner
792699c46e Added MachineFunction parent* to MachineBasicBlock. Customized ilist template
to set the parent when a MachineBasicBlock is added to a MachineFunction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13716 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 06:11:51 +00:00
Tanya Lattner
0c63e03e04 Changed clone to be const.
Changed copy constructor to set parent, prev, and next pointers to null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 03:14:18 +00:00
Chris Lattner
942ae1a07d Add the new GC intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13686 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:16:33 +00:00
Chris Lattner
bab838e76d Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:16:13 +00:00
Chris Lattner
ab8c565768 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13678 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:12:38 +00:00
Chris Lattner
bc78225518 Add interfaces to update value numbering results
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13677 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:11:17 +00:00
Chris Lattner
c43e0ae350 Rename a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13676 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:10:58 +00:00
Tanya Lattner
b5159ed0cb Fixed up my changes to add support for cloning Machine Instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 20:58:02 +00:00
Alkis Evlogimenos
14d2638e38 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13664 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 20:54:39 +00:00
Tanya Lattner
466b534a57 Adding support to clone MachineInstr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 19:35:12 +00:00
Vikram S. Adve
6ffd14dd54 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13651 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 08:05:14 +00:00