25227 Commits

Author SHA1 Message Date
Chris Lattner
91f228b291 Simplify interpreter construction.
llvm-svn: 28826
2006-06-16 18:08:38 +00:00
Chris Lattner
16682fff2b Document the subtarget features better, make sure that 64-bit mode, 64-bit
support, and 64-bit register use are all consistent with each other.

Add a new "IsPPC" feature, to distinguish ppc32 vs ppc64 targets, use this
to configure TargetData differently.  This not makes ppc64 blow up on lots
of stuff :)

llvm-svn: 28825
2006-06-16 17:50:12 +00:00
Chris Lattner
a35f306740 Rename some subtarget features. A CPU now can *have* 64-bit instructions,
can in 32-bit mode we can choose to optionally *use* 64-bit registers.

llvm-svn: 28824
2006-06-16 17:34:12 +00:00
Chris Lattner
29052c849f apple's compiler works too
llvm-svn: 28823
2006-06-16 17:20:33 +00:00
Jim Laskey
c1066841bd PR# not associated with XFAIL
llvm-svn: 28822
2006-06-16 16:57:43 +00:00
Jim Laskey
fd4b2e234a debug info is alive again
llvm-svn: 28821
2006-06-16 16:50:24 +00:00
Chris Lattner
9cce4a54aa This test isn't implemented yet
llvm-svn: 28820
2006-06-16 16:36:50 +00:00
Andrew Lenharth
0686842037 Add a error message to cbu to match bu
llvm-svn: 28819
2006-06-16 14:43:36 +00:00
Andrew Lenharth
fbee2e56cf move header
llvm-svn: 28818
2006-06-16 14:33:53 +00:00
Jim Laskey
b6a6f7971f add decimal form of LLVMDebugVersion
llvm-svn: 28817
2006-06-16 13:45:38 +00:00
Jim Laskey
b2ff2d481e 1. Revise vector debug support.
2. Update docs for vector debug support and new version control.

3. Simplify serialization of DebugDescInfo subclasses.

llvm-svn: 28816
2006-06-16 13:14:03 +00:00
Evan Cheng
1fc4025a9c More libcall transformations:
printf("%s\n", str) -> puts(str)
printf("%c", c) -> putchar(c)
Also fixed fprintf(file, "%c", c) -> fputc(c, file)

llvm-svn: 28815
2006-06-16 08:36:35 +00:00
Evan Cheng
f2ea587aa2 Simplify fprintf(file, "%s", str) to fputs(str, file).
llvm-svn: 28814
2006-06-16 04:52:30 +00:00
Chris Lattner
0c4aa14deb First baby step towards ppc64 support. This adds a new -march=ppc64 backend
that is currently just like ppc32 :)

llvm-svn: 28813
2006-06-16 01:37:27 +00:00
Chris Lattner
44ab8aefa6 Fix Regression/Linker/2006-06-15-GlobalVarAnment.ll
llvm-svn: 28812
2006-06-16 01:24:04 +00:00
Chris Lattner
e9ad44e8b1 New testcase, the linker is not merging alignments right.
llvm-svn: 28811
2006-06-16 01:20:58 +00:00
Reid Spencer
57e8e38a6f Only print the stack trace if it was requested. Previously, any call into
the Signals module that registered the handlers would cause the stack trace
to be generated. Now, you must explicitly call PrintStackTraceOnErrorSignal
in order for that to happen.

llvm-svn: 28810
2006-06-16 00:00:57 +00:00
Chris Lattner
4ff6c1646f Teach the local allocator to know that live-in values (e.g. arguments) are
live at function entry.  This prevents it from using arg registers for other
purposes before the arguments are used.

llvm-svn: 28809
2006-06-15 22:21:53 +00:00
Chris Lattner
cb29586ce4 Add a note that Nate noticed.
llvm-svn: 28808
2006-06-15 21:33:31 +00:00
Jim Laskey
19f964e048 1. Support standard dwarf format (was bootstrapping in Apple format.)
2. Add vector support.

llvm-svn: 28807
2006-06-15 20:51:43 +00:00
Jim Laskey
3519b87758 Was pointed out that structure alignment and type alignment are not the same
thing.  Doubles still need to be special cased.

llvm-svn: 28806
2006-06-15 19:37:14 +00:00
Jim Laskey
9095eec0a2 Make sure global doubles and vectors are aligned properly.
llvm-svn: 28805
2006-06-15 19:35:07 +00:00
Chris Lattner
9d343d2799 Add some more matcher classes for shifts.
llvm-svn: 28804
2006-06-15 19:25:28 +00:00
Chris Lattner
c482a9e31a Implement Transforms/InstCombine/bswap.ll, turning common shift/and/or bswap
idioms into bswap intrinsics.

