Commit Graph

1754 Commits

Author SHA1 Message Date
Chris Lattner 020b544cbc Do not insert physical regsiters into the regsUsed set
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
Chris Lattner 44309a112f Add a comment to the method decl
llvm-svn: 7609
2003-08-05 18:38:16 +00:00
Chris Lattner 3df51d517c Remove unused method
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Sumant Kowshik 766e284526 Added declaration of mergeInGlobalsGraph
llvm-svn: 7607
2003-08-05 17:06:18 +00:00
Chris Lattner cd4f4320b0 All callers of these methods actually wanted them to preserve the flags,
so get rid of the def/use parameters that were getting passed in.

**** This now changes the semantics of these methods to preserve the flags,
     not clobber them!

llvm-svn: 7602
2003-08-05 16:58:46 +00:00
Sumant Kowshik e815b78deb Added the declaration of InlineIndirectCalls
llvm-svn: 7601
2003-08-05 16:56:59 +00:00
Chris Lattner 23f7128e1f The NOOP instruction is no longer needed. Instead, use the
TargetInstrInfo::isNOPinstr method

llvm-svn: 7530
2003-08-03 18:52:15 +00:00
Chris Lattner 1a063e7aee CVS, please don't tell us that we have a new config.h file, everyone knows that.
llvm-svn: 7527
2003-08-03 18:31:38 +00:00
Chris Lattner bb54f6fcad Move debugging support out of Statistic.h into Debug.h, implement the new DEBUG_TYPE facilities
llvm-svn: 7490
2003-08-01 22:12:40 +00:00
Chris Lattner 2a5dae05e6 Including statistics into an anonymous namespace that gets #included into
every file is a bad idea.

llvm-svn: 7489
2003-08-01 22:12:07 +00:00
Chris Lattner d32fe2e592 New file
llvm-svn: 7482
2003-08-01 20:28:55 +00:00
Chris Lattner 607eaaba5f This file doesn't need this include
llvm-svn: 7479
2003-08-01 19:16:18 +00:00
Tanya Lattner aab262210c Renamed trapping instruction function to be more consistent with other functions in the file.
llvm-svn: 7448
2003-07-31 05:08:02 +00:00
Tanya Lattner a93c7aeb7e Added function to determine if an Instruction may trap.
llvm-svn: 7442
2003-07-31 04:05:50 +00:00
Chris Lattner a8f5df593b Code generation passes don't need access to raw LLVM types, this method is unnecessary.
llvm-svn: 7412
2003-07-30 05:29:45 +00:00
Vikram S. Adve f128c11bdd Unify all constant evaluations that depend on register size
in TargetInstrInfo::ConvertConstantToIntType.

llvm-svn: 7398
2003-07-29 20:30:20 +00:00
Vikram S. Adve fa31c92f8e Moved insertCallerSavingCode() to PhyRegAlloc and
moved isRegVolatile and modifiedByCall here: they are all
machine independent.  Remove all uses of PhyRegAlloc.

llvm-svn: 7387
2003-07-29 19:41:23 +00:00
Vikram S. Adve 44119ac56e Don't require a BB to look-up live variables, unless they may need to
be recomputed.

llvm-svn: 7384
2003-07-29 19:32:04 +00:00
John Criswell 4f37692a80 Enable JIT when the platform supports it.
Select /localhome/$USER when it exists.
Fix the checks for bidirectional and forward iterators so that they work with
version of GCC prior to 3.x.

llvm-svn: 7383
2003-07-29 19:11:58 +00:00
Chris Lattner e8c59958d3 Fix copy and paste-o
llvm-svn: 7378
2003-07-29 05:15:44 +00:00
Chris Lattner c1e3827de6 Move value type enums to CodeGen/ValueTypes.h
llvm-svn: 7376
2003-07-29 05:13:34 +00:00
Chris Lattner 91ea759ad9 Define target value types in a form usable by target-independent code
llvm-svn: 7375
2003-07-29 05:13:09 +00:00
Chris Lattner 8c48a098a5 Add alpha intrinsics, contributed by Rahul Joshi
llvm-svn: 7372
2003-07-28 21:18:21 +00:00
Misha Brukman 2befe71a04 Lined things up in a more aesthetically pleasing way.
llvm-svn: 7365
2003-07-28 19:17:53 +00:00
Misha Brukman a626a9e4df Removed extra parenthesis and fixed spelling.
llvm-svn: 7359
2003-07-28 16:53:28 +00:00
Tanya Lattner db908a22c8 Need to include <string> to fix compile error on Sun
llvm-svn: 7358
2003-07-28 16:42:33 +00:00
Chris Lattner dec94b36d3 Code generation phases are not allowed to modify the LLVM representation.
Because of this, we'll make the MBB->BB mapping const as it should be

llvm-svn: 7351
2003-07-26 23:30:37 +00:00
Chris Lattner e63edd73e2 Whoops, this one was needed
llvm-svn: 7346
2003-07-26 23:18:11 +00:00
Chris Lattner 981e585021 Remove extraneous #includes
llvm-svn: 7341
2003-07-26 23:00:29 +00:00
Chris Lattner 25dc00904c Remove #includes
llvm-svn: 7339
2003-07-26 22:56:46 +00:00
Vikram S. Adve a33b1d1d74 Change the way unused regs. are marked and found to consider regType
info (since multiple reg types may share the same reg class).
Remove machine-specific regalloc. methods that are no longer needed.

