oota-llvm.git
13 years agoRemove dead code.
Devang Patel [Fri, 18 Mar 2011 23:33:58 +0000 (23:33 +0000)]
Remove dead code.

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

13 years agoConsider debug info intrinsics pointing to null value as dead instructions.
Devang Patel [Fri, 18 Mar 2011 23:28:02 +0000 (23:28 +0000)]
Consider debug info intrinsics pointing to null value as dead instructions.

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

13 years agoSilence a warning.
Jim Grosbach [Fri, 18 Mar 2011 22:50:49 +0000 (22:50 +0000)]
Silence a warning.

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

13 years agoAdd support to the ARM asm parser for the register-shifted-register forms of basic...
Owen Anderson [Fri, 18 Mar 2011 22:50:18 +0000 (22:50 +0000)]
Add support to the ARM asm parser for the register-shifted-register forms of basic instructions like ADD.  More work left to be done to support other instances of shifter ops in the ISA.

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

13 years agoBeginnings of MC-JIT code generation.
Jim Grosbach [Fri, 18 Mar 2011 22:48:41 +0000 (22:48 +0000)]
Beginnings of MC-JIT code generation.

Proof-of-concept code that code-gens a module to an in-memory MachO object.
This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld
for similarly conceptual work for that part) which will take the compiled
object and link it together with the rest of the system, providing back to the
JIT a table of available symbols which will be used to respond to the
getPointerTo*() queries.

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

13 years agoMatch a few more obvious patterns to revsh. rdar://9147637.
Evan Cheng [Fri, 18 Mar 2011 21:52:42 +0000 (21:52 +0000)]
Match a few more obvious patterns to revsh. rdar://9147637.

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

13 years agoExtend live debug values down the dominator tree by following copies.
Jakob Stoklund Olesen [Fri, 18 Mar 2011 21:42:19 +0000 (21:42 +0000)]
Extend live debug values down the dominator tree by following copies.

The llvm.dbg.value intrinsic refers to SSA values, not virtual registers, so we
should be able to extend the range of a value by tracking that value through
register copies. This greatly improves the debug value tracking for function
arguments that for some reason are copied to a second virtual register at the
end of the entry block.

We only extend the debug value range where its register is killed. All original
llvm.dbg.value locations are still respected.

Copies from physical registers are ignored. That should not be a problem since
the entry block already adds DBG_VALUE instructions for the virtual registers
holding the function arguments.

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

13 years agoRevert r127852; it's apparently causing an ICE on mingw.
Eli Friedman [Fri, 18 Mar 2011 21:12:29 +0000 (21:12 +0000)]
Revert r127852; it's apparently causing an ICE on mingw.

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

13 years agoUse lazy parsing in LTO. Unfortunately this is only a 3% time saving for
Rafael Espindola [Fri, 18 Mar 2011 19:51:00 +0000 (19:51 +0000)]
Use lazy parsing in LTO. Unfortunately this is only a 3% time saving for
'ar'. Have to figure out how to make libLTO even lazier.

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

13 years agoClean whitespace.
Owen Anderson [Fri, 18 Mar 2011 19:47:14 +0000 (19:47 +0000)]
Clean whitespace.

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

13 years agoReduce code duplication.
Owen Anderson [Fri, 18 Mar 2011 19:46:58 +0000 (19:46 +0000)]
Reduce code duplication.

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

13 years agoPTX: Fix various codegen issues
Justin Holewinski [Fri, 18 Mar 2011 19:24:28 +0000 (19:24 +0000)]
PTX: Fix various codegen issues

- Emit mad instead of mad.rn for shader model 1.0
- Emit explicit mov.u32 instructions for reading global variables
- (most PTX instructions cannot take global variable immediates)

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

13 years agoAdd llvm-rtdyld support for loading 32-bit code.
Jim Grosbach [Fri, 18 Mar 2011 18:54:32 +0000 (18:54 +0000)]
Add llvm-rtdyld support for loading 32-bit code.

