Dan Gohman [Thu, 24 Jun 2010 16:45:11 +0000 (16:45 +0000)]
Fix copy+pasto issues in isMulSExtable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106759
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 16:33:38 +0000 (16:33 +0000)]
Make the trunc code consistent with the zext and sext code in its
handling of pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106757
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 16:31:32 +0000 (16:31 +0000)]
Add a comment about a thread safety issue in Statistic.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106756
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 16:25:50 +0000 (16:25 +0000)]
Add overloads for getFile and getFileOrSTDIN which take a const char *
instead of a StringRef, avoiding the need to copy the string in the
common case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106754
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 24 Jun 2010 16:19:28 +0000 (16:19 +0000)]
Be more strict about subreg-to-subreg copies in CoalescerPair.
Also keep track of the original DstREg before subregister adjustments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106753
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 16:11:44 +0000 (16:11 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106752
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 24 Jun 2010 15:56:59 +0000 (15:56 +0000)]
Verify that VNI kills are pointing to existing instructions.
In this case it is essential that the kill is real because the spiller will
decide to omit a spill if it thinks there is a later kill.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106751
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 15:51:11 +0000 (15:51 +0000)]
use (even more, still) ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106750
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 15:24:03 +0000 (15:24 +0000)]
Eliminate the other half of the BRCOND optimization, and update
as many tests as possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106749
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 15:04:11 +0000 (15:04 +0000)]
Eliminate the first have of the optimization which eliminates BRCOND
when the condition is constant. This optimization shouldn't be
necessary, because codegen shouldn't be able to find dead control
paths that the IR-level optimizer can't find. And it's undesirable,
because it encourages bugpoint to leave "br i1 false" branches
in its output. And it wasn't updating the CFG.
I updated all the tests I could, but some tests are too reduced
and I wasn't able to meaningfully preserve them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106748
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 14:42:01 +0000 (14:42 +0000)]
use ArgOperand API and CallSite for arg range; add necessary casts and perform some cosmetics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106747
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 14:30:44 +0000 (14:30 +0000)]
Reapply r106634, now that the bug it exposed is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 14:13:36 +0000 (14:13 +0000)]
use ArgOperand API and CallSite for arg range
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106745
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 13:54:33 +0000 (13:54 +0000)]
use (even more) ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106744
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 13:42:49 +0000 (13:42 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106743
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 12:58:35 +0000 (12:58 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106740
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 12:35:13 +0000 (12:35 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106737
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 12:21:15 +0000 (12:21 +0000)]
use ArgOperand API, also tighten the type of visitFree to make this work out smoothly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106736
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 12:03:56 +0000 (12:03 +0000)]
use ArgOperand API; introduce downcasted pointers into scope to facilitate this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106734
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 10:42:46 +0000 (10:42 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106731
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 10:17:17 +0000 (10:17 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106730
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 10:04:07 +0000 (10:04 +0000)]
use callsite to obtain all arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106729
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 09:56:43 +0000 (09:56 +0000)]
use callsite to obtain all arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jun 2010 07:29:18 +0000 (07:29 +0000)]
Teach the x86 mc assembler that %dr6 = %db6, this implements
rdar://
8013734
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106725
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jun 2010 07:18:14 +0000 (07:18 +0000)]
more cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106724
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jun 2010 07:16:25 +0000 (07:16 +0000)]
reduce indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106723
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jun 2010 06:46:50 +0000 (06:46 +0000)]
fix breakage from r98938 by correctly marking msp430 calls as variadic.
Patch by Ben Ransford!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106722
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 02:07:59 +0000 (02:07 +0000)]
Fix a bug in the code which determines when it's safe to use the
bt instruction, which was exposed by r106263.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106718
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 24 Jun 2010 02:07:57 +0000 (02:07 +0000)]
Add a couple more quick comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106717
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 24 Jun 2010 02:06:24 +0000 (02:06 +0000)]
Optimize the "bit test" code path for switch lowering in the
case where the bit mask has exactly one bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106716
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 24 Jun 2010 00:52:22 +0000 (00:52 +0000)]
Revert "Replace a big gob of old coalescer logic with the new CoalescerPair class."
Whiny buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106710
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 00:48:48 +0000 (00:48 +0000)]
use getNumArgOperands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106709
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 24 Jun 2010 00:44:01 +0000 (00:44 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106707
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 24 Jun 2010 00:33:28 +0000 (00:33 +0000)]
Use ValueMap instead of DenseMap.
The ValueMapper used by various cloning utility maps MDNodes also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106706
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 24 Jun 2010 00:32:06 +0000 (00:32 +0000)]
Add AVX CMP{SS,SD}{rr,rm} instructions and encoding testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106705
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 24 Jun 2010 00:15:50 +0000 (00:15 +0000)]
Move SSE and AVX shuffle, unpack and compare code to more appropriate places
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106702
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 24 Jun 2010 00:12:39 +0000 (00:12 +0000)]
Replace a big gob of old coalescer logic with the new CoalescerPair class.
CoalescerPair can determine if a copy can be coalesced, and which register gets
merged away. The old logic in SimpleRegisterCoalescing had evolved into
something a bit too convoluted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106701
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 24 Jun 2010 00:00:42 +0000 (00:00 +0000)]
Use available typedef for " DenseMap<const Value*, Value*>".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106699
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 23 Jun 2010 23:55:51 +0000 (23:55 +0000)]
Cosmetic change.
Do not use "ValueMap" as a name for a local variable or an argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106698
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 23:38:07 +0000 (23:38 +0000)]
use ArgOperand accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106697
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 23 Jun 2010 23:00:16 +0000 (23:00 +0000)]
We are missing opportunites to use ldm. Take code like this:
void t(int *cp0, int *cp1, int *dp, int fmd) {
int c0, c1, d0, d1, d2, d3;
c0 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000);
c1 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000);
/* ... */
}
It code gens into something pretty bad. But with this change (analogous to the
X86 back-end), it will use ldm and generate few instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106693
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 22:48:06 +0000 (22:48 +0000)]
use the new isFreeCall API and ArgOperand accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106692
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 21:51:12 +0000 (21:51 +0000)]
minor enhancement to llvm::isFreeCall API: return CallInst; no functional change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106686
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 21:41:47 +0000 (21:41 +0000)]
use ArgOperand getters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106685
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 23 Jun 2010 21:30:27 +0000 (21:30 +0000)]
Add AVX MOVMSK{PS,PD}rr instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106683
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 23 Jun 2010 21:10:57 +0000 (21:10 +0000)]
Add tests for different AVX cmp opcodes, also teach the x86 asm parser to understand the vcmp instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106678
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 23 Jun 2010 20:49:35 +0000 (20:49 +0000)]
Update according to feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106677
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 23 Jun 2010 20:20:59 +0000 (20:20 +0000)]
Add an extra-library-path option to the plugin. This is used to support
having a library both as bitcode and native code. We want to use the
bitcode first, but if codegen produces new undefined references we have to use
the native code to satisfy those references.
Gold has no notion of bitcode and native search directories, so instead it has
an API where the plugin can instruct it to look for the libraries it is passing
to it. This patch uses that API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106674
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 23 Jun 2010 20:07:15 +0000 (20:07 +0000)]
Add AVX SHUF{PS,PD}{rr,rm} instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106672
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 23 Jun 2010 20:00:58 +0000 (20:00 +0000)]
Add support for the x86 instructions "pusha" and "popa".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106671
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 23 Jun 2010 19:50:39 +0000 (19:50 +0000)]
Fix a tblgen bug.
Given the pattern below as an example:
list<dag> Pattern = [(set RC:$dst, (v4f32 (shufp:src3 RC:$src1,
(mem_frag addr:$src2))))];
The right reference resolving should lead to:
list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp:src3 VR128:$src1,
(mem_frag addr:$src2))))];
But was yielding:
list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp VR128:$src1,
(mem_frag addr:$src2))))];
Fix this by passing the right name when creating a new DagInit node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106670
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 23 Jun 2010 18:56:06 +0000 (18:56 +0000)]
Reinstate correct test, remove the real invalidated test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106664
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 23 Jun 2010 18:53:12 +0000 (18:53 +0000)]
Remove tests invalidated by previous checkin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106663
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 23 Jun 2010 18:52:34 +0000 (18:52 +0000)]
Do not do tail calls to external symbols. If the
branch turns out to be ARM-to-Thumb or vice versa
the linker cannot resolve this.
8120438.
If this optimization is going to be useful we probably
need a compiler flag "assume callees are same architecture"
or something like that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106662
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 23 Jun 2010 18:16:24 +0000 (18:16 +0000)]
MorphNodeTo doesn't preserve the memory operands. Because we're morphing a node
into the same node, but with different non-memory operands, we need to replace
the memory operands after it's finished morphing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106643
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 23 Jun 2010 18:06:16 +0000 (18:06 +0000)]
tests: Tweak lit.cfg to fix breakage with out-of-dir lookup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106638
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 23 Jun 2010 17:09:26 +0000 (17:09 +0000)]
Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 23 Jun 2010 16:25:07 +0000 (16:25 +0000)]
The generic DAG combiner can now fold atomic fences when needed, so switch
to using that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106633
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 23 Jun 2010 16:08:49 +0000 (16:08 +0000)]
When using libcall expansions for the atomic intrinsics, the explicit
MEMBARRIER fences aren't necessary for ARM. Tell the combiner to fold them
away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106631
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 23 Jun 2010 16:07:42 +0000 (16:07 +0000)]
Some targets don't require the fencing MEMBARRIER instructions surrounding
atomic intrinsics, either because the use locking instructions for the
atomics, or because they perform the locking directly. Add support in the
DAG combiner to fold away the fences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106630
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 23 Jun 2010 15:49:18 +0000 (15:49 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106628
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 23 Jun 2010 15:34:36 +0000 (15:34 +0000)]
Add a few VNInfo data structure checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106627
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 13:56:57 +0000 (13:56 +0000)]
use ArgOperand accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106626
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 13:09:06 +0000 (13:09 +0000)]
use ArgOperand accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106623
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 23 Jun 2010 08:45:32 +0000 (08:45 +0000)]
use helper to neatly access arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106622
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 23 Jun 2010 08:01:49 +0000 (08:01 +0000)]
Update uses, defs, and comments for darwin tls patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106621
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 23 Jun 2010 06:48:34 +0000 (06:48 +0000)]
Don't link against libm and libpthread which don't exist in BeOS/Haiku. Also,
Haiku like Linux provides <regex.h>, so use it. Patch by Paul Davey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106620
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 23 Jun 2010 00:48:25 +0000 (00:48 +0000)]
Revert r106066, "Create a more targeted fix for not sinking instructions into a range where it"... it causes bzip2 to be miscompiled by Clang.
Conflicts:
lib/CodeGen/MachineSink.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106614
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Wed, 23 Jun 2010 00:31:14 +0000 (00:31 +0000)]
Less incorrect handling of zero-length bitfields. Radars
7992077 and
8093043.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106611
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 22 Jun 2010 23:51:47 +0000 (23:51 +0000)]
Get the addend correct for i386 pic.
Thanks Daniel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106608
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 22 Jun 2010 23:44:15 +0000 (23:44 +0000)]
Generate DWARF information during Apple-style build. They'll be stripped out
later on. But we need them saved in the symbols directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106604
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 23:43:28 +0000 (23:43 +0000)]
Replace ScalarEvolution's private copy of getLoopPredecessor
with LoopInfo's public copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106603
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 23:37:59 +0000 (23:37 +0000)]
Add AVX compare packed instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106600
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 23:32:47 +0000 (23:32 +0000)]
Loosen up this test so that it doesn't depend as much on register
allocation details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106599
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 22 Jun 2010 23:29:55 +0000 (23:29 +0000)]
Revert 106592 for now. It causes clang-selfhost build failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106598
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 23:07:13 +0000 (23:07 +0000)]
Fix OptimizeMax to handle an odd case where one of the max operands
is another max which folds. This fixes PR7454.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106594
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 23:02:38 +0000 (23:02 +0000)]
Reapply support for AVX unpack and interleave instructions, with
testcases this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106593
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 22 Jun 2010 22:53:21 +0000 (22:53 +0000)]
If a metadata operand is seeded in value map and the metadata should also be seeded in value map. This is not limited to function local metadata.
Failure to seed metdata in such cases causes troubles when in a cloned module, metadata from a new module refers to values in old module. Usually this results in mysterious bugpoint crashes. For example,
Checking to see if we can delete global inits: Unknown constant!
UNREACHABLE executed at /d/g/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:904!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106592
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 22 Jun 2010 22:50:42 +0000 (22:50 +0000)]
While cloning a module, clone metadata attached with instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106591
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 22:38:56 +0000 (22:38 +0000)]
Add AVX MOV{SS,SD}{rr,rm} instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106588
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 22 Jun 2010 22:16:17 +0000 (22:16 +0000)]
Fix the formatting of the switch statement and add a missing break.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106586
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 22 Jun 2010 22:11:07 +0000 (22:11 +0000)]
Also convert SUBREG_TO_REG to a KILL when relevant, like the other subreg
instructions.
This does not affect codegen much because SUBREG_TO_REG is only used by X86 and
X86 does not use the register scavenger, but it prevents verifier errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106583
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 22 Jun 2010 22:04:24 +0000 (22:04 +0000)]
Thumb1 functions using @llvm.returnaddress were not saving the incoming LR.
Radar
8031193.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106582
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 22 Jun 2010 21:11:51 +0000 (21:11 +0000)]
Move a 64-bit test to the 64-bit file. Fixes an llvm-mc assertion
during test runs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106577
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 22 Jun 2010 21:01:04 +0000 (21:01 +0000)]
Look for and use a different darwin crash reporter library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106576
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 22 Jun 2010 20:54:03 +0000 (20:54 +0000)]
Add SSE so these actually pass on non-X86 hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106575
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 22 Jun 2010 20:52:02 +0000 (20:52 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106574
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 22 Jun 2010 20:40:38 +0000 (20:40 +0000)]
use high-level accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106573
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 20:30:50 +0000 (20:30 +0000)]
Fix a subtle multiclass bug: when using class inheritance on
a toplevel 'defm', make sure to properly resolve references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106570
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 22 Jun 2010 20:30:14 +0000 (20:30 +0000)]
Corresponding test changes for r106564.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106569
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 22 Jun 2010 19:46:37 +0000 (19:46 +0000)]
warmup ritual: use high-level argument accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106563
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Tue, 22 Jun 2010 19:40:50 +0000 (19:40 +0000)]
Move v-binop-widen tests to X86 since they don't work on all platforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106562
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 22 Jun 2010 18:52:38 +0000 (18:52 +0000)]
Clone named metadata while cloning a module.
Reapply Bob's patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106560
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 18:17:40 +0000 (18:17 +0000)]
Reorganize logical and arithmetic SSE 1 & 2 instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106557
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 22 Jun 2010 18:09:32 +0000 (18:09 +0000)]
Reorganize SSE instructions, making easier to see oportunities for refactoring
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106556
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 17:25:57 +0000 (17:25 +0000)]
Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out
into a utility routine, teach it how to update MachineLoopInfo, and
make use of it in MachineLICM to split critical edges on demand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106555
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 22 Jun 2010 16:13:57 +0000 (16:13 +0000)]
Remove the SimpleJoin optimization from SimpleRegisterCoalescing.
Measurements show that it does not speed up coalescing, so there is no reason
the keep the added complexity around.
Also clean out some unused methods and static functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106548
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 15:25:42 +0000 (15:25 +0000)]
Split out the code for finding a unique loop predecessor from
getLoopPreheader into a separate function, for clients which don't
require a proper preheader.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106543
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 15:08:57 +0000 (15:08 +0000)]
Use pre-increment instead of post-increment when the result is not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106542
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 22 Jun 2010 13:57:08 +0000 (13:57 +0000)]
Add a comment explaining a non-obvious API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106539
91177308-0d34-0410-b5e6-
96231b3b80d8