1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
Commit Graph

2600 Commits

Author SHA1 Message Date
Chris Lattner
a4756fd6be Get rid of template templates that were preventing VC from compiling the
set_intersect template.  Thanks to Morten Ofstad and Jeff Cohen for the
patch!

llvm-svn: 16954
2004-10-13 15:09:21 +00:00
Chris Lattner
aa3facb3fe Update doco, make doxygen more, use standard dividers.
llvm-svn: 16948
2004-10-13 04:44:53 +00:00
Misha Brukman
4a81cf32a5 Fix file comment header
llvm-svn: 16942
2004-10-12 21:48:02 +00:00
Misha Brukman
35c31cb4a2 On second thought, OpaqueType is not really a good first-class type.
llvm-svn: 16941
2004-10-12 20:35:04 +00:00
Chris Lattner
b00e680146 Add comment
llvm-svn: 16937
2004-10-12 17:08:44 +00:00
Misha Brukman
08a8f7261e Opaque types are considered to be first-class.
llvm-svn: 16936
2004-10-12 17:06:17 +00:00
Chris Lattner
4436e1c174 Add std:: prefix for compilers without correct koenig lookup implemented.
Patch contributed by Paolo Invernizzi

llvm-svn: 16933
2004-10-12 16:10:39 +00:00
Chris Lattner
18dea852e9 Right, calls have Operand#0 == the called function, don't forget this.
llvm-svn: 16930
2004-10-12 04:45:20 +00:00
Chris Lattner
0a12c99e3a New header. Classes can be added as needed.
llvm-svn: 16928
2004-10-12 04:20:46 +00:00
Chris Lattner
63ba63bb56 Allow creation of GEP constantexprs with a vector of value* operands as
well as a vector of constant*'s.  It turns out that this is more efficient
and all of the clients want to do that, so we should cater to them.

llvm-svn: 16923
2004-10-11 22:52:25 +00:00
Chris Lattner
70197d8f29 Add long overdue methods
llvm-svn: 16921
2004-10-11 22:21:13 +00:00
Chris Lattner
36e1648743 Get friendly with Type
llvm-svn: 16812
2004-10-07 19:21:43 +00:00
Chris Lattner
4b6b21a216 Change signature of this method again
llvm-svn: 16810
2004-10-07 19:19:12 +00:00
Chris Lattner
8ddca97a5a Rename pass
llvm-svn: 16801
2004-10-07 04:12:02 +00:00
Misha Brukman
9ed0f36e93 Undoxyfy internal method.
llvm-svn: 16774
2004-10-06 17:19:58 +00:00
Misha Brukman
80dedeb9fd Doxygen-ify comments
llvm-svn: 16773
2004-10-06 16:56:16 +00:00
Chris Lattner
3f0662954e Rename method, change comment, add argument
llvm-svn: 16771
2004-10-06 16:34:23 +00:00
Chris Lattner
4463fcc2f8 Fix #include flavor
llvm-svn: 16658
2004-10-04 18:10:18 +00:00
Reid Spencer
fdf5f0f13a Add HAVE_BZIP2 and HAVE_ZLIB
llvm-svn: 16655
2004-10-04 17:48:37 +00:00
Reid Spencer
49089d64c2 Add a context for the callback so different compression scenarios can be
distinguished. Tidy up documentation.  Thanks, Chris.

llvm-svn: 16652
2004-10-04 17:29:25 +00:00
Reid Spencer
024857a516 Minor corrections suggested by Chris' ever-watchful eye.
llvm-svn: 16651
2004-10-04 17:26:26 +00:00
Reid Spencer
da2e8b9943 First version of the MappedFile abstraction for operating system idependent
mapping of files. This first version uses mmap where its available. The
class needs to implement an alternate mechanism based on malloc'd memory
and file reading/writing for platforms without virtual memory.

llvm-svn: 16649
2004-10-04 11:08:32 +00:00
Reid Spencer
d2bedc512d First version of a support utility to provide generalized compression in
LLVM that handles availability and unavailability of bzip2 and zlib.

llvm-svn: 16648
2004-10-04 10:49:41 +00:00
Alkis Evlogimenos
bbc01f13fc Add const version of getLastBlock() member function.
llvm-svn: 16625
2004-09-30 21:42:02 +00:00
Alkis Evlogimenos
dbf62db0d0 Remove whitespace from the end of the line.
llvm-svn: 16624
2004-09-30 21:39:47 +00:00
Brian Gaeke
63338063d0 Add accessor function prototypes for reoptimizer support passes.
Make accessors return FunctionPass* as appropriate.

llvm-svn: 16619
2004-09-30 20:13:55 +00:00
Chris Lattner
89a80a46f1 Be consistent with our naming
llvm-svn: 16552
2004-09-28 18:37:00 +00:00
Chris Lattner
c92b280e0d Capture information about whether the target instructions have delay slots
llvm-svn: 16550
2004-09-28 18:33:50 +00:00
Alkis Evlogimenos
4f5920aaef Add includes and use std:: for standard library calls to make code
compile on windows. This patch was contributed by Paolo Invernizzi.

