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