OSDN Git Service
Jakob Stoklund Olesen [Sat, 30 Oct 2010 01:26:14 +0000 (01:26 +0000)]
Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed
elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117763
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 30 Oct 2010 01:26:11 +0000 (01:26 +0000)]
Disable more of physical register live intervals verification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117762
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 30 Oct 2010 01:26:09 +0000 (01:26 +0000)]
Print out register class of spilled register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117761
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 30 Oct 2010 00:54:37 +0000 (00:54 +0000)]
Overhaul memory barriers in the ARM backend. Radar
8601999.
There were a number of issues to fix up here:
* The "device" argument of the llvm.memory.barrier intrinsic should be
used to distinguish the "Full System" domain from the "Inner Shareable"
domain. It has nothing to do with using DMB vs. DSB instructions.
* The compiler should never need to emit DSB instructions. Remove the
ARMISD::SYNCBARRIER node and also remove the instruction patterns for DSB.
* Merge the separate DMB/DSB instructions for options only used for the
disassembler with the default DMB/DSB instructions. Add the default
"full system" option ARM_MB::SY to the ARM_MB::MemBOpt enum.
* Add a separate ARMISD::MEMBARRIER_MCR node for subtargets that implement
a data memory barrier using the MCR instruction.
* Fix up encodings for these instructions (except MCR).
I also updated the tests and added a few new ones to check for DMB options
that were not currently being exercised.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117756
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Sat, 30 Oct 2010 00:54:26 +0000 (00:54 +0000)]
Add polly support to the build system.
Update the cmake and autoconf build system to compile polly
as a shared library if it is checked out into tools/polly. In case
polly is not checked out, nothing changes.
This models the way clang can be added to llvm if checked out to tools/clang.
Also rebuild configure.
Patch contributed by ether.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117755
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 30 Oct 2010 00:37:59 +0000 (00:37 +0000)]
Encode the register list operands for ARM mode LDM/STM instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117753
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 29 Oct 2010 23:50:21 +0000 (23:50 +0000)]
Some instructions end with an "ls" prefix, but it doesn't indicate that they are
conditional. Check for those instructions explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117747
91177308-0d34-0410-b5e6-
96231b3b80d8
John Thompson [Fri, 29 Oct 2010 23:37:38 +0000 (23:37 +0000)]
Mult-alt constraint incremental development step 3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117746
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Oct 2010 23:36:03 +0000 (23:36 +0000)]
Teach machine cse to eliminate instructions with multiple physreg uses and defs. rdar://
8610857.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117745
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 23:23:15 +0000 (23:23 +0000)]
Remove hard tab characters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117742
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 23:21:57 +0000 (23:21 +0000)]
80 column fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117741
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 23:21:03 +0000 (23:21 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117740
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 23:19:55 +0000 (23:19 +0000)]
s/getNEONVcvtImm32/getNEONVcvtImm32OpValue/ to be consistent with other operand
encoder functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117738
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Oct 2010 23:16:55 +0000 (23:16 +0000)]
Fix fpscr <-> GPR latency info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117737
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 29 Oct 2010 23:09:31 +0000 (23:09 +0000)]
Be more strict on when we produce an undefined reference. In gas a file with
just
.type foo,@object
will produce an undefined reference to foo. On the other hand, a file with
just
.weakref bar, foo
will not. It is somewhat hard to support both in MC since both statements
should create the symbols. It should be possible if we really need to by
adding to the flags, but hopefully that is not necessary.
With this patch we do not produce a undefined reference in any of those cases.
The assembly file needs an actual use for the undefined reference to be
present.
This is in preparation for a patch implementing .weakref.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117735
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 22:36:50 +0000 (22:36 +0000)]
Apply a patch from Frits van Bommel to fix the CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117731
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:20:45 +0000 (22:20 +0000)]
Clean up indentation and other whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117728
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:20:43 +0000 (22:20 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117727
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 22:13:48 +0000 (22:13 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117724
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:03:07 +0000 (22:03 +0000)]
Fix 80-column violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117722
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:03:05 +0000 (22:03 +0000)]
Change instcombine's getShuffleMask to represent undef with negative values.
This code had previously used 2*N, where N is the mask length, to represent
undef. That is not safe because the shufflevector operands may have more
than N elements -- they don't have to match the result type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117721
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:03:02 +0000 (22:03 +0000)]
Remove DAG combiner patch to fold vector splats. Instcombiner does it now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117720
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 29 Oct 2010 22:02:50 +0000 (22:02 +0000)]
Make instcombine a little more aggressive in combining vector shuffles.
Allow splats even if they don't match either of the original shuffles,
possibly due to undef entries in the shuffles masks. Radar
8597790.
Also fix some 80-column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117719
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 21:56:51 +0000 (21:56 +0000)]
add FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117718
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 21:35:25 +0000 (21:35 +0000)]
Convert ARM::MOVi2pieces to a true pseudo-instruction and expand it in
the ARMExpandPseudos pass rather than during the asm lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117714
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 21:18:23 +0000 (21:18 +0000)]
Update testcase since we're no longer doing the constant forwarding inline with correlated value propagation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117712
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 29 Oct 2010 21:08:19 +0000 (21:08 +0000)]
Handle comparison values we already have - this fixes the consumer-typeset
failure for llvm-gcc on arm fast isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117710
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 21:05:17 +0000 (21:05 +0000)]
Give up on doing in-line instruction simplification during correlated value propagation. Instruction simplification
needs to be guaranteed never to be run on an unreachable block. However, earlier block simplifications may have
changed the CFG to make block that were reachable when we began our iteration unreachable by the time we try to
simplify them. (Note that this also means that our depth-first iterators were potentially being invalidated).
This should not have a large impact on code quality, since later runs of instcombine should pick up these simplifications.
Fixes PR8506.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117709
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 20:39:19 +0000 (20:39 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117708
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 20:37:06 +0000 (20:37 +0000)]
ARM::MOVi32imm is expanded in ARMExpandPseudoInsts, so there's no need to
handle it in the asm lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117707
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 20:23:45 +0000 (20:23 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117704
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 20:21:49 +0000 (20:21 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117703
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 20:21:36 +0000 (20:21 +0000)]
ARM encoding information for CLREX, SWP and SWPB. Add comment for sjlj pseudos and a FIXME for TLS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117702
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 20:20:29 +0000 (20:20 +0000)]
not is testing for a normal exit with a non-zero value. It shouldn't
return success if the child process is killed with a signal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117701
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 20:17:07 +0000 (20:17 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117699
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 20:16:10 +0000 (20:16 +0000)]
Make ScalarEvolution::forgetLoop forget all contained loops too, because
they may have ValuesAtScopes map entries referencing their outer loops.
This fixes a user-after-free reported in PR8471.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117698
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 20:12:34 +0000 (20:12 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117696
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 19:58:57 +0000 (19:58 +0000)]
ARM mode LDREX*/STREX* binary encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117695
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:56:07 +0000 (19:56 +0000)]
Covert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117694
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:51:11 +0000 (19:51 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117693
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:45:32 +0000 (19:45 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117690
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:37:05 +0000 (19:37 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117689
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 19:28:17 +0000 (19:28 +0000)]
Encoding information for ARM conditional move instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117687
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:17:08 +0000 (19:17 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117686
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:09:08 +0000 (19:09 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117685
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 19:05:26 +0000 (19:05 +0000)]
Covert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117684
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 18:58:30 +0000 (18:58 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117683
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 18:48:59 +0000 (18:48 +0000)]
Convert this test to .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117682
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 18:41:40 +0000 (18:41 +0000)]
Convert this file to less fragile .s form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117681
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 18:31:26 +0000 (18:31 +0000)]
Replace this test with the less fragile .s version. Still XFAIL'd, since the ASM parser doesn't parse vabal yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117679
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 18:21:18 +0000 (18:21 +0000)]
Fix sign error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117677
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 18:18:40 +0000 (18:18 +0000)]
Covert this test to a .s file to reduce fragility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117676
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Oct 2010 18:09:28 +0000 (18:09 +0000)]
Avoiding overly aggressive latency scheduling. If the two nodes share an
operand and one of them has a single use that is a live out copy, favor the
one that is live out. Otherwise it will be difficult to eliminate the copy
if the instruction is a loop induction variable update. e.g.
BB:
sub r1, r3, #1
str r0, [r2, r3]
mov r3, r1
cmp
bne BB
=>
BB:
str r0, [r2, r3]
sub r3, r3, #1
cmp
bne BB
This fixed the recent 256.bzip2 regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117675
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Oct 2010 18:07:31 +0000 (18:07 +0000)]
- Don't schedule nodes with only MVT::Flag and MVT::Other values for latency.
- Compute CopyToReg use operand latency correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117674
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 17:47:49 +0000 (17:47 +0000)]
Don't transfer unused values to the new intervals formed by splitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117673
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 17:41:25 +0000 (17:41 +0000)]
Handle ARM addrmode5 instructions with an offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117672
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 29 Oct 2010 17:40:05 +0000 (17:40 +0000)]
Silence Release build warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117671
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 17:37:29 +0000 (17:37 +0000)]
Teach ConnectedVNInfoEqClasses::Classify to deal with unused values.
We don't want unused values forming their own equivalence classes, so we lump
them all together in one class, and then merge them with the class of the last
used value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117670
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 17:37:25 +0000 (17:37 +0000)]
Never propagate the idom value out of a block that defines its own value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117669
91177308-0d34-0410-b5e6-
96231b3b80d8
John Thompson [Fri, 29 Oct 2010 17:29:13 +0000 (17:29 +0000)]
Inline asm multiple alternative constraints development phase 2 - improved basic logic, added initial platform support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 17:20:42 +0000 (17:20 +0000)]
Check if ErrMsg is null. This fixes the "not" command.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117666
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 17:03:40 +0000 (17:03 +0000)]
Fix these error messages to be less confusing. These error
messages primarily indicate errors running the viewer, not
errors with the graph file itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117665
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 16:54:25 +0000 (16:54 +0000)]
Make Program::Wait differentiate execution failure due to the file
being not found from the file being not executable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117664
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 16:50:53 +0000 (16:50 +0000)]
Revert 117660. Apparently it's not as trivial as that...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117663
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 29 Oct 2010 16:42:37 +0000 (16:42 +0000)]
Simplify.
- DIFile F = getFieldAs<DIFile>(6);
- return F.getDirectory();
+ return getFieldAs<DIFile>(6).getDirectory();
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117662
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 16:39:01 +0000 (16:39 +0000)]
Make Program::Wait provide an error message string for errors
executing the child process and abnormal child process termination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117661
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 16:38:59 +0000 (16:38 +0000)]
ARM addrmode5 instructions have neither writeback nor post-indexed modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117660
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 16:18:26 +0000 (16:18 +0000)]
Check for (unlikely) errors from FindExecutable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117658
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 16:15:23 +0000 (16:15 +0000)]
Fix these error messages to not mention PATH in cases where
PATH isn't actually searched, and to not mention the executable
directory when it isn't actually searched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117657
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 16:03:34 +0000 (16:03 +0000)]
Delete this obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117655
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 29 Oct 2010 14:46:02 +0000 (14:46 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117651
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 29 Oct 2010 09:43:39 +0000 (09:43 +0000)]
ARMAsmParser: Plug a memory leak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117648
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 29 Oct 2010 09:26:59 +0000 (09:26 +0000)]
Add an unreachable to silence warning - the switch is actually
fully enumerated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117647
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 29 Oct 2010 08:59:43 +0000 (08:59 +0000)]
unittests/CMakeLists.txt: Don't use RTTI, or linking failed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117646
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 29 Oct 2010 07:46:01 +0000 (07:46 +0000)]
This may be an ARM target, so check for _Unwind_SjLj_Resume.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117643
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 29 Oct 2010 01:14:16 +0000 (01:14 +0000)]
test/Scripts/macho-dump: Make hack for Python-2.4. [PR7995]
With Python-2.4, Reader::read64 always returns (unexpected) long integer.
FileCheck detects failure on test/MC/MachO among '0' and '0L'.
CentOS5(aka RHEL5 clone) provides python-2.4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117637
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 01:14:04 +0000 (01:14 +0000)]
Teach memdep to use pointsToConstantMemory to determine that loads
from constant memory don't alias any stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117636
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Oct 2010 01:01:56 +0000 (01:01 +0000)]
Convert this test to a .s file, so that it's not sensitive to codegen changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117633
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Oct 2010 00:54:02 +0000 (00:54 +0000)]
Add a basic testcase for TBAA-aware DSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117632
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 00:40:59 +0000 (00:40 +0000)]
Fix broken equivalence class calculation. We could probably also use
EquvivalenceClasses.h except it looks like overkill when elements are continuous
integers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117631
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 00:40:57 +0000 (00:40 +0000)]
Print out the connected components in the verifier after complaining about their
multiplicity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117630
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 29 Oct 2010 00:40:55 +0000 (00:40 +0000)]
Run a verification pass before any splitting to better distribute blame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117629
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Oct 2010 00:27:31 +0000 (00:27 +0000)]
add simple support for addrmode5 operands, allowing
vldr.64 to work. I have no idea if this is fully right, but
it is in the right direction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117626
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 29 Oct 2010 00:23:43 +0000 (00:23 +0000)]
The ARM jit cannot handle these tests as of 2010-10-27.
(A PR will be linked to this rev.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117620
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 28 Oct 2010 22:11:59 +0000 (22:11 +0000)]
Ignore empty blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117615
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 21:41:58 +0000 (21:41 +0000)]
give better error diagnostics, for example:
t.s:1:14: error: invalid operand for instruction
vldr.64 d17, [r0]
^
instead of:
t.s:1:1: error: unrecognized instruction
vldr.64 d17, [r0]
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117611
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 21:37:33 +0000 (21:37 +0000)]
hook up getOpcodeName for ARM so that "llc -show-mc-inst" includes
the opcode string in the inst dump, e.g.:
vmov r2, r3, d17 @ encoding: [0x31,0x2b,0x53,0xec]
@ <MCInst #989 VMOVRRD
@ <MCOperand Reg:68>
@ <MCOperand Reg:69>
@ <MCOperand Reg:19>
@ <MCOperand Imm:14>
@ <MCOperand Reg:0>>
The "VMOVRRD" is new.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117609
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 28 Oct 2010 21:33:33 +0000 (21:33 +0000)]
Improvements to .section parsing:
* If we have a M or a G, reject sections without the type
* Only parse the flag specific arguments if we have M or G
* Parse the corresponding arguments for M and G
We ignore the G arguments and flag for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117608
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 21:31:07 +0000 (21:31 +0000)]
most simple arm instructions match correctly now,
it looks like we're not handling [] operands though
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117607
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 21:28:42 +0000 (21:28 +0000)]
fix the asmmatcher generator to handle targets with no RegisterPrefix
(like ARM) correctly. With this change, we can now match "bx lr"
because we recognize lr as a register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117606
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 21:28:01 +0000 (21:28 +0000)]
move a method out of line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117605
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Oct 2010 20:52:15 +0000 (20:52 +0000)]
remove the rest of hte owningptr's, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117603
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 28 Oct 2010 20:44:22 +0000 (20:44 +0000)]
One day, physical register live ranges will be sensible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117602
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 28 Oct 2010 20:41:11 +0000 (20:41 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117601
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 28 Oct 2010 20:34:52 +0000 (20:34 +0000)]
Replace SplitKit SSA update with an iterative algorithm very similar to the one
in SSAUpdaterImpl.h
Verifying live intervals revealed that the old method was completely wrong, and
we need an iterative approach to calculating PHI placemant. Fortunately, we have
MachineDominators available, so we don't have to compute that over and over
like SSAUpdaterImpl.h must.
Live-out values are cached between calls to mapValue() and computed in a greedy
way, so most calls will be working with very small block sets.
Thanks to Bob for explaining how this should work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117599
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 28 Oct 2010 20:34:50 +0000 (20:34 +0000)]
Make MachineDominators available for SplitEditor. We are going to need it for
proper SSA updating.
This doesn't cause MachineDominators to be recomputed since we are already
requiring MachineLoopInfo which uses dominators as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117598
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 28 Oct 2010 20:34:47 +0000 (20:34 +0000)]
Add a temporary command line option to verify machine code after each spill or
split.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117597
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 28 Oct 2010 20:34:33 +0000 (20:34 +0000)]
Revert r117582, which reverted r77396. Searching PATH for a string
which contains slashes is inconsistent with the meaning of PATH on
Unix-type platforms, and pretty surprising.
If the user has given a specific path to execute and we can't
execute it, we should fail and say why. (Apparently the new
posix_spawn code doesn't always say why, but that's a separate
issue.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117596
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 28 Oct 2010 20:08:13 +0000 (20:08 +0000)]
Backward compatibility. Gracefully handle older versions of debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117595
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 28 Oct 2010 20:02:27 +0000 (20:02 +0000)]
Add support for the .string directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117592
91177308-0d34-0410-b5e6-
96231b3b80d8