llvm-svn: 16539
2004-09-28 14:42:44 +00:00
Alkis Evlogimenos
adea49eec0 Use class instead of struct for defining classes. This unbreaks the
build on windows. Patch contributed by Paolo Invernizzi!

llvm-svn: 16531
2004-09-28 01:59:17 +00:00
Reid Spencer
0dbad34203 Clean up the interface of TimeValue:
- get rid of unneeded constructors
- get rid of duplicate methods/constructors/operators
- normalize to LLVM coding standards
- wrap to 80 columns.

Many thanks to Alkis Evlogimenos for his suggestions.

llvm-svn: 16514
2004-09-25 08:29:54 +00:00
Reid Spencer
894f394594 Initial implementation of the TimeValue abstraction.
llvm-svn: 16511
2004-09-24 23:25:19 +00:00
John Criswell
8e633294c2 Updated the last two header files so that they are configured with
AC_CONFIG_HEADERS.  This should prevent LLVM from needlessly re-compiling
on a re-configure.

llvm-svn: 16510
2004-09-24 21:19:06 +00:00
John Criswell
bd7cfd3d74 Modified hash_map and hash_set configuration so that they are not
regenerated on every run of configure.

llvm-svn: 16509
2004-09-24 18:28:00 +00:00
John Criswell
52263072bc Configure Datatypes.h.in with AC_CONFIG_HEADERS. This should prevent it
from being re-generated if the new version is identical to the old version.
Hence, it should save us some recompiling after re-configures.

llvm-svn: 16506
2004-09-24 13:28:51 +00:00
Reid Spencer
67f6472f19 Change Value from a "struct" to a "class" so that VC 7.1 doesn't generate
missing symbols when its referenced as a class.

llvm-svn: 16496
2004-09-23 14:49:45 +00:00
Reid Spencer
8304ac75a2 Update to add the HAVE_UINT64_T test and the STACK_DIRECTION indicator.
llvm-svn: 16480
2004-09-22 15:32:08 +00:00
Reid Spencer
182e31bdc5 The alloca function, strangely enough, is found in the malloc.h header file
on MINGW platform. Provide an #elseif case to #include malloc.h for this
platform if malloc.h is found.

Patch provided by Henrik Bach. Thanks Henrik!

llvm-svn: 16479
2004-09-22 15:28:32 +00:00
Chris Lattner
43c0372c0b 'Pass' should now not be derived from by clients. Instead, they should derive
from ModulePass.  Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.

llvm-svn: 16436
2004-09-20 04:48:05 +00:00
Chris Lattner
a4d3f95fa3 Do not prototype any of these passes as returning Pass*. Instead, be specific
llvm-svn: 16431
2004-09-20 04:41:39 +00:00
Chris Lattner
110bbafcf7 Add CallGraphNode::removeAnyCallEdgeTo method
llvm-svn: 16398
2004-09-18 21:34:34 +00:00
Chris Lattner
e9772b7a63 Implement new changeFunction method, nuke a never implemented one.
Add comments and doxygenify others.

llvm-svn: 16387
2004-09-18 00:22:43 +00:00
Chris Lattner
33596a1fba Make sure to update the list end when an element is removed from it. This
fixes a crash in LICM when processing povray.

llvm-svn: 16367
2004-09-15 17:00:41 +00:00
Chris Lattner
12d1ccfbd8 Add an optional argument to PromoteMemToReg
llvm-svn: 16346
2004-09-15 01:02:30 +00:00
Chris Lattner
20b39fdfb9 Add an AliasSetTracker::copyValue method
llvm-svn: 16343
2004-09-14 19:15:12 +00:00
Chris Lattner
f1450e2a51 Remove unused pass
llvm-svn: 16338
2004-09-14 16:34:08 +00:00
Reid Spencer
7bd9d86b65 Okay, the list of link-time passes wasn't such a hot idea. Its prone to
error. We'll strategize on this when we have multiple front ends to deal
with. For now llvm-ld just runs a standard set of transforms.

llvm-svn: 16333
2004-09-14 05:43:23 +00:00
Reid Spencer
28035a5b25 Add the GetLibraryPath method.
llvm-svn: 16322
2004-09-13 23:46:23 +00:00
Reid Spencer
4a1593ebd2 Add support for the link-time pass list to Modules.
llvm-svn: 16321
2004-09-13 23:44:23 +00:00
Reid Spencer
ce7c15737a Simplify the sys::Memory interface per Chris' request.
llvm-svn: 16318
2004-09-13 22:38:11 +00:00
Reid Spencer
2114c143cf Clean up the interface and implementation of sys::Program so that it is
cleanly dissociated from the sys::Path class.

