oota-llvm.git
16 years agoFixing a typo. Found by Kevin André!
Gordon Henriksen [Sun, 14 Oct 2007 00:34:53 +0000 (00:34 +0000)]
Fixing a typo. Found by Kevin André!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42956 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoClarify that fastcc has a problem with nested function
Duncan Sands [Sat, 13 Oct 2007 07:38:37 +0000 (07:38 +0000)]
Clarify that fastcc has a problem with nested function
trampolines, rather than with nested functions themselves.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42955 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEnhance the truncstore optimization code to handle shifted
Chris Lattner [Sat, 13 Oct 2007 06:58:48 +0000 (06:58 +0000)]
Enhance the truncstore optimization code to handle shifted
values and propagate demanded bits through them in simple cases.

This allows this code:
void foo(char *P) {
   strcpy(P, "abc");
}
to compile to:

_foo:
        ldrb r3, [r1]
        ldrb r2, [r1, #+1]
        ldrb r12, [r1, #+2]!
        ldrb r1, [r1, #+1]
        strb r1, [r0, #+3]
        strb r2, [r0, #+1]
        strb r12, [r0, #+2]
        strb r3, [r0]
        bx lr

instead of:

_foo:
        ldrb r3, [r1, #+3]
        ldrb r2, [r1, #+2]
        orr r3, r2, r3, lsl #8
        ldrb r2, [r1, #+1]
        ldrb r1, [r1]
        orr r2, r1, r2, lsl #8
        orr r3, r2, r3, lsl #16
        strb r3, [r0]
        mov r2, r3, lsr #24
        strb r2, [r0, #+3]
        mov r2, r3, lsr #16
        strb r2, [r0, #+2]
        mov r3, r3, lsr #8
        strb r3, [r0, #+1]
        bx lr

testcase here: test/CodeGen/ARM/truncstore-dag-combine.ll

This also helps occasionally for X86 and other cases not involving
unaligned load/stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42954 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agonew testcase
Chris Lattner [Sat, 13 Oct 2007 06:56:18 +0000 (06:56 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42953 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a simple optimization to simplify the input to
Chris Lattner [Sat, 13 Oct 2007 06:35:54 +0000 (06:35 +0000)]
Add a simple optimization to simplify the input to
truncate and truncstore instructions, based on the
knowledge that they don't demand the top bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42952 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIf the power of 5 is exact, and the reciprocal exact, the error is zero not one half...
Neil Booth [Sat, 13 Oct 2007 03:34:08 +0000 (03:34 +0000)]
If the power of 5 is exact, and the reciprocal exact, the error is zero not one half-ulps.  This prevents an infinite loop in rare cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42950 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix test case.
Evan Cheng [Sat, 13 Oct 2007 03:14:06 +0000 (03:14 +0000)]
Fix test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42949 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew tests.
Evan Cheng [Sat, 13 Oct 2007 03:10:54 +0000 (03:10 +0000)]
New tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42948 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLocal spiller optimization:
Evan Cheng [Sat, 13 Oct 2007 02:50:24 +0000 (02:50 +0000)]
Local spiller optimization:
Turn this:
movswl  %ax, %eax
movl    %eax, -36(%ebp)
xorl    %edi, -36(%ebp)
into
movswl  %ax, %eax
xorl    %edi, %eax
movl    %eax, -36(%ebp)
by unfolding the load / store xorl into an xorl and a store when we know the
value in the spill slot is available in a register. This doesn't change the
number of instructions but reduce the number of times memory is accessed.

Also unfold some load folding instructions and reuse the value when similar
situation presents itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42947 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange unfoldMemoryOperand(). User is now responsible for passing in the
Evan Cheng [Sat, 13 Oct 2007 02:35:06 +0000 (02:35 +0000)]
Change unfoldMemoryOperand(). User is now responsible for passing in the
register used by the unfolded instructions. User can also specify whether to
unfold the load, the store, or both.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42946 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOptionally create a MachineInstr without default implicit operands.
Evan Cheng [Sat, 13 Oct 2007 02:23:01 +0000 (02:23 +0000)]
Optionally create a MachineInstr without default implicit operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42945 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrecting the corrections. Bad bad baaad emacs!
Arnold Schwaighofer [Fri, 12 Oct 2007 21:53:12 +0000 (21:53 +0000)]
Correcting the corrections. Bad bad baaad emacs!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42935 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrected many typing errors. And removed 'nest' parameter handling
Arnold Schwaighofer [Fri, 12 Oct 2007 21:30:57 +0000 (21:30 +0000)]
Corrected many typing errors. And removed 'nest' parameter handling
for fastcc from X86CallingConv.td.  This means that nested functions
are not supported for calling convention 'fastcc'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42934 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix this test to not depend on the assembly output containing something
Dan Gohman [Fri, 12 Oct 2007 20:42:14 +0000 (20:42 +0000)]
Fix this test to not depend on the assembly output containing something
that includes the string "st". This probably fixes the regression on
Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42932 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDest type is always i8 *. This allows some simplification.
Devang Patel [Fri, 12 Oct 2007 20:10:21 +0000 (20:10 +0000)]
Dest type is always i8 *. This allows some simplification.
Do not filter memmove.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42930 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agot
Devang Patel [Fri, 12 Oct 2007 20:04:24 +0000 (20:04 +0000)]
t

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42929 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix ocaml bindings for picky linkers. :)
Gordon Henriksen [Fri, 12 Oct 2007 19:48:13 +0000 (19:48 +0000)]
Fix ocaml bindings for picky linkers. :)

Thanks to Török Edvin for helping to track this down.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42927 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDue to the new tail call optimization, trampolines can no
Duncan Sands [Fri, 12 Oct 2007 19:37:31 +0000 (19:37 +0000)]
Due to the new tail call optimization, trampolines can no
longer be created for fastcc functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42925 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoppc long double. Implement fabs and fneg.
Dale Johannesen [Fri, 12 Oct 2007 19:02:17 +0000 (19:02 +0000)]
ppc long double.  Implement fabs and fneg.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42924 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate.
Evan Cheng [Fri, 12 Oct 2007 18:22:55 +0000 (18:22 +0000)]
Update.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42922 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agodon't use intptr_t without including it.
Chris Lattner [Fri, 12 Oct 2007 18:16:23 +0000 (18:16 +0000)]
don't use intptr_t without including it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42921 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.ll
Chris Lattner [Fri, 12 Oct 2007 18:05:47 +0000 (18:05 +0000)]
Fix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42920 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement i64->ppcf128 conversions.
Dale Johannesen [Fri, 12 Oct 2007 17:52:03 +0000 (17:52 +0000)]
Implement i64->ppcf128 conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42919 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake this compute the correct offset, handling alignment of the element
Chris Lattner [Fri, 12 Oct 2007 17:49:52 +0000 (17:49 +0000)]
Make this compute the correct offset, handling alignment of the element
pointer correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42918 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDid mean to leave this in. INSERT_SUBREG isn't being coalesced yet.
Evan Cheng [Fri, 12 Oct 2007 17:16:50 +0000 (17:16 +0000)]
Did mean to leave this in. INSERT_SUBREG isn't being coalesced yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42916 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove duplicate comment.
Neil Booth [Fri, 12 Oct 2007 16:05:57 +0000 (16:05 +0000)]
Remove duplicate comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42913 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement correctly-rounded decimal->binary conversion, i.e. conversion
Neil Booth [Fri, 12 Oct 2007 16:02:31 +0000 (16:02 +0000)]
Implement correctly-rounded decimal->binary conversion, i.e. conversion
from user input strings.

Such conversions are more intricate and subtle than they may appear;
it is unlikely I have got it completely right first time.  I would
appreciate being informed of any bugs and incorrect roundings you
might discover.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42912 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove a field that was never used.
Neil Booth [Fri, 12 Oct 2007 15:35:10 +0000 (15:35 +0000)]
Remove a field that was never used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42911 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIf we're trying to be arbitrary precision, unsigned char clearly won't cut it. Neede...
Neil Booth [Fri, 12 Oct 2007 15:33:27 +0000 (15:33 +0000)]
If we're trying to be arbitrary precision, unsigned char clearly won't cut it.  Needed for dec->bin conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42910 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't attempt to mask no bits
Neil Booth [Fri, 12 Oct 2007 15:31:31 +0000 (15:31 +0000)]
Don't attempt to mask no bits

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42909 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange the names used for internal labels to use the current
Dan Gohman [Fri, 12 Oct 2007 14:53:36 +0000 (14:53 +0000)]
Change the names used for internal labels to use the current
function symbol name instead of a codegen-assigned function
number.

Thanks Evan! :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42908 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix some corner cases with vectors in copyToRegs and copyFromRegs.
Dan Gohman [Fri, 12 Oct 2007 14:33:11 +0000 (14:33 +0000)]
Fix some corner cases with vectors in copyToRegs and copyFromRegs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42907 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd support to SplitVectorOp for powi, where the second operand
Dan Gohman [Fri, 12 Oct 2007 14:13:46 +0000 (14:13 +0000)]
Add support to SplitVectorOp for powi, where the second operand
is a scalar integer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42906 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMark vector ctpop, cttz, and ctlz as Expand on x86.
Dan Gohman [Fri, 12 Oct 2007 14:09:42 +0000 (14:09 +0000)]
Mark vector ctpop, cttz, and ctlz as Expand on x86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42905 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMark vector pow, ctpop, cttz, and ctlz as Expand on PowerPC.
Dan Gohman [Fri, 12 Oct 2007 14:08:57 +0000 (14:08 +0000)]
Mark vector pow, ctpop, cttz, and ctlz as Expand on PowerPC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42904 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRestrict EXTRACT_SUBREG coalescing to avoid negative performance impact.
Evan Cheng [Fri, 12 Oct 2007 09:15:53 +0000 (09:15 +0000)]
Restrict EXTRACT_SUBREG coalescing to avoid negative performance impact.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42903 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDoh.
Evan Cheng [Fri, 12 Oct 2007 09:10:27 +0000 (09:10 +0000)]
Doh.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42901 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEXTRACT_SUBREG test case.
Evan Cheng [Fri, 12 Oct 2007 09:03:31 +0000 (09:03 +0000)]
EXTRACT_SUBREG test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42900 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
Evan Cheng [Fri, 12 Oct 2007 08:50:34 +0000 (08:50 +0000)]
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
(almost) a register copy. However, it always coalesced to the register of the
RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub-
register uses which adds subtle complications to load folding, spiller rewrite,
etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSome clean up.
Evan Cheng [Fri, 12 Oct 2007 08:45:27 +0000 (08:45 +0000)]
Some clean up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42898 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCosmetic.
Evan Cheng [Fri, 12 Oct 2007 08:40:44 +0000 (08:40 +0000)]
Cosmetic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42897 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix typos.
Evan Cheng [Fri, 12 Oct 2007 08:39:02 +0000 (08:39 +0000)]
Fix typos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42896 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFold load / store into MOV32to32_ and MOV16to16_.
Evan Cheng [Fri, 12 Oct 2007 08:38:01 +0000 (08:38 +0000)]
Fold load / store into MOV32to32_ and MOV16to16_.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42895 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFlag MOV32to32_ with EXTRACT_SUBREG. They should not be scheduled apart.
Evan Cheng [Fri, 12 Oct 2007 07:55:53 +0000 (07:55 +0000)]
Flag MOV32to32_ with EXTRACT_SUBREG. They should not be scheduled apart.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42894 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded missing -march=x86 flag.
Arnold Schwaighofer [Fri, 12 Oct 2007 07:49:48 +0000 (07:49 +0000)]
Added missing -march=x86 flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42893 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoeliminate warning
Gabor Greif [Fri, 12 Oct 2007 07:44:54 +0000 (07:44 +0000)]
eliminate warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42892 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix some 80 column violations.
Chris Lattner [Fri, 12 Oct 2007 05:30:59 +0000 (05:30 +0000)]
Fix some 80 column violations.
Fix DecomposeSimpleLinearExpr to handle simple constants better.
Don't nuke gep(bitcast(allocation)) if the bitcast(allocation) will
fold the allocation.  This fixes PR1728 and Instcombine/malloc3.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42891 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agotestcase for PR1728
Chris Lattner [Fri, 12 Oct 2007 05:29:53 +0000 (05:29 +0000)]
testcase for PR1728

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42890 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agomake operator== work with non-equal sized bitvectors, as long as
Chris Lattner [Fri, 12 Oct 2007 03:48:59 +0000 (03:48 +0000)]
make operator== work with non-equal sized bitvectors, as long as
the extra bits are all zeros.  This allows  "010" and "010000" to be
treated as equal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42889 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPPC long double. Implement a couple more conversions.
Dale Johannesen [Fri, 12 Oct 2007 01:37:08 +0000 (01:37 +0000)]
PPC long double.  Implement a couple more conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42888 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and so
Dan Gohman [Fri, 12 Oct 2007 00:01:22 +0000 (00:01 +0000)]
Add intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and so
may be overloaded with vector types. And add a testcase for codegen for
these.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42885 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCodegen support for vector intrinsics.
Dan Gohman [Thu, 11 Oct 2007 23:57:53 +0000 (23:57 +0000)]
Codegen support for vector intrinsics.

Factor out the code that expands the "nasty scalar code" for unrolling
vectors into a separate routine, teach it how to handle mixed
vector/scalar operands, as seen in powi, and use it for several operators,
including sin, cos, powi, and pow.

Add support in SplitVectorOp for fpow, fpowi and for several unary
operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42884 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement ppc long double->uint conversion.
Dale Johannesen [Thu, 11 Oct 2007 23:32:15 +0000 (23:32 +0000)]
Implement ppc long double->uint conversion.
Make ppc long double constants print.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42882 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSet ISD::FPOW to Expand.
Dan Gohman [Thu, 11 Oct 2007 23:21:31 +0000 (23:21 +0000)]
Set ISD::FPOW to Expand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42881 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd runtime library names for pow.
Dan Gohman [Thu, 11 Oct 2007 23:09:10 +0000 (23:09 +0000)]
Add runtime library names for pow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42880 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd an ISD::FPOW node type.
Dan Gohman [Thu, 11 Oct 2007 23:06:37 +0000 (23:06 +0000)]
Add an ISD::FPOW node type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42879 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd an explicit target triple to make this test behave as expected on
Dan Gohman [Thu, 11 Oct 2007 23:04:36 +0000 (23:04 +0000)]
Add an explicit target triple to make this test behave as expected on
non-Apple hosts. And use the count script instead of wc + grep.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42878 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProvided accessors to internal allocator for ImutAVLTree and ImmutableSet.
Ted Kremenek [Thu, 11 Oct 2007 21:51:04 +0000 (21:51 +0000)]
Provided accessors to internal allocator for ImutAVLTree and ImmutableSet.
Added postfix ++,-- support for ImmutableSet::iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42877 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd missing argument to PALIGNR
Dale Johannesen [Thu, 11 Oct 2007 20:58:37 +0000 (20:58 +0000)]
Add missing argument to PALIGNR

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42874 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix an assertion abort on sparc. malloc(0) is allowed to
Gabor Greif [Thu, 11 Oct 2007 19:40:35 +0000 (19:40 +0000)]
Fix an assertion abort on sparc. malloc(0) is allowed to
return NULL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42871 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded tail call optimization to the x86 back end. It can be
Arnold Schwaighofer [Thu, 11 Oct 2007 19:40:01 +0000 (19:40 +0000)]
Added tail call optimization to the x86 back end. It can be
enabled by passing -tailcallopt to llc.  The optimization is
performed if the following conditions are satisfied:
* caller/callee are fastcc
* elf/pic is disabled OR
  elf/pic enabled + callee is in module + callee has
  visibility protected or hidden

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdding myself
Arnold Schwaighofer [Thu, 11 Oct 2007 18:54:49 +0000 (18:54 +0000)]
Adding myself

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42869 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNext PPC long double bits. First cut at constants.
Dale Johannesen [Thu, 11 Oct 2007 18:07:22 +0000 (18:07 +0000)]
Next PPC long double bits.  First cut at constants.
No compile-time support for constant operations yet,
just format transformations.  Make readers and
writers work.  Split constants into 2 doubles in
Legalize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLower memcpy if it makes sense.
Devang Patel [Thu, 11 Oct 2007 17:21:57 +0000 (17:21 +0000)]
Lower memcpy if it makes sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42864 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agomake bitvector &= do the right thing if vectors have mismatched length.
Chris Lattner [Thu, 11 Oct 2007 06:12:33 +0000 (06:12 +0000)]
make bitvector  &= do the right thing if vectors have mismatched length.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42860 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a new use_iterator::atEnd() method, which allows us to shrink
Chris Lattner [Thu, 11 Oct 2007 04:18:11 +0000 (04:18 +0000)]
Add a new use_iterator::atEnd() method, which allows us to shrink
pred_iterator down to a single ivar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42859 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded iterators to ImmutableSet.
Ted Kremenek [Thu, 11 Oct 2007 00:14:49 +0000 (00:14 +0000)]
Added iterators to ImmutableSet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42851 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some doxygen comments to ImmutableSet.
Ted Kremenek [Wed, 10 Oct 2007 23:47:03 +0000 (23:47 +0000)]
Added some doxygen comments to ImmutableSet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42850 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemoved uninformative assertions that catch problems that will
Ted Kremenek [Wed, 10 Oct 2007 23:35:04 +0000 (23:35 +0000)]
Removed uninformative assertions that catch problems that will
fire anyway at runtime due to a NULL dereference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42848 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemoved "height" of an AVL tree node from its Profile. This is
Ted Kremenek [Wed, 10 Oct 2007 23:32:01 +0000 (23:32 +0000)]
Removed "height" of an AVL tree node from its Profile.  This is
implicitly captured by using the addresses of its children in the
profile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42847 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemoved spurious forward declaration to a structure that will no longer be used.
Ted Kremenek [Wed, 10 Oct 2007 20:45:34 +0000 (20:45 +0000)]
Removed spurious forward declaration to a structure that will no longer be used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42839 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some doxygen comments to a few methods of ImutAVLTree.
Ted Kremenek [Wed, 10 Oct 2007 20:44:21 +0000 (20:44 +0000)]
Added some doxygen comments to a few methods of ImutAVLTree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42837 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdated VC++ build system.
Hartmut Kaiser [Wed, 10 Oct 2007 19:50:09 +0000 (19:50 +0000)]
Updated VC++ build system.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42835 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded preliminary support for iterators in ImutAVLTree.
Ted Kremenek [Wed, 10 Oct 2007 18:11:16 +0000 (18:11 +0000)]
Added preliminary support for iterators in ImutAVLTree.
Implemented ImutAVLTree::isEqual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42833 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix CodeGen/Generic/BasicInstrs.llx on sparc by marking divrem
Chris Lattner [Wed, 10 Oct 2007 18:10:57 +0000 (18:10 +0000)]
Fix CodeGen/Generic/BasicInstrs.llx on sparc by marking divrem
illegal.  Thanks to gabor for pointing this out!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42832 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRenamed internal method "Create" of ImutAVLTree to "CreateNode".
Ted Kremenek [Wed, 10 Oct 2007 16:27:33 +0000 (16:27 +0000)]
Renamed internal method "Create" of ImutAVLTree to "CreateNode".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42825 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrect swapped arguments to getConstant.
Duncan Sands [Wed, 10 Oct 2007 09:54:50 +0000 (09:54 +0000)]
Correct swapped arguments to getConstant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42824 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix 80-column violations
Bill Wendling [Wed, 10 Oct 2007 05:45:59 +0000 (05:45 +0000)]
Fix 80-column violations

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42823 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNext PPC long double bits: ppcf128->i32 conversion.
Dale Johannesen [Wed, 10 Oct 2007 01:01:31 +0000 (01:01 +0000)]
Next PPC long double bits: ppcf128->i32 conversion.
Surprisingly complicated.
Adds getTargetNode for 2 outputs, no inputs (missing).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42822 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBad choice of variable name.
Evan Cheng [Wed, 10 Oct 2007 00:11:40 +0000 (00:11 +0000)]
Bad choice of variable name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42821 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix an extremely stupid bug that prevented first round of coalescing (physical regist...
Evan Cheng [Tue, 9 Oct 2007 23:36:27 +0000 (23:36 +0000)]
Fix an extremely stupid bug that prevented first round of coalescing (physical registers only) from happening.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42820 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoModified XCode project to contain...
Ted Kremenek [Tue, 9 Oct 2007 21:49:49 +0000 (21:49 +0000)]
Modified XCode project to contain...

ADT/DenseSet.h
ADT/ImmutableMap.h
ADT/ImmutableSet.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42816 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd new MemoryBuffer::getMemBufferCopy method.
Chris Lattner [Tue, 9 Oct 2007 21:46:38 +0000 (21:46 +0000)]
Add new MemoryBuffer::getMemBufferCopy method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42815 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix indentation.
Devang Patel [Tue, 9 Oct 2007 21:41:00 +0000 (21:41 +0000)]
Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42814 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded implementation of immutable (functional) maps and sets, as
Ted Kremenek [Tue, 9 Oct 2007 21:38:09 +0000 (21:38 +0000)]
Added implementation of immutable (functional) maps and sets, as
implemented on top of a functional AVL tree.  The AVL balancing code
is inspired by the OCaml implementation of Map, which also uses a functional
AVL tree.

Documentation is currently limited and cleanups are planned, but this code
compiles and has been tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42813 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDo not walk invalid iterator.
Devang Patel [Tue, 9 Oct 2007 21:31:36 +0000 (21:31 +0000)]
Do not walk invalid iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42812 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd LLVMFoldingBuilder
Devang Patel [Tue, 9 Oct 2007 19:49:19 +0000 (19:49 +0000)]
Add LLVMFoldingBuilder

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42806 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove an unnecessary friend declaration.
Dan Gohman [Tue, 9 Oct 2007 18:39:48 +0000 (18:39 +0000)]
Remove an unnecessary friend declaration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42805 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoupdate prototype, fixing build error
Chris Lattner [Tue, 9 Oct 2007 16:27:44 +0000 (16:27 +0000)]
update prototype, fixing build error

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42789 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPass argc by value, not by reference, since it isn't modified.
Dan Gohman [Tue, 9 Oct 2007 16:04:57 +0000 (16:04 +0000)]
Pass argc by value, not by reference, since it isn't modified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42788 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLowerIntegerDivOrRem no longer exists.
Dan Gohman [Tue, 9 Oct 2007 15:45:13 +0000 (15:45 +0000)]
LowerIntegerDivOrRem no longer exists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42787 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix grammar in a comment.
Dan Gohman [Tue, 9 Oct 2007 15:44:37 +0000 (15:44 +0000)]
Fix grammar in a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42786 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThis is done.
Dan Gohman [Tue, 9 Oct 2007 15:42:21 +0000 (15:42 +0000)]
This is done.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42785 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThese two tests now require only two multiply instructions,
Dan Gohman [Tue, 9 Oct 2007 15:39:37 +0000 (15:39 +0000)]
These two tests now require only two multiply instructions,
instead of four.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42784 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUnder 64-bit mode use LEA64_32r instead of LEA64r to save a byte.
Evan Cheng [Tue, 9 Oct 2007 07:14:53 +0000 (07:14 +0000)]
Under 64-bit mode use LEA64_32r instead of LEA64r to save a byte.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42783 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix problems where DenseMap used operator!= instead of correctly
Chris Lattner [Tue, 9 Oct 2007 05:42:12 +0000 (05:42 +0000)]
Fix problems where DenseMap used operator!= instead of correctly
calling the traits implementation of isEqual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42782 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange a #include into a forward declaration
Chris Lattner [Tue, 9 Oct 2007 03:40:30 +0000 (03:40 +0000)]
Change a #include into a forward declaration

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42781 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPosition Independent Code (PIC) support [3]
Bruno Cardoso Lopes [Tue, 9 Oct 2007 03:15:11 +0000 (03:15 +0000)]
Position Independent Code (PIC) support [3]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42780 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPosition Independent Code (PIC) support [2]
Bruno Cardoso Lopes [Tue, 9 Oct 2007 03:01:19 +0000 (03:01 +0000)]
Position Independent Code (PIC) support [2]
- Added a function to hold the stack location
  where GP must be stored during LowerCALL
- AsmPrinter now emits directives based on
  relocation type
- PIC_ set to default relocation type (same as GCC)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42779 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPosition Independent Code (PIC) support [1]
Bruno Cardoso Lopes [Tue, 9 Oct 2007 02:55:31 +0000 (02:55 +0000)]
Position Independent Code (PIC) support [1]
- Modified instruction format to handle pseudo instructions
- Added LoadAddr SDNode to load symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42778 91177308-0d34-0410-b5e6-96231b3b80d8