oota-llvm.git
13 years agoAdd a rather pointless InstructionSimplify transform, inspired by recent constant
Duncan Sands [Sun, 21 Nov 2010 13:53:09 +0000 (13:53 +0000)]
Add a rather pointless InstructionSimplify transform, inspired by recent constant
folding improvements: if P points to a type of size zero, turn "gep P, N" into "P".
More generally, if a gep index type has size zero, instcombine could replace the
index with zero, but that is not done here.

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

13 years agoFix spelling.
Duncan Sands [Sun, 21 Nov 2010 12:43:13 +0000 (12:43 +0000)]
Fix spelling.

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

13 years agoMore Thumb encodings.
Bill Wendling [Sun, 21 Nov 2010 11:49:36 +0000 (11:49 +0000)]
More Thumb encodings.

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

13 years agoAdd encoding for ARM "trap" instruction.
Bill Wendling [Sun, 21 Nov 2010 11:05:29 +0000 (11:05 +0000)]
Add encoding for ARM "trap" instruction.

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

13 years agoThe "trap" instruction is one of this which doesn't have a condition code. Hack
Bill Wendling [Sun, 21 Nov 2010 10:56:05 +0000 (10:56 +0000)]
The "trap" instruction is one of this which doesn't have a condition code. Hack
the code to not add a "condition code" if it's trap.

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

13 years ago- Give "trap" the correct encoding, at least according to Darwin's assembler.
Bill Wendling [Sun, 21 Nov 2010 10:55:23 +0000 (10:55 +0000)]
- Give "trap" the correct encoding, at least according to Darwin's assembler.
- Add comments saying where the encodings for other instructions came from.

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

13 years agoapply Dan's fix for PR8268 which allows constant folding to handle indexes over
Chris Lattner [Sun, 21 Nov 2010 08:39:01 +0000 (08:39 +0000)]
apply Dan's fix for PR8268 which allows constant folding to handle indexes over
zero sized elements.  This allows us to compile:

  #include <string>
  void foo() { std::string s; }

into an empty function.

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

13 years agoadd some helper methods for asmprinter flags, from PR8417
Chris Lattner [Sun, 21 Nov 2010 08:30:55 +0000 (08:30 +0000)]
add some helper methods for asmprinter flags, from PR8417

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

13 years agoimplement PR8524, apparently mainline gas accepts movq as an alias for movd
Chris Lattner [Sun, 21 Nov 2010 08:18:57 +0000 (08:18 +0000)]
implement PR8524, apparently mainline gas accepts movq as an alias for movd
when transfering between i64 gprs and mmx regs.

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

13 years agorework some DSE paths to use the newly-public "getPointerDependencyFrom"
Chris Lattner [Sun, 21 Nov 2010 08:06:10 +0000 (08:06 +0000)]
rework some DSE paths to use the newly-public "getPointerDependencyFrom"
method in MemDep instead of inserting an instruction, doing a query,
then removing it.  Neither operation is effectively cached.

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

13 years agothe getLocationForSource/Dest methods can be static.
Chris Lattner [Sun, 21 Nov 2010 08:05:25 +0000 (08:05 +0000)]
the getLocationForSource/Dest methods can be static.

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

13 years agoadd "getLocation" method to AliasAnalysis for getting the source and
Chris Lattner [Sun, 21 Nov 2010 07:51:27 +0000 (07:51 +0000)]
add "getLocation" method to AliasAnalysis for getting the source and
destination location of a memcpy/memmove.  I'm not clear about whether
TBAA works on these, so I'm leaving it out for now.  Dan, please revisit
this when convenient.

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

13 years agoimplement PR8576, deleting dead stores with intervening may-alias stores.
Chris Lattner [Sun, 21 Nov 2010 07:34:32 +0000 (07:34 +0000)]
implement PR8576, deleting dead stores with intervening may-alias stores.

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