llvm-svn: 16315
2004-09-13 21:48:44 +00:00
Misha Brukman
fa5efa6399 * Fix grammar
* Convert tabs to spaces

llvm-svn: 16300
2004-09-12 22:40:40 +00:00
Reid Spencer
c362a7299b Fix the replace method to assert if an item was erased from the set but not
found in the vector. Previously, it just ignored this condition.

llvm-svn: 16296
2004-09-11 20:38:25 +00:00
Reid Spencer
3655235d99 Correct the interface of a function to use the correct typedef for an
argument so that it will always compile.

llvm-svn: 16284
2004-09-11 04:29:13 +00:00
Reid Spencer
605f05bd5a Implement the remove method for deleting entries from the SetVector.
llvm-svn: 16283
2004-09-11 04:25:58 +00:00
Reid Spencer
9531457813 Make the dependent libraries list use a SetVector instead of a regular
vector so that duplicate libraries never occur within a module.

llvm-svn: 16280
2004-09-11 04:22:14 +00:00
Reid Spencer
a166926577 Initial commit of a file to declare the interface for platform independent
support for various memory allocation operations.

llvm-svn: 16279
2004-09-11 04:20:58 +00:00
Reid Spencer
af9d3fdc9d Add methods for detecting file types by magic number, getting the file name
suffix for shared objects, and stripping a path down to its base name.

llvm-svn: 16278
2004-09-11 04:19:17 +00:00
Reid Spencer
455a47373b Add methods for detecting different kinds of files by their magic number,
getting the suffix for shared objects, and extracting the basename from a
path.

llvm-svn: 16277
2004-09-11 04:18:05 +00:00
Chris Lattner
4c2703cbea Add missing #include
llvm-svn: 16256
2004-09-09 02:37:56 +00:00
Reid Spencer
cfc37650dd Add HAS_U_INT64_T
llvm-svn: 16184
2004-09-05 16:41:11 +00:00
Misha Brukman
8d8cc63851 I was actually wrong in my "simplification".
llvm-svn: 16156
2004-09-03 19:46:43 +00:00
Misha Brukman
16145fa607 Simplify check for uint64_t and u_int64_t
llvm-svn: 16155
2004-09-03 19:44:28 +00:00
Reid Spencer
610817d50b Provide correct definition of uint64_t for platforms that have only
u_int64_t defined.

llvm-svn: 16154
2004-09-03 19:37:39 +00:00
Alkis Evlogimenos
0c50e0f211 Fixes to make LLVM compile with vc7.1.
Patch contributed by Paolo Invernizzi!

llvm-svn: 16152
2004-09-03 18:19:51 +00:00
John Criswell
b92941018c Added u_int64_t because some systems use that instead of uint64_t.
llvm-svn: 16144
2004-09-02 18:41:30 +00:00
Alkis Evlogimenos
2fd7ccfb9c Pull in definition of std::unary_function.
llvm-svn: 16140
2004-09-02 03:24:45 +00:00
Reid Spencer
c4abcbefb1 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer
7043c4670f Initial commit for platform independent system configuration support.
llvm-svn: 16128
2004-08-31 18:13:52 +00:00
Nate Begeman
440c16066f Update doxygen comment now that getSpillSize is supposed to return value in bits
llvm-svn: 16101
2004-08-29 21:59:26 +00:00
Reid Spencer
9954f96013 Put the lib/System interface functions in llvm::sys namespace.
llvm-svn: 16083
2004-08-29 19:19:07 +00:00
Reid Spencer
114a2123ac Initial commit of the platform agnostic interface to finding and executing
programs.

llvm-svn: 16080
2004-08-29 05:29:35 +00:00
Reid Spencer
923b7083e0 Add a function to remove whole directorys on fatal signal.
Doxygenify function comments.

llvm-svn: 16079
2004-08-29 05:27:15 +00:00
Reid Spencer
f7b4fa2e24 Revise the design of the Path concept per peer review. Too many changes to
note individually but these essence of it is to not derive from
std::string, clarify the interface, and provide better documentation.
There is now also (untested) implementations for AIX, Darwin, and SunOS.

llvm-svn: 16078
2004-08-29 05:24:01 +00:00
Alkis Evlogimenos
003c38c6dd Add getLastBlock member. This is useful when growing a densemap keyed
on MachineBasicBlocks.

llvm-svn: 16069
2004-08-27 04:02:35 +00:00
Alkis Evlogimenos
877fe7d13c Add MachineBasicBlock2IndexFunctor. This is useful for densemaps from
MachineBasicBlocks to an arbitrary type.

llvm-svn: 16068
2004-08-27 04:00:26 +00:00
Alkis Evlogimenos
03913413da Use newly added API in MRegisterInfo and don't expose the allocatable
register set anymore. Its users now use the MRegisterInfo API.