llvm-svn: 7328
2003-07-25 21:01:43 +00:00
Vikram S. Adve 51fca80cc5 Add an assertion.
llvm-svn: 7326
2003-07-25 20:58:57 +00:00
Brian Gaeke bc1f6f59a1 Forward-declare class Module to make the header file self-contained.
llvm-svn: 7319
2003-07-25 20:20:53 +00:00
Chris Lattner 980e4253bc More cassert inclusion for GCC 3.3
llvm-svn: 7318
2003-07-25 18:06:53 +00:00
Chris Lattner 29e525a33f #include <cassert> as necessary...
llvm-svn: 7315
2003-07-25 17:58:41 +00:00
Chris Lattner 33d5102f54 Fix another accessibility problem illuminated by GCC 3.3
llvm-svn: 7314
2003-07-25 17:49:28 +00:00
Chris Lattner 659ad62df1 Fix visibility problem exposed by GCC 3.3
llvm-svn: 7313
2003-07-25 17:46:25 +00:00
Chris Lattner e66e7d75bf Remove inline declarations that GCC 3.3 doesn't like without a body
llvm-svn: 7312
2003-07-25 17:39:33 +00:00
Chris Lattner 0c09a89bda Regardless of whether C provides assert.h, C++ source can always include
<cassert>, making this header unneeded.

llvm-svn: 7311
2003-07-25 17:35:03 +00:00
Chris Lattner 7a8412cc95 Use the C++ <cassert> header, not the C <assert.h> header
llvm-svn: 7310
2003-07-25 17:34:17 +00:00
Chris Lattner 88ee89f4a9 This header works with GCC 3.3
llvm-svn: 7309
2003-07-25 17:33:45 +00:00
Chris Lattner b917db15f1 Add includes of assert
llvm-svn: 7307
2003-07-25 17:23:27 +00:00
Chris Lattner 8918af9b0f Fix accessibility problems GCC 3.3
llvm-svn: 7306
2003-07-25 17:23:13 +00:00
Chris Lattner 893d0b86df Add assert.h include
llvm-svn: 7305
2003-07-25 16:47:07 +00:00
Chris Lattner 707ececebc Convert to C++ style comments
llvm-svn: 7304
2003-07-25 15:08:08 +00:00
Vikram S. Adve 49155b50ba Include vector into these two files to ensure that specializations like
stl_bvector.h are correctly included into *anything* that includes hash_map
or hash_set.  ext/hash_map includes stl_vector.h directly and leaves
out the specializations, causing truly nasty bugs due to inconsistent
versions of vector<> being used for vector<bool> in different files.

llvm-svn: 7303
2003-07-25 14:06:13 +00:00
Brian Gaeke 356f3289fe Cleanups:
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
 Make Count an unsigned int, and use utostr().
 Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line.  Include <set>.

llvm-svn: 7301
2003-07-24 21:37:57 +00:00
Brian Gaeke d4dff190a4 Factor out name-mangling from X86/Printer, which is derived from CWriter,
into this new support class.

