Commit Graph

2024 Commits

Author SHA1 Message Date
Alkis Evlogimenos
9fe7602862 Revert changes. Will implement this using a different set of primitives
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11091 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-02 23:08:58 +00:00
Alkis Evlogimenos
782ce955b2 Add MachineOperand::setDef() and MachineOperand::setUse() so that the
TwoAddressInstructionPass can correctly update use/def information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11086 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-02 21:55:18 +00:00
Brian Gaeke
2d62c896a5 Add prototype for llvm::allocatePowerPCTargetMachine().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11072 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-02 19:05:08 +00:00
Chris Lattner
c07cd132cb Correct the method I just added to actually return false sometimes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11069 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-02 18:53:04 +00:00
Chris Lattner
f0fd6845ee Add a new method to ConstantFP
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-02 18:40:29 +00:00
Chris Lattner
cf2c4f8ae5 The first half of a fix for PR218 & test/Regression/Assembler/2004-02-01-NegativeZero.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11063 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-01 22:48:09 +00:00
Alkis Evlogimenos
93aa52a8a9 Add MRegisterInfo::getNumRegs().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-01 17:14:20 +00:00
Chris Lattner
369b123bc7 Add comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11042 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-01 00:32:48 +00:00
Alkis Evlogimenos
08cec00588 Merge safe parts from last night's buggy commit. These do not break
any test cases :-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11032 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-31 19:59:32 +00:00
Chris Lattner
bd490d919b Add two static methods to avoid having client code explicitly compare against
FirstVirtualRegister


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11031 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-31 19:57:11 +00:00
Alkis Evlogimenos
4d46e1e521 Revert last night's changes as they broke some tests. Will remerge parts of the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11029 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-31 14:37:41 +00:00
Alkis Evlogimenos
32bdd4ea65 Several performance enhancements and cleanups from Chris.
Simplification of LiveIntervals::Interval::overlaps() and addition of
examples to overlaps() and liveAt() to make them clearer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11028 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-31 04:56:07 +00:00
Chris Lattner
762e8e846f Add a new pointsToConstantMemory method to the AliasAnalysis interface
which can be implemented to improve the quality of mod-ref information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11020 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:15:41 +00:00
Chris Lattner
43549f710a Add a new lazily constructed mapping from Idx's the MBB they represent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11017 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:08:09 +00:00
Brian Gaeke
09caa3751f Give clients of MachineFunctionPrinter the ability to specify a banner and
choose an ostream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 21:53:46 +00:00
Misha Brukman
fbdf4bf179 Doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11014 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 17:22:50 +00:00
Chris Lattner
14c67ccf02 Keep track of all of the globals inserted into the scalar map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10995 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:01:22 +00:00
Chris Lattner
18348fe201 Pull the ScalarMap out into something that is more structured than what we had
before.  This allows us to have a place to implement optimizations in a
structured way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10994 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 02:42:12 +00:00
Chris Lattner
660f1e90ec Minor tweaks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10983 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:49:42 +00:00
Chris Lattner
7a31285c3f Add comments, allow DSNode "copy ctor" to ignore outgoing links, add more
structured access to the globals list, add a couple helper methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10982 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:49:25 +00:00
Chris Lattner
5f549af582 * cloneReachable* and clonePartiallyInto are not obsolete
* Make AssertNodeInGraph not be HORRIBLY time consuming
* Eliminate the dead mergeInGlobalsGraph method
*** Add the definition for the new ReachabilityCloner class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10981 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:48:35 +00:00
Alkis Evlogimenos
79b0c3f0b9 Fix failing test cases with joined live intervals. It turns out that
when joining we need to check if we overlap with the second interval
or any of its aliases.

Also make joining intervals the default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10973 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-23 13:37:51 +00:00
Chris Lattner
078c513e87 Add new flag, other minor modifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10969 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-23 01:42:32 +00:00
Chris Lattner
1db1c93b30 Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10968 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-23 01:42:16 +00:00
Alkis Evlogimenos
e88280a422 Add option to join live intervals. Two intervals are joined if there
is a move between two registers, at least one of the registers is
virtual and the two live intervals do not overlap.