13 years agofile checkize
Chris Lattner [Sun, 21 Nov 2010 07:32:40 +0000 (07:32 +0000)]
file checkize

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

13 years agoadd some random notes.
Chris Lattner [Sun, 21 Nov 2010 07:05:31 +0000 (07:05 +0000)]
add some random notes.

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

13 years agoUse by-name rather than by-order operand matching for some NEON encodings.
Owen Anderson [Sun, 21 Nov 2010 06:47:06 +0000 (06:47 +0000)]
Use by-name rather than by-order operand matching for some NEON encodings.

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

13 years agooptimize:
Chris Lattner [Sun, 21 Nov 2010 06:44:42 +0000 (06:44 +0000)]
optimize:
void a(int x) { if (((1<<x)&8)==0) b(); }

into "x != 3", which occurs over 100 times in 403.gcc but in no
other program in llvm-test.

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

13 years agotail calls on x86 are implemented.
Chris Lattner [Sun, 21 Nov 2010 06:10:27 +0000 (06:10 +0000)]
tail calls on x86 are implemented.

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

13 years agoBR_JTadd is ARM-only, so use the proper pseudo class to get the predicate.
Jim Grosbach [Sun, 21 Nov 2010 01:26:01 +0000 (01:26 +0000)]
BR_JTadd is ARM-only, so use the proper pseudo class to get the predicate.

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

13 years agoHandle PCRel relocations with absolute values. Fixes PR8656.
Rafael Espindola [Sun, 21 Nov 2010 00:48:25 +0000 (00:48 +0000)]
Handle PCRel relocations with absolute values. Fixes PR8656.

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

13 years agoImplement PR8644: forwarding a memcpy value to a byval,
Chris Lattner [Sun, 21 Nov 2010 00:28:59 +0000 (00:28 +0000)]
Implement PR8644: forwarding a memcpy value to a byval,
allowing the memcpy to be eliminated.

Unfortunately, the requirements on byval's without explicit
alignment are really weak and impossible to predict in the
mid-level optimizer, so this doesn't kick in much with current
frontends.  The fix is to change clang to set alignment on all
byval arguments.

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

13 years agoa byval argument without an align can have an arbitrary alignment
Chris Lattner [Sat, 20 Nov 2010 23:49:06 +0000 (23:49 +0000)]
a byval argument without an align can have an arbitrary alignment
requirement on the input pointer.

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

13 years agoA few more thumb instruction MC encodings.
Bill Wendling [Sat, 20 Nov 2010 22:52:33 +0000 (22:52 +0000)]
A few more thumb instruction MC encodings.

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

13 years agoRewrite address handling to use a structure with all the possible address
Eric Christopher [Sat, 20 Nov 2010 22:38:27 +0000 (22:38 +0000)]
Rewrite address handling to use a structure with all the possible address
mode variables. Handle frame indexes in load/store and allocas again.

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

13 years agoSTRH only needs the additional operand, not t2STRH. Also invert conditional
Eric Christopher [Sat, 20 Nov 2010 22:01:38 +0000 (22:01 +0000)]
STRH only needs the additional operand, not t2STRH. Also invert conditional
to match the one from the load emitter above.

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

13 years agoSimplify code. No change in functionality.
Benjamin Kramer [Sat, 20 Nov 2010 18:43:35 +0000 (18:43 +0000)]
Simplify code. No change in functionality.

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

13 years agoTest commit: Fix two -Asserts mode warnings in StringMap.h.
Frits van Bommel [Sat, 20 Nov 2010 18:37:24 +0000 (18:37 +0000)]
Test commit: Fix two -Asserts mode warnings in StringMap.h.

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

13 years agoMake this compile on case-sensitive file systemsw
Anton Korobeynikov [Sat, 20 Nov 2010 16:14:57 +0000 (16:14 +0000)]
Make this compile on case-sensitive file systemsw

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