Factor out the 64-bit specific bits into a helper function and add an
equivalent that loads the 32-bit sections. This allows using llvm-rtdyld on ARM.

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

13 years agosetExecutable() should default to success if there's nothing custom for it.
Jim Grosbach [Fri, 18 Mar 2011 18:51:03 +0000 (18:51 +0000)]
setExecutable() should default to success if there's nothing custom for it.

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

13 years agoThumb2 PC-relative loads require a fixup rather than just an immediate.
Owen Anderson [Fri, 18 Mar 2011 17:42:55 +0000 (17:42 +0000)]
Thumb2 PC-relative loads require a fixup rather than just an immediate.

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

13 years agoUpdate list of link components for llvm-rtdyld.
Oscar Fuentes [Fri, 18 Mar 2011 17:27:04 +0000 (17:27 +0000)]
Update list of link components for llvm-rtdyld.

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

13 years agoNaming conventional tidy up.
Jim Grosbach [Fri, 18 Mar 2011 17:24:21 +0000 (17:24 +0000)]
Naming conventional tidy up.

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

13 years agoMachO file loader and execution utility.
Jim Grosbach [Fri, 18 Mar 2011 17:11:39 +0000 (17:11 +0000)]
MachO file loader and execution utility.

Add a bone-simple utility to load a MachO object into memory, look for
a function (main) in it, and run that function directly. This will be used
as a test and development platform for MC-JIT work regarding symbol resolution,
dynamic lookup, etc..

Code by Daniel Dunbar.

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

13 years agoAvoid creating canonical induction variables for non-native types.
Andrew Trick [Fri, 18 Mar 2011 16:50:32 +0000 (16:50 +0000)]
Avoid creating canonical induction variables for non-native types.
For example, on 32-bit architecture, don't promote all uses of the IV
to 64-bits just because one use is a 64-bit cast.
Alternate implementation of the patch by Arnaud de Grandmaison.

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

13 years agoTidy up.
Jim Grosbach [Fri, 18 Mar 2011 16:39:36 +0000 (16:39 +0000)]
Tidy up.

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

13 years agoSupport explicit argument forms for the X86 string instructions.
Joerg Sonnenberger [Fri, 18 Mar 2011 11:59:40 +0000 (11:59 +0000)]
Support explicit argument forms for the X86 string instructions.
For now, only the default segments are supported.

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

13 years agoptx: fix parameter order that is reversed
Che-Liang Chiou [Fri, 18 Mar 2011 11:23:56 +0000 (11:23 +0000)]
ptx: fix parameter order that is reversed

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

13 years agoptx: add unconditional and conditional branch
Che-Liang Chiou [Fri, 18 Mar 2011 11:08:52 +0000 (11:08 +0000)]
ptx: add unconditional and conditional branch

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

13 years agoraw_ostream: [PR6745] Tweak formatting (double)%e for Windows hosts.
NAKAMURA Takumi [Fri, 18 Mar 2011 09:30:10 +0000 (09:30 +0000)]
raw_ostream: [PR6745] Tweak formatting (double)%e for Windows hosts.

On MSVCRT and compatible, output of %e is incompatible to Posix by default. Number of exponent digits should be at least 2. "%+03d"

FIXME: Implement our formatter in future!

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

13 years agoInitialize the only-used-with-PPC-double-double parts of the APFloat class. This
Bill Wendling [Fri, 18 Mar 2011 09:09:44 +0000 (09:09 +0000)]
Initialize the only-used-with-PPC-double-double parts of the APFloat class. This
makes valgrind stop complaining about uninitialized variables being read when it
accesses a bitfield (category) that shares its bits with these variables.

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

13 years agoSimplify the computation of undefined symbols. Instead of walking
Rafael Espindola [Fri, 18 Mar 2011 05:12:38 +0000 (05:12 +0000)]
Simplify the computation of undefined symbols. Instead of walking
functions and initializers, just report the declarations present in
the module.

