Commit Graph

24765 Commits

Author SHA1 Message Date
Chris Lattner
fce3b3f299 Use class tags instead of struct tags. The coding standards specify this
for public classes for improved win32 compatibility.

llvm-svn: 28391
2006-05-19 17:17:12 +00:00
Evan Cheng
ff19d6478e Explicitly specify MOV32mi can only be used store 32-bit GV, etc.
llvm-svn: 28390
2006-05-19 07:30:36 +00:00
Evan Cheng
accb9d0378 Now that iPTR is a fully resolved type. We end up losing the type check for
patterns that look like this:

def : Pat<(i32 (X86Wrapper tconstpool  :$dst)), (MOV32ri tconstpool  :$dst)>;

InsertOneTypeCheck should copy the type from the resolved pattern to the
unresolved one as long as there types are different.

llvm-svn: 28389
2006-05-19 07:24:32 +00:00
Rafael Espindola
a0e82ff9be implement movri
add a stub LowerFORMAL_ARGUMENTS

llvm-svn: 28388
2006-05-18 21:45:49 +00:00
Evan Cheng
4bbd1c455f Added a Flags field to TargetOperandInfo. Currently the only flag is
M_LOOK_UP_PTR_REG_CLASS which allows the register class of the operand to be
resolved via a callback at runtime.

llvm-svn: 28387
2006-05-18 20:44:26 +00:00
Evan Cheng
00c1318055 lib/Target/Target.td
llvm-svn: 28386
2006-05-18 20:42:07 +00:00
Reid Spencer
16022f0a6a Improve error output. Use the third parameter of the "catch" command to
capture the error output from the exec option. This generally will capture
the stderr messages generated by the tools. This information is then
printed if the test fails. This helps to recognize more quickly what the
error was. Otherwise, this information is lost.

llvm-svn: 28385
2006-05-18 19:42:16 +00:00
Chris Lattner
9c7cab7478 add a note
llvm-svn: 28384
2006-05-18 18:26:13 +00:00
Chris Lattner
c0653d237a add a note
llvm-svn: 28383
2006-05-18 17:38:16 +00:00
Andrew Lenharth
3ae8eaba1a Fix a bogus gcc warning
llvm-svn: 28382
2006-05-18 17:29:34 +00:00
Evan Cheng
d49a6d7065 ImmMask should be 3 for a two-bit field; Compact X86II
llvm-svn: 28381
2006-05-18 06:27:15 +00:00
Owen Anderson
5651df758a Fix some think-o's in my last commit. Thanks to Chris for pointing them out.
llvm-svn: 28380
2006-05-18 05:46:08 +00:00
Owen Anderson
89fd16ffc8 Change Module to use TargetData-compatible strings internally.
This is part of the on-going work on PR 761.

llvm-svn: 28379
2006-05-18 02:10:31 +00:00
Evan Cheng
667b133ab9 getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.
llvm-svn: 28378
2006-05-18 00:12:58 +00:00
Evan Cheng
89187d589f Remove CalleeSavedRegisters from class Target.
llvm-svn: 28377
2006-05-18 00:09:53 +00:00
Evan Cheng
fcdfdcaa96 Don't generate getCalleeSaveReg and getCalleeSaveRegClasses anymore.
llvm-svn: 28376
2006-05-18 00:08:46 +00:00
Chris Lattner
85ad9ed15d This test is buggy: printf is a varargs function. This fixes the test with
the PPC JIT

llvm-svn: 28375
2006-05-17 23:43:56 +00:00
Reid Spencer
8dbff8efda Make some changes suggested by Chris:
1. Remove the LLVM_DO_NOT_BUILD feature (not needed any more)
2. Ensure that lib/VMCore gets built first. This needs to be done because
   VMCore now uses tblgen to generate the Intrinsics header which are
   needed in other libraries. In parallel builds, this can cause problems.

