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
Chris Lattner
a36579803f
implement passing/returning vector regs to calls, at least non-varargs calls.
...
llvm-svn: 28341
2006-05-16 23:54:25 +00:00
Chris Lattner
30f61c8bb1
Add support for calls that pass and return legal vectors.
...
llvm-svn: 28340
2006-05-16 23:39:44 +00:00
Chris Lattner
b5271a0f4c
Instead of implementing LowerCallTo directly, let the default impl produce an
...
ISD::CALL node, then custom lower that. This means that we only have to handle
LEGAL call operands/results, not every possible type. This allows us to
simplify the call code, shrinking it by about 1/3.
llvm-svn: 28339
2006-05-16 22:56:08 +00:00
Chris Lattner
01f4f28837
Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo
...
produce it.
llvm-svn: 28338
2006-05-16 22:53:20 +00:00
Chris Lattner
5d949a2ad2
Add a new CALL node.
...
llvm-svn: 28337
2006-05-16 22:52:27 +00:00
Chris Lattner
3e13a7d49e
There is now a default impl of this method
...
llvm-svn: 28336
2006-05-16 22:52:11 +00:00
Chris Lattner
40d1eaad0a
Simplify the argument counting logic by only incrementing the index.
...
llvm-svn: 28335
2006-05-16 18:58:15 +00:00
Chris Lattner
0ae068ed8f
Simplify the dead argument handling code.
...
llvm-svn: 28334
2006-05-16 18:54:32 +00:00
Chris Lattner
fbbe542235
Vector args passed in registers don't reserve stack space.
...
llvm-svn: 28333
2006-05-16 18:51:52 +00:00
Chris Lattner
4f7dfb31f3
Another testcase that shouldn't need vrsave twiddling
...
llvm-svn: 28332
2006-05-16 18:23:55 +00:00