The motivation is to open the way for using the lazy module parsing,
which should speed up clients that just want a symbol list (nm, ar).

This is slightly less precise, but since both -strip-dead-prototypes
and -globaldce are part of the standard pipeline, this shouldn't
change the result for clang/dragonegg produced binaries.

Any decl in an IL file was also put there because a FE expected it
to be necessary, so this should not be a problem for "-O0 -emit-llvm".

As a sanity check, I have bootstrapped clang on linux and built
firefox on both linux and darwin. A clang bootstrap on darwin
with LTO fails with or without this patch because, ironically,
the linker doesn't like the combination of dead_strip and LTO
when building libLTO.so :-)

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

13 years agoHoist spills when the same value is known to be in less loopy sibling registers.
Jakob Stoklund Olesen [Fri, 18 Mar 2011 04:23:06 +0000 (04:23 +0000)]
Hoist spills when the same value is known to be in less loopy sibling registers.

Stack slot real estate is virtually free compared to registers, so it is
advantageous to spill earlier even though the same value is now kept in both a
register and a stack slot.

Also eliminate redundant spills by extending the stack slot live range
underneath reloaded registers.

This can trigger a dead code elimination, removing copies and even reloads that
were only feeding spills.

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

13 years agoSome release notes.
Rafael Espindola [Fri, 18 Mar 2011 04:07:44 +0000 (04:07 +0000)]
Some release notes.

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

13 years agoTweak CrashRecoveryContextCleanup::createCleanup() to use the 'delete' cleanup as...
Ted Kremenek [Fri, 18 Mar 2011 03:46:21 +0000 (03:46 +0000)]
Tweak CrashRecoveryContextCleanup::createCleanup() to use the 'delete' cleanup as opposed to the 'destructor' cleanup (reclaims more memory).

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

13 years agotools/lto/LTOModule.cpp: Eliminate an unused variable.
NAKAMURA Takumi [Fri, 18 Mar 2011 03:21:11 +0000 (03:21 +0000)]
tools/lto/LTOModule.cpp: Eliminate an unused variable.

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

13 years agollvm-bcanalyzer.cpp: Tweak format string to suppress warnings on mingw32-g++.
NAKAMURA Takumi [Fri, 18 Mar 2011 03:21:04 +0000 (03:21 +0000)]
llvm-bcanalyzer.cpp: Tweak format string to suppress warnings on mingw32-g++.

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

13 years agoAccept instructions that read undefined values.
Jakob Stoklund Olesen [Fri, 18 Mar 2011 03:06:04 +0000 (03:06 +0000)]
Accept instructions that read undefined values.

This is not supposed to happen, but I have seen the x86 rematter getting
confused when rematerializing partial redefs.

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

13 years agoBe more accurate about the slot index reading a register when dealing with defs
Jakob Stoklund Olesen [Fri, 18 Mar 2011 03:06:02 +0000 (03:06 +0000)]
Be more accurate about the slot index reading a register when dealing with defs
and early clobbers.

Assert when trying to find an undefined value.

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

13 years agoAdd new CrashRecoveryContextCleanup subclass: CrashRecoveryContextDeleteCleanup....
Ted Kremenek [Fri, 18 Mar 2011 03:04:18 +0000 (03:04 +0000)]
Add new CrashRecoveryContextCleanup subclass: CrashRecoveryContextDeleteCleanup.  This deletes the object, not just calls its destructor.

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

13 years agoCheck RequiresNullTerminator first, or we might read from an invalid address.
Rafael Espindola [Fri, 18 Mar 2011 02:55:51 +0000 (02:55 +0000)]
Check RequiresNullTerminator first, or we might read from an invalid address.

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

13 years agoAdd a target-specific branchless method for double-width relational
Eli Friedman [Fri, 18 Mar 2011 02:34:11 +0000 (02:34 +0000)]
Add a target-specific branchless method for double-width relational
comparisons on x86.  Essentially, the way this works is that SUB+SBB sets
the relevant flags the same way a double-width CMP would.

