oota-llvm.git
13 years agoConvert SimplifyIVUsers into a worklist instead of a single pass over
Andrew Trick [Fri, 13 May 2011 01:12:21 +0000 (01:12 +0000)]
Convert SimplifyIVUsers into a worklist instead of a single pass over
the users.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131277 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSince I can't reproduce the failures from 131261, re-trying with a
Stuart Hastings [Fri, 13 May 2011 00:51:54 +0000 (00:51 +0000)]
Since I can't reproduce the failures from 131261, re-trying with a
simplified version.  <rdar://problem/9298790>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131274 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert 131266 and 131261 due to buildbot complaints.
Stuart Hastings [Fri, 13 May 2011 00:15:17 +0000 (00:15 +0000)]
Revert 131266 and 131261 due to buildbot complaints.
rdar://problem/9298790

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131269 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTweak 131261 (thumb2-cbnz.ll) to generate the intended cbnz.
Stuart Hastings [Fri, 13 May 2011 00:10:03 +0000 (00:10 +0000)]
Tweak 131261 (thumb2-cbnz.ll) to generate the intended cbnz.
rdar://problem/9298790

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131266 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNon-fast-isel followup to 129634; correctly handle branches controlled
Stuart Hastings [Thu, 12 May 2011 23:36:41 +0000 (23:36 +0000)]
Non-fast-isel followup to 129634; correctly handle branches controlled
by non-CMP expressions.  The executable test case (129821) would test
this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC
tester.  Alas, the ARM assembly would be very difficult to check with
FileCheck.