llvm-svn: 7300
2003-07-24 20:20:58 +00:00
Chris Lattner 0fa0e3f2ea Add support for ~ operator on constants
llvm-svn: 7258
2003-07-23 17:21:17 +00:00
Chris Lattner f26a8ee580 Remove redundant const qualifiers from cast<> expressions
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Chris Lattner dc4016b44c Add more doxygen comments, add new ConstantInt::getRawValue method
llvm-svn: 7244
2003-07-23 14:49:06 +00:00
Anand Shukla bd2d0577fb Added special consideration for instrumentation strategy
llvm-svn: 7208
2003-07-20 15:39:30 +00:00
Vikram S. Adve d3bf70c006 (1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
to clone the subgraph reachable from a set of root nodes, into the
    current graph, merging the global nodes into those in the current graph.
(2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
    globals graph into the current graph in both BU and TD passes.
(3) Added hash_set<const GlobalValue*> InlinedGlobals: a set of globals to
    track which globals have been inlined into the current graph from
    callers or callees.  In the TD pass, such globals are up-to-date and
    do not need to be rematerialized from the GlobalsGraph.
(4) Added StripIncompleteBit/KeepIncompleteBit to remove incomplete bit
    when cloning nodes into the globals graph.

llvm-svn: 7190
2003-07-16 21:45:15 +00:00
Misha Brukman 7fdaab4f68 The word `separate' only has one `e'.
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Vikram S. Adve e2e50f2880 Values stored in CallArgsDescriptor cannot be const.
llvm-svn: 7156
2003-07-10 19:46:15 +00:00
Vikram S. Adve 689adb19b0 Change interface to MachineInstr::substituteValue to specify more precisely
which args can be substituted: defsOnly, defsAndUses or usesOnly.

llvm-svn: 7154
2003-07-10 19:45:07 +00:00
Misha Brukman c18333ac0a Lowercase versions of `occurrence' need to be spelled correctly, too.
llvm-svn: 7142
2003-07-10 17:05:26 +00:00
Misha Brukman 069e6b5be0 `Occurrence' has no `a' and the `r' is doubled.
llvm-svn: 7140
2003-07-10 16:49:51 +00:00
Chris Lattner 79c2e891c0 INCLUDE_PARENT_GRAPH is required
llvm-svn: 7089
2003-07-02 23:57:21 +00:00
Chris Lattner 10bcbf402a Remove dead method
llvm-svn: 7083
2003-07-02 23:43:06 +00:00
Chris Lattner 60321c2c49 Add new methods
llvm-svn: 7057
2003-07-02 04:37:00 +00:00
Chris Lattner b10e385c01 Disable the parent graph code when not compiled in DEBUG mode
llvm-svn: 7056
2003-07-02 04:33:55 +00:00
Vikram S. Adve 9a8f8e3e95 Leak fix: delete old objects before reallocation in an assignment operator!
llvm-svn: 7055
2003-07-02 01:25:44 +00:00
Chris Lattner afede5d65b TD pass keeps track of which functions have complete arguments
llvm-svn: 7048
2003-07-01 21:12:10 +00:00
Chris Lattner 931978ab2b Add new operator= impl
llvm-svn: 7047
2003-07-01 21:11:59 +00:00
Chris Lattner 972e76f00d Ok, I'm a moron. Fixed now
llvm-svn: 7035
2003-07-01 17:15:11 +00:00
Chris Lattner 31f1db746b Fix major problem that was causing all kinds of nasty foldings
llvm-svn: 7034
2003-07-01 17:10:50 +00:00
Chris Lattner 0c770cd936 Add new methods to BUDS for keeping track of a precise call graph
llvm-svn: 7028
2003-07-01 16:27:15 +00:00
John Criswell 3ef61afb76 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner bfce1115e3 Add new method
llvm-svn: 7007
2003-06-30 05:57:30 +00:00
Chris Lattner 53f4dd7f22 Be more const correct
llvm-svn: 7004
2003-06-30 05:27:05 +00:00
Chris Lattner a7630bdc06 Constness changes
llvm-svn: 7002
2003-06-30 05:10:09 +00:00
Chris Lattner 34bdfbf903 Substantial revamp: DSGraphs now may contain the graphs for multiple functions
in the same graph

llvm-svn: 6991
2003-06-30 03:14:23 +00:00
Chris Lattner 1fecb674e0 Add argument
llvm-svn: 6990
2003-06-30 03:13:36 +00:00
Chris Lattner 13cb5ae4ff Remove prototype for dead method
llvm-svn: 6989
2003-06-30 03:13:28 +00:00
Chris Lattner 16e9212e2e Add support for gathering sets of must aliases
llvm-svn: 6971
2003-06-29 00:23:11 +00:00
Chris Lattner fb9e684f5c Add new DSGraph::ScalarMapTy typedef to avoid pulling representation issues
into callers of getScalarMap

llvm-svn: 6944
2003-06-28 21:57:13 +00:00
Chris Lattner 1ad22dedd1 Add new 'isComplete' method
llvm-svn: 6943
2003-06-28 21:56:42 +00:00
Chris Lattner 719c715639 Add support for 'unsigned' command line arguments
llvm-svn: 6928
2003-06-28 15:47:20 +00:00
Brian Gaeke c1e4ee0f50 Nice tasty llc fixes. These should fix LLC for x86 for everything in
SingleSource except oopack and Oscar.  (Sorry, Oscar.)

include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
 accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
 really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
 target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
 which implicitly use CL, because the assembler needs to see the CL in
 order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
  to name constants in the constant pool for each function instead. This
  avoids keeping state between runOnMachineFunction() invocations, which
  is a no-no. Having MangledGlobals be global is a bogon I'd like to get
  rid of too, but making it a static member of Printer causes link errors
  (why???).
 Make NumberForBB into a member of Printer instead of a global, too.
 Make printOp and printMemReference into methods of Printer.
 X86InstrInfo::print is now Printer::printMachineInstruction, because
  TargetInstrInfo::print is history. (Because of this, we have to qualify
  the names of some TargetInstrInfo methods we call.)
 Print out the ImplicitUses field of any instruction we print that has
  the PrintImplUses bit set.

llvm-svn: 6924
2003-06-27 00:00:48 +00:00
Chris Lattner 2ab04f7a41 Add argument to DAE to allow operation on non-internal functions
llvm-svn: 6895
2003-06-25 04:12:49 +00:00
Chris Lattner decc3639c1 Add prototype for tail-dup pass
llvm-svn: 6847
2003-06-22 20:10:42 +00:00
Chris Lattner bd3837b1b2 Get rid of WORDSIZE macro which can pollute untold numbers of translation units
llvm-svn: 6843
2003-06-22 03:09:10 +00:00
Chris Lattner 52de05c6b3 Remove a ton of extraneous #includes
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
Chris Lattner c7031d0244 Whoops, accidentally lost a #include
llvm-svn: 6841
2003-06-22 03:04:58 +00:00
Chris Lattner 09ede5c936 Remove support for the MultiObject flag, which was just fundamentally broken
llvm-svn: 6839
2003-06-22 03:03:24 +00:00
Chris Lattner 065162a250 Lots of changes to make the NodeType field private to DSNode.
Add new MultiObject flag

llvm-svn: 6793
2003-06-19 21:14:22 +00:00
Chris Lattner 989fddebf0 Update comments
llvm-svn: 6785
2003-06-19 17:03:00 +00:00
Chris Lattner 8826647168 Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.
llvm-svn: 6774
2003-06-18 19:22:36 +00:00
Chris Lattner 95881f6234 * Add new CallSite::get factory method
* add new setCalledFunction method
* FIX arg_end method which was horribly broken!

llvm-svn: 6758
2003-06-17 22:16:59 +00:00
Chris Lattner 908ffe346d Add new op_erase method
llvm-svn: 6757
2003-06-17 22:15:55 +00:00
Chris Lattner 32cbae3320 Make sure accessor is properly doxygenized. It wants two lines
llvm-svn: 6756
2003-06-17 21:44:51 +00:00
Chris Lattner f42ca71f34 Add accessor
llvm-svn: 6755
2003-06-17 21:44:31 +00:00
Chris Lattner ce5ee39319 Make CallSite's default constructable, copyable, and assignable (explicitly)
llvm-svn: 6749
2003-06-17 19:50:28 +00:00
Brian Gaeke a7a50133ef Regularize the names of #include-guards.
llvm-svn: 6732
2003-06-17 00:35:55 +00:00
Brian Gaeke 7a719ed20c Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
so that we can easily change its use to be conditional on the result of
an autoconf test later.

llvm-svn: 6723
2003-06-16 21:54:01 +00:00
Brian Gaeke 3350651851 Whoops. I didn't mean to step on John's changes.
llvm-svn: 6722
2003-06-16 21:18:20 +00:00
Brian Gaeke eb505aab08 This version supports FreeBSD.
llvm-svn: 6721
2003-06-16 21:14:57 +00:00
Chris Lattner 4ff07067db Add prototype for the new DAE pass
llvm-svn: 6703
2003-06-16 12:16:52 +00:00
John Criswell ec382b6a64 Changed the LITTLE_ENDIAN and BIG_ENDIAN macros to ENDIAN_LITTLE and ENDIAN_BIG.
This will prevent them from conflicting with macros defined by the system
header files.
When autoconf comes, this will look a lot nicer.

llvm-svn: 6684
2003-06-11 19:44:51 +00:00
John Criswell cfac736363 Included assert.h so that the code compiles under newer versions of GCC.
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Sumant Kowshik c318ca1a51 Made changes suggested by Chris
llvm-svn: 6606
2003-06-04 08:03:57 +00:00
Sumant Kowshik 061d15551f Made changes suggested by Chris; Renamed 'union' function to unionSetsWith
llvm-svn: 6605
2003-06-04 08:00:05 +00:00
Chris Lattner d1f91d0660 Add new setCondition member
llvm-svn: 6603
2003-06-04 05:08:31 +00:00
Chris Lattner 9109b41a00 Minor cleanups:
* Document the MOTy namespace correctly for doxygen
  * Eliminate usage of the MachineOpCode typedef, which should eventually
    be eliminated entirely.

llvm-svn: 6584
2003-06-03 15:42:53 +00:00
Chris Lattner a87bab4e4c Remove use of enum
llvm-svn: 6582
2003-06-03 15:41:45 +00:00
Chris Lattner be9cef8af4 There are now no uses of NonCopyableV
llvm-svn: 6580
2003-06-03 15:30:48 +00:00
Chris Lattner 46a1892c68 Add doxygen comment for namespace
llvm-svn: 6579
2003-06-03 15:30:37 +00:00
Chris Lattner f3dce0882f Add comment for doxygen for namespace
llvm-svn: 6578
2003-06-03 15:30:13 +00:00
Chris Lattner cee7ced058 Minor cleanups:
* LLVM #include should use "", not <>
  * Fix line wrapping
  * Remove noncopyable base class to improve doxygen output

llvm-svn: 6577
2003-06-03 15:30:01 +00:00
Chris Lattner 58f2b4c5bc Remove noncopyable base class as it was making the doxygen docs harder to read
llvm-svn: 6576
2003-06-03 15:29:12 +00:00
Chris Lattner fb29f4e173 Remove noncopyableV base classes, as they were confusing the doxygen documentation,
making it harder to read.

llvm-svn: 6575
2003-06-03 15:28:40 +00:00
Chris Lattner befbece2c6 Remove NonCopyable base class to clean up doxygen output
llvm-svn: 6551
2003-06-02 22:07:37 +00:00
Chris Lattner aad566da80 Hack up MachineCodeEmitter to actually be target independent.
llvm-svn: 6514
2003-06-01 23:20:02 +00:00
Tanya Lattner e2d74c1c81 Fixed comment width, changed arg to be const, fixed indentation, removed unnecessary includes.
llvm-svn: 6476
2003-05-31 20:01:37 +00:00
Vikram S. Adve ef56a0fb6a Made a single common InvalidRegNum = -1.
llvm-svn: 6473
2003-05-31 07:44:07 +00:00
Vikram S. Adve 12067b6598 Renamed a variable.
llvm-svn: 6472
2003-05-31 07:43:41 +00:00
Vikram S. Adve 1a06ec6655 Support for annul/pred and other future flags on op codes.
Support for recording the physical register for implcit references.

llvm-svn: 6471
2003-05-31 07:43:01 +00:00
Vikram S. Adve ad83684c77 Added MachineCodeForInstruction object as an argument to
TmpInstruction constructors because every TmpInstruction object has
to be registered with a MachineCodeForInstruction to prevent leaks.
This simplifies the user's code.

llvm-svn: 6469
2003-05-31 07:41:24 +00:00
Misha Brukman 94908b010e Added saveBBreferences() for BasicBlock resolution.
llvm-svn: 6451
2003-05-30 20:32:45 +00:00
Tanya Lattner e996d0a3cd Sorry, correcting small typo.
llvm-svn: 6433
2003-05-30 15:53:50 +00:00
Tanya Lattner 84e5004a78 Added support for cloning a trace.
llvm-svn: 6430
2003-05-30 15:48:23 +00:00
Sumant Kowshik 2618272dad Implementation of Equivalence Classes
llvm-svn: 6422
2003-05-29 22:44:25 +00:00
Sumant Kowshik 32d1b6e7ac Changes to support function pointers
llvm-svn: 6421
2003-05-29 22:43:46 +00:00
Chris Lattner 308bf23be0 Don't require the user to do something like isa<foo>(II->get()). The ->get
should be implicit.

llvm-svn: 6395
2003-05-29 15:08:33 +00:00
Chris Lattner d670b086c4 dyn_cast_or_null should work just the same as dyn_cast does
llvm-svn: 6394
2003-05-29 15:07:48 +00:00
Chris Lattner 2ca11ed598 Doxygenify comments
llvm-svn: 6393
2003-05-29 15:06:40 +00:00
Misha Brukman 05ff42617a Fixed misspelling and broke a line that was wrapping.
llvm-svn: 6391
2003-05-29 05:00:14 +00:00
Misha Brukman d8403447f4 Defines a pass-through debugging emitter -- it writes to a file for inspection
and to memory to test execution (using a passed-in code emitter).

llvm-svn: 6365
2003-05-27 21:46:56 +00:00
Misha Brukman 26a5537e9d Allow allocation of a Sparc TargetMachine.
llvm-svn: 6364
2003-05-27 21:46:07 +00:00
Chris Lattner b022bed018 Expose proto for SRoA pass.
llvm-svn: 6348
2003-05-27 15:52:45 +00:00
Vikram S. Adve 11fc2f6885 (1) Added special register class containing (for now) %fsr.
Fixed spilling of %fcc[0-3] which are part of %fsr.

(2) Moved some machine-independent reg-class code to class TargetRegInfo
    from SparcReg{Class,}Info.

llvm-svn: 6343
2003-05-27 00:07:13 +00:00
Vikram S. Adve 6bbfe341dd Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags.  Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".

llvm-svn: 6342
2003-05-27 00:06:48 +00:00
Vikram S. Adve 52d5ae62e5 Make case of GetNumOfInt/FloatArgRegs functions to be use lower case
like all the other functions.

llvm-svn: 6326
2003-05-25 16:02:05 +00:00
Misha Brukman e2402c65d0 Reword to remove reference to how things worked in the past.
llvm-svn: 6323
2003-05-24 01:08:43 +00:00
Misha Brukman 23d15a71b8 NOP instructions are pseudo-instructions. We should not have them explicitly in
our representation, since they are usually special cases of already-existing
instructions.

This abstracts away methods that let a pass create and verify a NOP instruction,
without relying on a `NOP' enum to be in existence in the target's instruction
info descriptor.

llvm-svn: 6319
2003-05-24 00:08:39 +00:00
Chris Lattner f2e299ca68 Remove some cruft, add some methods to allow implementation of bugfix for
Bug: Linker/2003-04-26-NullPtrLinkProblem.ll

llvm-svn: 6313
2003-05-23 20:02:05 +00:00
Chris Lattner 5d4589ff34 Minor rewording/cleanups
llvm-svn: 6311
2003-05-23 17:13:15 +00:00
Chris Lattner 84d0ed920d Remove long dead code
llvm-svn: 6307
2003-05-22 22:00:54 +00:00
Chris Lattner 5eb85148bd Add support for a new "CommaSeparated" modifier
llvm-svn: 6293
2003-05-22 20:25:57 +00:00
Chris Lattner 885cd623c3 New method
llvm-svn: 6259
2003-05-21 17:49:08 +00:00
Misha Brukman 373086db75 Hopefully, the final fix for `[Pp]ropogate'.
llvm-svn: 6251
2003-05-20 21:01:22 +00:00
Misha Brukman e5838c4d72 s/convertable/convertible/g
llvm-svn: 6248
2003-05-20 18:45:36 +00:00
Misha Brukman 656304bb6c The plural of `Pass' is Passes, not Pass's.
llvm-svn: 6247
2003-05-20 18:39:06 +00:00
Chris Lattner 192623ec93 Add support for setjmp/longjmp primitives
Patch checked in for Bill Wendling :)

llvm-svn: 6241
2003-05-17 22:26:33 +00:00
Chris Lattner f2bef422e4 Add some methods to make type safety a bit easier
llvm-svn: 6198
2003-05-14 17:49:52 +00:00
Chris Lattner e24ae25363 Beef up interface, move getVarInfo out-of-line.
llvm-svn: 6114
2003-05-12 14:23:04 +00:00
Chris Lattner 065eadeb8a Expand API for updating live var info.
Expose iterators, not const-iterators.
Rename method that was VERY misleading

llvm-svn: 6108
2003-05-12 03:51:30 +00:00
Chris Lattner b78244f9e1 Make sure that globals are emitted AFTER the passmanager is set up for the JIT,
because the globals may refer to functions that need to be compiled!

llvm-svn: 6105
2003-05-12 02:14:34 +00:00
Joel Stanley 1bf4750f8d Fixed comment.
llvm-svn: 6072
2003-05-10 01:56:42 +00:00
Chris Lattner 3d017b8797 Update out of date comment
llvm-svn: 6070
2003-05-09 22:16:18 +00:00
Chris Lattner 36a38730c6 Updates to match recent timer updates
llvm-svn: 6069
2003-05-09 20:44:22 +00:00
Chris Lattner 3223099757 Add new method to check to see if a global is available
llvm-svn: 6058
2003-05-09 03:29:03 +00:00
Chris Lattner 2274c71150 Allow const functions
llvm-svn: 6056
2003-05-09 03:27:41 +00:00
Chris Lattner f7c402c42f Fix bug in last checkin
llvm-svn: 6055
2003-05-08 22:00:52 +00:00
Chris Lattner e79e4c8147 Add new methods for stub generation
llvm-svn: 6053
2003-05-08 21:53:57 +00:00
Chris Lattner 7f389e8cf9 Add a pointersize/endianness safe load routine to match the store routine
llvm-svn: 6042
2003-05-08 16:52:16 +00:00
Chris Lattner 940ebf64d6 Initial support for intrinsic functions
llvm-svn: 6033
2003-05-08 03:34:12 +00:00
Chris Lattner 708d608ba3 Initial checkin for LLVM intrinsic functions
llvm-svn: 6032
2003-05-08 03:33:54 +00:00
Chris Lattner e10061e202 Add support for the new VarArgInst instruction, reindent some stuff
llvm-svn: 6028
2003-05-08 02:43:06 +00:00
Chris Lattner d625272e45 Add new VarArgInst class for the va_arg instruction
llvm-svn: 6027
2003-05-08 02:42:50 +00:00
Chris Lattner b0888bfaca Add comments, add a vector to keep track of which registers are allocatable
llvm-svn: 6014
2003-05-07 20:07:58 +00:00
Chris Lattner afcc4b9f1c Fix memory corruption problem
llvm-svn: 6003
2003-05-06 18:45:02 +00:00
Misha Brukman f4c7d206a3 It's 'separate'. The 'i.e.' is kinda nit-picking, but think of it this way:
'separate' is the one causing you to recompile all your passes anyway.

llvm-svn: 5992
2003-05-03 03:31:06 +00:00
Chris Lattner 4f6cdbdf81 Remove two fields from TargetData which are target specific.
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner 91e0564f75 Revert last checkin. Note that PHI nodes can use basic blocks also!
llvm-svn: 5956
2003-04-26 17:38:26 +00:00
Chris Lattner 201b4b9c88 Remove long-dead obsolete cruft
llvm-svn: 5955
2003-04-25 23:39:08 +00:00
Chris Lattner d6df41d389 Fix method name type-o
llvm-svn: 5933
2003-04-25 05:23:27 +00:00
Chris Lattner a2f7d23e9a *** Huge: Make constantexprs be handled correctly, conservatively
llvm-svn: 5923
2003-04-25 02:51:46 +00:00
Chris Lattner 06aa504555 Default ctor doesn't provide name
llvm-svn: 5921
2003-04-25 02:50:19 +00:00
Chris Lattner 02378422a4 Add new targetdata ctor to create a targetdata appropriate to the module
llvm-svn: 5902
2003-04-24 19:08:45 +00:00
Chris Lattner 4ca84cbbde Remove support for "targetdata pass ctors"
llvm-svn: 5901
2003-04-24 18:41:30 +00:00
Chris Lattner 6e646f1377 LevelRaise now gets TD from passmanager
llvm-svn: 5897
2003-04-24 18:25:42 +00:00
Chris Lattner 1d724408d0 Kill unneccesary &*
llvm-svn: 5870
2003-04-23 16:35:30 +00:00
Chris Lattner 1dd9185996 Add stub to create lowerSwitches pass
llvm-svn: 5866
2003-04-23 16:24:19 +00:00
Chris Lattner ecb0bac0ec Allow autoconversion from ilist_iterator<T> to T* in a dyn_cast and friends
llvm-svn: 5862
2003-04-23 16:17:53 +00:00
Chris Lattner 215b00589f Allow dyn_cast to operate on things that aren't OBVIOUSLY a pointer type.
These things can be converted to a pointer, like ilist_iterators

llvm-svn: 5861
2003-04-23 16:17:28 +00:00
Chris Lattner 085ca7d3ed Add information about the module source
llvm-svn: 5837
2003-04-22 18:03:13 +00:00
Chris Lattner c3f6e00011 Add support for tracking whether a module is 64/32 bit and big/little endian
Also add a moduleID field which can be used for diagnostics

llvm-svn: 5834
2003-04-22 18:02:04 +00:00
Chris Lattner 56b9eb9cc1 Add prototype to read .a files
llvm-svn: 5821
2003-04-19 21:45:52 +00:00
Chris Lattner 55cdd161f8 Add prototype for new CloneBasicBlock function
llvm-svn: 5804
2003-04-18 03:49:22 +00:00
Chris Lattner 37a2e2185a Don't force a ConstantPointer to be returned
llvm-svn: 5799
2003-04-17 19:22:47 +00:00
Chris Lattner 46b3d30bf6 Change the interface to constant expressions to allow automatic folding
llvm-svn: 5793
2003-04-16 22:40:51 +00:00
Chris Lattner 0d2d871e80 Revert modulo scheduling change that should be part of the modulo-sched pass itself,
not part of the Instruction class.

llvm-svn: 5787
2003-04-16 20:30:02 +00:00
Chris Lattner 379a8d2d1c Add new linkage types to support a real frontend
llvm-svn: 5786
2003-04-16 20:28:45 +00:00
Misha Brukman 61a9e7c901 Must use std::pair instead of just 'pair'.
llvm-svn: 5767
2003-04-07 00:25:09 +00:00
Guochun Shi 2c6ad22962 added a function and a member to the TargetSchedInfo class
which is used  by Modulo Scheduling pass

llvm-svn: 5766
2003-04-07 00:00:36 +00:00
Guochun Shi 09abd1aeaf added some memory for clone function
llvm-svn: 5765
2003-04-06 23:58:44 +00:00
Chris Lattner 73410f84f7 Add getAnalysisUsage method
llvm-svn: 5756
2003-03-31 17:29:18 +00:00
Chris Lattner 9ad7757e7c Add helper method
llvm-svn: 5753
2003-03-21 21:41:02 +00:00
Chris Lattner 3628607140 Update comment
llvm-svn: 5752
2003-03-21 21:40:39 +00:00
Chris Lattner 91f136847e Add more graph traits specializations for dominator tree nodes
llvm-svn: 5751
2003-03-20 21:21:05 +00:00
Chris Lattner 65c9fb07b0 Add new chunk type
llvm-svn: 5747
2003-03-19 20:48:27 +00:00
Chris Lattner 9c19c07e8b Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95
llvm-svn: 5745
2003-03-17 18:11:27 +00:00
Chris Lattner 83e5d39566 Fix ConstantUInt::isAllOnesValue
llvm-svn: 5734
2003-03-10 22:39:02 +00:00
Chris Lattner 187c39b6d0 Extend struct and array constants to support isNullValue
llvm-svn: 5719
2003-03-06 21:02:43 +00:00
Chris Lattner c429eee86a Generalize interface a bit
llvm-svn: 5711
2003-03-06 16:50:21 +00:00
Chris Lattner d5c4ef5456 Add new getIncomingValueForBlock method
Relax a bit about constness

llvm-svn: 5709
2003-03-06 16:36:28 +00:00
Chris Lattner fbb7739b13 Simplify some of the PHI node interfaces
llvm-svn: 5700
2003-03-05 21:15:12 +00:00
Chris Lattner 12f3ec7d10 Add a few new 'add' methods. Move the iterator around
llvm-svn: 5690
2003-03-03 23:27:52 +00:00
Chris Lattner e27406eb59 Change the mem2reg interface to accept a TargetData argument
llvm-svn: 5685
2003-03-03 17:25:18 +00:00
Chris Lattner e2d58f2065 Don't apply type information to loads
llvm-svn: 5683
2003-03-03 17:13:22 +00:00
Chris Lattner a6de793baa Add dump method for loops
llvm-svn: 5670
2003-02-28 16:54:37 +00:00
Chris Lattner 915e1a4854 Add graph traits specializations for loop nesting information...
llvm-svn: 5666
2003-02-28 03:05:15 +00:00
Chris Lattner 9eaef21f1f Add new Loop::hasExitBlock helper method
llvm-svn: 5663
2003-02-27 22:48:28 +00:00
Chris Lattner 72a9854584 Change behavior of changeExitBlock function to replace all instances of exit block
llvm-svn: 5661
2003-02-27 22:37:44 +00:00
Chris Lattner 079cd2acf1 Make the interface to update a little more efficient
llvm-svn: 5651
2003-02-27 20:24:17 +00:00
Chris Lattner 9ce4a2bb96 * LoopInfo now keeps track of exit blocks from the loop
* New LoopInfo::isLoopHeader method
  * Remove some #if 0 code

llvm-svn: 5649
2003-02-27 00:37:22 +00:00
Chris Lattner b5b0b7a934 Make the aliassettracker much more precise by actually tracking size
information for various accesses.  What a concept.

llvm-svn: 5647
2003-02-26 22:11:00 +00:00
Chris Lattner ddfe676e71 BasicAA doesn't need a public header
llvm-svn: 5639
2003-02-26 19:41:46 +00:00
Chris Lattner 7b5727a400 Tweak to work with new AA implementation
llvm-svn: 5632
2003-02-26 19:25:04 +00:00
Chris Lattner c6bf7ec5e0 Checkin of new alias analysis interface:
* Takes into account the size of the memory reference to determine aliasing.
  * Expose mod/ref information in a more consistent way

llvm-svn: 5631
2003-02-26 19:24:47 +00:00
Chris Lattner daaf2982e7 * Un "protect" the getAnalysis<> functions
* Add a new initializePass() method to ImmutablePass

llvm-svn: 5629
2003-02-26 19:10:28 +00:00
Chris Lattner a5dc1ec0a4 Add new helper template function
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Chris Lattner 4869f3700e Rename Instruction::hasSideEffects() -> mayWriteToMemory()
llvm-svn: 5620
2003-02-24 20:48:32 +00:00
Chris Lattner 7606fb65c0 This is a substantial rewrite of the AliasSetTracker class which now uses
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.

This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.

llvm-svn: 5619
2003-02-24 20:37:56 +00:00
Chris Lattner a65cd08dd8 Initial checkin of CallSite wrapper for Call/Invoke instructions
llvm-svn: 5618
2003-02-24 20:35:45 +00:00
Chris Lattner 940863bd22 Fix #endif
llvm-svn: 5615
2003-02-24 04:40:35 +00:00
Chris Lattner af9598f6a8 Add support for the slist extension
llvm-svn: 5614
2003-02-24 04:31:49 +00:00
Chris Lattner 6dbd10c760 Add a new interface file for the PromoteMemToReg interface in the Utils library
llvm-svn: 5609
2003-02-22 23:04:52 +00:00
Chris Lattner a17866894a Move node forwarding code from being inlined to being out-of-line.
This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa

llvm-svn: 5552
2003-02-13 19:09:00 +00:00
Chris Lattner 7127d7db7a Implement a "union-findy" version of DS-Analysis, which eliminates the
Referrers list on DSNodes.

llvm-svn: 5536
2003-02-11 23:11:51 +00:00
Chris Lattner 1cc14aa2ba Fix uninitialized member problem
llvm-svn: 5534
2003-02-11 06:36:00 +00:00
Chris Lattner 242d685332 Bugfix for calling dump() after the links vector has been cleared
llvm-svn: 5533
2003-02-10 22:46:47 +00:00
Chris Lattner e170f0db13 Move getNode() out of line
llvm-svn: 5531
2003-02-10 18:19:41 +00:00
Chris Lattner f4122de179 Implement a new method "viewGraph" which can be used to instantly view a graph from GDB.
llvm-svn: 5529
2003-02-10 18:17:38 +00:00
Chris Lattner ed8dbc90a5 TD Pass now does not cause globals to mark nodes incomplete.
llvm-svn: 5512
2003-02-09 18:40:25 +00:00
Chris Lattner 80614ee5ef Implement optimization for direct function call case. This dramatically
reduces the number of function nodes created and speeds up analysis by
about 10% overall.

llvm-svn: 5495
2003-02-05 21:59:58 +00:00
Chris Lattner 6a9307866c Allow the addition of edge source labels
llvm-svn: 5493
2003-02-05 19:40:59 +00:00
Chris Lattner a0e9e6ec8c Add sanity check
llvm-svn: 5489
2003-02-04 00:03:57 +00:00
Chris Lattner 390cec0c77 Hack to work around deficiency in pass infrastructure
llvm-svn: 5485
2003-02-03 22:51:28 +00:00
Chris Lattner 6662cbc510 Eliminate unused resolving caller stuff
llvm-svn: 5475
2003-02-03 19:11:04 +00:00
Chris Lattner d39eca41b8 * Add a bunch of stuff for checking the integrity of the graph
* remove the isNodeDead method

llvm-svn: 5474
2003-02-03 19:10:24 +00:00
Chris Lattner ddcd02e8db Remove pool alloc accessor
llvm-svn: 5473
2003-02-03 19:08:33 +00:00
Chris Lattner 45914783ad Expose information about pool allocation
llvm-svn: 5471
2003-02-03 19:07:46 +00:00
Chris Lattner b57f4b7b72 Allow modifying a global variables constness property
llvm-svn: 5468
2003-02-02 16:40:40 +00:00
Chris Lattner c44c04af44 Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)
This change provides a small (3%) but consistent speedup