13 years agoMove some more hooks to TargetFrameInfo
Anton Korobeynikov [Sat, 20 Nov 2010 15:59:32 +0000 (15:59 +0000)]
Move some more hooks to TargetFrameInfo

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

13 years agoSilence Release build warnings about unused functions.
Benjamin Kramer [Sat, 20 Nov 2010 15:53:24 +0000 (15:53 +0000)]
Silence Release build warnings about unused functions.

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

13 years agoDisable warning C4291 on MSVC. Caused because class AttributeList provides a non...
Francois Pichet [Sat, 20 Nov 2010 15:39:03 +0000 (15:39 +0000)]
Disable warning C4291 on MSVC. Caused because class AttributeList provides a non implemented operator delete without a corresponding new.

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

13 years agoOn X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics,
Duncan Sands [Sat, 20 Nov 2010 11:25:00 +0000 (11:25 +0000)]
On X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics,
so don't claim they are.  They are allocated using DAG.getNode, so attempts
to access MemSDNode fields results in reading off the end of the allocated
memory.  This fixes crashes with "llc -debug" due to debug code trying to
print MemSDNode fields for these barrier nodes (since the crashes are not
deterministic, use valgrind to see this).  Add some nasty checking to try
to catch this kind of thing in the future.

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

13 years agoRemoving the useless test that I added recently. It was meant as an example, but...
Andrew Trick [Sat, 20 Nov 2010 07:26:51 +0000 (07:26 +0000)]
Removing the useless test that I added recently. It was meant as an example, but not complicated enough to merit another test.

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

13 years agoRABasic fix. Regalloc is responsible for updating block live ins.
Andrew Trick [Sat, 20 Nov 2010 02:57:05 +0000 (02:57 +0000)]
RABasic fix. Regalloc is responsible for updating block live ins.

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

13 years agoWhitespace.
Andrew Trick [Sat, 20 Nov 2010 02:43:55 +0000 (02:43 +0000)]
Whitespace.

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

13 years agoFix old GCC build error.
Jakob Stoklund Olesen [Sat, 20 Nov 2010 01:24:43 +0000 (01:24 +0000)]
Fix old GCC build error.

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

13 years agoAdd more Thumb add instruction encodings.
Bill Wendling [Sat, 20 Nov 2010 01:18:47 +0000 (01:18 +0000)]
Add more Thumb add instruction encodings.

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

13 years agoAdd Thumb encodings for some add instructions.
Bill Wendling [Sat, 20 Nov 2010 01:00:29 +0000 (01:00 +0000)]
Add Thumb encodings for some add instructions.

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

13 years agoAdd more encodings for Thumb instructions.
Bill Wendling [Sat, 20 Nov 2010 00:53:35 +0000 (00:53 +0000)]
Add more encodings for Thumb instructions.

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

13 years agoDetemplatize NodeRef.
Jakob Stoklund Olesen [Sat, 20 Nov 2010 00:49:00 +0000 (00:49 +0000)]
Detemplatize NodeRef.

It is now possible to navigate the B+-tree using NodeRef::subtree() and
NodeRef::size() without knowing the key and value template types used in the
tree.

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

13 years agoRename NodeBase::{key,val} as {first,second} and swap the BranchNode arrays such
Jakob Stoklund Olesen [Sat, 20 Nov 2010 00:48:57 +0000 (00:48 +0000)]
Rename NodeBase::{key,val} as {first,second} and swap the BranchNode arrays such
that the noderefs are the first member in the object.

This is in preparation of detemplatization of tree navigation.

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

13 years agoHave the getAddrMode3OpValue() function in ARMCodeEmitter.cpp produce the same
Bill Wendling [Sat, 20 Nov 2010 00:26:37 +0000 (00:26 +0000)]
Have the getAddrMode3OpValue() function in ARMCodeEmitter.cpp produce the same
value that the one in ARMMCCodeEmitter.cpp does.

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

13 years agoCheck for _setjmp too, because it's also used.
Bill Wendling [Sat, 20 Nov 2010 00:03:09 +0000 (00:03 +0000)]
Check for _setjmp too, because it's also used.

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