llvm-svn: 16061
2004-08-26 22:23:32 +00:00
Alkis Evlogimenos
100c89e9ea Add getAllocatableSet() function.
llvm-svn: 16059
2004-08-26 22:21:04 +00:00
Reid Spencer
a50f1b794a Initial implementation of the Path operating system concept.
llvm-svn: 16048
2004-08-25 06:20:07 +00:00
Reid Spencer
efd00af68d Add a function that gets just the dependent libraries from a bytecode file.
Doxygenify comments.

llvm-svn: 16039
2004-08-24 22:49:07 +00:00
Reid Spencer
a3a84e2e08 Provide a method for wholesale extraction of the dependent libraries.
llvm-svn: 16038
2004-08-24 22:47:39 +00:00
Reid Spencer
1605d22f77 Give the -time-passes tool option a global storage location so that its
value can be discovered by the various LLVM tools.

llvm-svn: 16032
2004-08-24 17:52:35 +00:00
Reid Spencer
0d6613d183 Dump the DependentLibsBlockID, its not a block, its just a list inside the
globals info block. Add an enumerator for getting the number of enumerators
so we can range check in assertions.

llvm-svn: 15980
2004-08-21 20:42:28 +00:00
Reid Spencer
d73bd282d7 Add new methods:
- get the total number of types in the global type list
- handle dependent libraries
- handle target triple

llvm-svn: 15978
2004-08-21 20:41:12 +00:00
Reid Spencer
f6a56abd4d Bytecode Analyzer cleanup:
- don't save the "dump" output, just emit it
- record the bc version number
- record info about the dependent libraries and target triple
- use the correct enumeration as the index on the block size map

llvm-svn: 15977
2004-08-21 20:40:08 +00:00
Brian Gaeke
01636f4e0f Packed types, brought to you by Brad Jones
llvm-svn: 15938
2004-08-20 06:00:58 +00:00
Brian Gaeke
9e089c115d M_DUMMY_PHI_FLAG is no longer used to distinguish V9::PHI. Get rid of it and
its TargetInstrInfo accessor.

llvm-svn: 15907
2004-08-18 20:04:28 +00:00
Chris Lattner
4987b24267 All targets are now allowed to have their own MachineFunctionInfo objects,
also, make getInfo do some checking and cast to the appropriate concrete type.

llvm-svn: 15903
2004-08-18 18:13:16 +00:00
Brian Gaeke
af14dcae5d M_PSEUDO_FLAG is no longer used. Get rid of it and its accessor.
llvm-svn: 15902
2004-08-18 17:44:17 +00:00
Chris Lattner
17411aae8b Alkis pointed out that this is not a character (we actually support strings)
and as such, we should use self revealing names.  Hey, makes sense to me!

llvm-svn: 15896
2004-08-18 02:22:34 +00:00
Chris Lattner
34334091d5 new method
llvm-svn: 15895
2004-08-17 21:38:51 +00:00
Chris Lattner
659175521b Add support for alignment
llvm-svn: 15888
2004-08-17 19:14:29 +00:00
Chris Lattner
41fd07b81e Add punctuation, add a new method
llvm-svn: 15886
2004-08-17 19:12:44 +00:00
Misha Brukman
d89d44e7ec Ultra-doxygenify some function header comments.
llvm-svn: 15884
2004-08-17 17:52:36 +00:00
Chris Lattner
05683db298 Allow targets to specify a comment character
llvm-svn: 15879
2004-08-17 16:26:36 +00:00
Chris Lattner
1c87acdfa8 Add missing \t
llvm-svn: 15871
2004-08-17 06:48:34 +00:00
Chris Lattner
0b1a8c9b57 Add some hooks
llvm-svn: 15867
2004-08-17 06:36:27 +00:00
Chris Lattner
43960d806a Allow an arbitrary prefix.
llvm-svn: 15864
2004-08-17 06:06:37 +00:00
Chris Lattner
1362ba130b We now allow targets to use any prefix they want for global symbols. Lets
hear it for ".".

llvm-svn: 15863
2004-08-17 06:06:19 +00:00
Chris Lattner
5420524642 Some asmweriters want an _ prefix
llvm-svn: 15844
2004-08-17 02:28:12 +00:00
Chris Lattner
aac51aa3d8 Initial implementation of the asmprinter base class
llvm-svn: 15838
2004-08-16 23:15:22 +00:00
Chris Lattner
195a408814 Fit into 80 lines, add a gross hack for MachineFunctionInfo
llvm-svn: 15832
2004-08-16 22:35:26 +00:00
Chris Lattner
e6de0fa4a8 These files now live in lib/Target/SparcV9
llvm-svn: 15831
2004-08-16 21:56:15 +00:00
Reid Spencer
8b1c93c9fb Back out include/llvm/System changes until a satisfactory solution can
be determined.