This is a substantial improvement over the generic lowering in LLVM. The output
is also shorter than the gcc-generated output; I haven't done any detailed
benchmarking, though.

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

13 years agoAugment CrashRecoveryContext to have registered "cleanup" objects that can be used...
Ted Kremenek [Fri, 18 Mar 2011 02:05:11 +0000 (02:05 +0000)]
Augment CrashRecoveryContext to have registered "cleanup" objects that can be used to release resources during a crash.

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

13 years agoAdd some svn:ignore properties.
Eli Friedman [Fri, 18 Mar 2011 01:24:16 +0000 (01:24 +0000)]
Add some svn:ignore properties.

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

13 years agoFileCheck-ize and update test.
Eli Friedman [Fri, 18 Mar 2011 01:10:31 +0000 (01:10 +0000)]
FileCheck-ize and update test.

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

13 years agoThe disassembler for Thumb was wrongly adding 4 to the computed imm32 offset.
Johnny Chen [Fri, 18 Mar 2011 00:38:03 +0000 (00:38 +0000)]
The disassembler for Thumb was wrongly adding 4 to the computed imm32 offset.
Remove the offending logic and update the test cases.

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

13 years agoRemove TargetData and ValueTracking includes. I didn't mean for them to sneak in...
Andrew Trick [Fri, 18 Mar 2011 00:36:39 +0000 (00:36 +0000)]
Remove TargetData and ValueTracking includes. I didn't mean for them to sneak in my last checkin.

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

13 years agoThere are two pseudos in this case that are Thumb mode, not one.
Owen Anderson [Thu, 17 Mar 2011 23:52:05 +0000 (23:52 +0000)]
There are two pseudos in this case that are Thumb mode, not one.

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

13 years agoAdded isValidRewrite() to check the result of ScalarEvolutionExpander.
Andrew Trick [Thu, 17 Mar 2011 23:51:11 +0000 (23:51 +0000)]
Added isValidRewrite() to check the result of ScalarEvolutionExpander.

SCEV may generate expressions composed of multiple pointers, which can
lead to invalid GEP expansion. Until we can teach SCEV to follow strict
pointer rules, make sure no bad GEPs creep into IR.
Fixes rdar://problem/9038671.

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

13 years agowhitespace
Andrew Trick [Thu, 17 Mar 2011 23:46:48 +0000 (23:46 +0000)]
whitespace

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

13 years agoUse RequiresNullTerminator to create buffers without a null terminator
Rafael Espindola [Thu, 17 Mar 2011 22:18:42 +0000 (22:18 +0000)]
Use RequiresNullTerminator to create buffers without a null terminator
instead of copying.

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

13 years agoTry to not lose variable's debug info during instcombine.
Devang Patel [Thu, 17 Mar 2011 22:18:16 +0000 (22:18 +0000)]
Try to not lose variable's debug info during instcombine.
This is done by lowering dbg.declare intrinsic into dbg.value intrinsic.
Radar 9143931.

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

13 years agoIt used to be that t_addrmode_s4 was used for both:
Johnny Chen [Thu, 17 Mar 2011 22:04:05 +0000 (22:04 +0000)]
It used to be that t_addrmode_s4 was used for both:

o A8.6.195 STR (register) -- Encoding T1
o A8.6.193 STR (immediate, Thumb) -- Encoding T1

It has been changed so that now they use different addressing modes
and thus different MC representation (Operand Infos).  Modify the
disassembler to reflect the change, and add relevant tests.

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

13 years agoRefactor into a separate utility function.
Devang Patel [Thu, 17 Mar 2011 21:58:19 +0000 (21:58 +0000)]
Refactor into a separate utility function.

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

13 years agoBuildUDIV: If the divisor is even we can simplify the fixup of the multiplied value...
Benjamin Kramer [Thu, 17 Mar 2011 20:39:14 +0000 (20:39 +0000)]
BuildUDIV: If the divisor is even we can simplify the fixup of the multiplied value by introducing an early shift.