13 years agoImplement IntervalMap destructor.
Jakob Stoklund Olesen [Fri, 19 Nov 2010 23:28:59 +0000 (23:28 +0000)]
Implement IntervalMap destructor.

Key and value objects may not be destructed instantly when they are erased from
the container, but they will be destructed eventually by the IntervalMap
destructor.

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

13 years agoImplement IntervalMap::clear().
Jakob Stoklund Olesen [Fri, 19 Nov 2010 23:28:57 +0000 (23:28 +0000)]
Implement IntervalMap::clear().

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

13 years agoSupport backwards iteration starting from end().
Jakob Stoklund Olesen [Fri, 19 Nov 2010 23:28:53 +0000 (23:28 +0000)]
Support backwards iteration starting from end().

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

13 years agoAdd test for PR 8111. By Frits van Bommel.
Dale Johannesen [Fri, 19 Nov 2010 23:23:22 +0000 (23:23 +0000)]
Add test for PR 8111.  By Frits van Bommel.

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

13 years agoFix ARM LDR* post-indexed operand encoding.
Jim Grosbach [Fri, 19 Nov 2010 23:14:43 +0000 (23:14 +0000)]
Fix ARM LDR* post-indexed operand encoding.

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

13 years agoEncodings for the compare instructions.
Bill Wendling [Fri, 19 Nov 2010 23:14:32 +0000 (23:14 +0000)]
Encodings for the compare instructions.

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

13 years agoThe Vm and Vn register fields must be the same for a register-register vmov.
Owen Anderson [Fri, 19 Nov 2010 23:12:43 +0000 (23:12 +0000)]
The Vm and Vn register fields must be the same for a register-register vmov.

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

13 years agoFix a cut-n-paste-error.
Evan Cheng [Fri, 19 Nov 2010 23:01:16 +0000 (23:01 +0000)]
Fix a cut-n-paste-error.

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

13 years agoDocument the new GVN number table structure.
Owen Anderson [Fri, 19 Nov 2010 22:48:40 +0000 (22:48 +0000)]
Document the new GVN number table structure.

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

13 years agoOperand names
Jim Grosbach [Fri, 19 Nov 2010 22:43:08 +0000 (22:43 +0000)]
Operand names

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

13 years agotrailing whitespace
Jim Grosbach [Fri, 19 Nov 2010 22:42:55 +0000 (22:42 +0000)]
trailing whitespace

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

13 years agoDon't need to save piecemeal now.
Eric Christopher [Fri, 19 Nov 2010 22:39:56 +0000 (22:39 +0000)]
Don't need to save piecemeal now.

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

13 years agoUpdate comment.
Eric Christopher [Fri, 19 Nov 2010 22:37:58 +0000 (22:37 +0000)]
Update comment.

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

13 years agoAdd encodings for some of the thumb ADD instructions. Tests will come once the
Bill Wendling [Fri, 19 Nov 2010 22:37:33 +0000 (22:37 +0000)]
Add encodings for some of the thumb ADD instructions. Tests will come once the
asm parser can handle them.

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

13 years agoUpdate comment.
Eric Christopher [Fri, 19 Nov 2010 22:36:41 +0000 (22:36 +0000)]
Update comment.

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

13 years agoClarify operand names.
Jim Grosbach [Fri, 19 Nov 2010 22:36:02 +0000 (22:36 +0000)]
Clarify operand names.

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

13 years agoAdd a test for CodeGenPrepare's ability to look through PHI nodes when performing
Owen Anderson [Fri, 19 Nov 2010 22:34:53 +0000 (22:34 +0000)]
Add a test for CodeGenPrepare's ability to look through PHI nodes when performing
addressing mode folding, introduced in r119853.

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