llvm-svn: 15817
2004-08-16 07:10:09 +00:00
Chris Lattner
94c82ae3a2 Flags and TSFlags were (thankfully) never used, so remove them. But wait,
not so fast, add some fields for spill slot size and alignment

llvm-svn: 15803
2004-08-16 01:07:53 +00:00
Chris Lattner
0d16641abb Add new TargetRegisterClass::contains method
llvm-svn: 15783
2004-08-15 22:19:38 +00:00
Chris Lattner
6f1512829d Implement a long overdue FIXME, by changing these methods to return void.
llvm-svn: 15778
2004-08-15 22:14:19 +00:00
Chris Lattner
f0e1b33f6c Remove helper method
llvm-svn: 15776
2004-08-15 22:02:36 +00:00
Chris Lattner
9e7147dc23 Eliminate the RegisterClass argument, since it can easily be derived from
the regno

llvm-svn: 15773
2004-08-15 21:55:29 +00:00
Alkis Evlogimenos
dbe432aee7 Make this compile on gc 3.4.1 (static_cast to non-const type was not
allowed).

llvm-svn: 15766
2004-08-15 09:18:55 +00:00
Reid Spencer
4f35f90cec First version of a class to represent the notion of an operating system
path to a file or directory and some rudimentary operations on them.

llvm-svn: 15762
2004-08-15 08:13:01 +00:00
Reid Spencer
bbd423eea8 First version of a class to represent operating system and lib/System
error codes in a platform independent way.

llvm-svn: 15761
2004-08-15 08:12:14 +00:00
Nate Begeman
cbc21460f2 Elminiate MachineFunction& argument from eliminateFrameIndex
llvm-svn: 15736
2004-08-14 22:00:10 +00:00
Chris Lattner
872e4a14da Add a pass
llvm-svn: 15713
2004-08-13 03:03:44 +00:00
Chris Lattner
009bda369a Allow targets to specify particular stack slots that certain physregs must
be spilled into.

llvm-svn: 15702
2004-08-12 19:01:55 +00:00
Chris Lattner
837ab8fcf6 Remove dead methods
llvm-svn: 15698
2004-08-12 18:37:15 +00:00
Chris Lattner
8af864daa3 Remove dead methods
llvm-svn: 15691
2004-08-12 17:58:27 +00:00
Misha Brukman
eac800ff93 Add new constructor.
llvm-svn: 15632
2004-08-10 23:10:21 +00:00
Chris Lattner
0b9b58e550 Add standard print/dump methods to CallGraph classes.
llvm-svn: 15569
2004-08-08 03:27:49 +00:00
Chris Lattner
c53f15303d Move method out of line
llvm-svn: 15497
2004-08-04 18:49:52 +00:00
Alkis Evlogimenos
f846e483bb Remove uneeded getValues() functions.
llvm-svn: 15488
2004-08-04 08:47:21 +00:00
Brian Gaeke
69f47e236f getResultPos() is dead.
llvm-svn: 15484
2004-08-04 08:06:30 +00:00
Brian Gaeke
464b5b8f1a These headers have been moved/merged into other files.
llvm-svn: 15477
2004-08-04 07:37:56 +00:00
Chris Lattner
a5d89de2da New methods
llvm-svn: 15462
2004-08-04 04:45:42 +00:00
Chris Lattner
83c911936d Minor efficiency improvements
llvm-svn: 15461
2004-08-04 04:45:29 +00:00
Chris Lattner
9b6089d893 Now that ConstantPointerRef is gone, it is the case that all operands of constants
are themselves constants.  This should allow us to reduce a significant amount
of casting in the sourcebase.

llvm-svn: 15459
2004-08-04 02:43:00 +00:00
Chris Lattner
a81b270e18 Add a special version of getType for ConstantPointerNull, exposing the fact
that all Null pointers have pointer type

llvm-svn: 15458
2004-08-04 02:42:17 +00:00
Chris Lattner
ee276368a4 The Type* is redundant with the TypeSlot
llvm-svn: 15451
2004-08-04 00:18:37 +00:00
Tanya Lattner
763a90b5fa Adding friend MSSchedule for ModuloScheduling pass.
llvm-svn: 15407
2004-08-01 18:57:38 +00:00
Chris Lattner
e8b9d3f67c Fix warning
llvm-svn: 15406
2004-08-01 18:17:36 +00:00
Chris Lattner
00ff5a4e35 Expose breakcriticaledges as a functionpass
llvm-svn: 15370
2004-07-31 10:02:24 +00:00
Chris Lattner
ab1daf9f8a New pass
llvm-svn: 15367
2004-07-31 09:59:14 +00:00
Chris Lattner
0829da11d7 Expose some helpful methods
llvm-svn: 15366
2004-07-31 09:59:04 +00:00
Alkis Evlogimenos
e28642a6a5 Change signature to take two basic blocks: the target and the one
where the goto will be appended.