llvm-svn: 5460
2003-02-01 04:52:08 +00:00
Chris Lattner 2c5b6a0021 Add hash_multimap support
llvm-svn: 5457
2003-02-01 04:14:28 +00:00
Chris Lattner fae1291852 Add new composition mask
llvm-svn: 5454
2003-02-01 03:28:26 +00:00
Joel Stanley a801c7bae5 Added protos for two alternate, convenient CallInst constructors.
llvm-svn: 5453
2003-02-01 00:41:27 +00:00
Chris Lattner 26a1fe3494 Add new function to allow removal of typed named elements
llvm-svn: 5442
2003-01-30 20:54:03 +00:00
Chris Lattner d43c53abbc New API for traversing graph
llvm-svn: 5430
2003-01-29 21:09:59 +00:00
Chris Lattner aa6b2bfd78 Initial checking: defult the make_vector function
llvm-svn: 5424
2003-01-28 20:01:16 +00:00
Chris Lattner 6ffcdb5bef New helper header
llvm-svn: 5423
2003-01-27 22:08:52 +00:00
Chris Lattner 38c5e417a7 * Eliminate boolean arguments in favor of using enums
llvm-svn: 5420
2003-01-23 22:06:33 +00:00
Chris Lattner eb45c982ae Print machine frame objects with the frame offset intrinsic to the machine
llvm-svn: 5329
2003-01-16 18:35:57 +00:00
Chris Lattner dea36ca100 Move sparc specific code into the Sparc backend
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner 79f8a6e5fb Simplify the interface
llvm-svn: 5313
2003-01-15 21:13:32 +00:00
Chris Lattner 8e3df8ea34 Move private headers into private regalloc directory
llvm-svn: 5308
2003-01-15 20:26:32 +00:00
Chris Lattner 99f2dfd673 Move private header to private dir
llvm-svn: 5304
2003-01-15 19:50:32 +00:00