13 years agoRefactor address mode handling into a single struct (ala x86), this
Eric Christopher [Fri, 19 Nov 2010 22:30:02 +0000 (22:30 +0000)]
Refactor address mode handling into a single struct (ala x86), this
should give allow a wider range of addressing modes.

No functional change.

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

13 years agoFix encoding for ARM MLS instruction.
Jim Grosbach [Fri, 19 Nov 2010 22:22:37 +0000 (22:22 +0000)]
Fix encoding for ARM MLS instruction.

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

13 years agoWhen folding addressing modes in CodeGenPrepare, attempt to look through PHI nodes
Owen Anderson [Fri, 19 Nov 2010 22:15:03 +0000 (22:15 +0000)]
When folding addressing modes in CodeGenPrepare, attempt to look through PHI nodes
if all the operands of the PHI are equivalent.  This allows CodeGenPrepare to undo
unprofitable PRE transforms.

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

13 years agoAdd ARM encoding information for STRD.
Jim Grosbach [Fri, 19 Nov 2010 22:14:31 +0000 (22:14 +0000)]
Add ARM encoding information for STRD.

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

13 years agoShuffle things around a bit to keep like things together. Tidy up formatting.
Jim Grosbach [Fri, 19 Nov 2010 22:06:57 +0000 (22:06 +0000)]
Shuffle things around a bit to keep like things together. Tidy up formatting.

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

13 years agoRevert accidental commit.
Bill Wendling [Fri, 19 Nov 2010 22:06:18 +0000 (22:06 +0000)]
Revert accidental commit.

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

13 years agoChange long binary encodings to use hex instead. It's more readable. Also
Bill Wendling [Fri, 19 Nov 2010 22:02:18 +0000 (22:02 +0000)]
Change long binary encodings to use hex instead. It's more readable. Also
initialize missing bit.

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

13 years agoPrefetch has a MemOperand now. FileCheckize a test.
Dale Johannesen [Fri, 19 Nov 2010 21:49:38 +0000 (21:49 +0000)]
Prefetch has a MemOperand now.  FileCheckize a test.
This finishes up 8460971.

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

13 years agoFactor out operand encoding bits for ARM addressing mode 2 store instructions.
Jim Grosbach [Fri, 19 Nov 2010 21:35:06 +0000 (21:35 +0000)]
Factor out operand encoding bits for ARM addressing mode 2 store instructions.

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

13 years agoDelete another dead class.
Jim Grosbach [Fri, 19 Nov 2010 21:16:08 +0000 (21:16 +0000)]
Delete another dead class.

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

13 years agowhitespace tweak.
Jim Grosbach [Fri, 19 Nov 2010 21:14:37 +0000 (21:14 +0000)]
whitespace tweak.

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

13 years agoFix a use after free. Patch by Frits van Bommel.
Rafael Espindola [Fri, 19 Nov 2010 21:14:29 +0000 (21:14 +0000)]
Fix a use after free. Patch by Frits van Bommel.

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

13 years agoRefactor PICSTR* instructions to really be pseudos. Nuke dead classes.
Jim Grosbach [Fri, 19 Nov 2010 21:14:02 +0000 (21:14 +0000)]
Refactor PICSTR* instructions to really be pseudos. Nuke dead classes.

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

13 years agoRename ARM .td class AIldst1 to AI2ldst for consistency with the other classes.
Jim Grosbach [Fri, 19 Nov 2010 21:07:51 +0000 (21:07 +0000)]
Rename ARM .td class AIldst1 to AI2ldst for consistency with the other classes.

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

13 years agoAdd ARM binary encoding information for the rest of the indexed loads.
Jim Grosbach [Fri, 19 Nov 2010 19:41:26 +0000 (19:41 +0000)]
Add ARM binary encoding information for the rest of the indexed loads.

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

13 years agoRename methods for clarity instead of brevity. No functional changes.
Jakob Stoklund Olesen [Fri, 19 Nov 2010 19:10:39 +0000 (19:10 +0000)]
Rename methods for clarity instead of brevity. No functional changes.

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

