Dale Johannesen
f0763e6300
Reinstate correct test, remove the real invalidated test.
...
llvm-svn: 106664
2010-06-23 18:56:06 +00:00
Dale Johannesen
4e632b4237
Remove tests invalidated by previous checkin.
...
llvm-svn: 106663
2010-06-23 18:53:12 +00:00
Dale Johannesen
e618e80a13
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.
llvm-svn: 106662
2010-06-23 18:52:34 +00:00
Bill Wendling
f92cb857aa
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.
llvm-svn: 106643
2010-06-23 18:16:24 +00:00
Daniel Dunbar
a83dc9a464
tests: Tweak lit.cfg to fix breakage with out-of-dir lookup.
...
llvm-svn: 106638
2010-06-23 18:06:16 +00:00
Daniel Dunbar
be50ef88bd
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.
...
llvm-svn: 106634
2010-06-23 17:09:26 +00:00
Jim Grosbach
ef4e0249a0
The generic DAG combiner can now fold atomic fences when needed, so switch
...
to using that.
llvm-svn: 106633
2010-06-23 16:25:07 +00:00
Jim Grosbach
414eb48a14
When using libcall expansions for the atomic intrinsics, the explicit
...
MEMBARRIER fences aren't necessary for ARM. Tell the combiner to fold them
away.
llvm-svn: 106631
2010-06-23 16:08:49 +00:00
Jim Grosbach
12afda541e
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.
llvm-svn: 106630
2010-06-23 16:07:42 +00:00
Jim Grosbach
395b0a671c
remove trailing whitespace
...
llvm-svn: 106628
2010-06-23 15:49:18 +00:00
Jakob Stoklund Olesen
ac7e537231
Add a few VNInfo data structure checks.
...
llvm-svn: 106627
2010-06-23 15:34:36 +00:00
Gabor Greif
6c86715183
use ArgOperand accessors
...
llvm-svn: 106626
2010-06-23 13:56:57 +00:00
Gabor Greif
992ef6fa9c
use ArgOperand accessors
...
llvm-svn: 106623
2010-06-23 13:09:06 +00:00
Gabor Greif
dedbd07ed6
use helper to neatly access arguments
...
llvm-svn: 106622
2010-06-23 08:45:32 +00:00
Eric Christopher
c6382036ef
Update uses, defs, and comments for darwin tls patterns.
...
llvm-svn: 106621
2010-06-23 08:01:49 +00:00
Nick Lewycky
4d160cb75c
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!
llvm-svn: 106620
2010-06-23 06:48:34 +00:00
Daniel Dunbar
e6ee7409b9
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
llvm-svn: 106614
2010-06-23 00:48:25 +00:00
Stuart Hastings
bf77774e2f
Less incorrect handling of zero-length bitfields. Radars 7992077
and 8093043.
...
llvm-svn: 106611
2010-06-23 00:31:14 +00:00
Eric Christopher
0c4230b33c
Get the addend correct for i386 pic.
...
Thanks Daniel!
llvm-svn: 106608
2010-06-22 23:51:47 +00:00
Bill Wendling
fb956a0e47
Generate DWARF information during Apple-style build. They'll be stripped out
...
later on. But we need them saved in the symbols directory.
llvm-svn: 106604
2010-06-22 23:44:15 +00:00
Dan Gohman
f44783ab4e
Replace ScalarEvolution's private copy of getLoopPredecessor
...
with LoopInfo's public copy.
llvm-svn: 106603
2010-06-22 23:43:28 +00:00
Bruno Cardoso Lopes
db9027d95d
Add AVX compare packed instructions
...
llvm-svn: 106600
2010-06-22 23:37:59 +00:00
Dan Gohman
c33529255a
Loosen up this test so that it doesn't depend as much on register
...
allocation details.
llvm-svn: 106599
2010-06-22 23:32:47 +00:00
Devang Patel
1967a51efc
Revert 106592 for now. It causes clang-selfhost build failure.
...
llvm-svn: 106598
2010-06-22 23:29:55 +00:00
Dan Gohman
2ac2a33a1b
Fix OptimizeMax to handle an odd case where one of the max operands
...
is another max which folds. This fixes PR7454.
llvm-svn: 106594
2010-06-22 23:07:13 +00:00
Bruno Cardoso Lopes
424b206ad4
Reapply support for AVX unpack and interleave instructions, with
...
testcases this time.
llvm-svn: 106593
2010-06-22 23:02:38 +00:00
Devang Patel
a24bf5907c
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!
llvm-svn: 106592
2010-06-22 22:53:21 +00:00
Devang Patel
dca60347e5
While cloning a module, clone metadata attached with instructions.
...
llvm-svn: 106591
2010-06-22 22:50:42 +00:00
Bruno Cardoso Lopes
93ec8dcd01
Add AVX MOV{SS,SD}{rr,rm} instructions
...
llvm-svn: 106588
2010-06-22 22:38:56 +00:00
Bill Wendling
c29fd1120a
Fix the formatting of the switch statement and add a missing break.
...
llvm-svn: 106586
2010-06-22 22:16:17 +00:00
Jakob Stoklund Olesen
39c915aaa1
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.
llvm-svn: 106583
2010-06-22 22:11:07 +00:00
Bob Wilson
cb414cca8d
Thumb1 functions using @llvm.returnaddress were not saving the incoming LR.
...
Radar 8031193.
llvm-svn: 106582
2010-06-22 22:04:24 +00:00
Eric Christopher
48c062d65b
Move a 64-bit test to the 64-bit file. Fixes an llvm-mc assertion
...
during test runs.
llvm-svn: 106577
2010-06-22 21:11:51 +00:00
Eric Christopher
835fc55fd0
Look for and use a different darwin crash reporter library.
...
llvm-svn: 106576
2010-06-22 21:01:04 +00:00
Dale Johannesen
dd9d7b11da
Add SSE so these actually pass on non-X86 hosts.
...
llvm-svn: 106575
2010-06-22 20:54:03 +00:00
Jim Grosbach
69e4d59ce5
fix typo
...
llvm-svn: 106574
2010-06-22 20:52:02 +00:00
Gabor Greif
3f6b94947f
use high-level accessors
...
llvm-svn: 106573
2010-06-22 20:40:38 +00:00
Bruno Cardoso Lopes
a176972a1b
Fix a subtle multiclass bug: when using class inheritance on
...
a toplevel 'defm', make sure to properly resolve references.
llvm-svn: 106570
2010-06-22 20:30:50 +00:00
Bill Wendling
1e7edfa27a
Corresponding test changes for r106564.
...
llvm-svn: 106569
2010-06-22 20:30:14 +00:00
Gabor Greif
2de1a571e9
warmup ritual: use high-level argument accessors
...
llvm-svn: 106563
2010-06-22 19:46:37 +00:00
Mon P Wang
c0fb410ae3
Move v-binop-widen tests to X86 since they don't work on all platforms
...
llvm-svn: 106562
2010-06-22 19:40:50 +00:00
Devang Patel
eba73529a6
Clone named metadata while cloning a module.
...
Reapply Bob's patch.
llvm-svn: 106560
2010-06-22 18:52:38 +00:00
Bruno Cardoso Lopes
2cf78d18d5
Reorganize logical and arithmetic SSE 1 & 2 instructions
...
llvm-svn: 106557
2010-06-22 18:17:40 +00:00
Bruno Cardoso Lopes
22aca94946
Reorganize SSE instructions, making easier to see oportunities for refactoring
...
llvm-svn: 106556
2010-06-22 18:09:32 +00:00
Dan Gohman
2303159bba
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.
llvm-svn: 106555
2010-06-22 17:25:57 +00:00
Jakob Stoklund Olesen
ddb09c5258
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.
llvm-svn: 106548
2010-06-22 16:13:57 +00:00
Dan Gohman
29b845f3b7
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.
llvm-svn: 106543
2010-06-22 15:25:42 +00:00
Dan Gohman
74d5144414
Use pre-increment instead of post-increment when the result is not used.
...
llvm-svn: 106542
2010-06-22 15:08:57 +00:00
Dan Gohman
5863f1e8c6
Add a comment explaining a non-obvious API.
...
llvm-svn: 106539
2010-06-22 13:57:08 +00:00
Dan Gohman
ff9e611537
Add an explicit keyword.
...
llvm-svn: 106538
2010-06-22 13:53:29 +00:00