Commit Graph

36712 Commits

Author SHA1 Message Date
Chris Lattner 0ededbc68e add anote
llvm-svn: 46918
2008-02-10 01:01:35 +00:00
Nick Lewycky 52ea27db17 Match GCC's behaviour for these sections.
llvm-svn: 46916
2008-02-10 00:03:54 +00:00
Nate Begeman 727c7634c7 memopv16i8 had wrong alignment requirement, would have broken pabsb
pabs{b,w,d} are not two address
fix extract-to-mem sse4 ops
add sse4 vector sign extend nodes

llvm-svn: 46915
2008-02-09 23:46:37 +00:00
Chris Lattner 20ed4ef554 add some more notes, still not ready for review :)
llvm-svn: 46914
2008-02-09 22:58:07 +00:00
Chris Lattner 56e82884db scoped_ptr.h was removed.
llvm-svn: 46913
2008-02-09 22:50:06 +00:00
Gabor Greif dd1fc981b5 explain that NumElements in alloca and malloc defaults to one
llvm-svn: 46912
2008-02-09 22:24:34 +00:00
Dale Johannesen 43a2ed8611 Alignment of struct containing vectors depends on
whether SSE is present, on Darwin anyway.  Make it
explicit.

llvm-svn: 46909
2008-02-09 19:04:25 +00:00
Wojciech Matyjewicz 784d071e16 We should check that existing cast operation has the appropriate opcode before we reuse it.
llvm-svn: 46908
2008-02-09 18:30:13 +00:00
Wojciech Matyjewicz 5c252865de Add a check if the initial value of the induction variable is 0 (the method comment says it should be).
llvm-svn: 46907
2008-02-09 18:06:58 +00:00
Evan Cheng 6aabf837fe Remove unused hidden option.
llvm-svn: 46903
2008-02-09 08:36:28 +00:00
Nate Begeman 6715f755cc Skeleton of insert and extract matching, more to come
llvm-svn: 46902
2008-02-09 01:38:08 +00:00
Nate Begeman 17bedbc500 Tablegen support for insert & extract element matching
llvm-svn: 46901
2008-02-09 01:37:05 +00:00
Chris Lattner 7f5c2553c7 check that terminators only occur at the end of a block. This catches the
common problem of putting two terminators in the same block.  I can't write
a testcase for this because the .ll parser rejects this before the verifier
can, but this can occur when generating IR.

llvm-svn: 46900
2008-02-09 01:06:01 +00:00
Dan Gohman 65f63eba2b Change ConstantSDNode to store an APInt instead of a uint64_t, and
begin adding some methods to use it this way.

llvm-svn: 46899
2008-02-08 22:59:30 +00:00
Devang Patel 26f75e2576 Fix PR 1995.
llvm-svn: 46898
2008-02-08 22:49:13 +00:00
Evan Cheng f2bd1387b0 Forgot these files.
llvm-svn: 46896
2008-02-08 22:05:27 +00:00
Evan Cheng e460869d86 Also print alignment.
llvm-svn: 46895
2008-02-08 22:05:07 +00:00
Dan Gohman 168700bdf3 Add an isSignedIntN, like isIntN but for signed integer values instead of
unsigned.

llvm-svn: 46894
2008-02-08 21:58:15 +00:00
Evan Cheng 3b3286d4bc It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned.
llvm-svn: 46893
2008-02-08 21:20:40 +00:00
Dale Johannesen 36c2967d89 64-bit (MMX) vectors do not need restrictive alignment.
128-bit vectors need it only when SSE is on.

llvm-svn: 46890
2008-02-08 19:48:20 +00:00
Ted Kremenek 6beacb1e14 Constified operator<< in APSInt.
llvm-svn: 46882
2008-02-08 07:14:19 +00:00
Dan Gohman 7a55a94ba1 Avoid needlessly casting away const qualifiers.
llvm-svn: 46877
2008-02-08 03:29:40 +00:00
Dan Gohman 140a73efac Avoid needlessly casting away const qualifiers.
llvm-svn: 46876
2008-02-08 03:26:46 +00:00
Evan Cheng 8d59dd119b Added missing entries in X86 load / store folding tables.
llvm-svn: 46866
2008-02-08 00:12:56 +00:00
Devang Patel eef348687e Begin setting features for target based on target triple string.
llvm-svn: 46863
2008-02-07 22:32:50 +00:00
Evan Cheng 6a80462568 Remove remnant of load folding in local register allocator. Patch by Holger Schurig.
llvm-svn: 46861
2008-02-07 19:46:55 +00:00
Dan Gohman 16d4bc3dc0 Follow Chris' suggestion; change the PseudoSourceValue accessors
to return pointers instead of references, since this is always what
is needed.