llvm-svn: 28374
2006-05-17 22:55:35 +00:00
Owen Anderson
ab4cc2c9a5 Fix a stupid bug when parsing TargetData strings.
llvm-svn: 28373
2006-05-17 21:56:02 +00:00
Chris Lattner
94297e068f Use DIRS here instead of PARALLEL_DIRS, as VMCore has to be built before the
other dirs (for Intrinsics.gen).  :(

llvm-svn: 28372
2006-05-17 21:54:48 +00:00
Evan Cheng
070813257a Use generic iPTR instead i32 to represent pointer type.
llvm-svn: 28371
2006-05-17 21:21:41 +00:00
Evan Cheng
3034b633f6 Another entry
llvm-svn: 28370
2006-05-17 21:20:51 +00:00
Reid Spencer
f7b690de87 Remove the llvm-db and bugpoint restrictions from the win32 platform so
they can be compiled with ming32. The use of fork(2) has been removed.

llvm-svn: 28369
2006-05-17 21:20:50 +00:00
Evan Cheng
ea24815aa3 Remove PointerType from class Target
llvm-svn: 28368
2006-05-17 21:20:27 +00:00
Chris Lattner
cc9a99f371 Declare that lowerinvoke doesn't interact with other lowering passes.
Patch written by Domagoj Babic!

llvm-svn: 28367
2006-05-17 21:05:27 +00:00
Evan Cheng
3cfed5af84 Typo
llvm-svn: 28366
2006-05-17 20:55:51 +00:00
Chris Lattner
b2ecc1b1e7 Fix the result of the call to use a correct vbitconvert. There is no need to
use getPackedTypeBreakdown at all here.

llvm-svn: 28365
2006-05-17 20:49:36 +00:00
Chris Lattner
924f3fed13 Correct a previous patch which broke CodeGen/PowerPC/vec_call.ll
llvm-svn: 28364
2006-05-17 20:43:21 +00:00
Evan Cheng
5dc3e33623 Remove PointerType from target definition. Use abstract type MVT::iPTR to
represent pointer type.

llvm-svn: 28363
2006-05-17 20:37:59 +00:00
Evan Cheng
b7d690c984 PR736 has already been fixed. Remove XFAIL marker.
llvm-svn: 28362
2006-05-17 20:21:44 +00:00
Evan Cheng
cbaf0e6f8e New test case for vector type argument pass by value.
llvm-svn: 28361
2006-05-17 20:20:04 +00:00
Andrew Lenharth
595187964b Fix call_adj.ll
llvm-svn: 28360
2006-05-17 19:24:49 +00:00
Andrew Lenharth
1b6c7f28f7 Added sanity check for obviously bogus immediates
llvm-svn: 28359
2006-05-17 19:24:31 +00:00
Andrew Lenharth
c5ff8cf4cb Added regression that breaks gcc4 build
llvm-svn: 28358
2006-05-17 19:23:31 +00:00
Evan Cheng
d282cb8542 Should pass by reference.
llvm-svn: 28357
2006-05-17 19:07:40 +00:00
Evan Cheng
b84a79a336 Another entry
llvm-svn: 28356
2006-05-17 19:05:31 +00:00
Chris Lattner
477732bab9 Add a note about a note
llvm-svn: 28355
2006-05-17 19:02:25 +00:00
Chris Lattner
2208c3214c Make PPC call lowering more aggressive, making the isel matching code simple
enough to be autogenerated.

llvm-svn: 28354
2006-05-17 19:00:46 +00:00
Evan Cheng
89f7ea0382 Another typo. Pointed out by Nate Begeman.
llvm-svn: 28353
2006-05-17 18:22:14 +00:00
Evan Cheng
00f391f87b Fixed a LowerCallTo and LowerArguments bug. They were introducing illegal
VBIT_VECTOR nodes. There were some confusion about the semantics of
getPackedTypeBreakdown(). e.g. for <4 x f32> it returns 1 and v4f32, not 4,
and f32.

llvm-svn: 28352
2006-05-17 18:16:39 +00:00
Evan Cheng
1d570d9be1 Fix an obvious bug in getPackedTypeBreakdown. Return 1 if type is legal.
llvm-svn: 28351
2006-05-17 18:10:06 +00:00
Evan Cheng
09c4a5d032 Fix a mis-leading comment.
llvm-svn: 28350
2006-05-17 18:08:20 +00:00
Chris Lattner
9a0d02f8f7 Add a CloneModule call that exposes the mapping of values from the old module
to the new module.  Patch provided by Nick Lewycky!

llvm-svn: 28349
2006-05-17 18:05:35 +00:00
Chris Lattner
4252704561 When we legalize target nodes, do not use getNode to create a new node,
use UpdateNodeOperands to just update the operands!  This is important because
getNode will allocate a new node if the node returns a flag and this breaks
assumptions in the legalizer that you can legalize some things multiple times
and get exactly the same results.

This latent bug was exposed by my ppc patch last night, and this fixes
gsm/toast.

llvm-svn: 28348
2006-05-17 18:00:08 +00:00
Chris Lattner
d3ff015877 Add an assertion, avoid some unneeded work for each call. No functionality
change.

llvm-svn: 28347
2006-05-17 17:55:45 +00:00
Chris Lattner
03c70b7f27 Switch PPC over to a call-selection model where the lowering code creates
the copyto/fromregs instead of making the PPCISD::CALL selection code create
them.  This vastly simplifies the selection code, and moves the ABI handling
parts into one place.

llvm-svn: 28346
2006-05-17 06:01:33 +00:00
Chris Lattner
7c87670503 add an external symbol testcase
llvm-svn: 28345
2006-05-17 04:20:13 +00:00
Chris Lattner
1a730975a1 new test for various forms of calls
llvm-svn: 28344
2006-05-17 03:57:31 +00:00
Chris Lattner
26e1420ae9 test for support to pass/return vectors to calls.
llvm-svn: 28343
2006-05-17 00:18:23 +00:00
Chris Lattner
348883611c 3 changes, 2 of which are cleanup one of which changes codegen:
1. Rearrange code a bit so that the special case doesn't require indenting lots
   of code.
2. Add comments describing PPC calling convention.
3. Only round up to 56-bytes of stack space for an outgoing call if the callee
   is varargs.  This saves a bit of stack space.

llvm-svn: 28342
2006-05-17 00:15:40 +00:00