llvm-svn: 28803
2006-06-15 19:07:26 +00:00
Chris Lattner
c09a6ea07a new testcase, instcombine should turn these into llvm.bswap intrinsics.
llvm-svn: 28802
2006-06-15 19:06:42 +00:00
Chris Lattner
3743bd84cd Fix building on case-sensitive file systems, grr :)
llvm-svn: 28801
2006-06-15 17:31:22 +00:00
Reid Spencer
aba6398f8b Actually add instructions to the list of defined values so it gets
recognized as such!  This prevents the CppWriter from treating every
operand as a forward reference and making a mess of the output.

llvm-svn: 28800
2006-06-15 16:09:59 +00:00
Jim Laskey
dce07568f2 Alignment of globals has not been quite right. Needed to drop the pointer type
to get the alignment of the element type.

llvm-svn: 28799
2006-06-15 13:10:58 +00:00
Evan Cheng
66f0e09313 Vector extract / insert index operand should have ptr type.
llvm-svn: 28798
2006-06-15 08:19:05 +00:00
Evan Cheng
94bb93f8f7 Type of extract_element index operand should be iPTR.
llvm-svn: 28797
2006-06-15 08:18:06 +00:00
Evan Cheng
de7156f12c Type of vector extract / insert index operand should be iPTR.
llvm-svn: 28796
2006-06-15 08:14:54 +00:00
Evan Cheng
ef9e07d3f0 Consistency. EXTRACT_ELEMENT index operand should have ptr type.
llvm-svn: 28795
2006-06-15 08:11:54 +00:00
Evan Cheng
df63179d95 Assert. Rather than silently stop printing.
llvm-svn: 28794
2006-06-15 08:10:56 +00:00
Evan Cheng
1dfdffb9b2 Avoid undesirable behavior when assert is not enabled.
llvm-svn: 28793
2006-06-15 08:10:27 +00:00
Evan Cheng
55772ccfd6 Instructions with variable operands (variable_ops) can have a number required
operands. e.g.
def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops),
                "call {*}$dst", [(X86call GR32:$dst)]>;
TableGen should emit operand informations for the "required" operands.

Added a target instruction info flag M_VARIABLE_OPS to indicate the target
instruction may have more operands in addition to the minimum required
operands.

llvm-svn: 28791
2006-06-15 07:22:16 +00:00
Evan Cheng
5d038cf802 Allow more use of iPTR in patterns.
llvm-svn: 28790
2006-06-15 00:16:37 +00:00
Evan Cheng
c8734381ac X86 call instructions can take variable number of operands. Parameters of
vector types are passed via XMM registers.

llvm-svn: 28789
2006-06-14 22:24:55 +00:00
Evan Cheng
ff7c28dfdd Added support for variable_ops.
llvm-svn: 28788
2006-06-14 22:22:20 +00:00
Chris Lattner
37c1c44c14 add a note
llvm-svn: 28787
2006-06-14 21:26:18 +00:00
Chris Lattner
4fce8940b0 new testcase, not currently working.
llvm-svn: 28786
2006-06-14 21:24:57 +00:00
Evan Cheng
1ce02e4c49 Fix support for optional input flag.
llvm-svn: 28784
2006-06-14 19:27:50 +00:00
Evan Cheng
ca25486603 Add argument registers to the end of call operand list (partial fix).
llvm-svn: 28783
2006-06-14 18:17:40 +00:00
Jim Laskey
f0a7a1a117 Change versioning to per debug info descriptor (merged with tag.)
llvm-svn: 28782
2006-06-14 14:45:39 +00:00
Jim Laskey
f67bec0579 Place dwarf headers at earliest possible point. Well behaved when skipping
functions.

llvm-svn: 28781
2006-06-14 11:35:03 +00:00
Chris Lattner
0c4f5a655a Fix Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll, a loop unswitch
bug exposed by the recent lcssa work.

llvm-svn: 28779
2006-06-14 04:46:17 +00:00
Chris Lattner
d3c7db5fa8 new testcase, distilled from povray
llvm-svn: 28778
2006-06-14 04:45:45 +00:00
Owen Anderson
4e744af80c When asked not to delete useless PHIs, really don't delete them, no matter how
redundant they are.

llvm-svn: 28777
2006-06-14 04:43:14 +00:00
Chris Lattner
e3abb14503 Use the PotDoms map to memoize 'dominating value' lookup. With this patch,
LCSSA is still the slowest pass when gccas'ing 252.eon, but now it only takes
39s instead of 289s. :)

llvm-svn: 28776
2006-06-14 01:13:57 +00:00
Evan Cheng
632ee8de55 getOperandNum(): error if specified operand number is out of range.
llvm-svn: 28775
2006-06-13 21:47:27 +00:00
Owen Anderson
e714a5c549 Fix another instance where PHI nodes need special treatment.
llvm-svn: 28774
2006-06-13 20:50:09 +00:00