13 years agoMake isScalarToVector to return false if the node is a scalar. This will prevent
Mon P Wang [Fri, 19 Nov 2010 19:08:12 +0000 (19:08 +0000)]
Make isScalarToVector to return false if the node is a scalar. This will prevent
DAGCombine from making an illegal transformation of bitcast of a scalar to a
vector into a scalar_to_vector.

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

13 years agoInclude raw_ostream.h unconditionally even if it is only used for debug code.
Jakob Stoklund Olesen [Fri, 19 Nov 2010 18:51:46 +0000 (18:51 +0000)]
Include raw_ostream.h unconditionally even if it is only used for debug code.

We don't want any clients acidentally depending on this and then failing in a
-Asserts build.

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

13 years agoAdded support for the Mach-O .symbol_resolver directive. rdar://8673046
Kevin Enderby [Fri, 19 Nov 2010 18:39:33 +0000 (18:39 +0000)]
Added support for the Mach-O .symbol_resolver directive.  rdar://8673046

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

13 years agoRemove dead code.
Jim Grosbach [Fri, 19 Nov 2010 18:18:37 +0000 (18:18 +0000)]
Remove dead code.

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

13 years agoARM LDRD binary encoding.
Jim Grosbach [Fri, 19 Nov 2010 18:16:46 +0000 (18:16 +0000)]
ARM LDRD binary encoding.

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

13 years agoRemove hard tabs.
Jim Grosbach [Fri, 19 Nov 2010 18:01:37 +0000 (18:01 +0000)]
Remove hard tabs.

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

13 years agoRemove trailing whitespace.
Jim Grosbach [Fri, 19 Nov 2010 17:11:02 +0000 (17:11 +0000)]
Remove trailing whitespace.

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

13 years agoAvoid release build warnings.
Benjamin Kramer [Fri, 19 Nov 2010 16:36:02 +0000 (16:36 +0000)]
Avoid release build warnings.

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

13 years agoFix decoding ambiguities of stdrex and ldrex.
Owen Anderson [Fri, 19 Nov 2010 13:11:50 +0000 (13:11 +0000)]
Fix decoding ambiguities of stdrex and ldrex.

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

13 years agoSilence warning about an uninitialized variable.
Benjamin Kramer [Fri, 19 Nov 2010 11:37:26 +0000 (11:37 +0000)]
Silence warning about an uninitialized variable.

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

13 years agoRemove threading of Xor over selects and phis, with an explanation
Duncan Sands [Fri, 19 Nov 2010 09:20:39 +0000 (09:20 +0000)]
Remove threading of Xor over selects and phis, with an explanation
of why such threading is pointless.

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

13 years agoSimplify, no functionality change.
Duncan Sands [Fri, 19 Nov 2010 08:33:20 +0000 (08:33 +0000)]
Simplify, no functionality change.

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

13 years agoAdd a MCLineSectionOrder vector so that we produce the line tables in a
Rafael Espindola [Fri, 19 Nov 2010 07:41:23 +0000 (07:41 +0000)]
Add a MCLineSectionOrder vector so that we produce the line tables in a
deterministic order.

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

13 years agoThese instructions are thumb2 only.
Evan Cheng [Fri, 19 Nov 2010 06:28:11 +0000 (06:28 +0000)]
These instructions are thumb2 only.

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

13 years agoFix an obvious oversight.
Evan Cheng [Fri, 19 Nov 2010 06:15:10 +0000 (06:15 +0000)]
Fix an obvious oversight.

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

13 years agoDon't attempt trivial coalescing for sub-register copies.
Jakob Stoklund Olesen [Fri, 19 Nov 2010 05:45:24 +0000 (05:45 +0000)]
Don't attempt trivial coalescing for sub-register copies.

Patch by Krister Wombell!

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

