1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
Commit Graph

36703 Commits

Author SHA1 Message Date
Evan Cheng
869b54e60c Remove unused hidden option.
llvm-svn: 46903
2008-02-09 08:36:28 +00:00
Nate Begeman
a78c35a368 Skeleton of insert and extract matching, more to come
llvm-svn: 46902
2008-02-09 01:38:08 +00:00
Nate Begeman
336fba2146 Tablegen support for insert & extract element matching
llvm-svn: 46901
2008-02-09 01:37:05 +00:00
Chris Lattner
22696c10f0 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
672d341167 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
9aba178666 Fix PR 1995.
llvm-svn: 46898
2008-02-08 22:49:13 +00:00
Evan Cheng
83066786b0 Forgot these files.
llvm-svn: 46896
2008-02-08 22:05:27 +00:00
Evan Cheng
2d3d000878 Also print alignment.
llvm-svn: 46895
2008-02-08 22:05:07 +00:00
Dan Gohman
3d296e049c 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
90f03a0b88 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
9bbfeaea4d 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
557bbab669 Constified operator<< in APSInt.
llvm-svn: 46882
2008-02-08 07:14:19 +00:00
Dan Gohman
d1cc100aef Avoid needlessly casting away const qualifiers.
llvm-svn: 46877
2008-02-08 03:29:40 +00:00
Dan Gohman
1f255f2db7 Avoid needlessly casting away const qualifiers.
llvm-svn: 46876
2008-02-08 03:26:46 +00:00
Evan Cheng
b2bc19ee5b Added missing entries in X86 load / store folding tables.
llvm-svn: 46866
2008-02-08 00:12:56 +00:00
Devang Patel
1e5c60dee9 Begin setting features for target based on target triple string.
llvm-svn: 46863
2008-02-07 22:32:50 +00:00
Evan Cheng
0c6aedd740 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
eb7c8e4f6b 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
3af6eba3dd Add SourceValue information for outgoing argument stores on x86.
llvm-svn: 46854
2008-02-07 16:28:05 +00:00
Dan Gohman
ebca101f50 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
a377b2bbd1 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
92635b3d94 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
b0f0e69df2 Don't make up new directives. (".set_foobar")
llvm-svn: 46848
2008-02-07 06:36:26 +00:00
Dan Gohman
b4aa0b2a15 Fix a typo in a comment.
llvm-svn: 46836
2008-02-07 02:30:40 +00:00
Dan Gohman
011075cfdb Add support to FoldingSet for hashing APInt objects.
llvm-svn: 46833
2008-02-06 23:09:15 +00:00
Dan Gohman
f00842e086 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
6b03a1aeb9 It's PR1925, not PR1609.
llvm-svn: 46825
2008-02-06 22:07:17 +00:00
Bill Wendling
8a28ab4b1f 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
2091d9a2e8 Fix a number of local register allocator issues: PR1609.
llvm-svn: 46821
2008-02-06 19:16:53 +00:00
Chris Lattner
ad6348aeb7 some more notes.
llvm-svn: 46818
2008-02-06 18:32:06 +00:00
Chris Lattner
c46fd5395e make it clear :)
llvm-svn: 46817
2008-02-06 18:00:48 +00:00
Chris Lattner
5f73d71055 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
34815d69b2 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
935f54c94c a starter shell for 2.2 release notes
llvm-svn: 46810
2008-02-06 06:30:34 +00:00
Tanya Lattner
1234229bc7 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
b1576212e7 Don't dereference an invalid pointer if string is empty.
llvm-svn: 46781
2008-02-05 23:34:40 +00:00
Evan Cheng
851d353eb8 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
e509232483 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
5c9fc804d7 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
e8fa3130f8 Implement sseregparm.
llvm-svn: 46764
2008-02-05 20:46:33 +00:00
Evan Cheng
69d5e0fc0f 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
Chris Lattner
264514cacf regenerate
llvm-svn: 46761
2008-02-05 19:43:53 +00:00
Chris Lattner
578a3c2083 Make the check for GCC version more robust, fix shared library
dependencies in makefile, and fix llvm_cv_no_link_all_option
on darwin.

Patch by Shantonu Sen, more info here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-February/012410.html

llvm-svn: 46760
2008-02-05 19:43:40 +00:00
Ted Kremenek
3277f38b25 Added FoldingSet profiling support to ImmutableSet.
llvm-svn: 46757
2008-02-05 18:50:25 +00:00
Ted Kremenek
571ad3913c Changed profiling method for ImmutableMap to once again just use its
unique ImutAVLTree* for profiling.

Modified ImutAVLTree:
 (1) changed ComputeHash() to ComputeDigest() and
 (2) changed Profile() to use the computed digest and
 (3) modified insertion of IMutAVLTree into the FoldingSet owned by
     the ImutAVLTreeFactory object to use profiling instead of computing
     a direct hash.  This fixes a bug where our abuse of the FoldingSet would
     not work when the FoldingSet was resized.

llvm-svn: 46753
2008-02-05 17:30:43 +00:00
Nate Begeman
9f4245c16a Ident mnemonics appropriately
llvm-svn: 46746
2008-02-05 08:49:09 +00:00
Chris Lattner
4cb265227d dump the module *before* we delete it, not after.
llvm-svn: 46741
2008-02-05 06:18:42 +00:00
Chris Lattner
96deed5d4d Fix a bug compiling PR1978 (perhaps not the only one though) which
was incorrectly simplifying "x == (gep x, 1, i)" into false, even 
though i could be negative.  As it turns out, all the code to 
handle this already existed, we just need to disable the incorrect
optimization case and let the general case handle it.

llvm-svn: 46739
2008-02-05 04:45:32 +00:00
Owen Anderson
28d90a4a6a Fix an obscure read-after-free bug that Duncan found.
llvm-svn: 46738
2008-02-05 04:34:03 +00:00
Dale Johannesen
bf7691e2e8 Missed one.
llvm-svn: 46733
2008-02-05 01:12:10 +00:00