This allows us to compile "unsigned foo(unsigned x) { return x/28; }" into
shrl $2, %edi
imulq $613566757, %rdi, %rax
shrq $32, %rax
ret

instead of
movl    %edi, %eax
imulq   $613566757, %rax, %rcx
shrq    $32, %rcx
subl    %ecx, %eax
shrl    %eax
addl    %ecx, %eax
shrl    $4, %eax

on x86_64

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

13 years agoAdd an argument to APInt's magic udiv calculation to specify the number of bits that...
Benjamin Kramer [Thu, 17 Mar 2011 20:39:06 +0000 (20:39 +0000)]
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number.

This will come in handy soon.

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

13 years agoDead code elimination may separate the live interval into multiple connected components.
Jakob Stoklund Olesen [Thu, 17 Mar 2011 20:37:07 +0000 (20:37 +0000)]
Dead code elimination may separate the live interval into multiple connected components.

I have convinced myself that it can only happen when a phi value dies. When it
happens, allocate new virtual registers for the components.

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

13 years agoReapply: Add type output to llvm-dis annotations. Patch by Yuri!
Stuart Hastings [Thu, 17 Mar 2011 19:50:04 +0000 (19:50 +0000)]
Reapply: Add type output to llvm-dis annotations.  Patch by Yuri!

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

13 years agoAdd XCore intrinsic for setpsc.
Richard Osborne [Thu, 17 Mar 2011 18:42:05 +0000 (18:42 +0000)]
Add XCore intrinsic for setpsc.

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

13 years agoRevert 127813 while fixing broken test.
Stuart Hastings [Thu, 17 Mar 2011 16:54:27 +0000 (16:54 +0000)]
Revert 127813 while fixing broken test.

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

13 years agoAdd type output to llvm-dis. Patch by Yuri!
Stuart Hastings [Thu, 17 Mar 2011 16:30:14 +0000 (16:30 +0000)]
Add type output to llvm-dis.  Patch by Yuri!

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

13 years agoMC/Mach-O: Fix regression introduced in r126127, this assignment shouldn't have
Daniel Dunbar [Thu, 17 Mar 2011 16:25:24 +0000 (16:25 +0000)]
MC/Mach-O: Fix regression introduced in r126127, this assignment shouldn't have
been removed.

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

13 years agoMove more logic into getTypeForExtArgOrReturn.
Cameron Zwarich [Thu, 17 Mar 2011 14:53:37 +0000 (14:53 +0000)]
Move more logic into getTypeForExtArgOrReturn.

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

13 years agoChange the signext language in LangRef to closer match zeroext.
Cameron Zwarich [Thu, 17 Mar 2011 14:21:58 +0000 (14:21 +0000)]
Change the signext language in LangRef to closer match zeroext.

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

13 years agoRename getTypeForExtendedInteger() to getTypeForExtArgOrReturn().
Cameron Zwarich [Thu, 17 Mar 2011 14:21:56 +0000 (14:21 +0000)]
Rename getTypeForExtendedInteger() to getTypeForExtArgOrReturn().

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

13 years agoAdd comments for the demanglings. Correct mangled form of operator delete!
Nick Lewycky [Thu, 17 Mar 2011 05:20:12 +0000 (05:20 +0000)]
Add comments for the demanglings. Correct mangled form of operator delete!

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

13 years agotest/CodeGen/X86/h-registers-1.ll: Add explicit -mtriple=x86_64-linux. It does not...
NAKAMURA Takumi [Thu, 17 Mar 2011 04:24:40 +0000 (04:24 +0000)]
test/CodeGen/X86/h-registers-1.ll: Add explicit -mtriple=x86_64-linux. It does not need to be checked on x86_64-win32 (aka Win64).

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

13 years agoAdd "swi" which is an obsolete mnemonic for "svc".
Nick Lewycky [Thu, 17 Mar 2011 01:46:14 +0000 (01:46 +0000)]
Add "swi" which is an obsolete mnemonic for "svc".

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