llvm-svn: 15361
2004-07-31 09:37:52 +00:00
Alkis Evlogimenos
b338ca7306 Doxygenify some comments.
llvm-svn: 15360
2004-07-31 08:57:27 +00:00
Alkis Evlogimenos
6308a8a8e0 Remove const from iterators passed by value.
llvm-svn: 15359
2004-07-31 08:55:23 +00:00
Alkis Evlogimenos
2ca8d29454 Add declarations for insertGoto and reverseBranchCondition.
llvm-svn: 15358
2004-07-31 08:52:30 +00:00
Chris Lattner
d46a44390f Add new M_BARRIER_FLAG flag, and isBarrier() method to TargetInstrInfo
opCode -> Opcode

llvm-svn: 15353
2004-07-31 02:06:48 +00:00
Chris Lattner
6f4beb3664 Add some machine CFG related stuff
llvm-svn: 15352
2004-07-31 01:59:11 +00:00
Misha Brukman
33a80cd54d Enable compilation.
llvm-svn: 15344
2004-07-30 14:33:07 +00:00
Chris Lattner
ace669f381 Check in some useful helper routines for doing ML-style pattern matching on
the LLVM IR.

llvm-svn: 15341
2004-07-30 07:45:00 +00:00
Chris Lattner
a5e7a83fa9 I demand the ability to say 'if (isa<Value>(V))'!
llvm-svn: 15340
2004-07-30 06:59:15 +00:00
Alkis Evlogimenos
fb27f702ca Merge i*.h headers into Instructions.h as part of bug403.
llvm-svn: 15325
2004-07-29 12:17:34 +00:00
Brian Gaeke
99f18cc97f TargetInstrInfo::hasOperandInterlock() is always true, because it is
never overridden by any target.

llvm-svn: 15308
2004-07-28 19:24:48 +00:00
Brian Gaeke
1ec15e0428 ConstantTypeMustBeLoaded has been incorporated into SparcV9PreSelection, its
only user.

llvm-svn: 15294
2004-07-27 21:43:38 +00:00
Brian Gaeke
a71776e676 As it happens, none of these TargetInstrInfo methods which are only
used in the SparcV9 backend really have anything to do with
TargetInstrInfo, so we're converting them into regular old global
functions and moving their declarations to SparcV9InstrSelectionSupport.h.
(They're mostly used as helper functions for SparcV9InstrSelection.)

llvm-svn: 15277
2004-07-27 17:43:22 +00:00
Brian Gaeke
45adb41f46 Make the create...() functions for some of these passes return a FunctionPass *.
llvm-svn: 15276
2004-07-27 17:43:21 +00:00
Chris Lattner
de0fddf8ee Add a note
llvm-svn: 15257
2004-07-27 04:00:54 +00:00
Chris Lattner
7d98fd121c Fix out of date comment
llvm-svn: 15256
2004-07-27 03:04:30 +00:00
Chris Lattner
f08a512d4d New methods
llvm-svn: 15229
2004-07-26 05:50:09 +00:00
Reid Spencer
eb9a1c53b7 Reduce the footprint of the dependent library interface
Document the dependent library interface
Constify the std::string& parameters in the dep lib interface.

llvm-svn: 15215
2004-07-25 21:28:19 +00:00
Reid Spencer
2e6721531f bug 263:
The necessary changes to module in order to support both target triples and
a list of dependent libraries.

llvm-svn: 15207
2004-07-25 17:52:27 +00:00
Reid Spencer
415011884f bug 402:
A new set of block identifiers has been added for version 1.3 so that the
range of values can fit within 5 bits. This aids in halving the size of
block headers.

llvm-svn: 15206
2004-07-25 17:50:00 +00:00
Chris Lattner
31d9cbf7bb Add support for free instructions
llvm-svn: 15197
2004-07-25 07:57:37 +00:00
Chris Lattner
30a4ae76ad Provide timeout values to all abstract interpreters
llvm-svn: 15159
2004-07-24 07:48:50 +00:00
Misha Brukman
29445f8a8b * Add a BoolAlignment field to TargetData, default is 1 byte
* Fix spacing

llvm-svn: 15119
2004-07-23 01:08:13 +00:00
Chris Lattner
d1cfccd01e New prototype
llvm-svn: 15102
2004-07-22 08:07:30 +00:00
Chris Lattner
e3adc34ea7 Clean up reference counting to stop "leaking" alias sets
llvm-svn: 15099
2004-07-22 07:58:18 +00:00
Alkis Evlogimenos
b5f60641f4 Add Iterative scan register allocator.
llvm-svn: 15068
2004-07-21 08:24:35 +00:00
Chris Lattner
67c1deddfc Add a bunch of new functionality, primarily to do with removing aliasing
pointers from an AST.

llvm-svn: 15065
2004-07-21 07:03:57 +00:00
Chris Lattner
f9976c5dbf Make the AST interface a bit richer by returning whether an insertion caused
an insertion or not (because the pointer set already existed).

llvm-svn: 15064
2004-07-21 05:18:04 +00:00
Misha Brukman
f1dcfcbb96 Tabs to spaces.
llvm-svn: 15010
2004-07-19 21:22:02 +00:00
Misha Brukman
ab7bc6af0d Convert tabs to spaces; fix name of function in assert() description.
llvm-svn: 15009
2004-07-19 21:11:45 +00:00
Chris Lattner
58a6310e16 Fix comment
llvm-svn: 15002
2004-07-19 13:28:39 +00:00
Chris Lattner
773c66b02c Delete 4 methods, make clients use hte mark* methods directly
llvm-svn: 14999
2004-07-19 07:52:25 +00:00
Chris Lattner
22728e2f27 There is no need to store the MBB along with the MI any more, we can now
ask instructions for their parent.

llvm-svn: 14998
2004-07-19 07:04:55 +00:00
Chris Lattner
6c34920110 Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)
llvm-svn: 14997
2004-07-19 06:55:21 +00:00
Chris Lattner
53fa752649 Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent()
llvm-svn: 14996
2004-07-19 06:26:50 +00:00
Chris Lattner
5a4eaff632 inline classof implementations, eliminate use of virtual methods.
classof<ConstantXXX> is now MUCH faster than it used to be.

