Chris Lattner
ac6a47588b
Fix incorrect suffix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16642 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 05:20:16 +00:00
Chris Lattner
707c6fe3ad
Fix some more missed suffixes and swapped operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16641 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 01:38:10 +00:00
Chris Lattner
60c715c9a2
Add missing suffixes to FP instructions for AT&T mode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16640 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 00:43:31 +00:00
Chris Lattner
9a3e49a1b3
Add support for the -x86-asm-syntax flag, which can be used to choose between
...
Intel and AT&T style assembly language. The ultimate goal of this is to
eliminate the GasBugWorkaroundEmitter class, but for now AT&T style emission
is not fully operational.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16639 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-03 20:36:57 +00:00
Chris Lattner
3a173dfc72
Add support to the instruction patterns for AT&T style output, which will
...
hopefully lead to the death of the 'GasBugWorkaroundEmitter'. This also
includes changes to wrap the whole file to 80 columns! Woot! :)
Note that the AT&T style output has not been tested at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16638 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-03 20:35:00 +00:00
Chris Lattner
0fa206615a
Add initial support for variants
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16635 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-03 19:34:18 +00:00
Chris Lattner
7cf3490892
Do not repeat the map lookup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16633 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 23:16:43 +00:00
Chris Lattner
bec6a9ea12
When a virtual register is folded into an instruction, keep track of whether
...
it was a use, def, or both. This allows us to be less pessimistic in our
analysis of them. In practice, this doesn't make a big difference, but it
doesn't hurt either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16632 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 23:15:36 +00:00
Chris Lattner
52b25db3ef
Add a simple little improvement to the local spiller to keep track of stores
...
and delete them if they turn out to be dead. This is a useful little hack
that even speeds up some programs. For example, it speeds up Ptrdist/ks
from 17.53s to 15.59s, and 188.ammp from 149s to 146s.
This also speeds up llc :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16630 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 19:47:12 +00:00
Chris Lattner
7fb64347d7
Substantially revamp the local spiller, causing it to actually improve the
...
generated code over the simple spiller. The new local spiller generates
substantially better code than the simple one in some cases, by reusing
values that are loaded out of stack slots and kept available in registers.
This primarily helps programs that are spilling a lot, and there is still
stuff that can be done to improve it. This patch makes the local spiller
the default, as it's only a tiny bit slower than the simple spiller (it
increases the runtime of llc by < 1%).
Here are some numbers with speedups.
Program #reuse old(s) new(s) Speedup
Povray: 3452, 16.87 -> 15.93 (5.5%)
177.mesa: 2176, 2.77 -> 2.76 (0%)
179.art: 35, 28.43 -> 28.01 (1.5%)
183.equake: 55, 61.44 -> 61.41 (0%)
188.ammp: 869, 174 -> 149 (15%)
164.gzip: 43, 40.73 -> 40.71 (0%)
175.vpr: 351, 18.54 -> 17.34 (6.5%)
176.gcc: 2471, 5.01 -> 4.92 (1.8%)
181.mcf 42, 79.30 -> 75.20 (5.2%)
186.crafty: 484, 29.73 -> 30.04 (-1%)
197.parser: 251, 10.47 -> 10.67 (-1%)
252.eon: 1501, 1.98 -> 1.75 (12%)
253.perlbm: 1183, 14.83 -> 14.42 (2.8%)
254.gap: 825, 7.46 -> 7.29 (2.3%)
255.vortex: 285, 10.51 -> 10.27 (2.3%)
256.bzip2: 63, 55.70 -> 55.20 (0.9%)
300.twolf: 830, 21.63 -> 22.00 (-1%)
PtrDist/ks 14, 32.75 -> 17.53 (46.5%)
Olden/tsp 46, 8.71 -> 8.24 (5.4%)
Free/distray 70, 1.09 -> 0.99 (9.2%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16629 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 19:04:51 +00:00
Chris Lattner
ef0543689f
Pretty print a bit nicer :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16628 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 19:01:39 +00:00
Alkis Evlogimenos
c736b3a37a
Document this class a bit :-)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16626 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 00:35:07 +00:00
Brian Gaeke
828c68a4de
Make EmitMappingInfo into an "external location" option, so that it can be set
...
or cleared externally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16623 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 20:20:01 +00:00
Brian Gaeke
f098ced848
Add accessor function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16622 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 20:14:29 +00:00
Brian Gaeke
b3b1e33632
Correct type of accessor functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16621 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 20:14:18 +00:00
Brian Gaeke
ccb87cdf07
Namespacify. Add accessor function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16620 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 20:14:07 +00:00
Brian Gaeke
6672f86a4d
I think this will handle double args.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16618 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 19:44:32 +00:00
Misha Brukman
14abc25f76
That should actually be __MING, not __MINGW.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16617 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 18:28:07 +00:00
Misha Brukman
34ec89cd48
Check for __MINGW define instead of __MINGW_H, patch by Henrik Bach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16615 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 18:24:58 +00:00
Chris Lattner
dbea9731b1
Use more efficient map operations. Fix a bug that would affect hypothetical
...
targets that supported multiple memory operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16614 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 16:35:08 +00:00
Chris Lattner
477e4555de
There is no need to call MachineInstr::print directly, just send the MI& to an ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16613 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 16:10:45 +00:00
Chris Lattner
70ca358b7d
* Wrap some comments to 80 cols
...
* Add const_iterator stuff
* Add a print method, which means that I can now call dump() from the
debugger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16612 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 15:59:17 +00:00
Brian Gaeke
d7bf501cc7
Mark the instructions that have delay slots with the hasDelaySlot flag.
...
Add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16611 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 04:04:48 +00:00
Brian Gaeke
870248b164
Use TargetMachine::hasDelaySlot() instead of our old switch statement
...
to find instrs that have delay slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16610 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 04:04:47 +00:00
Chris Lattner
0fc27ccdd3
Simplify the logic in the simple spiller and capitalize some variables
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16609 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 02:59:33 +00:00
Chris Lattner
5f7d2d45fd
Switch from defaulting to the 'local' spiller to the 'simple' spiller. The
...
two spillers produce perfectly identical code (at least on povray and eon),
but the simple spiller is substantially faster than the local spiller. Once
the local spiller is improved, we can switch back.
Switching cuts 5.2% off of the llc time for povray (about 1.3s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16608 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 02:40:06 +00:00
Chris Lattner
4ea1b828eb
Don't use a densemap for keeping track of which vregs are already loaded, just
...
use a simple vector. This speeds up -spiller=simple from taking 22s to taking
.1s on povray (debug build). This change does not modify the generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16607 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 02:33:48 +00:00
Chris Lattner
7f690e6258
Use longer and more explicit names for instance vars (particularly important
...
data structures). Fix the print method to send to the right ostream, not
always cerr. Delete typedefs that are only used once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16606 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 02:15:18 +00:00
Chris Lattner
510a3ea646
Free the VirtRegMap at the end of MachineFunction processing instead of at
...
the beginning of processing the next one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16605 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 02:02:33 +00:00
Chris Lattner
8c4d88d369
Reindent code, improve comments, move huge nested methods out of classes,
...
prune #includes, add print/dump methods, etc. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16604 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 01:54:45 +00:00
Chris Lattner
23367a779c
Disable the 'WARNING: Found global types that are not compatible' warning
...
that always prints when linking programs to libstdc++ :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16603 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30 00:12:29 +00:00
Misha Brukman
1155d31ef6
Change the #ifdefs to allow compilation with a V8 compiler, but the JIT still
...
won't work if not compiled in V9 mode, currently by GCC only, because Sun's
system compiler does not tell us if it's a V8 or V9 system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16602 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 23:01:17 +00:00
Chris Lattner
a71989f11b
Hrm, debugging printouts do not need to be in here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16598 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 21:21:14 +00:00
Chris Lattner
0030e6c5c5
Make sure to check select instructions for generic instruction properties
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16597 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 21:19:28 +00:00
Brian Gaeke
49dd15402b
Update list of shootout programs that should be working.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16595 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 20:45:06 +00:00
Brian Gaeke
374b36d5cf
Tell the target description that calls clobber registers O0...O5.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16594 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 20:45:05 +00:00
Chris Lattner
a7b1c7ec7c
Don't use DominatorSet::dominates for intra-block instruction dom checks.
...
This method is linear time in the size of the basic block, which is very
bad for large basic blocks. On the Assembler/2004-09-29-VerifierIsReallySlow.llx
testcase, the verifier changes from taking 50s to 0.23s with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 20:07:45 +00:00
Brian Gaeke
22ad67dd68
FITOD is spelled "fitod", not "fitos". Ouch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16591 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 19:59:07 +00:00
Brian Gaeke
6fdd9e1f35
Don't use .quad to output double constants. The assembler must have a bug or
...
something, because the wrong bit patterns get output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16590 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 19:59:06 +00:00
Chris Lattner
a96879a26d
* Pull range optimization code out into new InsertRangeTest function.
...
* SubOne/AddOne functions always return ConstantInt, declare them as such
* Pull code for handling setcc X, cst, where cst is at the end of the range,
or cc is LE or GE up earlier in visitSetCondInst. This reduces #iterations
in some cases.
* Fold: (div X, C1) op C2 -> range check, implementing div.ll:test6 - test9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16588 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 17:40:11 +00:00
Brian Gaeke
9ed920437a
Recognize FpMOVD as a move.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16586 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 16:45:47 +00:00
Chris Lattner
0ed7f42c1b
Do not insert trivially dead select instructions, which allows us to
...
potentially fold more in one pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16583 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 05:43:32 +00:00
Chris Lattner
4e998b2fea
Fold binary expressions and casts into PHI nodes that have all constant inputs.
...
This takes something like this:
%A = phi int [ 3, %cond_false.0 ], [ 2, %endif.0.i ], [ 2, %endif.1.i ]
%B = div int %tmp.243, 4
and turns it into:
%A = phi int [ 3/4, %cond_false.0 ], [ 2/4, %endif.0.i ], [ 2/4, %endif.1.i ]
which is later simplified (in this case) into %A = 0.
This triggers thousands of times in spec, for example, 269 times in 176.gcc.
This is tested by InstCombine/add.ll:test23 and set.ll:test18.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16582 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 05:07:12 +00:00
Nate Begeman
1f49e868aa
Generate better code by being far less clever when it comes to the select instruction. Don't create overlapping register lifetimes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16580 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 05:00:31 +00:00
Brian Gaeke
a771347336
add results
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16579 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:48:55 +00:00
Nate Begeman
1b99fd3e8a
improve Type::BoolTy codegen by eliminating unnecessary clears and sign extends
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16578 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:45:33 +00:00
Brian Gaeke
1df468ea9b
Simplify copyConstantToRegister() for longs, using a pair of recursive calls.
...
Copy constant-pool entries' addresses into registers before loading out of them,
to avoid errors from the assembler.
Handle loading call args past the 6th one off the stack.
Add IMPLICIT_DEF pseudo-instrs for double and long arguments passed in register
pairs.
Use FpMOVD to copy doubles around instead of the horrible store-load thing we
were doing before.
Handle 'ret double' and 'ret long'.
Fix a bug in handling 'and/or/xor long'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16577 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:34:41 +00:00
Brian Gaeke
9b8ed0e04a
Fix bug recognizing moves: isMoveInstr should only treat ORs with %g0 as
...
moves, not all ORs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16576 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:28:15 +00:00
Brian Gaeke
bcf2ad296f
Use FpMOVD pseudo-instruction to move doubles around.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16575 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:27:30 +00:00
Brian Gaeke
a036b53929
Add new FpMOVD pseudo-instruction, used to move doubles around.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16574 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:27:29 +00:00
Brian Gaeke
8a9acd1e31
Fix double and long alignment.
...
Call the FPMover pass after register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16573 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:26:27 +00:00
Brian Gaeke
b27df44b62
Put quotes around argument to .section directive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16572 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:25:40 +00:00
Brian Gaeke
1162ed2900
Add createSparcV8FPMoverPass().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16571 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:25:39 +00:00
Brian Gaeke
15b2838035
Pass which converts FpMOVD (double move pseudoinstructions) to pairs
...
of FMOVS instrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16570 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:24:34 +00:00
Chris Lattner
dd763f401e
Hrm, really, all tests passed without this, but it is scary to think how...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16568 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:16:24 +00:00
Chris Lattner
f6d1d7d2ba
Remove debugging printout
...
Instcombine (setcc (truncate X), C1).
This occurs THOUSANDS of times in many benchmarks. Particularlly common
seem to be things like (seteq (cast bool X to int), int 0)
This turns it into (seteq bool %X, false), which then becomes (not %X).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16567 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 03:09:18 +00:00
Nate Begeman
a41fc77ae4
To go along with sabre's improved InstCombining, improve recognition of
...
integers that we can use as immediate values in instructions.
Example from yacr2:
- lis r10, -1
- ori r10, r10, 65535
- add r28, r28, r10
+ addi r28, r28, -1
addi r7, r7, 1
addi r9, r9, 1
b .LBB_main_9 ; loopentry.1.i214
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16566 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 02:35:05 +00:00
Reid Spencer
6a0ec6fcf6
Improve validity checking of windows path names and fix file creation
...
problems.
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16565 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29 00:01:17 +00:00
Reid Spencer
ced4110f5b
Use llvm::sys::Path to destroy the file.
...
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16564 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 23:58:03 +00:00
Reid Spencer
10366a4ad9
Win32 implementation of TimeValue::now().
...
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16563 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 23:56:20 +00:00
Reid Spencer
d722bf5c28
FreeBSD implementation of the TimeValue::now() method.
...
Patch kindly contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16562 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 23:54:12 +00:00
Chris Lattner
b4f40d2059
Fold (X setcc C1) | (X setcc C2)
...
This implements or.ll:test1[89]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16561 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 22:33:08 +00:00
Chris Lattner
955f331a77
Fold (and (setcc X, C1), (setcc X, C2))
...
This is important for several reasons:
1. Benchmarks have lots of code that looks like this (perlbmk in particular):
%tmp.2.i = setne int %tmp.0.i, 128 ; <bool> [#uses=1]
%tmp.6343 = seteq int %tmp.0.i, 1 ; <bool> [#uses=1]
%tmp.63 = and bool %tmp.2.i, %tmp.6343 ; <bool> [#uses=1]
we now fold away the setne, a clear improvement.
2. In the more important cases, such as (X >= 10) & (X < 20), we now produce
smaller code: (X-10) < 10.
3. Perhaps the nicest effect of this patch is that it really helps out the
code generators. In particular, for a 'range test' like the above,
instead of generating this on X86 (the difference on PPC is even more
pronounced):
cmp %EAX, 50
setge %CL
cmp %EAX, 100
setl %AL
and %CL, %AL
cmp %CL, 0
we now generate this:
add %EAX, -50
cmp %EAX, 50
Furthermore, this causes setcc's to be folded into branches more often.
These combinations trigger dozens of times in the spec benchmarks, particularly
in 176.gcc, 186.crafty, 253.perlbmk, 254.gap, & 099.go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16559 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 21:48:02 +00:00
Nate Begeman
8d5c50329b
Add support for the isLoad and isStore flags, needed by the instruction scheduler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16555 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 21:29:00 +00:00
Chris Lattner
7baaf09f9f
Capture delay slot info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16551 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 18:34:14 +00:00
Chris Lattner
18d19ca6df
Implement X / C1 / C2 folding
...
Implement (setcc (shl X, C1), C2) folding.
The second one occurs several dozen times in spec. The first was added
just in case. :)
These are tested by shift.ll:test2[12], and div.ll:test5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16549 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 18:22:15 +00:00
Chris Lattner
0cba71b0d6
shl is always zero extending, so always use a zero extending shift right.
...
This latent bug was exposed by recent changes, and is tested as:
llvm/test/Regression/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16546 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 17:54:07 +00:00
Misha Brukman
44666b15b1
Fix doxygen comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16542 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 16:57:46 +00:00
Alkis Evlogimenos
c72c617a4e
Add includes and use std:: for standard library calls to make code
...
compile on windows. This patch was contributed by Paolo Invernizzi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16539 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 14:42:44 +00:00
Alkis Evlogimenos
f3ba6ddbec
Since we use alloca now make sure we include the proper headers for it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16536 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 02:53:15 +00:00
Alkis Evlogimenos
0ee6e2a6da
Use alloca instead of a C99 style array. This should fix the
...
compilation problem in windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16535 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 02:47:38 +00:00
Alkis Evlogimenos
200a360ec6
Pull assignment out of for loop conditional in order for this to
...
compile under windows. Patch contributed by Paolo Invernizzi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16534 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 02:40:37 +00:00
Alkis Evlogimenos
c4d3b91816
Fix includes. Patch contributed by Paolo Invernizzi!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16533 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 02:38:58 +00:00
Chris Lattner
83c4ec0372
Fix two bugs: one where a condition was mistakenly swapped, and another
...
where we folded (X & 254) -> X < 1 instead of X < 2. These problems were
latent problems exposed by the latest patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16528 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-27 19:29:18 +00:00
Misha Brukman
f90a656a9f
SparcV8 int regs are not only 32-bits in width, but they are 32-bit aligned!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16526 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-27 18:22:18 +00:00
Chris Lattner
56bc894d06
The system ranlib on darwin occasionally adds two extra newlines to the
...
end of files, breaking the CFE build. As a gross hack around this,
ignore any trailing garbage on bytecode files. Thanks to Brian for digging
in and identifying the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16525 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-27 16:59:06 +00:00
Chris Lattner
f63f647345
Fold: (setcc (shr X, ShAmt), CI), where 'cc' is eq or ne. This xform
...
triggers often, for example:
6x in povray, 1x in gzip, 279x in gcc, 1x in crafty, 8x in eon, 11x in perlbmk,
362x in gap, 4x in vortex, 14 in m88ksim, 211x in 126.gcc, 1x in compress,
11x in ijpeg, and 4x in 147.vortex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16521 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-27 16:18:50 +00:00
Nate Begeman
da721e74f8
Correct some BuildMI arguments for the upcoming simple scheduler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16519 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-27 05:08:17 +00:00
Misha Brukman
c6e7430499
Fix the copy-pasto that Brian noticed: V8 int regs are 32-bits wide, not 64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16518 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-26 21:07:43 +00:00
Reid Spencer
725f2c82c9
Updated to reflect changes in the interface of TimeValue::now().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16515 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-25 08:32:37 +00:00
Reid Spencer
0d5716e3af
Added stub implementations of TimeValue concept for remaining platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16513 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-25 05:03:54 +00:00
Reid Spencer
1fc194c610
Wrap to 80 cols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16512 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-25 05:03:22 +00:00
Reid Spencer
9926c31351
Initial implementation of the TimeValue abstraction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16511 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-24 23:25:19 +00:00
Chris Lattner
0c96766c90
Implement shift-and combinations, implementing InstCombine/and.ll:test19-21
...
These combinations trigger 4 times in povray, 7x in gcc, 4x in gap, and 2x in bzip2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16508 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-24 15:21:34 +00:00
Chris Lattner
648e3bc39c
Move LHSI->hasOneUse() into the arms of the conditional, reindenting code.
...
No functionality changes here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16505 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 21:52:49 +00:00
Chris Lattner
b20ba0a83f
Implement Transforms/InstCombine/and.ll:test18, a case that occurs 20 times
...
in perlbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16504 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 21:46:38 +00:00
Chris Lattner
684fe210a9
Implement select.ll:test16: fold load (select C, X, null) -> load X
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16499 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 15:46:00 +00:00
Reid Spencer
f6cbc0fd64
Patch for MINGW. Patch provided by Henrik Bach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16495 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 14:47:10 +00:00
Nate Begeman
645495d2e6
Fix the last of the major PPC GEP folding deficiencies. This will allow
...
the ISel to use indexed and non-zero immediate offsets for GEPs that have
more than one use. This is common for instruction sequences such as a load
followed by a modify and store to the same address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16493 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 05:31:33 +00:00
Misha Brukman
c95759c2f5
Use the V8/V9 shared register file description
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16485 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:48:50 +00:00
Misha Brukman
c42077d371
Combine the F2 and F3 instruction classes into one file for simplicity
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16484 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:38:42 +00:00
Misha Brukman
31b5edd2e9
Fix file header path
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16483 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:29:12 +00:00
Misha Brukman
981eefd5f7
Prettify formatting of the file, adjust paths to making V8 a subdir of Sparc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16482 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 20:09:29 +00:00
Misha Brukman
2ec09e713e
V8 is now a subdirectory of Sparc; adjust paths accordingly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16481 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 20:08:52 +00:00
Nate Begeman
a2de102a5b
add optimized code sequences for setcc x, 0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16478 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 04:40:25 +00:00
Chris Lattner
3d834bf2c3
Do not fold (X + C1 != C2) if there are other users of the add. Doing
...
this transformation used to take a loop like this:
int Array[1000];
void test(int X) {
int i;
for (i = 0; i < 1000; ++i)
Array[i] += X;
}
Compiled to LLVM is:
no_exit: ; preds = %entry, %no_exit
%indvar = phi uint [ 0, %entry ], [ %indvar.next, %no_exit ] ; <uint> [#uses=2]
%tmp.4 = getelementptr [1000 x int]* %Array, int 0, uint %indvar ; <int*> [#uses=2]
%tmp.7 = load int* %tmp.4 ; <int> [#uses=1]
%tmp.9 = add int %tmp.7, %X ; <int> [#uses=1]
store int %tmp.9, int* %tmp.4
*** %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
*** %exitcond = seteq uint %indvar.next, 1000 ; <bool> [#uses=1]
br bool %exitcond, label %return, label %no_exit
and turn it into a loop like this:
no_exit: ; preds = %entry, %no_exit
%indvar = phi uint [ 0, %entry ], [ %indvar.next, %no_exit ] ; <uint> [#uses=3]
%tmp.4 = getelementptr [1000 x int]* %Array, int 0, uint %indvar ; <int*> [#uses=2]
%tmp.7 = load int* %tmp.4 ; <int> [#uses=1]
%tmp.9 = add int %tmp.7, %X ; <int> [#uses=1]
store int %tmp.9, int* %tmp.4
*** %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1]
*** %exitcond = seteq uint %indvar, 999 ; <bool> [#uses=1]
br bool %exitcond, label %return, label %no_exit
Note that indvar.next and indvar can no longer be coallesced. In machine
code terms, this patch changes this code:
.LBBtest_1: # no_exit
mov %EDX, OFFSET Array
mov %ESI, %EAX
add %ESI, DWORD PTR [%EDX + 4*%ECX]
mov %EDX, OFFSET Array
mov DWORD PTR [%EDX + 4*%ECX], %ESI
mov %EDX, %ECX
inc %EDX
cmp %ECX, 999
mov %ECX, %EDX
jne .LBBtest_1 # no_exit
into this:
.LBBtest_1: # no_exit
mov %EDX, OFFSET Array
mov %ESI, %EAX
add %ESI, DWORD PTR [%EDX + 4*%ECX]
mov %EDX, OFFSET Array
mov DWORD PTR [%EDX + 4*%ECX], %ESI
inc %ECX
cmp %ECX, 1000
jne .LBBtest_1 # no_exit
We need better instruction selection to get this:
.LBBtest_1: # no_exit
add DWORD PTR [Array + 4*%ECX], EAX
inc %ECX
cmp %ECX, 1000
jne .LBBtest_1 # no_exit
... but at least there is less register juggling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16473 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 21:35:23 +00:00
Alkis Evlogimenos
65cbfa0f37
The real x87 floating point registers should not be allocatable. They
...
are only used by the stackifier when transforming FPn register
allocations to the real stack file x87 registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16472 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 21:22:11 +00:00
Misha Brukman
540c82a700
s/ISel/PPC64ISel/ to have unique class names for debugging via gdb because the
...
C++ front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16471 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:22:33 +00:00
Misha Brukman
a1dca55a3a
s/ISel/PPC32ISel/ to have unique class names for debugging via gdb because the
...
C++ front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16470 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:22:19 +00:00
Misha Brukman
eae1bf10ea
s/ISel/X86ISel/ to have unique class names for debugging via gdb because the C++
...
front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16469 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:21:21 +00:00
Chris Lattner
8cbee4ea5b
Make sure to set the operand list
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16466 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:30:54 +00:00
Chris Lattner
79f0c8e4ee
Fix potential miscompilations: InstCombine/2004-09-20-BadLoadCombine*.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16447 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 10:15:10 +00:00
Alkis Evlogimenos
7b6ec600c5
Fix loop condition so that we don't decrement off the beginning of the
...
list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16440 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 06:42:58 +00:00
Chris Lattner
b12914bfc0
'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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:48:05 +00:00
Chris Lattner
bba61c07dd
'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.
Also, fix some undefined behavior, expecting | on booleans to evaluate
left-to-right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:47:19 +00:00
Chris Lattner
68d033cc94
Finegrainify namespacification
...
'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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16434 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:44:31 +00:00
Chris Lattner
ded6d0c9fb
Prototype more accurately
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:43:57 +00:00
Chris Lattner
4b50156049
Prototype these functions more accurately
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16432 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:43:15 +00:00
Reid Spencer
d232438f54
Put in a #error in the event that we don't have an mmap that can map a file
...
into memor. This is just a reminder that the ReadFileIntoAddressSpace
function needs to be properly converted to lib/System and implemented via
read/write if there's no mmap of file support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16428 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:13:43 +00:00
Chris Lattner
8a37520f80
Make isSafeToLoadUnconditionally a bit smarter, implementing PR362 and
...
Regression/Transforms/InstCombine/CPP_min_max.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16409 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 19:18:10 +00:00
Chris Lattner
fff03c9074
Fix a nasty iterator invalidation problem I introduced yesterday. This
...
unfortunately is the cause of a bunch of failures from tonight, and the
reason the tester is running so slow :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16407 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 19:01:06 +00:00
Chris Lattner
a744b77e11
Remove a whole bunch of horrible hacky code that was used to promote allocas
...
whose addresses where used by trivial phi nodes and select instructions. This
is now performed by the instcombine pass, which is more powerful, is much
simpler, and is faster. This allows the deletion of a bunch of code, two
FIXME's and two gotos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16406 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 18:51:51 +00:00
Chris Lattner
c10acedb2d
Make instruction combining a bit more aggressive in the face of volatile
...
loads, and implement two new transforms: InstCombine/load.ll:test[56].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16404 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 18:43:46 +00:00
Reid Spencer
7b60a15abc
Minor correction to Signals implementation.
...
Patch submitted by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16401 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 05:37:39 +00:00
Chris Lattner
f5afcabff8
Add comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16400 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-19 01:05:16 +00:00
Chris Lattner
0c0aa711b8
Fix the inliner to always delete any edges from the external call node to
...
a function being deleted. Due to optimizations done while inlining, there
can be edges from the external call node to a function node that were not
apparent any longer.
This fixes the compiler crash while compiling 175.vpr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16399 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 21:37:03 +00:00
Chris Lattner
cd382a3725
Add CallGraphNode::removeAnyCallEdgeTo method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16398 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 21:34:34 +00:00
Reid Spencer
111a348435
Use the /dev/zero device as the device on which the pages are mapped.
...
Patch contributed by Henrik Bach. Thanks Henrik!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16397 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 19:34:09 +00:00
Reid Spencer
d0c9e0ee0d
Porting of Unix implementation to Win32.
...
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16396 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 19:29:16 +00:00
Reid Spencer
622e220ca7
Get rid of file descriptor leak in create_file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16395 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 19:25:11 +00:00
Chris Lattner
5eb6f6c829
Convert this pass to be a CallGraphSCCPass instead of a Pass, which eliminates
...
the worklist and makes it more efficient. This does not change functionality
at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16390 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 00:34:13 +00:00
Chris Lattner
afbb1ccd2f
Make sure to remove the Select instruction as well
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16389 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 00:32:40 +00:00
Chris Lattner
3795bc9785
When changing a function, make sure to update the CallGraphNode for the
...
function, not just the CallGraph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16388 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 00:27:20 +00:00
Chris Lattner
6f7e5ebb42
Implement new changeFunction method, nuke a never implemented one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16386 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-18 00:22:13 +00:00
Chris Lattner
ebeb0cba94
Fix typo in comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16384 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-17 03:58:39 +00:00
Reid Spencer
298d6c14ca
Make sure critical sections are entered before trying to leave them.
...
Add some additional commentary about the workings of this module.
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-17 03:02:27 +00:00
Reid Spencer
0cc2d0a1b8
Allow "bc" as suffix for bytecode files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16381 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-16 16:36:10 +00:00
Reid Spencer
90b5413883
Implement the signals interface for Win32.
...
Patch provided by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16380 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-16 15:53:16 +00:00
Chris Lattner
acf808951b
Add a newline
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16369 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 17:53:52 +00:00
Reid Spencer
2da5c3dda6
Convert code to compile with vc7.1.
...
Patch contributed by Paolo Invernizzi. Thanks Paolo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16368 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 17:06:42 +00:00
Chris Lattner
3080b605d7
Add some assertions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16366 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 16:59:47 +00:00
Reid Spencer
b016a376ab
Patches to make this file actually compile under windows.
...
Patches submitted by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16362 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 05:49:50 +00:00
Reid Spencer
90418436c0
Initial version of the SysConfig abstraction for Win32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 05:48:49 +00:00
Reid Spencer
0b22ba4c30
First version of a common header file for Win32 implementations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16360 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 05:48:11 +00:00
Reid Spencer
437b079a29
Initial implementation of the Process abstraction for Win32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16359 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 05:47:40 +00:00
Reid Spencer
4909b6c60c
Fix the interface to ReleaseRWX to take MemoryBlock& not Memory&
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 03:55:45 +00:00
Chris Lattner
bdacd87957
Fix a bug in the previous checkin that broke 255.vortex
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16355 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 02:34:40 +00:00
Alkis Evlogimenos
e0de1d64be
When creating constant arrays check that the initializer vector is the
...
same size as the one in the array type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 02:32:15 +00:00
Misha Brukman
a2700194ae
Fit long lines into 80 cols via creative space elimination
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16353 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:40:18 +00:00
Misha Brukman
3559a93f5e
Wrap long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16352 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:34:42 +00:00
Misha Brukman
07542c8c20
Targets are independent of each other, so compile them in parallel
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16351 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:34:25 +00:00
Chris Lattner
fb3ee1930b
Make sure to update alias analysis information as we transform the function.
...
This fixes PR420 and Regression/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16348 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:04:07 +00:00
Chris Lattner
62e29b59f5
If given an AliasSetTracker object to update, update it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16347 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:02:54 +00:00
Chris Lattner
b66e648e95
Implement an AliasSetTracker::copyValue method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16344 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 19:15:32 +00:00
Chris Lattner
b50f1f13e2
Remove a long-dead pass. Actually, this pass was never used at all.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16337 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 16:33:01 +00:00
Reid Spencer
8c0c33984b
Fix a compilation error.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16335 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 15:42:11 +00:00
Reid Spencer
1c7b907325
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16333 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 05:43:23 +00:00
Chris Lattner
44da7d7976
Don't print newlines between passes in the pass list.
...
Note to self: sentences end with ".", not "...".
Note to reid: sentences end with ".", not "". :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16332 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 05:06:58 +00:00
Chris Lattner
cfe97b78e7
Don't print newlines between each library in the deplibs list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16331 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 04:51:44 +00:00
Chris Lattner
b228657acc
Revamp the Register class, and allow the use of the RegisterGroup class to
...
specify aliases directly in register definitions.
Patch contributed by Jason Eckhardt!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16330 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 04:17:02 +00:00
Reid Spencer
74e7261e90
Implement the GetLibraryPath function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16323 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 00:16:39 +00:00
Reid Spencer
e59eaf407a
Add support for the link-time pass list to Modules.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16321 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 23:44:23 +00:00
Reid Spencer
33189e787b
Simplify the sys::Memory interface per Chris' request.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16318 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 22:38:11 +00:00
Reid Spencer
2565943289
Clean up the interface and implementation of sys::Program so that it is
...
cleanly dissociated from the sys::Path class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16315 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 21:48:44 +00:00
Chris Lattner
1002013ed3
Changes to make this work with Jason's patch. I checked this by hand, but
...
would appreciate if others would also look at this to make sure I didn't
botch something obvious
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16312 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 21:32:03 +00:00
Misha Brukman
fb0796e82e
Fix filename: Printer.cpp has become X86AsmPrinter.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16299 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-12 21:26:04 +00:00
Misha Brukman
5adf0ca0b2
Unbreak doxygen, according to Reid.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16298 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-12 20:56:38 +00:00
Misha Brukman
7df0074db5
Fix code spacing/alignment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16297 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-12 20:47:33 +00:00
Reid Spencer
714470716f
Fix typo: sterror -> strerror
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16294 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 20:18:08 +00:00
Reid Spencer
f51c8ea9de
Correct the dynamic lib suffix on Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16293 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 07:35:01 +00:00
Reid Spencer
cbad701d0b
Provide initial implementations of Memory and Process concepts for various
...
platforms.
Implement GetLLVMSuffix function for the Path concept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16292 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:59:30 +00:00
Reid Spencer
41b21bf2fc
Provide a generic Unix implementation of the Memory concept.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16291 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:57:25 +00:00
Reid Spencer
27dafe1f3e
Provide a generic unix implementation of the Process abstraction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16290 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:56:56 +00:00
Reid Spencer
1b554b4583
Implemented support for detecting file types by magic number, stripping
...
path and suffix to leave basename, and getting the DLL suffix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16289 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:55:08 +00:00
Reid Spencer
4429b2c7fc
Implementation of Process concept for SUSv2 platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16288 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:54:06 +00:00
Reid Spencer
52b0ba6873
Convert the Emitter to use the lib/System "Memory" interface instead of the
...
old SystemUtils.h interface to allocate RWX blocks of memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16286 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:31:03 +00:00
Reid Spencer
57a0efa322
Implement support for dependent libraries. The "source" module's dependent
...
libraries list is merged into the "destination" module's list. Also, if the
source module is one of the dependent libraries, it is removed from the
list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16282 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:25:17 +00:00
Reid Spencer
46a981c3e2
Change interface to use correct typedef so it will always compile.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:22:58 +00:00
Reid Spencer
3ee8eed034
Print the dependent libraries when dumping bytecode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16275 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:14:07 +00:00
Misha Brukman
bcb5562a5e
Renamed file to SparcV8ISelSimple.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16267 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-10 18:51:12 +00:00
Brian Gaeke
fd23c4e9bc
Roll back constant printing changes until the problems with larger
...
programs and C++ can be looked at in detail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16266 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-10 18:01:45 +00:00
Alkis Evlogimenos
cad90ad162
Add assertion descriptiosn on type mismatches when creating
...
ConstantArray and ConstantPacked objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-10 04:16:59 +00:00
Alkis Evlogimenos
2c4f7b5faa
Grow the map on entry so that we don't crash if joinIntervals never
...
runs (if coalescing is disabled for example).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16259 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-09 19:24:38 +00:00
Alkis Evlogimenos
93c1ab2e15
Use a shorter form to express implicit use/defs in FpGETRESULT and
...
FpSETRESULT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16247 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-08 18:29:31 +00:00
Alkis Evlogimenos
978f629ba9
A call instruction should implicitely define ST0 since the return
...
value is returned in that register. The pseudo instructions
FpGETRESULT and FpSETRESULT shold also have an implicity use and def
of ST0 repsecitvely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16246 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-08 16:54:54 +00:00
Brian Gaeke
f539ffe1b6
This file does not need <iostream>, I think.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16245 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-08 04:10:52 +00:00
Alkis Evlogimenos
5d0d1e350a
Use a DenseMap for mapping reg->reg. This improves the LiveInterval
...
analysis running time from 2.7869secs to 2.5226secs on 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16244 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-08 03:01:50 +00:00
Nate Begeman
20136a21ba
Add 64 bit divide instructions, and use them
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16198 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-06 18:46:59 +00:00
Alkis Evlogimenos
76d9dacceb
Indent to 2 spaces and cleanup excess whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16188 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05 18:41:35 +00:00
Alkis Evlogimenos
a63828619f
Indent to 2 spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16187 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05 18:39:20 +00:00
Misha Brukman
3e0b51ab3b
* Change PPC32AsmPrinter => PowerPCAsmPrinter since it is now shared between
...
Darwin and AIX and is not 32- or 64-bit specific
* Bring back PowerPC.td as a result, to make it use the `PowerPC' class name
* Adjust Makefile accordingly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16174 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05 02:42:44 +00:00
Misha Brukman
b986b7de50
Renamed PPC32AsmPrinter.cpp => PowerPCAsmPrinter.cpp as the Darwin and AIX asm
...
printers are now unified into one file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16173 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05 02:27:37 +00:00
Nate Begeman
a11c2e8fb9
Include MathExtras.h to fix build breakage, thanks to Vladimir
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16164 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-04 14:51:26 +00:00
Nate Begeman
ed42853be1
All PPC instructions are now auto-printed
...
32 and 64 bit AsmWriters unified
Darwin and AIX specific features of AsmWriter split out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16163 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-04 05:00:00 +00:00
Reid Spencer
40b062fdf8
Clean up some "clean:" targets so they use $(VERB) and don't print anything
...
by default, like every other "clean" target in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16161 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03 23:19:53 +00:00
Misha Brukman
08a6c7614b
Order #includes alphabetically, local .h files first.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16153 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03 18:25:53 +00:00
Alkis Evlogimenos
20aa474f8f
Fixes to make LLVM compile with vc7.1.
...
Patch contributed by Paolo Invernizzi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16152 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03 18:19:51 +00:00
Alkis Evlogimenos
70619fae28
Change the way we choose a free register: instead of picking the first
...
free allocatable register, we prefer the a free one with the most uses
of inactive intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02 21:24:33 +00:00
Alkis Evlogimenos
84f5bcb013
Change the way we choose a free register: instead of picking the first
...
free allocatable register, we prefer the a free one with the most uses
of inactive intervals. This causes less spills and performes a bit
better compared to gcc:
Program | GCC/LLC (Before)| GCC/LLC (After)
164.gzip/164.gzip | 0.59 | 0.60
175.vpr/175.vpr | 0.57 | 0.58
176.gcc/176.gcc | 0.59 | 0.61
181.mcf/181.mcf | 0.94 | 0.95
186.crafty/186.crafty | 0.62 | 0.62
197.parser/197.parser | 0.89 | 0.88
252.eon/252.eon | 0.61 | 0.66
253.perlbmk/253.perlbmk | 0.79 | 0.84
254.gap/254.gap | 0.81 | 0.81
255.vortex/255.vortex | 0.92 | 0.93
256.bzip2/256.bzip2 | 0.69 | 0.69
300.twolf/300.twolf | 0.91 | 0.90
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16147 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02 21:23:32 +00:00
Alkis Evlogimenos
82b4955f96
We don't need to sort the added vector as unhandled intervals are
...
stored in a binary heap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02 18:00:38 +00:00
Nate Begeman
b7a8f2cdaa
Convert remaining X-Form and Pseudo instructions over to asm writer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16142 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02 08:13:00 +00:00
Brian Gaeke
74dfcf1200
Back to compiling land for v8
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16138 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02 02:37:43 +00:00
Reid Spencer
551ccae044
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/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 22:55:40 +00:00
Alkis Evlogimenos
ed543731fb
Be a bit more efficient when processing the active and inactive
...
lists. Instead of scanning the vector backwards, scan it forward and
swap each element we want to erase. Then at the end erase all removed
intervals at once. This doesn't save much: 0.08s out of 4s when
compiling 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16136 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 22:52:29 +00:00
Alkis Evlogimenos
2e58a41089
Give a better assertion if we see a use before a def.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16135 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 22:34:52 +00:00
Reid Spencer
15fd439972
mkdtemp doesn't exist on Cygwin. Use tempnam & mkdir instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16133 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 20:29:35 +00:00
Reid Spencer
e1cc150a8e
Make CommandLine prefix error output with the name of the program.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16129 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 04:41:28 +00:00
Reid Spencer
0132bd4dc1
Add support for FreeBSD
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16127 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 18:09:35 +00:00
Reid Spencer
a11e4dbef5
Add support for Interix and FreeBSD
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16126 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 18:03:23 +00:00
Reid Spencer
ef6efabd6d
Actually define PreventCoreFiles in the sys namespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16125 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 17:53:41 +00:00
Reid Spencer
387e5ec502
Add a new abstraction, SysConfig for platform independent system
...
configuration calls. Right now this just contains PreventCoreFiles so that
bugpoint can by platform independent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 17:43:29 +00:00
Alkis Evlogimenos
d19e2901c1
Minor code clarity changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16123 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 17:39:15 +00:00
Nate Begeman
cc8bd9ca7c
convert M and MD form instructions to generated asm writer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16121 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 02:28:08 +00:00
Reid Spencer
f634f46350
Move the GetTemporaryDirectory function from "generic Unix" to platform
...
specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16119 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 21:46:55 +00:00
Reid Spencer
b60bf6171d
Add inclusion of assert.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16118 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 16:03:54 +00:00
Nate Begeman
07aada8b0f
Move yet more instructions over to being printed by the generated asm writer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16112 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 02:28:06 +00:00
Reid Spencer
d8f4c8eff9
Abbreviate the long descriptions which are now in docs/SystemLibrary.html.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16111 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 02:03:51 +00:00
Reid Spencer
fc989e1ee0
Reduce the number of arguments in the instruction builder and make some
...
improvements on instruction selection that account for register and frame
index bases.
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16110 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 00:13:26 +00:00
Nate Begeman
6b3dc55ef8
Convert A-Form instructions to auto-generated asm writer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16107 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:45:13 +00:00
Nate Begeman
27bc7c6cae
Register sizes should be specified in bits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16106 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:03:40 +00:00
Nate Begeman
d332fd54f5
Improvements to int->float cast code for PPC-64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16105 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:02:43 +00:00
Nate Begeman
81ab877a0c
Put this change back in after testing from Reid proved its innocence. getSpillSize now returns value in bits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:00:24 +00:00
Reid Spencer
c0854bfcfc
Add a declaration of environ global for Darwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16100 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 20:10:07 +00:00
Reid Spencer
1390103887
Add an assert to cature null Operands. It is better to catch it here than
...
to SIGSEGV in the bowels of isa<...> later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16098 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:37:59 +00:00
Reid Spencer
57ec727933
Signals support has been moved to lib/System
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16097 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:36:34 +00:00
Reid Spencer
bd4dd5c33a
Move a warning comment to where it should have been in the first place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16088 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:25:54 +00:00
Reid Spencer
36853b99a1
Correct the vim: specification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16087 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:24:53 +00:00
Reid Spencer
c3de952426
Include some additional header files.
...
Fix the banner length.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16086 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:24:20 +00:00
Reid Spencer
496c277a6d
Initial platform independent implementation of operating system concept
...
of "Signals" (cleanup after fatal errors).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16085 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:22:48 +00:00
Reid Spencer
52a7efafba
Initial commit of an platform-indepdendent implementation for the
...
"Program" operating system concept (find and execute programs).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16084 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:20:41 +00:00
Nate Begeman
f2f0781a10
Implement the following missing functionality in the PPC backend:
...
cast fp->bool
cast ulong->fp
algebraic right shift long by non-constant value
These changes tested across most of the test suite. Fixes Regression/casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16081 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 08:19:32 +00:00
Reid Spencer
8e66595512
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16078 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:24:01 +00:00
Alkis Evlogimenos
81bc6e377e
Remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-28 22:43:31 +00:00
Alkis Evlogimenos
ca5d1c378c
Now that LiveIntervals::addIntervalsForSpills is fixed, do not require
...
LiveVariables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16076 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 19:00:29 +00:00
Alkis Evlogimenos
d8d26b3268
Only update LiveVariables if it is available. addIntervalsForSpills
...
runs after the initial run of the live interval analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 18:59:22 +00:00
Alkis Evlogimenos
ccdf21af1f
Back out this change as it broke the build last night. This should be
...
investicated further as the linearscan variants don't really need
LiveVariables...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 18:01:21 +00:00
Nate Begeman
bd2efb9600
Back out change to divide getSpillSize by 8 until I figure out why it breaks x86, which has register sizes in bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 16:48:24 +00:00
Alkis Evlogimenos
3f06e68783
The linear scan variants do not require the LiveVariables analysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16071 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:51:13 +00:00
Nate Begeman
5709998993
Register sizes are in bits, not bytes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:28:10 +00:00
Reid Spencer
488d73a8b7
Correctly compute the number of compaction tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16064 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 00:43:51 +00:00
Reid Spencer
0033c18c47
Prevent an empty compaction table from being written to the bytecode file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16063 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 00:38:44 +00:00
Reid Spencer
07ea1917d0
Add the CompactionTableIsEmpty function so that we can determine if a
...
CompactionTable really needs to be emitted. This is not a straight forward
computation, hence the need for a member function here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16062 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:32:00 +00:00
Alkis Evlogimenos
22a2f6d5b0
Use newly added API in MRegisterInfo and don't expose the allocatable
...
register set anymore. Its users now use the MRegisterInfo API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:23:32 +00:00
Alkis Evlogimenos
5327801fb8
Use newly added API in MRegisterInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16060 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:22:38 +00:00
Alkis Evlogimenos
bb4bdf4fe4
Add getAllocatableSet() function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16059 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:21:04 +00:00
Reid Spencer
bf3a4d2e1b
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16055 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 07:43:33 +00:00
Reid Spencer
5179f05080
First cut at a README for lib/System explaining the #inclusion rules and
...
design criteria.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16054 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 07:41:41 +00:00
Reid Spencer
2f88a0655f
Add a README explaining the intended content of this directory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16053 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 05:58:20 +00:00
Brian Gaeke
07b52b367f
Previous checkin broke printf(%a) support for fp constants-- re-fix it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16051 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 19:37:26 +00:00
Brian Gaeke
8a702e8e1b
New version of Bill Wendling's PR33 patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16050 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 19:00:42 +00:00
Reid Spencer
8906e7d098
Fix documentation.
...
Make the library name LLVMsystem instead of just system so as to not
to be confused with other "system" libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16049 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 06:23:45 +00:00
Reid Spencer
b89a2237ea
Initial implementation of the Path operating system concept.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16048 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 06:20:07 +00:00
Reid Spencer
17f130c61e
License for this library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16047 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 00:48:02 +00:00
Reid Spencer
e0cf59e52f
Add a wrapper for extraction of the dependent libraries from a bytecode
...
file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16037 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 22:46:20 +00:00
Reid Spencer
3120e714e6
Rearrange output a little to make it nicer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16036 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 22:45:32 +00:00
Reid Spencer
1f079267dc
Give the -time-passes tool option a global storage location so that its
...
value can be discovered by the various LLVM tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16032 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 17:52:35 +00:00
Chris Lattner
d0d0a1a08f
Fix a bug in a previous checkin of mine, correcting
...
Regression.CodeGen.Generic.2004-04-09-SameValueCoalescing.llx and the
code size problem.
This bug prevented us from doing most register coallesces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16031 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 17:48:29 +00:00
Chris Lattner
6f0161aac3
Add -sse[,2,3] arguments to LLC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16018 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 08:18:44 +00:00
Chris Lattner
47d2f2bb50
Nuke commented out stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16017 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 08:18:27 +00:00
Brian Gaeke
2ff1e67346
This code is dodgy, but the guaranteed assertion failure doesn't help anything.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16014 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 06:41:40 +00:00
Brian Gaeke
f1b7eb145e
Fix bug in PhyRegAlloc::setCallInterferences() handling call through a
...
null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16013 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 06:41:39 +00:00
Brian Gaeke
ac9edd5faa
Revise head-of-file comment.
...
Eliminate some excess whitespace.
Fix bug in CallArgsDescriptor::get() handling call through a null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16012 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 06:41:38 +00:00
Chris Lattner
7af2865fc6
Do not use .xword and friends to emit zeros on V9. Apparently there are issues
...
with emitting .xwords when not on an 8-byte boundary (.xword 0 is not the
same as 8 .byte 0's). Because we do not know when or when we are not aligned,
just emit bytes like the old V9 asmprinter did.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16006 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24 00:26:11 +00:00
Nate Begeman
0e5e5f56bd
Kill a majority of unnecessary sign extensions for byte loads
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15991 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-22 08:10:15 +00:00
Nate Begeman
1f4a132599
Don't hard code the offset of the saved R31 in functions with frame pointers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15990 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-22 08:09:17 +00:00
Reid Spencer
42e83feba7
Initial checkin of a pass to lower packed operations to scalars operations.
...
This also registers the pass with opt with a -lower-packed command line
option.
Patch contributed by Brad Jones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15987 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 21:39:24 +00:00
Reid Spencer
911ec6d1c0
Bytecode Analyzer Cleanup:
...
- Rearrange output order to make more sense
- Make only the function level output count as "detailed"
- Output dump output directly to stream, don't buffer it.
- Fix counting of block sizes
- Implement new handlers for number of types, dependent libs, target triple
- Compute the size of block headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15985 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:58:19 +00:00
Reid Spencer
af073bdee6
Get rid of an extraneous local variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15984 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:53:56 +00:00
Reid Spencer
4542c43761
Two Changes:
...
- Pass the output stream to the analyzer so it can write its output there
directly instead of buffering it.
- Don't pass a boolean to ParseBytecode because its not needed any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15983 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:52:03 +00:00
Reid Spencer
572c256519
Add boolean file format flags in preparation for version 5 bytecode.
...
Remove the "processFunctions" boolean from ParseBytecode as it is no
longer needed. This is part of avoiding double reading of functions
when analyzing bytecode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15982 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:50:49 +00:00
Reid Spencer
5b472d9879
Bytecode Reader Cleanup:
...
- provide the correct conversion for ModuleBlockID in read_block (a potential
bug but not actually exploited because reading module block ids doesn't
use read_block).
- install support for handleTypeList handler
- install support for handleDependentLibrary handler
- install support for handleTargetTriple handler
- clean up comments, output strings,
- ensure that processing function arguments doesn't SIGSEGV if one of the
arguments is a null pointer (yeah, it happened .. weird)
- prepare for version 5 bytecode by documenting what will change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15981 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:49:23 +00:00
Nate Begeman
a96c4af7f1
Back out branchless SetCC code. While it helped a lot in some cases, it
...
hurt a lot in others. Instead, improve branching version of SetCC and
Select instructions. The old code will be in CVS should we ever need to
dig it up again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15979 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:42:14 +00:00
Chris Lattner
608034ec1a
Switch from bytes to bits for alignment.
...
Also, change GPRC for PPC32 to align on 32-bit boundary instead of 64-bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15975 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:14:40 +00:00
Chris Lattner
ff0a6e6aac
Switch from bytes to bits for alignment for consistency
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15974 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:14:13 +00:00
Chris Lattner
fae896999c
Reduce uses of getRegClass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15973 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:13:52 +00:00
Chris Lattner
2b0e300342
Convert regclass alignment from bytes to bites
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15972 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:13:09 +00:00
Chris Lattner
0e362770d0
Convert bytes to bits in alignment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15971 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:09:46 +00:00
Chris Lattner
7008034c9f
Register info alignment is in bits, frame object alignment is (currently) in
...
bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15970 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 20:04:59 +00:00
Chris Lattner
8edcd84653
Reduce uses of getRegClass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15968 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 19:51:17 +00:00
Chris Lattner
fa1face30a
Now that we have per-register spill size/alignment info, remove more uses
...
of getRegClass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 19:45:10 +00:00
Chris Lattner
12585baf1a
Fix warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15964 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 19:11:03 +00:00
Reid Spencer
57b6eec5e6
Examine the type code in the setcc class of instructions and if it
...
is a PackedType, throw an error. Temporary solution.
Patch contributed by Brad Jones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15963 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 16:11:02 +00:00
Nate Begeman
c3306120cc
Move XForm instructions over to the auto-generated asm writer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15962 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 05:56:39 +00:00
Chris Lattner
b4d83c1f2c
Add two values
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15959 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 02:17:39 +00:00
Chris Lattner
72cf7df6a3
Fix a nasty bug that Nate ran into. In particular, instead of emitting a 2+MB
...
error message, print out:
llvm-link: error linking in 'g.2.rbc': Global Variable Collision on
' %struct.D_Reduction* %d_reduction_10_gram' - External linkage globals have
different initializers
That's a bit more concise, huh?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15958 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 00:50:59 +00:00
Nate Begeman
b65eadb7f5
remove some things from the todo list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15956 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 18:46:54 +00:00
Chris Lattner
f908888553
Do not register ppc64 yet, as it breaks the SparcV9 backend
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15955 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 18:09:18 +00:00
Chris Lattner
42db1a04ef
quish a warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15954 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 18:07:39 +00:00
Reid Spencer
5527c0b6d1
Fix a bug found exposed by: Regression/Other/2004-08-20-PackedControlFlow.ll
...
Packed types need to be allowed in type statements too.
Patch provided by Brad Jones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 15:37:30 +00:00
Nate Begeman
b47321ba2b
Implement code to convert SetCC into straight line code where appropriate. Add necessary instructions for this transformation to the .td file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15952 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 09:56:22 +00:00
Brian Gaeke
715c90ba52
Packed types, brought to you by Brad Jones
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15938 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 06:00:58 +00:00
Chris Lattner
4e4c444d5c
If we are linking two global variables and they have the same size, do not
...
spew warnings, even if the types don't match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15933 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 00:30:39 +00:00
Misha Brukman
43f20a56b2
Fix opcodes being printed in caps (the more general fix may be `AsmWriter')
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15932 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 21:56:12 +00:00
Misha Brukman
1601d9c1f0
Stack space for argument passing is 32 regardless of 32- vs. 64-bit arch.
...
Thanks to Nate Begeman for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15930 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 21:51:19 +00:00
Misha Brukman
983e92dc0d
LR needs to be saved at 16-byte offset on a 64-bit arch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15929 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 21:36:14 +00:00
Misha Brukman
4debafbea4
On 64-bit PowerPC, pointers are 8 bytes, so parameter area offset is 48, not 24
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15928 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 21:34:05 +00:00
Misha Brukman
d2cbb871d0
This PHI has 4 additional operands, not 2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15926 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 21:00:12 +00:00
Misha Brukman
95ab78af3c
Use the appropriate 64-bit register description file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15922 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 19:36:57 +00:00
Misha Brukman
5e9867e71c
Fix more remaining 32-bit vestiges of PowerPC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15919 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 18:49:58 +00:00
Misha Brukman
cc55ad5fe9
Fix another vestige of the 32-bit PowerPC backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15918 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 16:50:30 +00:00
Misha Brukman
ab566eaa68
Correct character prepended to global symbols ('.'), use Mangler consistently
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15917 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 16:33:56 +00:00
Misha Brukman
1c514ec89d
* Eliminate global base register, r2 is used for that on AIX/PowerPC
...
* Fix bug from 32-bit PowerPC days of 2-register long split
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15916 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 16:29:25 +00:00
Misha Brukman
85aa4d0cc5
Wrap long lines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15915 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 16:28:30 +00:00
Nate Begeman
1e67d4d7ba
Convert casts that will have no effect into move instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15914 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 08:07:50 +00:00
Nate Begeman
81d265d692
Clean up floating point instruction selection.
...
Change int->float cast code to put conversion constants in constant pool.
Shorten code sequence for constant pool fp loads.
Remove LOADLoDirect/LOADLoIndirect psuedo instructions and tweak asmwriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15913 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-19 05:20:54 +00:00
Brian Gaeke
d6640951c2
M_DUMMY_PHI_FLAG is no longer used to distinguish V9::PHI. Get rid of it and
...
its TargetInstrInfo accessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 20:04:28 +00:00
Brian Gaeke
418379e229
Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15906 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 20:04:24 +00:00
Brian Gaeke
e058b27faf
Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI.
...
Also, squash a use of TargetInstrInfo::isNop().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15905 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 20:04:21 +00:00
Chris Lattner
a1e51ff2aa
Convert to the new MachineFunctionInfo interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15904 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 18:13:37 +00:00
Brian Gaeke
5978a532e8
The SparcV9 target no longer uses any pseudoinstructions (SETSW, SETUW,
...
SETX) or M_PSEUDO_FLAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15901 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 17:44:16 +00:00
Brian Gaeke
f84ee3865b
The Create*Const methods don't need to pass around a TargetMachine reference.
...
Other minor cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15900 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 17:44:15 +00:00
Brian Gaeke
66149920c6
Doxygenify some comments.
...
Clean up cpReg2MemMI and cpMem2RegMI, and doxygenify comments.
Get rid of their uses of SETSW, which is a pseudoinstruction. We can't
JIT-compile pseudoinstructions at the moment. This was blowing up 252.eon/jit,
which has some HUGE stack frames.
Reduce the uses of constantFitsInImmedField().
Consolidate some assertions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15899 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 17:44:14 +00:00
Chris Lattner
883342c1e5
Switch V9 over to using the AsmPrinter base class to do its constant printing
...
Massive thanks to the brg miester for doing the testing. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15898 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 05:29:08 +00:00
Chris Lattner
f746a7d09b
Rename var
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15897 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18 02:22:55 +00:00
Chris Lattner
7d057a3fd5
Add support for targets without a .zero directive
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15894 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 21:38:40 +00:00
Misha Brukman
5069438763
This file is no longer used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15893 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 20:23:33 +00:00
Chris Lattner
69d485e646
Start using alignment output routines from AsmPrinter.
...
Changes to make this more similar to the X86 asmprinter
Fix overalignment of globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15891 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 19:26:03 +00:00
Chris Lattner
c6393f82bf
Start using alignment output routines from AsmPrinter.
...
Changes to make this more similar to the ppc asmprinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15890 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 19:25:42 +00:00
Chris Lattner
bfddc2030a
Add support for alignment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15888 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 19:14:29 +00:00
Chris Lattner
d2b0bb41f4
Add a new helper method to get log2(type alignment)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15887 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 19:13:00 +00:00
Chris Lattner
91b362bba9
Check constant expression validity more strictly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15883 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 17:28:46 +00:00
Chris Lattner
c6d2f15037
Work around PR424 for old c/c++ frontends.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15882 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 17:26:41 +00:00
Chris Lattner
5676310c5d
Print comments with ;
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15881 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 16:27:26 +00:00
Chris Lattner
0554fb6b9c
Use a designated comment character when printing comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15880 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 16:27:05 +00:00
Reid Spencer
38d54be85b
Bytecode File Format Changes:
...
- File format version number bumped to 4
- Writer will now align nothing
- Reader now only expects alignment for version 3 or earlier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15875 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 07:45:14 +00:00
Nate Begeman
07a73755d3
Re-fix hiding the Frame Pointer from the register allocator in functions
...
that have a frame pointer. This change fixes Burg. In addition, make
the necessary changes to floating point code gen and constant loading after
Chris Lattner's fixes to the asm writer. These changes fix MallocBench/gs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 07:17:44 +00:00
Chris Lattner
8581ee85b4
Use the AsmPrinter emitGlobalConstant.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15872 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:48:55 +00:00
Chris Lattner
e85a5a9f40
Add support for targets that have .quad, drop extra tab inserted
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15870 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:48:16 +00:00
Chris Lattner
79835d9f9f
Use the emitGlobalConstant defined in AsmPrinter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15869 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:37:12 +00:00
Chris Lattner
1b7e2356ac
Implement emitGlobalConstant
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15868 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:36:49 +00:00
Chris Lattner
b462e47d2d
New, more general, interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15866 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:07:43 +00:00
Chris Lattner
97f3e37f00
Allow an arbitrary prefix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15865 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:06:54 +00:00
Chris Lattner
af2bf0ab30
We now allow targets to use any prefix they want for global symbols. Lets
...
hear it for ".".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15863 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 06:06:19 +00:00
Misha Brukman
9e36843964
Rewrite targets/rules to generate files for just PowerPC or PPC{32,64}
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15862 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:11:54 +00:00
Misha Brukman
8283ec7c1c
Register classes are target-dependent
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15861 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:10:31 +00:00
Misha Brukman
6316181ee0
#include <map> is not necessary here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15860 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:09:39 +00:00
Misha Brukman
1dcddfefbd
`PowerPC' is no longer a real target
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15859 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:09:10 +00:00
Misha Brukman
f2f8cfb945
Move variables and methods which need PPC{32,64}* distinction to subclasses
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15858 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:08:44 +00:00
Misha Brukman
66aa3e0e8b
No need for an `is64bit' flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15857 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:06:47 +00:00
Misha Brukman
a2a27b3c85
PowerPCInstrInfo and PowerPCRegisterInfo have gone away; they are replaced
...
by 32- and 64-bit customized files, named appropriately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15856 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:05:00 +00:00
Misha Brukman
08dde0ba85
Consistently name passed with 32 or 64 in their name
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15855 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:02:58 +00:00
Misha Brukman
3d58b8f531
PowerPCRegisterInfo no longer takes a bool to differentiate 32 vs 64 bits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15854 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:02:18 +00:00
Misha Brukman
db50bd3e7a
The PowerPCInstrInfo class has gone away.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15853 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 05:00:46 +00:00
Misha Brukman
363dd07320
PowerPCInstrInfo has gone away, PPC32 and PPC64 share opcodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15852 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 04:58:50 +00:00
Misha Brukman
adde6994ac
PowerPC 32-/64-bit split: Part II, 64-bit customizations on PowerPC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15851 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 04:57:37 +00:00
Misha Brukman
f2ccb77ee9
PowerPC 32-/64-bit split: Part I, PPC32* bit files, adapted from former PowerPC*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15850 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 04:55:41 +00:00
Reid Spencer
250c4184c7
Correct the comments in the symbol table writer to reflect reality.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15848 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 02:59:02 +00:00
Chris Lattner
469ab79584
Print float constants as 4 byte values.
...
Also, fix endianness problems when cross compiling from little-endian host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15847 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 02:48:44 +00:00
Chris Lattner
505e783d8c
Make sure to put an _ prefix on all identifiers!
...
Also, add some (currently disabled) code to print float's as 32-bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15846 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 02:29:00 +00:00
Chris Lattner
ed1ff01639
Some asmwriters want an _ prefix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15845 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 02:28:26 +00:00
Chris Lattner
416ca3384a
More changes to make PPC32 and X86 more similar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15842 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 23:38:36 +00:00
Chris Lattner
36aacdb974
Minor changes to make the diff be nothing against the X86 version
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15841 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 23:30:16 +00:00
Chris Lattner
a3840795a5
Finegrainify namespacification
...
Start using the AsmPrinter base class to factor out a bunch of code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 23:25:21 +00:00
Chris Lattner
055acae18c
Start using the AsmPrinter to emit our first class constants. This also
...
drops our half-assed support for cygwin, which noone uses and doesn't work
anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15839 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 23:16:06 +00:00
Chris Lattner
a80ba71efe
Initial implementation of the asmprinter base class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15838 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 23:15:22 +00:00
Chris Lattner
8b41cba865
Moved this file out of lib/CodeGen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 22:38:02 +00:00
Chris Lattner
6b9a5e69f7
Hacks to make the MachineFunction class be able to delete the MFI object
...
without knowing anything about it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15836 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 22:37:18 +00:00
Chris Lattner
2d19f78e97
Code moved out of lib/CodeGen/MachineFunction.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15835 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 22:36:54 +00:00
Chris Lattner
ad8281607f
Move this code to lib/Target/SparcV9/MachineFunctionInfo.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15834 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 22:36:34 +00:00
Chris Lattner
e7f372703a
This file is moving to lib/Target/SparcV9
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15833 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 22:36:10 +00:00
Chris Lattner
85015a0891
Move MachineCodeForInstruction.h and MachineFunctionInfo.h into lib/Target/SparcV9
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15830 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 21:55:02 +00:00
Chris Lattner
753c16c9cb
Nuke this file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15829 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 21:36:40 +00:00
Chris Lattner
e97db86e17
Fold MachineInstrAnnot.cpp into this file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15828 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 21:36:31 +00:00
Misha Brukman
cdc4b86e35
Move these files (which are dependent on VMCore) into VMCore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15825 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 19:04:36 +00:00
Brian Gaeke
52b77edbbd
Update and consolidate comments. Remove some excess whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15824 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 18:27:25 +00:00
Brian Gaeke
e6c3dc88ca
Add a note that people shouldn't use MachineFunctionInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15823 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 18:27:24 +00:00
Reid Spencer
28531c71cd
Fix PR422.
...
Ouch! Changes in the lazy initialization code caused each incorporated
function to reprocess the entire function on every lookup of a value's
slot number. This caused a horrible slowdown in all functions. This
fix made llvm-dis go from "longer than I care to wait" (minutes) on a large
test case to 0.53 seconds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15818 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 07:46:33 +00:00
Reid Spencer
08bfab175a
Remove lib/System contents until a satisfactory solution can be
...
provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15816 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 07:08:38 +00:00
Chris Lattner
df9b7bc090
Fix a bug that caused the pass to go into infinite loops on trivial testcases.
...
This is fallout of the Bug 122 changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15811 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 05:38:02 +00:00
Chris Lattner
b6482069f0
There is no need for a cast here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15810 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 05:09:58 +00:00
Nate Begeman
746a49516c
Update the current state of the world
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15809 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 05:06:43 +00:00
Nate Begeman
7e0fd576d3
Fix typo of the word 'implicit' I made resolving a CVS conflict. Whoops!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15808 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 02:12:49 +00:00
Nate Begeman
1cffdf0798
Fix frame pointer handling:
...
Reserve R0 in store/load from stack slot for building >32k offsets from SP
or FP. This also requires we use R11 rather than R0 for holding the LR
value we want to save or restore. Also, tell the register allocator not
to use R31 (our FP) in functions that have a frame pointer. These changes
fix Burg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15807 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 01:52:12 +00:00
Nate Begeman
865075ed35
Fix mismatched adjust down/up of SP in functions that contain variable
...
sized allocas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15806 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 01:50:22 +00:00
Chris Lattner
174f226464
Add a special case for argc,argv
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15802 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 01:07:04 +00:00
Chris Lattner
f24d09933c
Don't pass too many arguments into runFunction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15801 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 01:05:35 +00:00
Chris Lattner
cc22e9f406
Finally, add support for calling arbitrary non-varargs functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15799 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 00:14:18 +00:00
Chris Lattner
e5eab142a5
Handle all nullary functions, of any valid return type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15798 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:53:06 +00:00
Chris Lattner
f7bedf447e
Fine, go all of the way and check that the argument types are correct as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15797 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:39:59 +00:00
Chris Lattner
d297aea5f2
These only really work if returning int or void
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15796 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:34:48 +00:00
Chris Lattner
7c45d7898b
Handle zero arg function case
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15794 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:31:43 +00:00
Chris Lattner
b47130c580
Simplify code a bit, print error message always instead of asserting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15793 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:29:50 +00:00
Chris Lattner
105a56ac6b
V8 never used the instrselectorgenerator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15791 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:07:40 +00:00
Chris Lattner
dd43e3493a
isdummyclass goes away
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15790 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:04:35 +00:00
Chris Lattner
9222cdeca0
disable all of the pattern isel stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15788 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:02:34 +00:00
Chris Lattner
f60b91cbe3
Disable the pattern isel
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15787 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:02:17 +00:00
Chris Lattner
3bba026994
Reduce usage of MRegisterInfo::getRegClass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15784 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:23:09 +00:00
Chris Lattner
6ff3f83ef0
Insertion methods now return void instead of #instrs inserted. Also, use
...
more powerful forms of BuildMI to concisify the code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15782 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:15:56 +00:00
Chris Lattner
529377d25a
Code insertion methods now return void instead of #instrs inserted
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15781 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:15:30 +00:00
Chris Lattner
01d0efba39
Code insertion methods now return void instead of an int.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15780 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:15:11 +00:00
Chris Lattner
078fee3f2e
The insertion method returns void now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15779 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:14:31 +00:00
Chris Lattner
3cc03be51a
Nuke ifdef'd out code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15777 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:03:57 +00:00
Chris Lattner
26eb14ba51
Stop using CreateStackObject(RegClass*)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15775 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 22:02:22 +00:00
Chris Lattner
57f1b67c34
These methods no longer take a TargetRegisterClass* operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15774 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 21:56:44 +00:00
Alkis Evlogimenos
8c9b4de574
Make this compile on gc 3.4.1 (static_cast to non-const type was not
...
allowed).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15766 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 09:18:55 +00:00
Reid Spencer
439ed9036d
Initial implementations of the ErrorCode and Path concepts for Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15763 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 08:14:33 +00:00
Nate Begeman
f7bb8c0caa
Add future optimization opportunity
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15760 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 06:43:10 +00:00
Nate Begeman
43d64eae53
Fix float to int codepath by always allocating 8 bytes for the target of a double store; optimize cmplwi generation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15759 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 06:42:28 +00:00
Chris Lattner
08eceec98d
Zimm16 is now dead. Its entry is not removed from the enum, to avoid having
...
to renumber everything. Similar elimination should be applied to other
operand enum values that are only used to format printing in the .s file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15755 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:48:47 +00:00
Chris Lattner
0ea3171fbf
Convert all of the DForm_6* operations, which makes all of the Zimm16 users
...
dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15754 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:46:14 +00:00
Chris Lattner
fa14683381
Add i1imm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15753 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:37:00 +00:00
Chris Lattner
d15575d39f
Reenable the CCRC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15752 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:31:15 +00:00
Chris Lattner
97b2a2e389
Convert the DForm_4 over to the asmprintergen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15751 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:20:16 +00:00
Nate Begeman
ad9c242605
Remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15750 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 00:31:02 +00:00
Chris Lattner
7bb424fafc
Print mflr using the asmwriter generator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15749 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 23:27:29 +00:00
Chris Lattner
b8ce4c4118
Update to no longer take MF as an argument
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15748 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:57:22 +00:00
Chris Lattner
175580c0f3
Make the AsmWriter a first-class tblgen object. Allow targets to specify
...
name of the generated asmwriter class, and the name of the format string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15747 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:50:53 +00:00
Nate Begeman
ca068e861b
Replace PowerPCPEI.cpp with target independant PrologEpilogInserter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:16:36 +00:00
Nate Begeman
ffde1de597
Add support for frame pointers, and large offsets from stack and frame pointers. Adopt elimination of MachineFunction& arg from eliminateFrameIndex.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:13:58 +00:00
Nate Begeman
b0b8b93e58
Add indexed forms of load doubleword and load word algebraic for 64 bit targets
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15743 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:12:20 +00:00
Nate Begeman
6d1e2dfd86
Fix handling of FP constants with single precision, and loading of internal linkage function addresses
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15742 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:11:38 +00:00
Nate Begeman
e59bf59ba5
Add initial support for using the generated asm writer. Also, fix FP constant printing to always print 8 byte intializers. Move printing of LinkOnce stubs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15741 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:09:10 +00:00
Nate Begeman
14d89d6810
Add generation of asm writer from tablegen files to Makefile
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15740 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:06:38 +00:00
Nate Begeman
f8be5e94aa
Eliminate MachineFunction& argument from eliminateFrameIndex in x86 Target. Get MachineFunction from MachineInstruction's parent's parent
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15739 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:05:10 +00:00
Nate Begeman
1fa715a399
Eliminate MachineFunction& argument from eliminateFrameIndex in SparcV9 target
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15738 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:03:29 +00:00
Nate Begeman
905537852b
Eliminate MachineFunction& argument from eliminateFrameIndex in Skeleton target
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15737 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:01:38 +00:00
Nate Begeman
5de0f7aa14
Elminiate MachineFunction& argument from eliminateFrameIndex
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15736 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:00:10 +00:00
Chris Lattner
77a2a9d9da
Implement test/Regression/Transforms/GlobalConstifier/phi-select.llx
...
This allows more globals to be marked constant, particularly global arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15735 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 20:57:17 +00:00
Reid Spencer
1e13fd23d3
Allow any cl::opt to use the method getPosition() to retrieve the option's
...
absolute position on the command line. Similarly allow any cl::list to
use the method getPosition(n) to retrieve the absolute position of the nth
option in the list. This provides support for two things: (a) options like
-l that are actually positional and their order of occurrence matters when
they are intermixed with positional arguments like "a.o"; and (b) options
like -x LANG which affect only the positional arguments that come after
the option. In both cases, knowing the absolute position of a given option
helps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15725 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 19:47:30 +00:00
Nate Begeman
1c284ac5ec
Remove an unneeded header and forward declaration
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15722 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 09:33:17 +00:00
Nate Begeman
b73a711ed7
Fix siod by switching BoolTy to byte rather than int until CFE changes for
...
Darwin. Also, change asm printer to output proper stubs for external
functions whose address is passed as an argument to aid in bugpointing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15721 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 09:32:01 +00:00
Nate Begeman
293d88ca8b
Fix 177.mesa compilation, don't use floating point regs for base addresses!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15720 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 04:45:14 +00:00
Nate Begeman
8cfa427d9c
Fix llc crasher compiling siod by giving BuildMI the correct number of arguments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15719 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 03:56:49 +00:00
Chris Lattner
a670c684a6
If we are extracting a block that has multiple successors that are the same
...
block (common in a switch), make sure to remove extra edges in successor
blocks. This fixes CodeExtractor/2004-08-12-BlockExtractPHI.ll and should
be pulled into LLVM 1.3 (though the regression test need not be, as that
would require pulling in the LoopExtract.cpp changes).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15717 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 03:27:07 +00:00
Chris Lattner
337772832b
When we code extract some stuff, leave the codeRepl block in the place where
...
the extracted code was, instead of putting it at the end of the function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15716 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 03:17:39 +00:00
Chris Lattner
8528672e7e
"extract" the block extractor pass from bugpoint (haha)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15714 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 03:05:17 +00:00
Chris Lattner
eb6f18fe7c
Add value mapper support for select constant exprs. This should fix a bug
...
Nate ran into when bugpointing siod. This fix should go into LLVM 1.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15712 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 02:43:19 +00:00
Nate Begeman
5a104b0ec5
Longs are in one register on PowerPC 64; use appropriate instructions to operate on them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15711 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 02:20:47 +00:00
Nate Begeman
244e64ead2
Add some more 64 bit instructions we need for the PowerPC-64 ISel to the tablegen files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15710 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-13 02:19:26 +00:00
Chris Lattner
c330b68fb7
Split saveCallerSavedRegisters into two methods for clarity, and add comments.
...
Add support for targets that must spill certain physregs at certain locations.
Patch contributed by Nate Begeman, slightly hacked by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15701 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 19:01:14 +00:00
Chris Lattner
28690ea285
Remove dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15698 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:37:15 +00:00
Chris Lattner
9d9d84b3e3
Fix warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15697 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:36:28 +00:00
Chris Lattner
750d723062
Instead of a virtual method call, lets try a direct constant reference
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15696 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:29:05 +00:00
Chris Lattner
092ae6b5d1
Virtual method calls are overrated
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15695 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:20:55 +00:00
Chris Lattner
be5af7d7f5
Virtual method calls are overrated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15694 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:20:41 +00:00
Chris Lattner
4f65fb38c6
Forward substitute some constants into their users
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15693 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:10:18 +00:00
Chris Lattner
3927af8d70
The only target that uses this code (v9) always has argsOnStackHaveFixedSize
...
set to true (obviously)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15692 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 18:06:35 +00:00
Chris Lattner
484577a870
Remove dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15691 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 17:58:27 +00:00
Chris Lattner
6845dfe07e
When we want a constant, just use it, instead of calling through layers of
...
virtual methods and register name mapping functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15690 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 17:56:01 +00:00
Misha Brukman
f5f70685b6
Disable PPC64 backend by default because LLC cannot choose automatically between
...
SparcV9 and PowerPC64 without target triples, since they are both 64-bit
big-endian targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15688 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 17:16:43 +00:00
Chris Lattner
ee45f4cbe4
This patch makes the inliner refuse to inline functions that have alloca
...
instructions in the body of the function (not the entry block). This fixes
test/Programs/SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c
and test/Programs/External/SPEC/CINT2000/176.gcc on zion.
This should obviously be pulled into 1.3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15684 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 05:45:09 +00:00
Misha Brukman
a1b6ae9d7c
* Correct 64-bit version: blr 1 (not 0)
...
* BuildMI() can build 0-param instructions (e.g., NOP)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15681 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 03:30:03 +00:00
Misha Brukman
e4d093c356
* Print out full names for non-GPR or -FPR registers
...
* BuildMI() really *does* handle 0 params!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15680 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 03:28:47 +00:00
Chris Lattner
b519efbafe
Fix code extraction of unwind blocks. This fixed bugs that bugpoint can
...
run into. This should go into 1.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15679 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 03:17:02 +00:00
Misha Brukman
cc6b01b1e6
* Pointers are 8 bytes, hence cLong type on 64-bit PPC
...
* Fix loading of GlobalValues
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15678 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 02:53:01 +00:00
Misha Brukman
8e63dcebcc
Eliminate special-casing 14-bit immediate load/store opcodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15677 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 02:51:38 +00:00
Chris Lattner
a5de823844
Hrm, this pass didn't compile. This bugfix should go into 1.3!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15676 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 02:44:23 +00:00
Misha Brukman
c90f2963c4
Correctly print out ASCII literal strings on AIX
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15674 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 01:01:13 +00:00
Misha Brukman
ef9468cfe5
Mark R2 as available for allocation on Darwin/PPC32, but not AIX/PPC64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15673 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-12 00:10:01 +00:00
Misha Brukman
1d3527edbf
* Move AIX into the llvm namespace to be accessed from RegisterInfo
...
* Mark InstrInfo with 32 vs. 64 bit flag
* Enable the 64-bit isel and asm printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15672 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 23:47:08 +00:00
Misha Brukman
a6ecd9ee47
Set the is64bit flag and propagate it to PowerPCRegisterInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15671 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 23:45:43 +00:00
Misha Brukman
dceb457607
* Set the is64bit boolean flag in PowerPCRegisterInfo
...
* Doubles are 8 bytes in 64-bit PowerPC, and use the general register class
* Use double-word loads and stores for restoring from/saving to stack
* Do not allocate R2 if compiling for AIX
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15670 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 23:44:55 +00:00
Misha Brukman
ca9309f22e
64-bit instruction selector and AIX-specific 64-bit asm printer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15669 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 23:42:15 +00:00
Misha Brukman
55eee3dc7a
Fix names of 64-bit CMP*D* opcodes, add LWA and STD* opcodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15668 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 23:33:34 +00:00
Misha Brukman
f1f6cef161
Add support for 64-bit CMPDI, CMPLDI, and CMPLD opcodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15667 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 20:56:14 +00:00
Misha Brukman
96b6110685
Add doubleword load/store (64-bit only).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15665 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 15:54:36 +00:00
Misha Brukman
9582822341
Hyphenate ##-bit and remove first-person from comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15663 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 13:35:44 +00:00
Nate Begeman
7a4fe9be7e
Clean up 32/64bit and Darwin/AIX split. Next steps: 64 bit ISel, AIX asm printer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15662 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 07:40:04 +00:00
Chris Lattner
74a806cd3d
Fix a case where constantexprs could leak into the PPC isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15661 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 07:34:50 +00:00
Chris Lattner
c96bb817aa
Remove a bunch of ad-hoc target-specific flags that were only used by the
...
old asmprinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15660 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 07:12:04 +00:00