13 years agoA couple new README entries.
Eli Friedman [Thu, 17 Mar 2011 01:22:09 +0000 (01:22 +0000)]
A couple new README entries.

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

13 years agoAdd support in the LTO library for loading an object from the middle
Rafael Espindola [Thu, 17 Mar 2011 00:36:11 +0000 (00:36 +0000)]
Add support in the LTO library for loading an object from the middle
of an file.

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

13 years agoFix handling of @IDNTPOFF relocations, they need to get STT_TLS.
Joerg Sonnenberger [Thu, 17 Mar 2011 00:35:10 +0000 (00:35 +0000)]
Fix handling of @IDNTPOFF relocations, they need to get STT_TLS.
While here, add VK_ARM_TPOFF and VK_ARM_GOTTPOFF, too.

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

13 years agoRewrite instructions as part of ConnectedVNInfoEqClasses::Distribute.
Jakob Stoklund Olesen [Thu, 17 Mar 2011 00:23:45 +0000 (00:23 +0000)]
Rewrite instructions as part of ConnectedVNInfoEqClasses::Distribute.

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

13 years agotest/CodeGen/X86/constant-pool-remat-0.ll: FileCheck-ize and add explicit -mtriple...
NAKAMURA Takumi [Wed, 16 Mar 2011 23:01:31 +0000 (23:01 +0000)]
test/CodeGen/X86/constant-pool-remat-0.ll: FileCheck-ize and add explicit -mtriple=x86_64-linux.

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

13 years agoAdd a LiveRangeEdit delegate callback before shrinking a live range.
Jakob Stoklund Olesen [Wed, 16 Mar 2011 22:56:16 +0000 (22:56 +0000)]
Add a LiveRangeEdit delegate callback before shrinking a live range.

The register allocator needs to adjust its live interval unions when that happens.

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

13 years agoErase virtual registers that are unused after DCE.
Jakob Stoklund Olesen [Wed, 16 Mar 2011 22:56:13 +0000 (22:56 +0000)]
Erase virtual registers that are unused after DCE.

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

13 years agoTag cached interference with a user-provided tag instead of the virtual register...
Jakob Stoklund Olesen [Wed, 16 Mar 2011 22:56:11 +0000 (22:56 +0000)]
Tag cached interference with a user-provided tag instead of the virtual register number.

The live range of a virtual register may change which invalidates the cached
interference information.

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

13 years agoClarify debugging output.
Jakob Stoklund Olesen [Wed, 16 Mar 2011 22:56:08 +0000 (22:56 +0000)]
Clarify debugging output.

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

13 years agoThe x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byte
Cameron Zwarich [Wed, 16 Mar 2011 22:20:18 +0000 (22:20 +0000)]
The x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byte
rather than an int. Thankfully, this only causes LLVM to miss optimizations, not
generate incorrect code.

This just fixes the zext at the return. We still insert an i32 ZextAssert when
reading a function's arguments, but it is followed by a truncate and another i8
ZextAssert so it is not optimized.

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

13 years agoRename a test to be more inclusive.
Cameron Zwarich [Wed, 16 Mar 2011 22:20:12 +0000 (22:20 +0000)]
Rename a test to be more inclusive.

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

13 years agoDon't recompute something that we already have in a local variable.
Cameron Zwarich [Wed, 16 Mar 2011 22:20:07 +0000 (22:20 +0000)]
Don't recompute something that we already have in a local variable.

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

13 years agoRevert r127757, "Patch to a fix dwarf relocation problem on ARM. One-line fix
Daniel Dunbar [Wed, 16 Mar 2011 22:16:39 +0000 (22:16 +0000)]
Revert r127757, "Patch to a fix dwarf relocation problem on ARM. One-line fix
plus the test where it used to break.", which broke Clang self-host of a
Debug+Asserts compiler, on OS X.

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

13 years agoAdd XCore intrinsics for setclk, setrdy.
Richard Osborne [Wed, 16 Mar 2011 21:56:00 +0000 (21:56 +0000)]
Add XCore intrinsics for setclk, setrdy.

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