llvm-svn: 14986
2004-07-19 00:58:47 +00:00
Chris Lattner
64444580a8 eliminate isConstantExpr, changes to isa<Constant> implementation
llvm-svn: 14985
2004-07-19 00:58:02 +00:00
Chris Lattner
07963adecb Add new enum entries for ConstantAggregateZeroVal/ConstantExprVal and
rename ConstantVal to SimpleConstantVal

llvm-svn: 14984
2004-07-19 00:57:40 +00:00
Chris Lattner
2196acc9f2 Change method to return void. Inline dtor
llvm-svn: 14982
2004-07-19 00:55:19 +00:00
Chris Lattner
40107200fc Remove dead file
llvm-svn: 14981
2004-07-18 23:44:15 +00:00
Reid Spencer
a9c7165018 Add a missing space to align comments.
llvm-svn: 14955
2004-07-18 00:56:58 +00:00
Reid Spencer
79ff7a8ec9 Fix typeos in comments.
llvm-svn: 14954
2004-07-18 00:55:49 +00:00
Reid Spencer
d7fbd79a5b bug 122:
remove redundant isa<GlobalValue>
ensure isa<GlobalValue> case is processed before is<Constant>

llvm-svn: 14926
2004-07-17 23:36:58 +00:00
Reid Spencer
fe177d219a bug 122:
- Add ValueListTy to TypeTy so that the bcreader can have its own User
  category that won't get factored into any optimizations or cleanup.
- Correct an isa_impl to correctly include GlobalValue now that it isa
  Constant.

llvm-svn: 14925
2004-07-17 23:34:47 +00:00
Reid Spencer
b0ee45b970 bug 122:
Remove redundancy in User::classof(Value*); GlobalValue isa Constant now.

llvm-svn: 14924
2004-07-17 23:32:11 +00:00
Reid Spencer
e45193c610 Fix a comment.
llvm-svn: 14923
2004-07-17 23:30:45 +00:00
Reid Spencer
c197914ffd bug 122:
We don't need to keep track of CPRs any more.

llvm-svn: 14922
2004-07-17 23:30:11 +00:00
Reid Spencer
058e3a12ce bug 122:
Now that GlobalVariable is a constant (via derivation from GlobalValue),
override the replaceUsesOfWithOnConstant method.

llvm-svn: 14921
2004-07-17 23:29:46 +00:00
Reid Spencer
bedeb65525 bug 122:
- derive from Constant
- declare needed overrides from Constant class

llvm-svn: 14920
2004-07-17 23:28:28 +00:00
Reid Spencer
51fd2506ad ****** ABOLISH ConstantPointerRef *****
llvm-svn: 14919
2004-07-17 23:26:57 +00:00
Reid Spencer
cb46bb8158 Extend constructor so that it can support GlobalValue's (with names).
Make GlobalValue a "classof" Constant
Fix the classof(Value*) to include GlobalValue's

llvm-svn: 14918
2004-07-17 23:26:12 +00:00
Reid Spencer
0338d6578b Constant value not needed after CPR's disappear.
llvm-svn: 14917
2004-07-17 23:23:30 +00:00
Reid Spencer
38fe11e63e Added a README to point users to the documentation on the design of this
library which is a prerequisite for maintaining the library.