The thumb2-cbnz.ll test is affected; it generates larger code (tst.w
vs. cmp #0), but I believe the new version is correct.
rdar://problem/9298790

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131261 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate comment.
Evan Cheng [Thu, 12 May 2011 22:35:48 +0000 (22:35 +0000)]
Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131258 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrection. Use explicit target triple in the test.
Galina Kistanova [Thu, 12 May 2011 21:55:34 +0000 (21:55 +0000)]
Correction. Use explicit target triple in the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131252 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDoug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
Devang Patel [Thu, 12 May 2011 21:29:42 +0000 (21:29 +0000)]
Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131244 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMCJIT section loading should just skip non-text sections rather than
Jim Grosbach [Thu, 12 May 2011 21:21:16 +0000 (21:21 +0000)]
MCJIT section loading should just skip non-text sections rather than
erroring out completely. Some modules produce sections that aren't referenced,
so it's friendlier to clients like LLDB to just skip them, at least for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131243 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-enable branchfolding common code hoisting optimization. Fixed a liveness test...
Evan Cheng [Thu, 12 May 2011 20:30:01 +0000 (20:30 +0000)]
Re-enable branchfolding common code hoisting optimization. Fixed a liveness test bug and also taught it to update liveins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131241 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLet Objective-C front-end identify class extension, in dwarf output, using an attribu...
Devang Patel [Thu, 12 May 2011 19:06:16 +0000 (19:06 +0000)]
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131238 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTemporarily disable the transformation. It's breaking 186.crafty in some configuration.
Evan Cheng [Thu, 12 May 2011 18:44:58 +0000 (18:44 +0000)]
Temporarily disable the transformation. It's breaking 186.crafty in some configuration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131235 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe MCJIT memory manager needs to initialize its Module member.
Jim Grosbach [Thu, 12 May 2011 18:21:23 +0000 (18:21 +0000)]
The MCJIT memory manager needs to initialize its Module member.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131234 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix setting of isCommutable flag.
Akira Hatanaka [Thu, 12 May 2011 17:42:08 +0000 (17:42 +0000)]
Fix setting of isCommutable flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131233 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoreverting test commit
Jason W Kim [Thu, 12 May 2011 17:38:08 +0000 (17:38 +0000)]
reverting test commit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131232 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTest commit from Mercurial
Jason W Kim [Thu, 12 May 2011 17:37:13 +0000 (17:37 +0000)]
Test commit from Mercurial

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131231 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCMake builds gold by default since revision 127466. This is
Oscar Fuentes [Thu, 12 May 2011 11:26:21 +0000 (11:26 +0000)]
CMake builds gold by default since revision 127466. This is
inconsistent with autoconf, which by default set BINUTILS_INCDIR to
empty and exclude gold from target list.

Based on a patch by Haitao Li!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131229 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-commit 131172 with fix. MachineInstr identity checks should check dead
Evan Cheng [Thu, 12 May 2011 00:56:58 +0000 (00:56 +0000)]
Re-commit 131172 with fix. MachineInstr identity checks should check dead
markers. In some cases a register def is dead on one path, but not on
another.

This is passing Clang self-hosting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131214 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoindvars: Added SimplifyIVUsers.
Andrew Trick [Thu, 12 May 2011 00:04:28 +0000 (00:04 +0000)]
indvars: Added SimplifyIVUsers.

Interleave IV simplifications. Currently involves EliminateComparison
and EliminateRemainder. Next I'll add EliminateExtend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131210 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove an unused variable and move a couple others inside DEBUG.
Matt Beaumont-Gay [Wed, 11 May 2011 23:34:51 +0000 (23:34 +0000)]
Remove an unused variable and move a couple others inside DEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131208 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAddress the last bit of relocation flag related divergence betweeen
Jason W Kim [Wed, 11 May 2011 22:53:06 +0000 (22:53 +0000)]
Address the last bit of relocation flag related divergence betweeen
LLVM and binutils.

With this patch, there are no functional differences between the .o
produced directly from LLVM versus the .s to .o via GNU as, for relocation tags
at least, for both PIC and non-PIC modes.

Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is
necessary but not sufficient to determine whether the overall codegen mode is
PIC or not. Why is this necessary? There is an incompatibility of how relocs
are emitted in the .rodata section.  Binutils PIC likes to emit certain relocs
as section relative offsets.  Non-PIC does not do this.

So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which
forces the objectwriter to pretend that all relocs are for PIC mode.

Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected
on llc.

Todo: There are probably more issues for PIC mode on ARM/MC/ELF...

Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s
tests as well as expanded to cover the gamut.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131205 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTurn this into a table, this will make more sense shortly.
Eric Christopher [Wed, 11 May 2011 21:44:58 +0000 (21:44 +0000)]
Turn this into a table, this will make more sense shortly.

Part of rdar://8470697

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131200 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove this test to CodeGen/Thumb. rdar://problem/9416774
Stuart Hastings [Wed, 11 May 2011 19:41:28 +0000 (19:41 +0000)]
Move this test to CodeGen/Thumb. rdar://problem/9416774

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131196 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIdentify end of prologue (and beginning of function body) using DW_LNS_set_prologue_e...
Devang Patel [Wed, 11 May 2011 19:22:19 +0000 (19:22 +0000)]
Identify end of prologue (and beginning of function body) using DW_LNS_set_prologue_end line table opcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131194 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAvoid hoisting spills when looking at a copy from another register that is also
Jakob Stoklund Olesen [Wed, 11 May 2011 18:25:10 +0000 (18:25 +0000)]
Avoid hoisting spills when looking at a copy from another register that is also
about to be spilled.

This can only happen when two extra snippet registers are included in the spill,
and there is a copy between them. Hoisting the spill creates problems because
the hoist will mark the copy for later dead code elimination, and spilling the
second register will turn the copy into a spill.

<rdar://problem/9420853>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131192 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReduced test case. rdar://problem/9416774
Stuart Hastings [Wed, 11 May 2011 17:29:25 +0000 (17:29 +0000)]
Reduced test case. rdar://problem/9416774

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131191 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix encoding of Thumb BLX register instructions. Patch by Koan-Sin Tan.
Owen Anderson [Wed, 11 May 2011 17:00:48 +0000 (17:00 +0000)]
Fix encoding of Thumb BLX register instructions.  Patch by Koan-Sin Tan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131189 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTypo and missing checkin from r131186.
Andrew Trick [Wed, 11 May 2011 16:44:08 +0000 (16:44 +0000)]
Typo and missing checkin from r131186.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131187 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoBugpoint support for miscompilations that result in a crash.
Andrew Trick [Wed, 11 May 2011 16:31:24 +0000 (16:31 +0000)]
Bugpoint support for miscompilations that result in a crash.

This change allows bugpoint to pinpoint the "opt" pass and bitcode
segment responsible for a crash caused by miscompilation. At least it
works well for me now, without having to create any custom execution
wrappers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131186 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAnd lo, I was given a testcase for 131152. rdar://problem/9416774
Stuart Hastings [Wed, 11 May 2011 16:00:21 +0000 (16:00 +0000)]
And lo, I was given a testcase for 131152.  rdar://problem/9416774

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131184 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain).
Nadav Rotem [Wed, 11 May 2011 14:40:50 +0000 (14:40 +0000)]
Fixes a bug in the DAGCombiner.  LoadSDNodes have two values (data, chain).
If there is a store after the load node, then there is a chain, which means
that there is another user. Thus, asking hasOneUser would fail. Instead we
ask hasNUsesOfValue on the 'data' value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131183 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle gcc-compatible compilers (such as clang) the same way we handle
Oscar Fuentes [Wed, 11 May 2011 13:53:08 +0000 (13:53 +0000)]
Handle gcc-compatible compilers (such as clang) the same way we handle
gcc.