13 years agoPatch to a fix dwarf relocation problem on ARM. One-line fix plus the test where...
Renato Golin [Wed, 16 Mar 2011 21:05:52 +0000 (21:05 +0000)]
Patch to a fix dwarf relocation problem on ARM. One-line fix plus the test where it used to break.

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

13 years agoAdd a test for i1 zeroext arguments on x86-64. We currently generate code that
Cameron Zwarich [Wed, 16 Mar 2011 20:15:44 +0000 (20:15 +0000)]
Add a test for i1 zeroext arguments on x86-64. We currently generate code that
conforms to the ABI, but DAGCombine could in theory recognize the sequence of
zext asserts and truncates and generate incorrect code.

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

13 years agoAdd checkevent intrinsic to check if any resources owned by the current thread
Richard Osborne [Wed, 16 Mar 2011 18:34:00 +0000 (18:34 +0000)]
Add checkevent intrinsic to check if any resources owned by the current thread
can event.

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

13 years agotest/CodeGen/X86: FileCheck-ize and add actions for x86_64-linux and x86_64-win32.
NAKAMURA Takumi [Wed, 16 Mar 2011 13:53:07 +0000 (13:53 +0000)]
test/CodeGen/X86: FileCheck-ize and add actions for x86_64-linux and x86_64-win32.

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

13 years agotest/CodeGen/X86: Add a pattern for Win64.
NAKAMURA Takumi [Wed, 16 Mar 2011 13:52:51 +0000 (13:52 +0000)]
test/CodeGen/X86: Add a pattern for Win64.

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

13 years agotest/CodeGen/X86: FileCheck-ize and add explicit -mtriple=x86_64-linux. They are...
NAKAMURA Takumi [Wed, 16 Mar 2011 13:52:38 +0000 (13:52 +0000)]
test/CodeGen/X86: FileCheck-ize and add explicit -mtriple=x86_64-linux. They are useless to Win64 target.

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

13 years agotest/CodeGen/X86/byval*.ll: Win64 has not supported byval yet.
NAKAMURA Takumi [Wed, 16 Mar 2011 13:52:20 +0000 (13:52 +0000)]
test/CodeGen/X86/byval*.ll: Win64 has not supported byval yet.

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

13 years agotest/CodeGen/X86/dyn-stackalloc.ll: FileCheck-ize.
NAKAMURA Takumi [Wed, 16 Mar 2011 13:52:08 +0000 (13:52 +0000)]
test/CodeGen/X86/dyn-stackalloc.ll: FileCheck-ize.

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

13 years agoFix a comment.
Cameron Zwarich [Wed, 16 Mar 2011 08:13:42 +0000 (08:13 +0000)]
Fix a comment.

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

13 years agolib/Support/raw_ostream.cpp: On mingw, report_fatal_error() should not be called...
NAKAMURA Takumi [Wed, 16 Mar 2011 02:53:39 +0000 (02:53 +0000)]
lib/Support/raw_ostream.cpp: On mingw, report_fatal_error() should not be called at dtor context.

report_fatal_error() invokes exit(). We know report_fatal_error() might not write messages to stderr when any errors were detected on FD == 2.

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

13 years agoWindows/PathV2.inc: [PR8520] Recognize "NUL" as special (character) file.
NAKAMURA Takumi [Wed, 16 Mar 2011 02:53:32 +0000 (02:53 +0000)]
Windows/PathV2.inc: [PR8520] Recognize "NUL" as special (character) file.

FIXME: It is a temporal hack. We should detect as many "special file name" as possible.

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

13 years agoWindows/Path.inc: [PR6270] PathV1::makeUnique(): Give arbitrary initial seed for...
NAKAMURA Takumi [Wed, 16 Mar 2011 02:53:24 +0000 (02:53 +0000)]
Windows/Path.inc: [PR6270] PathV1::makeUnique(): Give arbitrary initial seed for workaround.