This results in about 40% reduction in intervals, 30% decrease in the
register allocators running time and a 20% increase in peephole
optimizations (mainly move eliminations).

The option can be enabled by passing -join-liveintervals where
appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10965 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 23:08:45 +00:00
Chris Lattner
2f561384fb Eliminated the CompletedNodes argument to the cloneReachable* methods. This
map was only used to implement a marginal GlobalsGraph optimization, and it
actually slows the analysis down (due to the overhead of keeping it), so just
eliminate it entirely.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10955 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 16:56:13 +00:00
Chris Lattner
9a37f2d96a It doesn't make sense for one side to be const, but not the other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10952 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 16:08:51 +00:00
Chris Lattner
9e9848d037 Remove const qualifier (all Value*'s are nonconst in DSA, so it's not clear
why this one was)

Add new method proto


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10950 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 15:26:52 +00:00
Chris Lattner
c4282a33d1 Specialize std::swap correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10949 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 15:26:15 +00:00
Misha Brukman
c0039e25a4 To materialize a module, you need to know what functions NEED to be read and
which ones don't, which is state that the parent class doesn't know without
knowing the implementation. Let the children classes implement
materializeModule().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10942 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 22:54:10 +00:00
Misha Brukman
61eec1573a If you call abort(), #include <cstdlib>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10941 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 22:50:12 +00:00
Brian Gaeke
554831c479 Regenerated using autoconf-2.57 and autoheader-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10934 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-21 19:39:29 +00:00
Chris Lattner
db9b998f63 Move SlotCalculator.h from include/llvm to include/llvm/Analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10930 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-20 19:50:12 +00:00
Tanya Lattner
a105c802b2 Moved iterators to common file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10925 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-20 17:49:42 +00:00
Chris Lattner
a2b4f93a1b add a method proto, make a method not inline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10921 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-20 00:54:47 +00:00
Chris Lattner
8d763d25ec Add enum for compaction table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10916 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-18 21:09:23 +00:00
Chris Lattner
af894e963b Add support for representing the "compaction table"
Change protected members to private.  Nothing should subclass SlotCalculator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10912 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-18 21:03:49 +00:00
Chris Lattner
a55e040623 fix copy-and-pasto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-17 22:48:06 +00:00
Chris Lattner
440f87eea2 Revision of Brian's threading support library to be a bit more generic and
platform independent.  This code is completely untested (but never used),
and needs autoconf support for detecting pthreads, but it's a start, and
deletes two emails from my inbox.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10906 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-17 19:54:29 +00:00
Alkis Evlogimenos
3b02cbe752 Fold open interval ends handling into
LiveIntervals::Interval::expiredAt() and simplify regalloc code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10894 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-16 20:17:05 +00:00
Alkis Evlogimenos
f5f1689ed2 Use a list instead of a vector to store intervals. This will be needed
when we join intervals and one of the two will need to be removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10892 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-16 16:06:59 +00:00
Brian Gaeke
f69d76fd3b Remove configure support for endianness checking, the need for which
Chris has helpfully expunged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-15 06:22:37 +00:00
Chris Lattner
88fc1b0a6f Remove ENDIAN_* support. LLVM does not need it anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10872 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-15 06:13:58 +00:00
Chris Lattner
febdf58538 Remove broken doxygen comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10869 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-15 04:37:10 +00:00
Chris Lattner
7851e1b328 Improve comments, add support for remembering the constants strings that
are to be emitted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10866 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 23:37:43 +00:00
Chris Lattner
d924edb845 add support for -- for symmetry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10865 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 23:37:22 +00:00
Chris Lattner
9b0a5ee5bb Add new ConstantArray::isString(), as the conditions for using getString()
are complex enough to check that it should be a seperate method.

