Cameron Zwarich [Sun, 5 Dec 2010 19:51:05 +0000 (19:51 +0000)]
Move the FindCopyInsertPoint method of PHIElimination to a new standalone
function so that it can be shared with StrongPHIElimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120951
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Sun, 5 Dec 2010 19:06:41 +0000 (19:06 +0000)]
Refactor jump threading.
Should have no functional change other than the order of two transformations that are mutually-exclusive and the exact formatting of debug output.
Internally, it now stores the ConstantInt*s as Constant*s, and actual undef values instead of nulls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120946
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Sun, 5 Dec 2010 19:02:47 +0000 (19:02 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120945
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Sun, 5 Dec 2010 18:29:03 +0000 (18:29 +0000)]
Teach SimplifyCFG to turn
(indirectbr (select cond, blockaddress(@fn, BlockA),
blockaddress(@fn, BlockB)))
into
(br cond, BlockA, BlockB).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120943
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 07:49:54 +0000 (07:49 +0000)]
Teach X86ISelLowering that the second result of X86ISD::UMUL is a flags
result. This allows us to compile:
void *test12(long count) {
return new int[count];
}
into:
test12:
movl $4, %ecx
movq %rdi, %rax
mulq %rcx
movq $-1, %rdi
cmovnoq %rax, %rdi
jmp __Znam ## TAILCALL
instead of:
test12:
movl $4, %ecx
movq %rdi, %rax
mulq %rcx
seto %cl
testb %cl, %cl
movq $-1, %rdi
cmoveq %rax, %rdi
jmp __Znam
Of course it would be even better if the regalloc inverted the cmov to 'cmovoq',
which would eliminate the need for the 'movq %rdi, %rax'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120936
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 07:30:36 +0000 (07:30 +0000)]
it turns out that when ".with.overflow" intrinsics were added to the X86
backend that they were all implemented except umul. This one fell back
to the default implementation that did a hi/lo multiply and compared the
top. Fix this to check the overflow flag that the 'mul' instruction
sets, so we can avoid an explicit test. Now we compile:
void *func(long count) {
return new int[count];
}
into:
__Z4funcl: ## @_Z4funcl
movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00]
movq %rdi, %rax ## encoding: [0x48,0x89,0xf8]
mulq %rcx ## encoding: [0x48,0xf7,0xe1]
seto %cl ## encoding: [0x0f,0x90,0xc1]
testb %cl, %cl ## encoding: [0x84,0xc9]
movq $-1, %rdi ## encoding: [0x48,0xc7,0xc7,0xff,0xff,0xff,0xff]
cmoveq %rax, %rdi ## encoding: [0x48,0x0f,0x44,0xf8]
jmp __Znam ## TAILCALL
instead of:
__Z4funcl: ## @_Z4funcl
movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00]
movq %rdi, %rax ## encoding: [0x48,0x89,0xf8]
mulq %rcx ## encoding: [0x48,0xf7,0xe1]
testq %rdx, %rdx ## encoding: [0x48,0x85,0xd2]
movq $-1, %rdi ## encoding: [0x48,0xc7,0xc7,0xff,0xff,0xff,0xff]
cmoveq %rax, %rdi ## encoding: [0x48,0x0f,0x44,0xf8]
jmp __Znam ## TAILCALL
Other than the silly seto+test, this is using the o bit directly, so it's going in the right
direction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120935
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 02:08:07 +0000 (02:08 +0000)]
fix the rest of the linux miscompares :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 02:00:51 +0000 (02:00 +0000)]
generalize the previous check to handle -1 on either side of the
select, inserting a not to compensate. Add a missing isZero check
that I lost somehow.
This improves codegen of:
void *func(long count) {
return new int[count];
}
from:
__Z4funcl: ## @_Z4funcl
movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00]
movq %rdi, %rax ## encoding: [0x48,0x89,0xf8]
mulq %rcx ## encoding: [0x48,0xf7,0xe1]
testq %rdx, %rdx ## encoding: [0x48,0x85,0xd2]
movq $-1, %rdi ## encoding: [0x48,0xc7,0xc7,0xff,0xff,0xff,0xff]
cmoveq %rax, %rdi ## encoding: [0x48,0x0f,0x44,0xf8]
jmp __Znam ## TAILCALL
## encoding: [0xeb,A]
to:
__Z4funcl: ## @_Z4funcl
movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00]
movq %rdi, %rax ## encoding: [0x48,0x89,0xf8]
mulq %rcx ## encoding: [0x48,0xf7,0xe1]
cmpq $1, %rdx ## encoding: [0x48,0x83,0xfa,0x01]
sbbq %rdi, %rdi ## encoding: [0x48,0x19,0xff]
notq %rdi ## encoding: [0x48,0xf7,0xd7]
orq %rax, %rdi ## encoding: [0x48,0x09,0xc7]
jmp __Znam ## TAILCALL
## encoding: [0xeb,A]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120932
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 01:31:13 +0000 (01:31 +0000)]
relax this to handle linux defaulting to -static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120930
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 01:23:24 +0000 (01:23 +0000)]
Improve an integer select optimization in two ways:
1. generalize
(select (x == 0), -1, 0) -> (sign_bit (x - 1))
to:
(select (x == 0), -1, y) -> (sign_bit (x - 1)) | y
2. Handle the identical pattern that happens with !=:
(select (x != 0), y, -1) -> (sign_bit (x - 1)) | y
cmov is often high latency and can't fold immediates or
memory operands. For example for (x == 0) ? -1 : 1, before
we got:
< testb %sil, %sil
< movl $-1, %ecx
< movl $1, %eax
< cmovel %ecx, %eax
now we get:
> cmpb $1, %sil
> sbbl %eax, %eax
> orl $1, %eax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120929
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 01:13:58 +0000 (01:13 +0000)]
merge some tests into select.ll and make them more specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120928
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 01:02:23 +0000 (01:02 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120927
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Dec 2010 01:02:13 +0000 (01:02 +0000)]
remove two tests that aren't really testing anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120926
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Dec 2010 23:57:24 +0000 (23:57 +0000)]
Initialize HasPOPCNT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120923
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 4 Dec 2010 22:47:22 +0000 (22:47 +0000)]
Once the layout is done we don't need to keep updating which fragments are
valid. Addresses will not change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120921
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 4 Dec 2010 21:58:52 +0000 (21:58 +0000)]
Remember the contents of leb and dwarfline fragments when relaxing. This avoids
having to evaluate the expression again when writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120920
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 4 Dec 2010 20:40:15 +0000 (20:40 +0000)]
Remove PHIElimination's private copy of SkipPHIsAndLabels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120918
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 20:32:23 +0000 (20:32 +0000)]
Add patterns for the x86 popcnt instruction.
- Also adds a new POPCNT subtarget feature that is currently enabled if the target
supports SSE4.2 (nehalem) or SSE4A (barcelona).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120917
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Dec 2010 20:20:34 +0000 (20:20 +0000)]
Silence 'may be used uninitialized in this function' warnings. Static analysis
may determine that they cannot be used uninitialized. But that might be a bit
too much for the compiler to determine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120916
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 18:45:32 +0000 (18:45 +0000)]
Support/PathV2: Remove redundant calls to make_error_code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120913
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 18:05:36 +0000 (18:05 +0000)]
APInt: microoptimize a few methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120912
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 16:37:47 +0000 (16:37 +0000)]
Simplify APInt::getAllOnesValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120911
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 15:28:22 +0000 (15:28 +0000)]
Remove unneeded zero arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120910
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 14:43:08 +0000 (14:43 +0000)]
Apparently APFloat::getZero doesn't like PPCDoubleDoubles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120909
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Sat, 4 Dec 2010 14:30:22 +0000 (14:30 +0000)]
Disable C++ exception handling on MSVC.
Total size of bin\Release on disk goes from 82.9 MB to 74.2 MB. (~10% saving)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120908
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 4 Dec 2010 14:22:24 +0000 (14:22 +0000)]
Simplify code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120907
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Sat, 4 Dec 2010 09:42:30 +0000 (09:42 +0000)]
Disable RTTI on Windows.
Total size of bin\Release on disk goes from 83.6 MB to 81.8MB. (~2% saving)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120901
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 4 Dec 2010 04:40:19 +0000 (04:40 +0000)]
The Thumb tADDrSPi instruction is not valid when the destination is SP.
Check for that and try narrowing it to tADDspi instead. Radar
8724703.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120892
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 4 Dec 2010 04:40:15 +0000 (04:40 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120891
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 4 Dec 2010 03:21:47 +0000 (03:21 +0000)]
There are two reasons why we might want to use
foo = a - b
.long foo
instead of just
.long a - b
First, on darwin9 64 bits the assembler produces the wrong result. Second,
if "a" is the end of the section all darwin assemblers (9, 10 and mc) will not
consider a - b to be a constant but will if the dummy foo is created.
Split how we handle these cases. The first one is something MC should take care
of. The second one has to be handled by the caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120889
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 03:18:42 +0000 (03:18 +0000)]
Unittests/Support/PathV2: Add FileSystem tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120888
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 00:32:40 +0000 (00:32 +0000)]
Support/FileSystem: Add status implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120870
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 00:32:24 +0000 (00:32 +0000)]
Support/SystemError: Make error_category and error_code auto-bool-conversion-safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120869
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 00:32:14 +0000 (00:32 +0000)]
Support/Windows/FileSystem: Fix MinGW warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120868
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 4 Dec 2010 00:31:48 +0000 (00:31 +0000)]
Support/FileSystem: Add file_size implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120867
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 4 Dec 2010 00:31:13 +0000 (00:31 +0000)]
Next step: Only pad debug_line when the target is darwin. Add a FIXME to avoid
doing that if the target is darwin10 or newer.
This fixes
*) Direct object emission was producing objects without the workaround on
darwin9.
*) Assembly printing was producing objects with the workaround on linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120866
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 4 Dec 2010 00:20:40 +0000 (00:20 +0000)]
Encode condition code for Thumb1 conditional branch instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120865
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 3 Dec 2010 23:58:31 +0000 (23:58 +0000)]
Do not try luck by using given name to create temporary file. In parallel builds it may not work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120860
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 23:54:18 +0000 (23:54 +0000)]
Correctly size-reduce the t2CMPzrr instruction to tCMPzr when possible.
tCMPzhir has undefined behavior when both source registers are low registers.
rdar://
8728577
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120858
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 23:44:24 +0000 (23:44 +0000)]
Use correct variable names to match the patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120857
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 23:40:45 +0000 (23:40 +0000)]
Also inore '()' while creating mdnode name from ObjC symbol name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120856
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 3 Dec 2010 23:36:59 +0000 (23:36 +0000)]
First step in fixing MC. Make it clear that we are avoiding a bug in the
darwin9 linker, what is needed to avoid it and where to get more information.
Also make the workaround simpler. Just the regular end_sequence we normally
create is more than 4 bytes.
Tested by building cctools and ld64 from darwin9 on a darwin10 system and using
those. I checked that I was able to reproduce the bootstrap failure when
the the workaround was disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120854
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 3 Dec 2010 23:29:30 +0000 (23:29 +0000)]
Ignore '+' while creating mdnode name from ObjC symbol name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120853
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 23:21:25 +0000 (23:21 +0000)]
Match pattern operand names to expected encoding field names. This corrects the
operand encoding ordering of the instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120852
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 22:33:42 +0000 (22:33 +0000)]
Remove incorrect BL target encoding (it's similar to, but not the same as the
ARM instruction). Add encoding of bits 13 and 11.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120849
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 22:31:40 +0000 (22:31 +0000)]
Encode the 32-bit wide Thumb (and Thumb2) instructions with the high order
halfword being emitted to the stream first. rdar://
8728174
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120848
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 3 Dec 2010 22:29:15 +0000 (22:29 +0000)]
Revert this change since it breaks a couple of the AVX tests.
I'm unclear if the tests are actually correct or not, but reverting for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120847
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 22:25:09 +0000 (22:25 +0000)]
Rename virtRegMap to avoid confusion with the VirtRegMap that it isn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120846
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 22:25:07 +0000 (22:25 +0000)]
Coalesce debug locations when possible, causing less DBG_VALUE instructions to
be emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120845
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 3 Dec 2010 21:54:39 +0000 (21:54 +0000)]
Scalar f32/f64 are also subregs of ymm regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120844
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 3 Dec 2010 21:54:14 +0000 (21:54 +0000)]
Remove SSE1-4 disable when AVX is enabled. While this may be useful for development,
it completely breaks scalar fp in xmm regs when AVX is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120843
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 21:47:10 +0000 (21:47 +0000)]
Emit DBG_VALUE instructions from LiveDebugVariables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120842
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 21:47:08 +0000 (21:47 +0000)]
Also update virtRegMap when renaming virtual registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120841
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 20:33:01 +0000 (20:33 +0000)]
When using the 'push' mnemonic for Thumb2 stmdb, be explicit when it's the
32-bit wide version by adding the .w suffix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120838
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 3 Dec 2010 19:55:37 +0000 (19:55 +0000)]
Remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120836
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 19:47:11 +0000 (19:47 +0000)]
Reduce t2 ldr/str instructions to the correct t1 versions when there's an
immediate offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120833
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Fri, 3 Dec 2010 19:40:23 +0000 (19:40 +0000)]
fix ARM::fixup_arm_branch, cleanup, and share more code between ELF and Darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120832
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 19:31:00 +0000 (19:31 +0000)]
No need to declare EncoderMethod property anymore; just assign to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120831
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 19:21:53 +0000 (19:21 +0000)]
Delete the StrongPHIElimination pass, leaving only a shell.
The StrongPHIElimination pass did not work, and nobody has worked on it for two
years.
A rewrite is underway, so I am leaving this shell pass instead of deleting it
completely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120830
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 3 Dec 2010 19:02:00 +0000 (19:02 +0000)]
Add IntervalMap::iterator::set{Start,Stop,Value} methods that allow limited
editing of the current interval.
These methods may cause coalescing, there are corresponding set*Unchecked
methods for editing without coalescing. The non-coalescing methods are useful
for applying monotonic transforms to all keys or values in a map without
accidentally coalescing transformed and untransformed intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120829
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 18:49:13 +0000 (18:49 +0000)]
Support/FileSystem: Add equivalent implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120827
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 18:48:56 +0000 (18:48 +0000)]
Support/FileSystem: Fix MinGW build. It doesn't have _chsize_s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120826
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 18:37:17 +0000 (18:37 +0000)]
Add FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120824
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 3 Dec 2010 18:31:03 +0000 (18:31 +0000)]
Size reduction for tPUSH come from t2STMDB_UPD, not t2STMIA_UPD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120822
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 18:04:11 +0000 (18:04 +0000)]
And I really hate line endings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120821
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 18:03:28 +0000 (18:03 +0000)]
Support/Windows/FileSystem: Fix MinGW build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120820
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 17:54:07 +0000 (17:54 +0000)]
Support/FileSystem: Add resize_file implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120819
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 17:53:55 +0000 (17:53 +0000)]
Support/FileSystem: Add rename implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120818
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 17:53:43 +0000 (17:53 +0000)]
Support/FileSystem: Add remove implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120817
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 17:53:23 +0000 (17:53 +0000)]
Fix line endings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120816
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Dec 2010 17:19:39 +0000 (17:19 +0000)]
Get Neon intrinsic names from the new "Name" field in the tblgen records
instead of just converting the record name to lowercase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120809
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Fri, 3 Dec 2010 14:54:33 +0000 (14:54 +0000)]
Fix paste-o in ExtractValueInst::getIndexedType() comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120804
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 3 Dec 2010 12:33:32 +0000 (12:33 +0000)]
unittests/Support/PathV2: remove(3) requires a terminated string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120803
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 3 Dec 2010 07:45:22 +0000 (07:45 +0000)]
Apparently OS X 10.4 doesn't have __crashreporter_info__.
Try to fix building on the wayback machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120801
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 07:41:25 +0000 (07:41 +0000)]
Support/FileSystem: Add create_symlink implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120800
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 05:58:41 +0000 (05:58 +0000)]
Support/FileSystem: Add create_hard_link implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120792
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 05:42:25 +0000 (05:42 +0000)]
Support/ADT/Twine: Make toNullTerminatedStringRef not rely on UB :(.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120791
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 05:42:11 +0000 (05:42 +0000)]
Support/FileSystem: Add create_director{y,ies} implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120790
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 3 Dec 2010 02:54:21 +0000 (02:54 +0000)]
Make EmitIntValue more efficient and more like what we do for leb128. The
difference is much smaller (about 0.3s) but significant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120787
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 02:25:59 +0000 (02:25 +0000)]
I did it wrong. Don't disregard these encodings here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120786
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 02:22:34 +0000 (02:22 +0000)]
Unittests/Support/PathV2: Cleanup and remove output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120785
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 02:10:30 +0000 (02:10 +0000)]
unittests/Support/PathV2: Comment out test because some systems are saying that
a file exists when it shouldn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120784
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 02:02:58 +0000 (02:02 +0000)]
Don't overwrite the opcode passed into the T1Special pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120782
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 01:55:47 +0000 (01:55 +0000)]
Add Thumb encoding for some more instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120780
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 01:55:30 +0000 (01:55 +0000)]
Ignore decode table conflicts in the tMOVgpr2tgpr, tMOVgpr2gpr, and tMOVtgpr2gpr
instructions. They are handled as special moves, but encoded as a normal move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120779
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 01:21:38 +0000 (01:21 +0000)]
Support/Windows/FileSystem: Remove unneeded toNullTerminatedStringRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120777
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 01:21:28 +0000 (01:21 +0000)]
Support/FileSystem: Add unique_file and exists implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120776
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 3 Dec 2010 01:21:04 +0000 (01:21 +0000)]
Support/FileSystem: Remove temp_directory_path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120775
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 3 Dec 2010 01:19:49 +0000 (01:19 +0000)]
Do with uleb the same trick we now do with dwarf line/address advances. This
avoids creating leb128 fragments and speeds up the test in PR8711 to 33s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120774
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Dec 2010 01:11:13 +0000 (01:11 +0000)]
clarify comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120772
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 3 Dec 2010 00:55:40 +0000 (00:55 +0000)]
Try to resolve symbol differences early, and if successful create a plain
data fragment. This reduces the time to assemble the test in 8711 from 60s to
54s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120767
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Dec 2010 00:53:22 +0000 (00:53 +0000)]
The tLDR instruction wasn't encoded properly:
<MCInst 2251 <MCOperand Reg:70> <MCOperand Reg:66> <MCOperand Imm:0> <MCOperand Reg:0> <MCOperand Imm:14> <MCOperand Reg:0>>
Notice that the "reg" here is 0, which is an invalid register. Put a check in
the code for this to prevent crashing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120766
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Dec 2010 00:34:12 +0000 (00:34 +0000)]
Add support for "_lane" variants of VMUL, VMLA, and VMLS Neon intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120764
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Dec 2010 00:34:09 +0000 (00:34 +0000)]
Support using macros for Neon intrinsics implemented without builtins.
Intrinsics implemented with Clang builtins could already be implemented as
either inline functions or macros, but intrinsics implemented directly
(without builtins) could only be inline functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120763
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 3 Dec 2010 00:10:48 +0000 (00:10 +0000)]
It may not be an option to skip .debug_line if there are file reference in already emitted debug info. So, for now, emit dummy line table entry to make older linker and assemblers happy. This is not a new behavior, original AsmPrinter emitted similar line table entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120760
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Dec 2010 23:29:58 +0000 (23:29 +0000)]
Hide tests, that check .loc, .file in output assembly, from darwin9 buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120750
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 2 Dec 2010 23:05:38 +0000 (23:05 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120748
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Dec 2010 23:03:57 +0000 (23:03 +0000)]
Disable .loc support on older darwin OSes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120747
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Dec 2010 21:32:30 +0000 (21:32 +0000)]
Use set directive for StartMinusEndExpr.
This is a fix for llvm-gcc-i386-darwin9 buildbot failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120742
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 2 Dec 2010 21:25:55 +0000 (21:25 +0000)]
Test case for r120740. Radar
8712503.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120741
91177308-0d34-0410-b5e6-
96231b3b80d8