13 years agoWork around GCC 4.0 build error:
Jakob Stoklund Olesen [Fri, 19 Nov 2010 05:36:51 +0000 (05:36 +0000)]
Work around GCC 4.0 build error:

llvm/include/llvm/ADT/IntervalMap.h:334: error: '((llvm::IntervalMapImpl::DesiredNodeBytes / static_cast<unsigned int>(((2 * sizeof (KeyT)) + sizeof (ValT)))) >? 3u)' is not a valid template argument for type 'unsigned int' because it is a non-constant expression

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

13 years agoAdd an assert.
Rafael Espindola [Fri, 19 Nov 2010 04:55:36 +0000 (04:55 +0000)]
Add an assert.

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

13 years agoAdd ADT/IntervalMap.
Jakob Stoklund Olesen [Fri, 19 Nov 2010 04:47:19 +0000 (04:47 +0000)]
Add ADT/IntervalMap.

This is a sorted interval map data structure for small keys and values with
automatic coalescing and bidirectional iteration over coalesced intervals.

Except for coalescing intervals, it provides similar functionality to std::map.
It is however much more compact for small keys and values, and hopefully faster
too.

The container object itself can hold the first few intervals without any
allocations, then it switches to a cache conscious B+-tree representation. A
recycling allocator can be shared between many containers, even between
containers holding different types.

The IntervalMap is initially intended to be used with SlotIndex intervals for:

- Backing store for LiveIntervalUnion that is smaller and faster than std::set.

- Backing store for LiveInterval with less overhead than std::vector for typical
  intervals and O(N log N) merging of large intervals. 99% of virtual registers
  need 4 entries or less and would benefit from the small object optimization.

- Backing store for LiveDebugVariable which doesn't exist yet, but will track
  debug variables during register allocation.

This is a work in progress. Missing items are:

- Performance metrics.
- erase().
- insert() shrinkage.
- clear().
- More performance metrics.
- Simplification and detemplatization.

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

13 years agoFix llvm-gcc boostrap on OS X by avoiding printing sleb and uleb when
Rafael Espindola [Fri, 19 Nov 2010 04:10:13 +0000 (04:10 +0000)]
Fix llvm-gcc boostrap on OS X by avoiding printing sleb and uleb when
possible.

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

13 years agounittests/CMakeLists.txt: [PR8225] Tweak linking JITTests on MSVC to add JITTests...
NAKAMURA Takumi [Fri, 19 Nov 2010 03:19:42 +0000 (03:19 +0000)]
unittests/CMakeLists.txt: [PR8225] Tweak linking JITTests on MSVC to add JITTests.def.

CMake can pass *.def to link.exe.

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

13 years agounittests/CMakeLists.txt: Suppress building ValueMapTest on MSVC older than 10(VS2010).
NAKAMURA Takumi [Fri, 19 Nov 2010 03:19:32 +0000 (03:19 +0000)]
unittests/CMakeLists.txt: Suppress building ValueMapTest on MSVC older than 10(VS2010).

MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
See issue#331418 in Visual Studio.

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

13 years agolit.GoogleTest: On case-insensitive filesystem, matching should be case-insensitive...
NAKAMURA Takumi [Fri, 19 Nov 2010 03:19:26 +0000 (03:19 +0000)]
lit.GoogleTest: On case-insensitive filesystem, matching should be case-insensitive when directory name is checked with test_sub_dir.

On MSVS8, ${CMAKE_CFG_INTDIR}, aka $(OutDir), has capitalized name(eg. Debug), although $(OutDir) is made with lower case(eg. debug).

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

13 years agoCMakeLists.txt: On MSVS10, touch LLVM.sln as workaround, w/e project files are change...
NAKAMURA Takumi [Fri, 19 Nov 2010 03:19:18 +0000 (03:19 +0000)]
CMakeLists.txt: On MSVS10, touch LLVM.sln as workaround, w/e project files are changed, to avoid the Dialog Hell. Thanks to Oscar.

FIXME: This could be removed with future version of CMake.

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