llvm-svn: 14909
2004-07-17 08:39:53 +00:00
Alkis Evlogimenos
ddd1db50f9 Add convinience constructor for function calls with two args.
llvm-svn: 14885
2004-07-16 12:04:28 +00:00
Chris Lattner
c19f2134fc Final fix for PR341: eliminate operator<<(ostream, Value*). Clients should
now send references to ostreams instead of pointers.  Sending pointers to
ostreams will print their addresses.

llvm-svn: 14849
2004-07-15 02:54:36 +00:00
Chris Lattner
94212f7102 Fixes for PR341
llvm-svn: 14847
2004-07-15 02:51:31 +00:00
Chris Lattner
5ab6b23a7d Fix for PR341
llvm-svn: 14846
2004-07-15 02:50:38 +00:00
Chris Lattner
26e5829b8f Yeah, how about those 'primative' types huh?
llvm-svn: 14836
2004-07-15 01:15:53 +00:00
Chris Lattner
9e4dad1400 Make PATypeHolder and friends return non-const pointers to the types they
hold.  Because types are basically immutable anyway, they should not be
referenced as "const Type*" everywhere.  Just "Type*" should suffice!

llvm-svn: 14824
2004-07-14 20:10:26 +00:00
Chris Lattner
91169a26b5 * Change code to use a static_cast instead of reinterpret_cast
* Add comments
* Add two new gep ctors for the very common case of creating a two operand
  GEP instruction.

llvm-svn: 14820
2004-07-14 18:13:54 +00:00
Chris Lattner
10686c55cc Add a helper method. The StructType element is completely redundant in most
cases

llvm-svn: 14777
2004-07-12 20:36:08 +00:00
Chris Lattner
528291513f Add a missing #include
llvm-svn: 14773
2004-07-12 20:25:33 +00:00
Chris Lattner
4d2009965c Implement a new method useful for things like the inliner
llvm-svn: 14768
2004-07-12 01:17:52 +00:00
Chris Lattner
050495885f Add a new listener class for things that want to be informed about new
targets that are loaded

llvm-svn: 14758
2004-07-11 06:02:59 +00:00
Chris Lattner
2ea95d837e Delete the allocate*TargetMachine functions. Move options to a header file
that makes sense.

llvm-svn: 14754
2004-07-11 04:15:52 +00:00
Chris Lattner
2a79beb587 Add a new TargetNameParser class, which is useful for parsing options.
Add two methods which are useful for autoselecting targets.

llvm-svn: 14748
2004-07-11 03:59:46 +00:00
Chris Lattner
195638502a First cut at TargetMachineRegistry and RegisterTarget classes
llvm-svn: 14742
2004-07-11 02:43:43 +00:00
Chris Lattner
8b4d801eab Add two new "virtual static" methods to the TargetMachine class
llvm-svn: 14741
2004-07-11 02:43:07 +00:00
Chris Lattner
a46346890c Removed unneeded forward decl
llvm-svn: 14727
2004-07-09 17:02:57 +00:00
Chris Lattner
d3f73edc53 Remove unused method
llvm-svn: 14726
2004-07-09 16:48:13 +00:00
Chris Lattner
235331d922 Eliminate the UID field in the Type class, bringing it down to 28 bytes.
llvm-svn: 14709
2004-07-08 22:31:37 +00:00
Chris Lattner
c03416c90a Add a new method
llvm-svn: 14705
2004-07-08 22:09:07 +00:00
Misha Brukman
54115c22de Fix spelling of `equivalent'
llvm-svn: 14697
2004-07-08 17:45:18 +00:00
Chris Lattner
1aeb7ed7e4 isSigned/isUnsigned/isInteger methods do not need to be virtual
llvm-svn: 14694
2004-07-08 17:29:36 +00:00
Chris Lattner
74df119be3 Update comment.
Remove unused forward decl of Value.h
Make Type 32 bytes instead of 36 bytes

llvm-svn: 14692
2004-07-08 16:09:38 +00:00
Chris Lattner
c301c035d2 This file uses the Value class without a forward decl
llvm-svn: 14691
2004-07-08 15:54:29 +00:00
Alkis Evlogimenos
e7e19f771f Add viewCFG() and viewCFGOnly() APIs.
llvm-svn: 14679
2004-07-08 00:47:58 +00:00
Chris Lattner
c2b3e11473 All of these now live in the DataStructure directory
llvm-svn: 14664
2004-07-07 06:32:53 +00:00
Chris Lattner
bd3218fef2 Move DSA headers into Analysis/DataStructure to make it more obvious
what is implemented by the DataStructure library.

llvm-svn: 14662
2004-07-07 06:29:26 +00:00
Chris Lattner
fb2f56c7c8 As much as I hate to say it, the whole setNode interface for DSNodeHandles
is HOPELESSLY broken.  The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.

As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call.  This fixes some obscure bugs
handling non-forwarded node handles.

llvm-svn: 14660
2004-07-07 06:12:52 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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