Commit Graph

5098 Commits

Author SHA1 Message Date
Chris Lattner 72969922ea Adjustments due to new FieldInit stuff
llvm-svn: 4852
2002-12-02 17:43:43 +00:00
Chris Lattner b8ecdceb87 Add comments, factor out common code
llvm-svn: 4851
2002-12-02 16:57:01 +00:00
Chris Lattner 97984b1d5d Add support for field exprs
llvm-svn: 4850
2002-12-02 16:43:43 +00:00
Chris Lattner 3567880e6e * Move BitsInit::resolveReferences up with the rest of BitsInit code
* Initial support for field expressions

llvm-svn: 4849
2002-12-02 16:43:30 +00:00
Chris Lattner ae2bed976c Initial support for Field Expressions
llvm-svn: 4848
2002-12-02 16:42:52 +00:00
Chris Lattner 8eb531cd55 Add correct dependency
llvm-svn: 4847
2002-12-02 16:31:46 +00:00
Chris Lattner 6f19b1b6c4 Split up targets
llvm-svn: 4846
2002-12-02 16:13:42 +00:00
Chris Lattner 5d850ddb5c Add comments
llvm-svn: 4845
2002-12-02 16:13:23 +00:00
Chris Lattner 27fceda974 Make sure to build lib/Support before the utilities, then use the new
makefile in utils to build the utilities

llvm-svn: 4844
2002-12-02 01:23:26 +00:00
Chris Lattner a6240f6b1a Initial checkin of TableGen utility
llvm-svn: 4843
2002-12-02 01:23:04 +00:00
Chris Lattner 13b66f43cf Add makefile to build subdirs
llvm-svn: 4842
2002-12-02 01:21:34 +00:00
Chris Lattner 08cd1edaa9 Add rawfrm flags
llvm-svn: 4841
2002-12-01 23:25:59 +00:00
Chris Lattner 7dcb1436da Don't add implicit regs
llvm-svn: 4840
2002-12-01 23:24:58 +00:00
Brian Gaeke 2ad3501d3f brg
InstSelectSimple.cpp: Refactor out conversion of byte, short -> int
  from visitReturnInst() to new method, promote32().
 Use it in both visitReturnInst() and visitCallInst().

llvm-svn: 4839
2002-11-30 11:57:28 +00:00
Brian Gaeke 23953e0f8a brg
InstSelectSimple.cpp: First draft of visitCallInst method, handling
 int/float args.
X86InstrInfo.def: Add entries for CALL with 32-bit pc relative arg, and
 PUSH with 32-bit reg arg.

llvm-svn: 4838
2002-11-29 12:01:58 +00:00
Vikram S. Adve cb8b5af572 Several fixes:
(1) Applied patch from Casey to implement iterator::operator= correctly:
    it should use a pointer, not a reference.
(2) Added operators == and !=, and method all().
(3) Important bug fix: excess bits need to be ignored in operations
    like ==, count(), and all().  We do this by ensuring excess bits
    in the last bitset are always 0.

llvm-svn: 4837
2002-11-27 17:46:38 +00:00
Vikram S. Adve 2d2303db22 Fix logical error in TD pass: we should clear Mod/Ref bits of each caller
before inlining their graphs into a function.  To support this,
added flags to CloneFlags to strip/keep Mod/Ref bits.

llvm-svn: 4836
2002-11-27 17:41:13 +00:00
Vikram S. Adve 0b5b784922 Added flags to CloneFlags to strip/keep Mod/Ref bits when cloning a graph.
llvm-svn: 4835
2002-11-27 17:39:37 +00:00
Vikram S. Adve 9409087108 No longer need local graph to find call sites.
Also some major fixes within IPModRef.cpp.

llvm-svn: 4834
2002-11-27 17:38:56 +00:00
Vikram S. Adve 19b3303f3d (1) Bug fix that was causing nodes with dangling references to be freed.
We run removeDeadNodes() on the TD graph up front before using it.
(2) Major enhancement to printing of results: now we list the actual objects
    that are mod/ref instead of just printing the bit vectors.
Also an important bug fix in TDDataStructures pass (no change here):
clear Mod/Ref bits of callers before inlining into a function.

llvm-svn: 4833
2002-11-27 17:37:46 +00:00
Brian Gaeke 4ba2cb110a brg
InstSelectSimple.cpp: Add some comments that say what I'm going to do for
 calls and casts.

llvm-svn: 4832
2002-11-26 10:43:30 +00:00
Vikram S. Adve 68690673ad Keep global nodes in each DS Graph (by forcing them to be marked live).
llvm-svn: 4831
2002-11-25 18:21:25 +00:00
Misha Brukman 5014e38273 Oops. Got the MOVrm and MOVmr mixed up. Fixed. We can now print out
instructions correctly.