Fixes PR9886.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131181 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd custom lowering of X86 vector SRA/SRL/SHL when the shift amount is a splat vector.
Nadav Rotem [Wed, 11 May 2011 08:12:09 +0000 (08:12 +0000)]
Add custom lowering of X86 vector SRA/SRL/SHL when the shift amount is a splat vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131179 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert 131172 as it is causing clang to miscompile itself. I will try
Rafael Espindola [Wed, 11 May 2011 03:27:17 +0000 (03:27 +0000)]
Revert 131172 as it is causing clang to miscompile itself. I will try
to provide a reduced testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131176 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGive the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp
Bill Wendling [Wed, 11 May 2011 01:11:55 +0000 (01:11 +0000)]
Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp
intrinsic call. This prevents it from being reordered so that it appears
*before* the setjmp intrinsic (thus making it completely useless).
<rdar://problem/9409683>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131174 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix comment.
Bill Wendling [Wed, 11 May 2011 01:08:39 +0000 (01:08 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131173 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a late optimization to BranchFolding that hoist common instruction sequences
Evan Cheng [Wed, 11 May 2011 01:03:01 +0000 (01:03 +0000)]
Add a late optimization to BranchFolding that hoist common instruction sequences
at the start of basic blocks to their common predecessor. It's actually quite
common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size
benefit. e.g.

        pushq   %rax
        testl   %edi, %edi
        jne     LBB0_2
## BB#1:
        xorb    %al, %al
        popq    %rdx
        ret
LBB0_2:
        xorb    %al, %al
        callq   _foo
        popq    %rdx
        ret

=>

        pushq   %rax
        xorb    %al, %al
        testl   %edi, %edi
        je      LBB0_2
## BB#1:
        callq   _foo
LBB0_2:
        popq    %rdx
        ret

rdar://9145558

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131172 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOptimize atomic lock or that doesn't use the result value.
Eric Christopher [Tue, 10 May 2011 23:57:45 +0000 (23:57 +0000)]
Optimize atomic lock or that doesn't use the result value.

Next up: xor and and.

Part of rdar://8470697

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131171 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd triple.
Rafael Espindola [Tue, 10 May 2011 23:14:29 +0000 (23:14 +0000)]
Add triple.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131169 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix cmake again.
Rafael Espindola [Tue, 10 May 2011 22:42:41 +0000 (22:42 +0000)]
Fix cmake again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131164 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove empty file.
Nick Lewycky [Tue, 10 May 2011 22:38:17 +0000 (22:38 +0000)]
Remove empty file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131162 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAvoid a gcc warning.
Rafael Espindola [Tue, 10 May 2011 22:28:35 +0000 (22:28 +0000)]
Avoid a gcc warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131161 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix cmake build.
Rafael Espindola [Tue, 10 May 2011 22:19:33 +0000 (22:19 +0000)]
Fix cmake build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131160 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r131155 for now. It makes VMCore depend on Analysis and Transforms
Nick Lewycky [Tue, 10 May 2011 22:16:06 +0000 (22:16 +0000)]
Revert r131155 for now. It makes VMCore depend on Analysis and Transforms
headers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131159 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInitialize moveTypeModule.
Rafael Espindola [Tue, 10 May 2011 21:54:59 +0000 (21:54 +0000)]
Initialize moveTypeModule.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131157 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDisable my little CopyToReg argument hack with fast-isel. rdar://problem/9413587 .
Eli Friedman [Tue, 10 May 2011 21:50:58 +0000 (21:50 +0000)]
Disable my little CopyToReg argument hack with fast-isel.  rdar://problem/9413587 .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131156 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for plugins add passes to the default set of passes. The standard set...
David Chisnall [Tue, 10 May 2011 21:36:48 +0000 (21:36 +0000)]
Add support for plugins add passes to the default set of passes.  The standard set of passes used by front ends can now be modified by LLVM plugins, without needing to modify any front ends.

Still to do:

- Allow replacing / removing passes (infrastructure there, just needs an infrastructure exposed)
- Defining sets of passes to be added or removed as a group
- Extending the support to allow user-defined groups of optimisations
- Allow plugins to be specified for loading automatically (e.g. from plugins.conf or some similar mechanism)

Reviewed by Nick Lewycky.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131155 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrectly walk through nested and adjacent CALLSEQ_START nodes. No
Stuart Hastings [Tue, 10 May 2011 21:20:03 +0000 (21:20 +0000)]
Correctly walk through nested and adjacent CALLSEQ_START nodes.  No
test case; I've only seen this on a release branch, and I can't get it
to reproduce on trunk.  rdar://problem/7662569

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131152 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoProduce a __debug_frame section on darwin ARM when appropriate.
Rafael Espindola [Tue, 10 May 2011 21:04:45 +0000 (21:04 +0000)]
Produce a __debug_frame section on darwin ARM when appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131151 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOn MachO, unlike ELF, there should be no relocation to produce the CIE pointer.
Rafael Espindola [Tue, 10 May 2011 20:59:42 +0000 (20:59 +0000)]
On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131149 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename DwarfRequiresRelocationForStmtList to
Rafael Espindola [Tue, 10 May 2011 20:35:05 +0000 (20:35 +0000)]
Rename DwarfRequiresRelocationForStmtList to
DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131148 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe EH symbols are only needed in eh_frame, not debug_frame.
Rafael Espindola [Tue, 10 May 2011 19:51:53 +0000 (19:51 +0000)]
The EH symbols are only needed in eh_frame, not debug_frame.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131146 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse .cfi_sections to put the unwind info in .debug_frame when possible. With
Rafael Espindola [Tue, 10 May 2011 18:39:09 +0000 (18:39 +0000)]
Use .cfi_sections to put the unwind info in .debug_frame when possible. With
this clang will use .debug_frame in, for example,
clang -g -c -m32 test.c
This matches gcc's behaviour. It looks like .debug_frame is a bit bigger
than .eh_frame, but has the big advantage of not being allocated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131140 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor lock versions of binary operators to be a little less
Eric Christopher [Tue, 10 May 2011 18:36:16 +0000 (18:36 +0000)]
Refactor lock versions of binary operators to be a little less
cut and paste.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131139 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFirst cut at getting debugging support for ARM/MC/ELF/.o
Jason W Kim [Tue, 10 May 2011 18:07:25 +0000 (18:07 +0000)]
First cut at getting debugging support for ARM/MC/ELF/.o

DWARF stuff also gets fixed up by ELFARMAsmBackend::ApplyFixup(),
but the offset is not guaranteed to be mod 4 == 0 as in text/data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131137 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDowngrade a tablegen warning to an error.
Jakob Stoklund Olesen [Tue, 10 May 2011 17:52:59 +0000 (17:52 +0000)]
Downgrade a tablegen warning to an error.

Ambiguous sub-register index compositions are OK as long as the backend writer
knows what he is doing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131134 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR9883. Make sure all caches are invalidated when a live range is repaired.
Jakob Stoklund Olesen [Tue, 10 May 2011 17:37:41 +0000 (17:37 +0000)]
Fix PR9883. Make sure all caches are invalidated when a live range is repaired.

The previous invalidation missed the alias interference caches.

Also add a stats counter for the number of repaired ranges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131133 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn a debug_frame the cfi offset is to the start of the debug_frame section!
Rafael Espindola [Tue, 10 May 2011 15:20:23 +0000 (15:20 +0000)]
In a debug_frame the cfi offset is to the start of the debug_frame section!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131129 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPTX: add test cases for cvt, fneg, and selp
Justin Holewinski [Tue, 10 May 2011 14:53:13 +0000 (14:53 +0000)]
PTX:  add test cases for cvt, fneg, and selp

Patch by Dan Bailey

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131128 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd CFIStartSections to the asm printer. Add an assert that at least
Rafael Espindola [Tue, 10 May 2011 13:39:48 +0000 (13:39 +0000)]
Add CFIStartSections to the asm printer. Add an assert that at least
one of the sections is created.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131124 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPTX: add PTX 2.3 setting in PTX sub-target.
Justin Holewinski [Tue, 10 May 2011 12:32:11 +0000 (12:32 +0000)]
PTX: add PTX 2.3 setting in PTX sub-target.

Patch by Wei-Ren Chen

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131123 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for producing .deubg_frame sections.
Rafael Espindola [Tue, 10 May 2011 03:54:12 +0000 (03:54 +0000)]
Add support for producing .deubg_frame sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131121 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSmall cleanups.
Rafael Espindola [Tue, 10 May 2011 03:26:21 +0000 (03:26 +0000)]
Small cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131120 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFactor some code into a new EmitFrames method.
Rafael Espindola [Tue, 10 May 2011 03:14:15 +0000 (03:14 +0000)]
Factor some code into a new EmitFrames method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131119 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove unused argument.
Rafael Espindola [Tue, 10 May 2011 03:01:39 +0000 (03:01 +0000)]
Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131118 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParsing and plumbing for .cfi_sections.
Rafael Espindola [Tue, 10 May 2011 01:10:18 +0000 (01:10 +0000)]
Parsing and plumbing for .cfi_sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131117 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPreserve line number information.
Devang Patel [Tue, 10 May 2011 00:03:11 +0000 (00:03 +0000)]
Preserve line number information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131112 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not ignore InlinedAt while walking up scope chain to find subprogram node.
Devang Patel [Mon, 9 May 2011 22:14:49 +0000 (22:14 +0000)]
Do not ignore InlinedAt while walking up scope chain to find subprogram node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131106 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTidy up. 80-column and whitespace.
Jim Grosbach [Mon, 9 May 2011 20:05:25 +0000 (20:05 +0000)]
Tidy up. 80-column and whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131094 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLook through struct wrapped types for inline asm statments.
Eric Christopher [Mon, 9 May 2011 20:04:43 +0000 (20:04 +0000)]
Look through struct wrapped types for inline asm statments.

Patch by Evan Cheng.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131093 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange a few std::maps to DenseMaps.
Dan Gohman [Mon, 9 May 2011 18:44:09 +0000 (18:44 +0000)]
Change a few std::maps to DenseMaps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131088 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix td file comments for Mips.
Eric Christopher [Mon, 9 May 2011 18:16:46 +0000 (18:16 +0000)]
Fix td file comments for Mips.

Patch by Liu <proljc@gmail.com>!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131086 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed MC encoding for index_align for VLD1/VST1 (single element from one lane) for...
Mon P Wang [Mon, 9 May 2011 17:47:27 +0000 (17:47 +0000)]
Fixed MC encoding for index_align for VLD1/VST1 (single element from one lane) for size 32

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131085 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIndent properly, no functionality change.
Duncan Sands [Mon, 9 May 2011 08:03:33 +0000 (08:03 +0000)]
Indent properly, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131082 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEliminate an unused line to fix a warning.
NAKAMURA Takumi [Sun, 8 May 2011 23:19:04 +0000 (23:19 +0000)]
Eliminate an unused line to fix a warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131078 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove an assertion to fix PR9872.
Jakob Stoklund Olesen [Sun, 8 May 2011 19:21:08 +0000 (19:21 +0000)]
Remove an assertion to fix PR9872.

It can happen that a live debug variable is the last use of a sub-register, and
the register allocator will pick a larger register class for the virtual
register.  If the allocated register doesn't support the sub-register index,
just use %noreg for the debug variables instead of asserting.

In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD
register. The register is split and one part is inflated to GR32 and assigned
%ESI because there are no more normal uses of sub_8bit_hi.

Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will
simply insert a %noreg instead, and the debug variable will be marked
unavailable in that range.

We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I
don't know if DWARF even supports that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131073 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoX86: Add a bunch of peeps for add and sub of SETB.
Benjamin Kramer [Sun, 8 May 2011 18:36:07 +0000 (18:36 +0000)]
X86: Add a bunch of peeps for add and sub of SETB.

"b + ((a < b) ? 1 : 0)" compiles into
cmpl %esi, %edi
adcl $0, %esi
instead of
cmpl %esi, %edi
sbbl %eax, %eax
andl $1, %eax
addl %esi, %eax

This saves a register, a false dependency on %eax
(Intel's CPUs still don't ignore it) and it's shorter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131070 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't force relaxation of AdvanceLoc instructions on OS X. gdb is happy with
Rafael Espindola [Sun, 8 May 2011 14:35:21 +0000 (14:35 +0000)]
Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy with
the smaller encoding and this cuts 270336 bytes from a release version of
clang and 1246272 bytes from a debug build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131067 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPR9869: Add explicit destructor declarations to Operator subclasses, to allow
Eli Friedman [Sun, 8 May 2011 01:59:22 +0000 (01:59 +0000)]
PR9869: Add explicit destructor declarations to Operator subclasses, to allow
compiling Operator.h with gcc 4.6 in C++0x mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131062 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEliminate the ARM sub-register indexes that are not needed by the sources.
Jakob Stoklund Olesen [Sat, 7 May 2011 21:22:42 +0000 (21:22 +0000)]
Eliminate the ARM sub-register indexes that are not needed by the sources.

Tablegen will invent its own names for these indexes, and the register file is a
bit simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131059 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach TableGen to automatically generate missing SubRegIndex instances.
Jakob Stoklund Olesen [Sat, 7 May 2011 21:22:39 +0000 (21:22 +0000)]
Teach TableGen to automatically generate missing SubRegIndex instances.

The RegisterInfo.td file should only specify the indexes that sources need to
refer to. The rest is inferred.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131058 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix comments per Duncan's review.
Eli Friedman [Sat, 7 May 2011 19:23:14 +0000 (19:23 +0000)]
Fix comments per Duncan's review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131055 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoZap unnecessary svn:ignore.
Eli Friedman [Sat, 7 May 2011 19:22:28 +0000 (19:22 +0000)]
Zap unnecessary svn:ignore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131054 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe comparision "max(x,y)==x" is equivalent to "x>=y". Since the max is
Duncan Sands [Sat, 7 May 2011 16:56:49 +0000 (16:56 +0000)]
The comparision "max(x,y)==x" is equivalent to "x>=y".  Since the max is
often expressed as "x >= y ? x : y", there is a good chance we can extract
the existing "x >= y" from it and use that as a replacement for "max(x,y)==x".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131049 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the non-MC encoding of pkhbt and pkhtb.
Eric Christopher [Sat, 7 May 2011 04:37:27 +0000 (04:37 +0000)]
Fix the non-MC encoding of pkhbt and pkhtb.

Patch by Stephen Hines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131045 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert ExecutionEngine patches, they either failed to build or broke unit tests.
Jakob Stoklund Olesen [Sat, 7 May 2011 03:12:54 +0000 (03:12 +0000)]
Revert ExecutionEngine patches, they either failed to build or broke unit tests.

Please ensure the build is clean and tests are passing when recommitting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131044 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSwitch Darwin to the generic CIE/FDE printer.
Rafael Espindola [Fri, 6 May 2011 22:29:04 +0000 (22:29 +0000)]
Switch Darwin to the generic CIE/FDE printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131031 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExecutionEngine: delete duplicated files
Dylan Noblesmith [Fri, 6 May 2011 22:24:04 +0000 (22:24 +0000)]
ExecutionEngine: delete duplicated files

Forgot to `svn rm` these in revisions 131025 / 131029.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131030 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExecutionEngine: add missing file
Dylan Noblesmith [Fri, 6 May 2011 22:20:09 +0000 (22:20 +0000)]
ExecutionEngine: add missing file

From revision 131025.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131029 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago1. Keep lines in 80 columns.
Akira Hatanaka [Fri, 6 May 2011 22:11:29 +0000 (22:11 +0000)]
1. Keep lines in 80 columns.
2. Remove unused function.
3. Correct indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131028 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExecutionEngine: move createJIT() definition
Dylan Noblesmith [Fri, 6 May 2011 22:07:14 +0000 (22:07 +0000)]
ExecutionEngine: move createJIT() definition

As an ExecutionEngine class function, its definition
really belongs in ExecutionEngine.cpp, not JIT.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131027 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExecutionEngine: push TargetMachine creation into clients
Dylan Noblesmith [Fri, 6 May 2011 22:06:22 +0000 (22:06 +0000)]
ExecutionEngine: push TargetMachine creation into clients

In particular, into EngineBuilder. This should only impact
the private API between the EE and EB classes, not external
clients, since JITCtor and MCJITCtor are both protected members.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131026 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExecutionEngine: fix JIT/MCJIT selectTarget() duplication
Dylan Noblesmith [Fri, 6 May 2011 22:05:43 +0000 (22:05 +0000)]
ExecutionEngine: fix JIT/MCJIT selectTarget() duplication

This prepares for making JITCtor/MCJITCtor take a
TargetMachine* directly from clients like EngineBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131025 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEmit a proper error message when register allocators run out of registers.
Jakob Stoklund Olesen [Fri, 6 May 2011 21:58:30 +0000 (21:58 +0000)]
Emit a proper error message when register allocators run out of registers.

This can't be just an assertion, users can always write impossible inline
assembly. Such an assembly statement should be included in the error message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131024 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdded an assertion, and updated a comment.
Andrew Trick [Fri, 6 May 2011 21:52:52 +0000 (21:52 +0000)]
Added an assertion, and updated a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131022 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIt's valid to take the blockaddress of a different function, so remove this
Nick Lewycky [Fri, 6 May 2011 21:09:44 +0000 (21:09 +0000)]
It's valid to take the blockaddress of a different function, so remove this
assert in the bitcode writer. No change needed because the ValueEnumerator holds
a whole-module numbering anyhow. Fixes PR9857!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131016 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago80 col violations.
Evan Cheng [Fri, 6 May 2011 20:52:23 +0000 (20:52 +0000)]
80 col violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131015 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake the logic for determining function alignment more explicit. No functionality...
Eli Friedman [Fri, 6 May 2011 20:34:06 +0000 (20:34 +0000)]
Make the logic for determining function alignment more explicit.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131012 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse array_lengthof. No functional change.
Eli Friedman [Fri, 6 May 2011 19:50:10 +0000 (19:50 +0000)]
Use array_lengthof.  No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131008 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIterate backwards over debug locations when splitting them so they can be safely...
Jakob Stoklund Olesen [Fri, 6 May 2011 19:31:19 +0000 (19:31 +0000)]
Iterate backwards over debug locations when splitting them so they can be safely erased.

This should unbreak dragonegg-i386-linux and build-self-4-mingw32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131007 91177308-0d34-0410-b5e6-96231b3b80d8