While I'm here, improve ConstantArray::getNullValue a bit, though the
FIXME is still quite valid.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10850 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 17:06:21 +00:00
Chris Lattner
8ce750145d The only clients of the slot calculator are now the asmwriter and bcwriter.
Since this really only makes sense for these two, change hte instance variable
to reflect whether we are writing a bytecode file or not.  This makes it
reasonable to add bcwriter specific stuff to it as necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 02:49:34 +00:00
Alkis Evlogimenos
1a119e2410 Remove allocatable registers vector. It is already provided by
LiveVariables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10830 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13 22:10:43 +00:00
Brian Gaeke
0496a43e39 Regenerated using autoheader-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10817 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13 07:09:57 +00:00
Chris Lattner
925e3474bd Add new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10809 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 23:18:06 +00:00
Chris Lattner
302753863d Move this file to lib/VMCore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10804 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 20:47:29 +00:00
Chris Lattner
731ba7f032 Eliminate a lot of out-of-date comments, and all of the wierd overloaded
operator constant folding stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10803 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 20:43:44 +00:00
Chris Lattner
7e208904ae The getShift method is no obsolete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10797 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 19:37:26 +00:00
Chris Lattner
77ab3f1c89 llvm::ConstantFoldInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10787 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 18:25:56 +00:00
Chris Lattner
c4a1509829 Move prototype of llvm::ConstantFoldInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10786 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 18:25:44 +00:00
Alkis Evlogimenos
b08bdc4a16 Make LiveVariables::HandlePhysRegUse and
LiveVariables::HandlePhysRegDef private they use information that is
not in memory when LiveVariables finishes the analysis.

