Chris Lattner [Tue, 23 May 2006 23:39:48 +0000 (23:39 +0000)]
Print struct return functions and calls as actually returning the hidden
argument struct pointer, enabling ABI compatibility for the CBE with
platforms with strange struct-return ABIs. This fixes 252.eon and
CoyoteBench/fftbench on Darwin/X86 among other things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28442
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 May 2006 23:20:42 +0000 (23:20 +0000)]
Fix file header comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28441
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 21:08:24 +0000 (21:08 +0000)]
Better way to check for vararg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28440
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 21:06:34 +0000 (21:06 +0000)]
Remove PreprocessCCCArguments and PreprocessFastCCArguments now that
FORMAL_ARGUMENTS nodes include a token operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28439
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 May 2006 18:50:38 +0000 (18:50 +0000)]
Implement an annoying part of the Darwin/X86 abi: the callee of a struct
return argument pops the hidden struct pointer if present, not the caller.
For example, in this testcase:
struct X { int D, E, F, G; };
struct X bar() {
struct X a;
a.D = 0;
a.E = 1;
a.F = 2;
a.G = 3;
return a;
}
void foo(struct X *P) {
*P = bar();
}
We used to emit:
_foo:
subl $28, %esp
movl 32(%esp), %eax
movl %eax, (%esp)
call _bar
addl $28, %esp
ret
_bar:
movl 4(%esp), %eax
movl $0, (%eax)
movl $1, 4(%eax)
movl $2, 8(%eax)
movl $3, 12(%eax)
ret
This is correct on Linux/X86 but not Darwin/X86. With this patch, we now
emit:
_foo:
subl $28, %esp
movl 32(%esp), %eax
movl %eax, (%esp)
call _bar
*** addl $24, %esp
ret
_bar:
movl 4(%esp), %eax
movl $0, (%eax)
movl $1, 4(%eax)
movl $2, 8(%eax)
movl $3, 12(%eax)
*** ret $4
For the record, GCC emits (which is functionally equivalent to our new code):
_bar:
movl 4(%esp), %eax
movl $3, 12(%eax)
movl $2, 8(%eax)
movl $1, 4(%eax)
movl $0, (%eax)
ret $4
_foo:
pushl %esi
subl $40, %esp
movl 48(%esp), %esi
leal 16(%esp), %eax
movl %eax, (%esp)
call _bar
subl $4, %esp
movl 16(%esp), %eax
movl %eax, (%esi)
movl 20(%esp), %eax
movl %eax, 4(%esi)
movl 24(%esp), %eax
movl %eax, 8(%esi)
movl 28(%esp), %eax
movl %eax, 12(%esi)
addl $40, %esp
popl %esi
ret
This fixes SingleSource/Benchmarks/CoyoteBench/fftbench with LLC and the
JIT, and fixes the X86-backend portion of PR729. The CBE still needs to
be updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28438
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 18:18:46 +0000 (18:18 +0000)]
-enable-unsafe-fp-math implies -enable-finite-only-fp-math
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28437
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Prus [Tue, 23 May 2006 15:32:15 +0000 (15:32 +0000)]
Make class comment visible in Doxygen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28436
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Prus [Tue, 23 May 2006 13:43:15 +0000 (13:43 +0000)]
Fix missing include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28435
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 06:41:23 +0000 (06:41 +0000)]
Added a test case for FP equality check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28434
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 06:40:47 +0000 (06:40 +0000)]
Incorrect SETCC CondCode used for FP comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28433
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 May 2006 06:39:12 +0000 (06:39 +0000)]
Added option -enable-finite-only-fp-math. When on, the codegen can assume that
FP arithmetic arguments and results are never NaNs or +=Infs. This includes
ignoring parity flag (PF) when checking for FP equality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28432
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 May 2006 02:48:20 +0000 (02:48 +0000)]
implement minimal versions of
ARMAsmPrinter::runOnMachineFunction
LowerFORMAL_ARGUMENTS
ARMInstrInfo::isMoveInstr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28431
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 May 2006 01:40:20 +0000 (01:40 +0000)]
Describe how to add a custom test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28430
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 May 2006 01:25:11 +0000 (01:25 +0000)]
Wrap long lines fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28429
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 May 2006 05:54:49 +0000 (05:54 +0000)]
A isel deficiency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28427
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 21 May 2006 10:40:20 +0000 (10:40 +0000)]
For PR784:
Support Win32 platforms for llvm-gcc path. Patch by Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28426
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 21 May 2006 06:28:50 +0000 (06:28 +0000)]
Back out indirect branch load folding hack. It broke some tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 21 May 2006 03:57:07 +0000 (03:57 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28424
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 20 May 2006 23:28:54 +0000 (23:28 +0000)]
Make TargetData strings less redundant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28423
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 20 May 2006 23:14:03 +0000 (23:14 +0000)]
Silence a bogus gcc warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28422
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 20 May 2006 21:16:59 +0000 (21:16 +0000)]
Fix a parsing bug that caused 7 llvm-test regressions on PPC last night.
I'm suprised it didn't cause more!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28421
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 May 2006 09:21:39 +0000 (09:21 +0000)]
- Use of load's chain result should be redirected to load's chain operand.
If it reads the chain result of the call, then the use, callseq_start,
and call would form a cycle!
- Don't forget handle node replacement!
- There could also be a TokenFactor between the load and the callseq_start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28420
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 May 2006 07:44:53 +0000 (07:44 +0000)]
A new entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28419
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 May 2006 07:44:28 +0000 (07:44 +0000)]
Missing break statements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28418
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 May 2006 01:40:16 +0000 (01:40 +0000)]
Remove unused patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28417
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 May 2006 01:36:52 +0000 (01:36 +0000)]
Handle indirect call which folds a load manually. This never matches by
the TableGen generated code since the load's chain result is read by
the callseq_start node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28416
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 20 May 2006 00:49:30 +0000 (00:49 +0000)]
Sparc is big-endian.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28415
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 20 May 2006 00:24:56 +0000 (00:24 +0000)]
Make all of the TargetMachine subclasses use the new string TargetData methods.
This is part of the on-going work on PR 761.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28414
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 22:00:54 +0000 (22:00 +0000)]
new testcase for csretcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28413
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:58:52 +0000 (21:58 +0000)]
Print csretcc calls like this:
call csretcc void %structret( { sbyte }* %P )
instead of this:
callcsretcc void %structret( { sbyte }* %P )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28412
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:57:37 +0000 (21:57 +0000)]
Fix misencoding of calling conventions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28411
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:54:03 +0000 (21:54 +0000)]
pretty print csretcc for calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28410
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:34:04 +0000 (21:34 +0000)]
CSRet allows varargs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:29:57 +0000 (21:29 +0000)]
Asmprint csret nicely
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28408
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:28:53 +0000 (21:28 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28407
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:28:34 +0000 (21:28 +0000)]
Add support for parsing csret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28406
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:25:17 +0000 (21:25 +0000)]
csret functions can be varargs (as can target cc's). Verify restrictions on
csret functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:19:02 +0000 (21:19 +0000)]
Add new calling convention, as documented in LangRef.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28404
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:15:36 +0000 (21:15 +0000)]
New calling convention I will be adding shortly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 21:01:38 +0000 (21:01 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28402
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 20:55:31 +0000 (20:55 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 20:51:43 +0000 (20:51 +0000)]
Split the SSE readme items out into their own README.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 20:45:52 +0000 (20:45 +0000)]
Split FP-stack notes out of the main readme. Next up: splitting out SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 20:45:08 +0000 (20:45 +0000)]
Move a target-independent note out of the X86 readme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28398
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 19:41:33 +0000 (19:41 +0000)]
Particularly ugly code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28397
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 19:34:09 +0000 (19:34 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28396
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 19 May 2006 19:09:46 +0000 (19:09 +0000)]
Fix a doxygen problem and break lines at 80 columns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28395
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 19 May 2006 19:07:54 +0000 (19:07 +0000)]
Fix some doxygen usage in these headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28394
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 May 2006 18:43:41 +0000 (18:43 +0000)]
These can be transformed into lea as well. Not that we use this feature
currently...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28393
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 May 2006 18:40:54 +0000 (18:40 +0000)]
- Use exact-width integer types, e.g. int32_t, to avoid confusion.
- Fix a couple of minor bugs in i16immSExt8 and i16immZExt8.
- Added loadiPTR fragment used for indirect jumps and calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28392
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 May 2006 17:17:12 +0000 (17:17 +0000)]
Use class tags instead of struct tags. The coding standards specify this
for public classes for improved win32 compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28391
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 May 2006 07:30:36 +0000 (07:30 +0000)]
Explicitly specify MOV32mi can only be used store 32-bit GV, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28390
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 May 2006 07:24:32 +0000 (07:24 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28389
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 18 May 2006 21:45:49 +0000 (21:45 +0000)]
implement movri
add a stub LowerFORMAL_ARGUMENTS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28388
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 20:44:26 +0000 (20:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28387
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 20:42:07 +0000 (20:42 +0000)]
lib/Target/Target.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28386
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 18 May 2006 19:42:16 +0000 (19:42 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28385
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 May 2006 18:26:13 +0000 (18:26 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28384
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 May 2006 17:38:16 +0000 (17:38 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28383
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 18 May 2006 17:29:34 +0000 (17:29 +0000)]
Fix a bogus gcc warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28382
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 06:27:15 +0000 (06:27 +0000)]
ImmMask should be 3 for a two-bit field; Compact X86II
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28381
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 18 May 2006 05:46:08 +0000 (05:46 +0000)]
Fix some think-o's in my last commit. Thanks to Chris for pointing them out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28380
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 18 May 2006 02:10:31 +0000 (02:10 +0000)]
Change Module to use TargetData-compatible strings internally.
This is part of the on-going work on PR 761.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28379
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 00:12:58 +0000 (00:12 +0000)]
getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28378
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 00:09:53 +0000 (00:09 +0000)]
Remove CalleeSavedRegisters from class Target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28377
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 May 2006 00:08:46 +0000 (00:08 +0000)]
Don't generate getCalleeSaveReg and getCalleeSaveRegClasses anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28376
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 23:43:56 +0000 (23:43 +0000)]
This test is buggy: printf is a varargs function. This fixes the test with
the PPC JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28375
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 May 2006 22:55:35 +0000 (22:55 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28374
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 17 May 2006 21:56:02 +0000 (21:56 +0000)]
Fix a stupid bug when parsing TargetData strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28373
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 21:54:48 +0000 (21:54 +0000)]
Use DIRS here instead of PARALLEL_DIRS, as VMCore has to be built before the
other dirs (for Intrinsics.gen). :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28372
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 21:21:41 +0000 (21:21 +0000)]
Use generic iPTR instead i32 to represent pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28371
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 21:20:51 +0000 (21:20 +0000)]
Another entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28370
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 May 2006 21:20:50 +0000 (21:20 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28369
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 21:20:27 +0000 (21:20 +0000)]
Remove PointerType from class Target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 21:05:27 +0000 (21:05 +0000)]
Declare that lowerinvoke doesn't interact with other lowering passes.
Patch written by Domagoj Babic!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28367
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 20:55:51 +0000 (20:55 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28366
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 20:49:36 +0000 (20:49 +0000)]
Fix the result of the call to use a correct vbitconvert. There is no need to
use getPackedTypeBreakdown at all here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28365
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 20:43:21 +0000 (20:43 +0000)]
Correct a previous patch which broke CodeGen/PowerPC/vec_call.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28364
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 20:37:59 +0000 (20:37 +0000)]
Remove PointerType from target definition. Use abstract type MVT::iPTR to
represent pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28363
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 20:21:44 +0000 (20:21 +0000)]
PR736 has already been fixed. Remove XFAIL marker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28362
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 20:20:04 +0000 (20:20 +0000)]
New test case for vector type argument pass by value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28361
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 17 May 2006 19:24:49 +0000 (19:24 +0000)]
Fix call_adj.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28360
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 17 May 2006 19:24:31 +0000 (19:24 +0000)]
Added sanity check for obviously bogus immediates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28359
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 17 May 2006 19:23:31 +0000 (19:23 +0000)]
Added regression that breaks gcc4 build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28358
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 19:07:40 +0000 (19:07 +0000)]
Should pass by reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28357
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 19:05:31 +0000 (19:05 +0000)]
Another entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28356
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 19:02:25 +0000 (19:02 +0000)]
Add a note about a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28355
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 19:00:46 +0000 (19:00 +0000)]
Make PPC call lowering more aggressive, making the isel matching code simple
enough to be autogenerated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28354
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 18:22:14 +0000 (18:22 +0000)]
Another typo. Pointed out by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28353
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 18:16:39 +0000 (18:16 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28352
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 18:10:06 +0000 (18:10 +0000)]
Fix an obvious bug in getPackedTypeBreakdown. Return 1 if type is legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28351
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 May 2006 18:08:20 +0000 (18:08 +0000)]
Fix a mis-leading comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28350
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 18:05:35 +0000 (18:05 +0000)]
Add a CloneModule call that exposes the mapping of values from the old module
to the new module. Patch provided by Nick Lewycky!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28349
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 18:00:08 +0000 (18:00 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28348
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 17:55:45 +0000 (17:55 +0000)]
Add an assertion, avoid some unneeded work for each call. No functionality
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28347
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 06:01:33 +0000 (06:01 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28346
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 04:20:13 +0000 (04:20 +0000)]
add an external symbol testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28345
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 03:57:31 +0000 (03:57 +0000)]
new test for various forms of calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28344
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 00:18:23 +0000 (00:18 +0000)]
test for support to pass/return vectors to calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28343
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 May 2006 00:15:40 +0000 (00:15 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28342
91177308-0d34-0410-b5e6-
96231b3b80d8