llvm-svn: 4830
2002-11-22 23:15:27 +00:00
Misha Brukman 55cf6bfae4 Enable the register allocator pass.
llvm-svn: 4829
2002-11-22 22:45:07 +00:00
Misha Brukman 60286d0916 A simple (spilling) register allocator.
llvm-svn: 4828
2002-11-22 22:44:32 +00:00
Misha Brukman bde217d7a9 Added methods to read/write values to stack in .h, fixed implementation in
.cpp to return the iterator correctly.

llvm-svn: 4827
2002-11-22 22:43:47 +00:00
Misha Brukman 1a72c637fb Added -*- C++ -*- mode to the comments.
llvm-svn: 4826
2002-11-22 22:42:50 +00:00
Misha Brukman 4ea94a4be0 Add a simple way to add memory locations of format [reg+offset]
llvm-svn: 4825
2002-11-22 22:42:12 +00:00
Misha Brukman ec6b8e9fad Added virtual functions for storing and retrieving values from the stack.
llvm-svn: 4824
2002-11-22 22:41:23 +00:00
Misha Brukman 5bed2faf6b Instead of checking op.getType() against MO_VirtualRegister and
MO_MachineRegister, we no longer distinguish Virtual vs. Machine registers
externally, they're ALL registers, all equal.

Registers are only differentiated whether they are >=
MRegisterInfo::FirstVirtual or not.

llvm-svn: 4823
2002-11-22 22:40:52 +00:00
Misha Brukman 31457f066d Set SSARegMap to NULL after deleting it.
llvm-svn: 4822
2002-11-22 22:32:15 +00:00
Brian Gaeke aa91eae6af lib/Target/X86/InstSelectSimple.cpp: Add visitCallInst, visitCastInst.
llvm-svn: 4821
2002-11-22 11:07:01 +00:00
Chris Lattner d2b1b2c8ac Make testcase more interesting
llvm-svn: 4820
2002-11-21 23:30:08 +00:00
Chris Lattner e5330c4adf Handle cmp Reg, 0 correctly
llvm-svn: 4819
2002-11-21 23:30:00 +00:00
Chris Lattner f435afc268 Printing support for more stuff
llvm-svn: 4818
2002-11-21 22:49:46 +00:00
Chris Lattner 174a94007d Don't add implicit operands
llvm-svn: 4817
2002-11-21 22:49:20 +00:00
Chris Lattner b35341ee25 Fix off by one bug
llvm-svn: 4816
2002-11-21 22:48:15 +00:00
Chris Lattner af7bd2c6b5 Add fixme
llvm-svn: 4815
2002-11-21 22:48:01 +00:00
Chris Lattner 1c80d37765 Minor code cleanups
llvm-svn: 4814
2002-11-21 21:04:50 +00:00
Chris Lattner 4fbd8a2f78 Implement printing of store instructions
llvm-svn: 4813
2002-11-21 21:03:39 +00:00
Chris Lattner 61fafd35f5 The big change here is to handle printing/emission of X86II::MRMSrcMem
instructions.  Right now the only users are load instructions, and Misha's
spill code

llvm-svn: 4812
2002-11-21 20:44:15 +00:00
Chris Lattner cf7c225e06 Remove implicit information from instruction selector
llvm-svn: 4811
2002-11-21 18:54:29 +00:00
Chris Lattner e8885d949a Add printing information for MUL and DIV
llvm-svn: 4810
2002-11-21 18:54:14 +00:00
Chris Lattner 5e50475adb Fix a bug that prevented compilation of multiple functions
llvm-svn: 4809
2002-11-21 17:26:58 +00:00
Chris Lattner 3d8fc7fc85 Move test
llvm-svn: 4808
2002-11-21 17:20:32 +00:00
Chris Lattner 61574bb7ad Shuffle testcases around
llvm-svn: 4807
2002-11-21 17:20:12 +00:00
Chris Lattner 76116fae3e New testcase
llvm-svn: 4806
2002-11-21 17:18:37 +00:00
Chris Lattner 7939ecc8eb Remove opcode information for instructions that are completely defined now
llvm-svn: 4805
2002-11-21 17:12:55 +00:00
Chris Lattner 1f9530508b Add printing support for sahf & setcc
llvm-svn: 4804
2002-11-21 17:10:57 +00:00
Chris Lattner c868841ad6 Add printing support for /0 /1 type instructions
llvm-svn: 4803
2002-11-21 17:09:01 +00:00