llvm-svn: 46857
2008-02-07 18:41:25 +00:00
Dan Gohman 63a8452e9c Add SourceValue information for outgoing argument stores on x86.
llvm-svn: 46854
2008-02-07 16:28:05 +00:00
Dan Gohman b781c79d2c Don't abort if a MemOperand is missing a SourceValue; just print it
as <unknown>. And make some minor adjustments to the MemOperand
dump format.

llvm-svn: 46853
2008-02-07 16:18:00 +00:00
Evan Cheng a20a773654 Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing mode.
Before:
_main:
        subq    $8, %rsp
        leaq    _X(%rip), %rax
        movsd   8(%rax), %xmm1
        movss   _X(%rip), %xmm0
        call    _t
        xorl    %ecx, %ecx
        movl    %ecx, %eax
        addq    $8, %rsp
        ret
Now:
_main:
        subq    $8, %rsp
        movsd   _X+8(%rip), %xmm1
        movss   _X(%rip), %xmm0
        call    _t
        xorl    %ecx, %ecx
        movl    %ecx, %eax
        addq    $8, %rsp
        ret

Notice there is another idiotic codegen issue that needs to be fixed asap:
xorl    %ecx, %ecx
movl    %ecx, %eax

llvm-svn: 46850
2008-02-07 08:53:49 +00:00
Evan Cheng 1bc1cae318 In some cases, e.g. ADD32ri, no transformation is made. Guide against it.
llvm-svn: 46849
2008-02-07 08:29:53 +00:00
Nick Lewycky 7c1d787977 Don't make up new directives. (".set_foobar")
llvm-svn: 46848
2008-02-07 06:36:26 +00:00
Dan Gohman b3efe03672 Fix a typo in a comment.
llvm-svn: 46836
2008-02-07 02:30:40 +00:00
Dan Gohman 4f26eb7270 Add support to FoldingSet for hashing APInt objects.
llvm-svn: 46833
2008-02-06 23:09:15 +00:00
Dan Gohman 2d489b5081 Re-apply the memory operand changes, with a fix for the static
initializer problem, a minor tweak to the way the
DAGISelEmitter finds load/store nodes, and a renaming of the
new PseudoSourceValue objects.

llvm-svn: 46827
2008-02-06 22:27:42 +00:00
Evan Cheng 127b41500c It's PR1925, not PR1609.
llvm-svn: 46825
2008-02-06 22:07:17 +00:00
Bill Wendling c676a0329c Temporarily reverting:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080128/057882.html

This is causing a miscompilation on PPC G5 and just now seeing it on iMac x86-64.

llvm-svn: 46822
2008-02-06 20:03:07 +00:00
Evan Cheng 1ec748c784 Fix a number of local register allocator issues: PR1609.
llvm-svn: 46821
2008-02-06 19:16:53 +00:00
Chris Lattner 47ce2b2d22 some more notes.
llvm-svn: 46818
2008-02-06 18:32:06 +00:00
Chris Lattner 0ec3504e95 make it clear :)
llvm-svn: 46817
2008-02-06 18:00:48 +00:00
Chris Lattner cdc44ed525 add a bunch of random notes and fix some issues noticed by Gabor.
This is not ready for review or hacking, this is a work in progress :)

llvm-svn: 46816
2008-02-06 18:00:06 +00:00
Evan Cheng 8291ab4449 RegAllocaLocal still *requires* LiveVariables since it runs PHIElimination, followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code.
llvm-svn: 46813
2008-02-06 08:00:32 +00:00
Chris Lattner 7422bce18a a starter shell for 2.2 release notes
llvm-svn: 46810
2008-02-06 06:30:34 +00:00
Tanya Lattner 182a9fd39f Throttle the non-local dependence analysis for basic blocks with more than 50 predecessors. Added command line option to play with this threshold.
llvm-svn: 46790
2008-02-06 00:54:55 +00:00
Anton Korobeynikov c107b133ba Don't dereference an invalid pointer if string is empty.
llvm-svn: 46781
2008-02-05 23:34:40 +00:00
Evan Cheng 87fbd66f9f Fix PR1975: dag isel emitter produces patterns that isel wrong flag result.
llvm-svn: 46776
2008-02-05 22:50:29 +00:00
Evan Cheng 0f32916111 Move to getCALLSEQ_END to ensure CALLSEQ_END node produces a flag. This is consistent with the definition in td file.
llvm-svn: 46775
2008-02-05 22:44:06 +00:00
Chris Lattner a838141957 Make RenamePass faster by making the 'is this a new phi node'
check more intelligent.  This speeds up mem2reg from 5.29s to 
0.79s on a synthetic testcase with tons of predecessors and
phi nodes.

llvm-svn: 46767
2008-02-05 21:26:23 +00:00
Dale Johannesen d88f1d060e Implement sseregparm.
llvm-svn: 46764
2008-02-05 20:46:33 +00:00
Evan Cheng 8d78b0597b If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead).
llvm-svn: 46763
2008-02-05 20:04:18 +00:00