FIXME: We should use sys::fs::unique_file() in future.

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

13 years agoTidy up. Whitespace and 80 column.
Jim Grosbach [Wed, 16 Mar 2011 01:21:55 +0000 (01:21 +0000)]
Tidy up. Whitespace and 80 column.

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

13 years agoDo not accidently initialize NumDbgValueLost and NumDbgLineLost counts.
Devang Patel [Wed, 16 Mar 2011 00:27:57 +0000 (00:27 +0000)]
Do not accidently initialize NumDbgValueLost and NumDbgLineLost counts.

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

13 years agoOnly convert allocas to scalars if it is profitable. The profitability metric I
Cameron Zwarich [Wed, 16 Mar 2011 00:13:44 +0000 (00:13 +0000)]
Only convert allocas to scalars if it is profitable. The profitability metric I
chose is having a non-memcpy/memset use and being larger than any native integer
type. Originally I chose having an access of a size smaller than the total size
of the alloca, but this caused some minor issues on the spirit benchmark where
SRoA runs again after some inlining.

This fixes <rdar://problem/8613163>.

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

13 years agoAdd native integer type TargetData to some existing tests.
Cameron Zwarich [Wed, 16 Mar 2011 00:13:40 +0000 (00:13 +0000)]
Add native integer type TargetData to some existing tests.

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

13 years agoBetter use initializer lists.
Cameron Zwarich [Wed, 16 Mar 2011 00:13:37 +0000 (00:13 +0000)]
Better use initializer lists.

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

13 years agoAdd a clarifying comment.
Cameron Zwarich [Wed, 16 Mar 2011 00:13:35 +0000 (00:13 +0000)]
Add a clarifying comment.

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

13 years agoAdd TargetData::fitsInLegalInteger().
Cameron Zwarich [Wed, 16 Mar 2011 00:13:28 +0000 (00:13 +0000)]
Add TargetData::fitsInLegalInteger().

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

13 years agoThere were two issues fixed:
Johnny Chen [Tue, 15 Mar 2011 22:27:33 +0000 (22:27 +0000)]
There were two issues fixed:

1. The ARM Darwin *r9 call instructions were pseudo-ized recently.
   Modify the ARMDisassemblerCore.cpp file to accomodate the change.

2. The disassembler was unnecessarily adding 8 to the sign-extended imm24:

   imm32 = SignExtend(imm24:'00', 32); // A8.6.23 BL, BLX (immediate)
                                       // Encoding A1

   It has no business doing such.  Removed the offending logic.

Add test cases to arm-tests.txt.

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

13 years agoAdd scei vendor
John Thompson [Tue, 15 Mar 2011 21:51:56 +0000 (21:51 +0000)]
Add scei vendor

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

13 years agoThe VTBL (and VTBX) instructions are rather permissive concerning the masks they
Bill Wendling [Tue, 15 Mar 2011 21:15:20 +0000 (21:15 +0000)]
The VTBL (and VTBX) instructions are rather permissive concerning the masks they
accept. If a value in the mask is out of range, it uses the value 0, for VTBL,
or leaves the value unchanged, for VTBX.

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

13 years agoTrace back through sibling copies to hoist spills and find rematerializable defs.
Jakob Stoklund Olesen [Tue, 15 Mar 2011 21:13:25 +0000 (21:13 +0000)]
Trace back through sibling copies to hoist spills and find rematerializable defs.

After live range splitting, an original value may be available in multiple
registers. Tracing back through the registers containing the same value, find
the best place to insert a spill, determine if the value has already been
spilled, or discover a reaching def that may be rematerialized.

This is only the analysis part. The information is not used for anything yet.

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

13 years agoPreserve both isPHIDef and isDefByCopy bits when copying parent values.
Jakob Stoklund Olesen [Tue, 15 Mar 2011 21:13:22 +0000 (21:13 +0000)]
Preserve both isPHIDef and isDefByCopy bits when copying parent values.

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