Evan Cheng
9ef82ce4fe
Avoid replacing the value of a directly stored load with the stored value if the load is indexed. rdar://9117613.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127440 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-11 00:48:56 +00:00
Jim Grosbach
d4a16ad85d
Properly pseudo-ize MOVCCr and MOVCCs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127434 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 23:56:09 +00:00
Dan Gohman
c9f2f61d34
RecursivelyDeleteTriviallyDeadInstructions only needs a
...
Value, not an Instruction, so casting is not necessary. Also,
it's theoretically possible that the Value is not an
Instruction, since WeakVH follows RAUWs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127427 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 20:57:44 +00:00
Rafael Espindola
9d2234d6a0
Don't compute the file size if we don't need to.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127426 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 20:54:07 +00:00
Dan Gohman
fa0e6facc7
Fix reassociate to postpone certain instruction deletions until
...
after it has finished all of its reassociations, because its
habit of unlinking operands and holding them in a datastructure
while working means that it's not easy to determine when an
instruction is really dead until after all its regular work is
done. rdar://9096268.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 19:51:54 +00:00
Jim Grosbach
a4f809d8db
DMB can just be a pat referencing MCR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127423 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 19:27:17 +00:00
Jim Grosbach
bc908cfcc1
Reorganize a bit. No functional change, just moving patterns up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127422 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 19:21:08 +00:00
Jim Grosbach
a768c3d45f
Pseudo-instructions are codegenonly by definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127420 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 19:06:39 +00:00
Jim Grosbach
5e97338c8d
Memory barrier instructions don't need special handling in tblgen anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127419 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 19:05:48 +00:00
Benjamin Kramer
6b96fe7e14
InstCombine: Turn umul_with_overflow into mul nuw if we can prove that it cannot overflow.
...
This happens a lot in clang-compiled C++ code because it adds overflow checks to operator new[]:
unsigned *foo(unsigned n) { return new unsigned[n]; }
We can optimize away the overflow check on 64 bit targets because (uint64_t)n*4 cannot overflow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127418 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 18:40:14 +00:00
Rafael Espindola
f7fdad15d9
Add r127409 back now that the windows file was updated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127417 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 18:33:29 +00:00
Rafael Espindola
b78e2ae4ca
Try to fix the windows build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127416 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 18:30:48 +00:00
Jakob Stoklund Olesen
4b0e1f1278
Revert r127409 which broke all the Windows bots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127413 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 18:01:43 +00:00
Justin Holewinski
fca9efcbc4
PTX: Add preliminary support for floating-point divide and multiply-and-add
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127410 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 16:57:18 +00:00
Rafael Espindola
7deb187736
Add support for MemoryBuffers that are not null terminated and add
...
support for creating buffers that cover only a part of a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127409 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 16:10:30 +00:00
Chris Lattner
be2e1b50c4
rip out llvm 2.8 release notes to make room for llvm 2.9 notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127399 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 07:43:44 +00:00
Cameron Zwarich
6a951ac63f
Add an option to disable critical edge splitting in PHIElimination.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127398 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 05:59:17 +00:00
Che-Liang Chiou
2f5565d21c
ptx: add the rest of special registers of ISA version 2.0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127397 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 04:05:57 +00:00
Jakob Stoklund Olesen
47dbf6cef7
Change the Spiller interface to take a LiveRangeEdit reference.
...
This makes it possible to register delegates and get callbacks when the spiller
edits live ranges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127389 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 01:51:42 +00:00
Jakob Stoklund Olesen
38f6bd0fc8
Make SpillIs an optional pointer. Avoid creating a bunch of temporary SmallVectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127388 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 01:21:58 +00:00
Francois Pichet
581d535af9
Unbreak the CMake build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127383 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 00:51:01 +00:00
Stuart Hastings
03d5826164
Revert 127359; it broke lencod.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127382 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 00:25:53 +00:00
Devang Patel
6af531febe
Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is treating debugging information.
...
It generates output that lools like
8 times line number info lost by Scalar Replacement of Aggregates (SSAUp)
1 times line number info lost by Simplify well-known library calls
12 times variable info lost by Jump Threading
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127381 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 00:21:25 +00:00
Evan Cheng
b0519e15f7
Re-commit 127368 and 127371. They are exonerated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127380 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-10 00:16:32 +00:00
Evan Cheng
02d7c92982
Revert 127368 and 127371 for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127376 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 23:53:17 +00:00
Evan Cheng
0f24d49aca
Restore the default implementation of getCrossCopyRegClass: no need for cross-regclass copies.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127371 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 23:15:40 +00:00
Daniel Dunbar
edfab0ca1e
Revert "Re-enable test and hope to silence the buildbots", still broken.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127369 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 22:48:46 +00:00
Evan Cheng
17adafc6c1
Change the definition of TargetRegisterInfo::getCrossCopyRegClass to be more
...
flexible.
If it returns a register class that's different from the input, then that's the
register class used for cross-register class copies.
If it returns a register class that's the same as the input, then no cross-
register class copies are needed (normal copies would do).
If it returns null, then it's not at all possible to copy registers of the
specified register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127368 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 22:47:38 +00:00
Benjamin Kramer
7bff3e7c1b
Fix mistyped CHECK lines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127366 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 22:07:31 +00:00
Benjamin Kramer
b64b497000
Fix a pasto that broke all x86_64-elf targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127365 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 22:07:13 +00:00
Stuart Hastings
167831dcac
Tweak test to work on Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127364 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:35:10 +00:00
Stuart Hastings
2f5443be11
Disable this test temporarily to reduce BuildBot complaints.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127363 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:33:47 +00:00
Devang Patel
a2ab3999ed
Preserve line number information while simplifying libcalls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127362 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:27:52 +00:00
Stuart Hastings
2f26fa4838
X86 byval copies no longer always_inline. <rdar://problem/8706628>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127359 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:10:30 +00:00
Bruno Cardoso Lopes
842db07c61
Add a testcase for the addc improvements introduced some commits ago. Patch by Akira Hatanaka
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127358 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:05:32 +00:00
Bruno Cardoso Lopes
2c19ed9d67
Re-enable test and hope to silence the buildbots
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 21:00:16 +00:00
Bruno Cardoso Lopes
557ce71ec9
try to make o32 cc tests less specific to silence some buildbots. The test isn't enabled yet, this is will be done in a subsequent commit. Patch by Akira Hatanaka.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127356 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 20:59:05 +00:00
Johnny Chen
18b475f954
LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.
...
The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16. Add extra logic to recover from that.
Fixed an assert reported by Sean Callanan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127354 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 20:01:14 +00:00
Eric Christopher
f607abdf7b
Make these options hidden to reduce the amount of text -help puts on the
...
command line, they'll still be seen with -help-hidden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127353 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:46:51 +00:00
Devang Patel
0ef1560f27
These llvm.dbg.* constants are not used anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127352 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:41:33 +00:00
Jakob Stoklund Olesen
5d96e5a1cc
Make physreg coalescing independent on the number of uses of the virtual register.
...
The damage done by physreg coalescing only depends on the number of instructions
the extended physreg live range covers. This fixes PR9438.
The heuristic is still luck-based, and physreg coalescing really should be
disabled completely. We need a register allocator with better hinting support
before that is possible.
Convert a test to FileCheck and force spilling by inserting an extra call. The
previous spilling behavior was dependent on misguided physreg coalescing
decisions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127351 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:27:06 +00:00
Jakob Stoklund Olesen
dda386c44d
Delete a test case that is very sensitive to coalescer behavior.
...
The test is derived from an old miscompilation of
MultiSource/Benchmarks/VersaBench/8b10b which is run regularly, so we are not
losing coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127350 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:27:02 +00:00
Bruno Cardoso Lopes
954dac0f88
Improve varags handling, with testcases. Patch by Sasa Stankovic
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127349 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:22:22 +00:00
Andrew Trick
5d332e0c3e
This test case should work with list-ilp or list-burr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127348 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:17:10 +00:00
Andrew Trick
4bbf4678e3
Improve pre-RA-sched register pressure tracking for duplicate operands.
...
This helps cases like 2008-07-19-movups-spills.ll, but doesn't have an obvious impact on benchmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127347 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 19:12:43 +00:00
Jan Sjödin
d1cba8727a
Add createELFObjectTargetWriter method to TargetAsmBackend, which enables construction of non-standard ELFObjectWriters that can be used in MCJIT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127346 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 18:44:41 +00:00
Jan Sjödin
7263d71cd9
Missing file from previous commmit (127341) for InitializeTargetAsmParser function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127345 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 18:36:40 +00:00
Jan Sjödin
01dff96461
Add constructors to MCElfStreamer and MCObjectStreamer to take an extra MCAssembler * argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127343 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 17:33:05 +00:00
Andrew Trick
e62289b98f
When SCEV can determine the loop test is X < X, set ExactBECount=0.
...
When ExactBECount is a constant, use it for MaxBECount.
When MaxBECount cannot be computed, replace it with ExactBECount.
Fixes PR9424.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127342 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 17:29:58 +00:00
Jan Sjödin
dd54ffda26
Add InitializeNativeAsmParser function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 17:25:46 +00:00