Also update the TwoAddressInstructionPass to not use this interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10755 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-11 09:18:45 +00:00
Chris Lattner
9a0817971a Minor cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10752 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-10 21:40:29 +00:00
Chris Lattner
c9d2d08bc8 Remove standard C file wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-10 19:15:00 +00:00
Chris Lattner
f3c212a3f6 Remove wrapper for standard C file, use <cstdlib> instead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-10 19:12:44 +00:00
Chris Lattner
9d51de1007 Dead file, use <cstring> instead of this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10743 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-10 19:10:22 +00:00
Chris Lattner
81653133b4 remove obsolete file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10740 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-10 19:00:26 +00:00
Chris Lattner
f173842577 Remove an obsolete method, including its _long_ out of date comment.
This is an incremental step towards fixing PR82


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10723 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-09 05:45:58 +00:00
Chris Lattner
a25b3557a1 Remove yet another obsolete comment :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10720 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08 22:28:45 +00:00
Brian Gaeke
33310b4e07 Fix typos. Rewrite head-of-file comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10719 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08 22:21:59 +00:00
Brian Gaeke
d2b40b7f69 Fix typos. Regularize include guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10718 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08 22:21:58 +00:00
Chris Lattner
329c1c6c94 Improve encapsulation in the Loop and LoopInfo classes by eliminating the
getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08 00:09:44 +00:00
Chris Lattner
b4ebc04945 add new intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10700 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-06 05:32:17 +00:00
Chris Lattner
cdf31c662a add new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10699 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-06 05:31:57 +00:00
Chris Lattner
60a57584f6 /me slaps forehead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10693 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-05 05:45:25 +00:00
Chris Lattner
6ac18751a6 Add some intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10690 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-05 05:35:34 +00:00
Chris Lattner
4575dcb587 Initial implementation of some source-level debugging stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10684 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-05 05:23:38 +00:00
Chris Lattner
c8a07d7378 Add new ExecutionEngine::getGlobalValueAtAddress method, which can efficiently
turn a memory address back into the LLVM global object that starts at that
address.  Note that this won't cause any additional datastructures to be built
for clients of the EE that don't need this information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10673 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 20:19:31 +00:00
Chris Lattner
9e26027b82 * Add a new helper progress method
* Make sure that the user sees the 100% mark
* Don't bother printing out X.0%, just print out X%


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10672 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 10:20:38 +00:00
Chris Lattner
3f804530c7 Add some comments, add a new getGlobalVariable method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10670 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 08:42:27 +00:00
Chris Lattner
6d28a268c3 * Make Module::getTypeName const
* Add new Module::getTypeByName method
* Group methods in Module.cpp better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10668 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 07:09:33 +00:00
Chris Lattner
69284b03d1 Make the lookup method const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10667 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 07:08:19 +00:00
Chris Lattner
7a312bc102 add new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10665 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 06:16:02 +00:00
Chris Lattner
cf902777e9 clarify comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10663 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 05:45:16 +00:00
Chris Lattner
a2e9363617 New class, useful for command-line interactive programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10662 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 05:40:02 +00:00
Chris Lattner
a7e2321a65 doxygenify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10661 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 04:42:00 +00:00
Chris Lattner
9c4c66e70e Add new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10648 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-30 07:35:47 +00:00
Chris Lattner
9899ae3ae8 Further revisions of the FDHandle idea. In this version we use ownership
semantics that are the same as those used by std::auto_ptr.  This allows
copying of FDHandle's, but copying transfers ownership.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10646 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-30 02:45:16 +00:00
Chris Lattner
6dea527b4a Add a new class useful for providing fully materialized modules to ExecutionEngine's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10645 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-30 02:44:04 +00:00
Chris Lattner
9b448b703f Add trivial exception specs to produce better code since the methods cannot
be inlined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10643 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-29 21:43:58 +00:00
Chris Lattner
2d6481cc2a Factor FDHandle out of the bytecode reader into the FileUtilities.h support
routines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10642 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-29 21:35:05 +00:00
Chris Lattner
9fc8a3ec2e add new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10638 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-29 05:06:38 +00:00
Chris Lattner
f70e0c216c Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering
implementation from the TargetMachine directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10636 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 21:23:38 +00:00
Alkis Evlogimenos
26bfc08b80 Add coalescing to register allocator. A hint is added to each interval
which denotes the register we would like to be assigned to (virtual or
physical). In register allocation, if this hint exists and we can map
it to a physical register (it is either a physical register or it is a
virtual register that already got assigned to a physical one) we use
that register if it is available instead of a random one in the free
pool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10634 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 17:58:18 +00:00
Alkis Evlogimenos
5e30002af7 Add TargetInstrInfo::isMoveInstr() to support coalescing in register
allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10633 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 17:35:08 +00:00
Chris Lattner
cd824d7678 We may now pass IntrinsicLowering implementations into these methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10630 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 09:48:17 +00:00
Chris Lattner
09c692bcef add argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10625 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 09:42:49 +00:00
Chris Lattner
624affb56f ABC's must have virtual dtors! Shame on me!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10624 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 08:55:50 +00:00
Chris Lattner
8a1931a942 Move header into top-level llvm dir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10622 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 08:30:07 +00:00
Chris Lattner
3f52c1561d Add new interface that allows removal of some code from the code generators,
provides for future extensibility, might help the LLVA project avoid having to
hack their own LLI, and provides support required for the experimental Venus
project.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10620 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 08:19:13 +00:00
Chris Lattner
e5dbbf2bdd New method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10615 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-26 06:50:15 +00:00
Chris Lattner
ff65e36be0 Rename 'run' to 'runFunction' to emphasize that it is usable to run any
function in a module, not just main


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10608 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-26 06:12:25 +00:00
Chris Lattner
dbd9b3f75c Hrm is a really nasty ommission. The lack of this destructor was causing abstract
types to never be deleted, manifesting itself as many OpaqueType objects being
leaked.  Whoops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10601 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-23 23:25:21 +00:00
Chris Lattner
4e4bbc792c Rename ClassifyExpression -> ClassifyExpr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10591 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-23 08:03:40 +00:00
Chris Lattner
b0404c7a6c Doxygenize methods, add new getIntPtrType method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10578 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-22 05:00:45 +00:00