oota-llvm.git
12 years agoRemove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its
Jay Foad [Mon, 22 Aug 2011 09:37:03 +0000 (09:37 +0000)]
Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its
functionality into DEFINE_TRANSPARENT_OPERAND_ACCESSORS. A side-effect
of this is that the operand accessors for Constants will tolerate NULL
operands, fixing PR10663.

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

12 years agoPathV2: Handle more reserved filenames on windows.
Benjamin Kramer [Sat, 20 Aug 2011 21:36:38 +0000 (21:36 +0000)]
PathV2: Handle more reserved filenames on windows.

Patch by Aaron Ballman!

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

12 years agoFix AsmParser binary precedence for shift operators.
Jim Grosbach [Sat, 20 Aug 2011 16:24:13 +0000 (16:24 +0000)]
Fix AsmParser binary precedence for shift operators.

rdar://9976729

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

12 years agoTidy up. Whitespace.
Jim Grosbach [Sat, 20 Aug 2011 16:10:09 +0000 (16:10 +0000)]
Tidy up. Whitespace.

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

12 years agoAdd constant folding support for bitcasts of splat vectors to integers.
Nadav Rotem [Sat, 20 Aug 2011 14:02:29 +0000 (14:02 +0000)]
Add constant folding support for bitcasts of splat vectors to integers.

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

12 years agolib/Support/CrashRecoveryContext.cpp: Add Win32 support to CrashRecoveryContext....
NAKAMURA Takumi [Sat, 20 Aug 2011 06:35:36 +0000 (06:35 +0000)]
lib/Support/CrashRecoveryContext.cpp: Add Win32 support to CrashRecoveryContext. Thanks to Aaron Ballman!

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

12 years agolib/Support/Windows/Windows.h: Require at least Windows XP(5.1) API. We will not...
NAKAMURA Takumi [Sat, 20 Aug 2011 06:35:31 +0000 (06:35 +0000)]
lib/Support/Windows/Windows.h: Require at least Windows XP(5.1) API. We will not support Windows 2000 any more.

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

12 years agoutils/lit/lit/TestingConfig.py: Pass TEMP and TMP to tests on Win32 hosts.
NAKAMURA Takumi [Sat, 20 Aug 2011 05:44:58 +0000 (05:44 +0000)]
utils/lit/lit/TestingConfig.py: Pass TEMP and TMP to tests on Win32 hosts.

Win32 GetTempPath() tends to pick up %WINDIR% when neither TEMP nor TMP was found. %WINDIR% should not be treated writable on recent Windows OS.

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

12 years agoutils/lit/lit/TestingConfig.py: Split out environment vars for Win32.
NAKAMURA Takumi [Sat, 20 Aug 2011 05:44:52 +0000 (05:44 +0000)]
utils/lit/lit/TestingConfig.py: Split out environment vars for Win32.

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

12 years agoCast through intptr_t, ISO C++ requires it.
Benjamin Kramer [Sat, 20 Aug 2011 02:22:42 +0000 (02:22 +0000)]
Cast through intptr_t, ISO C++ requires it.

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

12 years agoRemove remainder of migrated or obsolete tests from FrontendC and remove
Eric Christopher [Sat, 20 Aug 2011 01:04:56 +0000 (01:04 +0000)]
Remove remainder of migrated or obsolete tests from FrontendC and remove
the empty directory.

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

12 years agoRemove the VMOVQQ pseudo instruction.
Chad Rosier [Sat, 20 Aug 2011 00:52:40 +0000 (00:52 +0000)]
Remove the VMOVQQ pseudo instruction.

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

12 years agoRemove migrated or obsolete tests.
Eric Christopher [Sat, 20 Aug 2011 00:49:30 +0000 (00:49 +0000)]
Remove migrated or obsolete tests.

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

12 years agoRemove VMOVQQQQ pseudo instruction.
Chad Rosier [Sat, 20 Aug 2011 00:40:14 +0000 (00:40 +0000)]
Remove VMOVQQQQ pseudo instruction.

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

12 years agoRemove obsolete or migrated tests.
Eric Christopher [Sat, 20 Aug 2011 00:38:20 +0000 (00:38 +0000)]
Remove obsolete or migrated tests.

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

12 years agoWith the fix in r138164: "Add <imp-def> operands to QQ and QQQQ stack loads."
Chad Rosier [Sat, 20 Aug 2011 00:34:45 +0000 (00:34 +0000)]
With the fix in r138164: "Add <imp-def> operands to QQ and QQQQ stack loads."
-verify-machineinstrs can be enabled for this test case.

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

12 years agoRemove obsoleted test.
Eric Christopher [Sat, 20 Aug 2011 00:26:30 +0000 (00:26 +0000)]
Remove obsoleted test.

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

12 years agoRemove tests that were either migrated to clang or are obsolete.
Eric Christopher [Sat, 20 Aug 2011 00:25:42 +0000 (00:25 +0000)]
Remove tests that were either migrated to clang or are obsolete.

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

12 years agoRemove the rest of the files in FrontendC++ and the directory itself.
Eric Christopher [Sat, 20 Aug 2011 00:17:58 +0000 (00:17 +0000)]
Remove the rest of the files in FrontendC++ and the directory itself.

All tests have been updated and migrated into clang or were obsolete.

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

12 years agoAdd <imp-def> operands to QQ and QQQQ stack loads.
Jakob Stoklund Olesen [Sat, 20 Aug 2011 00:17:45 +0000 (00:17 +0000)]
Add <imp-def> operands to QQ and QQQQ stack loads.

This pleases the register scavenger and brings
test/CodeGen/ARM/2011-08-12-vmovqqqq-pseudo.ll a little closer to
working with -verify-machineinstrs.

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

12 years agoVMOVQQQQs pseudo instructions are only created by ARMBaseInstrInfo::copyPhysReg.
Chad Rosier [Sat, 20 Aug 2011 00:17:25 +0000 (00:17 +0000)]
VMOVQQQQs pseudo instructions are only created by ARMBaseInstrInfo::copyPhysReg.
Therefore, rather then generate a pseudo instruction, which is later expanded,
generate the necessary instructions in place.

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

12 years agoRemove migrated or obsolete tests.
Eric Christopher [Sat, 20 Aug 2011 00:08:36 +0000 (00:08 +0000)]
Remove migrated or obsolete tests.

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

12 years agoIf we're splitting the landing pad block and assigning it only one predecessor,
Bill Wendling [Fri, 19 Aug 2011 23:46:30 +0000 (23:46 +0000)]
If we're splitting the landing pad block and assigning it only one predecessor,
then don't split it a second time, since that block will be dead.

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

12 years agoRemove migrated or obsolete tests.
Eric Christopher [Fri, 19 Aug 2011 23:41:50 +0000 (23:41 +0000)]
Remove migrated or obsolete tests.

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

12 years agoDo not use named md nodes to track variables that are completely optimized. This...
Devang Patel [Fri, 19 Aug 2011 23:28:12 +0000 (23:28 +0000)]
Do not use named md nodes to track variables that are completely optimized. This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly.

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

12 years agoThumb parsing and encoding support for NOP.
Jim Grosbach [Fri, 19 Aug 2011 23:24:36 +0000 (23:24 +0000)]
Thumb parsing and encoding support for NOP.

The irony is not lost that this is not a completely trivial patchset.

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

12 years agoRemove obsolete test.
Eric Christopher [Fri, 19 Aug 2011 23:18:12 +0000 (23:18 +0000)]
Remove obsolete test.

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

12 years agoRemove migrated test.
Eric Christopher [Fri, 19 Aug 2011 23:18:10 +0000 (23:18 +0000)]
Remove migrated test.

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

12 years agoUse regex to remove false dependencies on register allocation.
Jim Grosbach [Fri, 19 Aug 2011 23:10:31 +0000 (23:10 +0000)]
Use regex to remove false dependencies on register allocation.

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

12 years agoRemove obsolete or migrated tests.
Eric Christopher [Fri, 19 Aug 2011 23:08:41 +0000 (23:08 +0000)]
Remove obsolete or migrated tests.

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

12 years agoFix bug in function IsShiftedMask. Remove parameter SizeInBits, which is not
Akira Hatanaka [Fri, 19 Aug 2011 22:59:00 +0000 (22:59 +0000)]
Fix bug in function IsShiftedMask. Remove parameter SizeInBits, which is not
needed for Mips32.

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

12 years agoThumb assembly parsing and encoding for NEG.
Jim Grosbach [Fri, 19 Aug 2011 22:51:03 +0000 (22:51 +0000)]
Thumb assembly parsing and encoding for NEG.

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

12 years agoRoll back the rest of r126557. It's a hack that will break in some obscure cases.
Benjamin Kramer [Fri, 19 Aug 2011 22:39:31 +0000 (22:39 +0000)]
Roll back the rest of r126557. It's a hack that will break in some obscure cases.

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

12 years agoFix NEG alias
Jim Grosbach [Fri, 19 Aug 2011 22:30:58 +0000 (22:30 +0000)]
Fix NEG alias

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

12 years agoBe more lenient on tied operand matching for MUL.
Jim Grosbach [Fri, 19 Aug 2011 22:30:46 +0000 (22:30 +0000)]
Be more lenient on tied operand matching for MUL.

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

12 years agoRe-write part of VEX encoding logic, to be more easy to read! Also fix
Bruno Cardoso Lopes [Fri, 19 Aug 2011 22:27:29 +0000 (22:27 +0000)]
Re-write part of VEX encoding logic, to be more easy to read! Also fix
a bug and add a testcase!

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

12 years agoRemove tests migrated to clang.
Eric Christopher [Fri, 19 Aug 2011 22:26:09 +0000 (22:26 +0000)]
Remove tests migrated to clang.

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

12 years agoRemove previously migrated test.
Eric Christopher [Fri, 19 Aug 2011 22:26:06 +0000 (22:26 +0000)]
Remove previously migrated test.

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

12 years agoUpdate tests.
Jim Grosbach [Fri, 19 Aug 2011 22:19:48 +0000 (22:19 +0000)]
Update tests.

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

12 years agoRemove tests migrated to clang or are unnecessary.
Eric Christopher [Fri, 19 Aug 2011 22:17:09 +0000 (22:17 +0000)]
Remove tests migrated to clang or are unnecessary.

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

12 years agoThumb assembly parsing and encoding for MVN.
Jim Grosbach [Fri, 19 Aug 2011 22:09:23 +0000 (22:09 +0000)]
Thumb assembly parsing and encoding for MVN.

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

12 years agoThumb assembly parsing and encoding for MUL.
Jim Grosbach [Fri, 19 Aug 2011 22:07:46 +0000 (22:07 +0000)]
Thumb assembly parsing and encoding for MUL.

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

12 years agoAdd IntervalMap::const_iterator::atBegin().
Jakob Stoklund Olesen [Fri, 19 Aug 2011 22:04:19 +0000 (22:04 +0000)]
Add IntervalMap::const_iterator::atBegin().

It returns true when operator--() can be called.

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

12 years agoThe landingpad instruction isn't dead simply because it's value isn't used.
Bill Wendling [Fri, 19 Aug 2011 21:52:06 +0000 (21:52 +0000)]
The landingpad instruction isn't dead simply because it's value isn't used.

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

12 years agoRemove this test. The feature and test have already been migrated to clang.
Eric Christopher [Fri, 19 Aug 2011 21:51:41 +0000 (21:51 +0000)]
Remove this test. The feature and test have already been migrated to clang.

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

12 years agoRemove tests migrated to clang.
Eric Christopher [Fri, 19 Aug 2011 21:51:39 +0000 (21:51 +0000)]
Remove tests migrated to clang.

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

12 years agoEli points out that this is what report_fatal_error() is for.
Nick Lewycky [Fri, 19 Aug 2011 21:45:19 +0000 (21:45 +0000)]
Eli points out that this is what report_fatal_error() is for.

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

12 years agoRemove 2009-09-04-modify-crash.cpp as clang doesn't support 32-bit kext.
Eric Christopher [Fri, 19 Aug 2011 21:21:28 +0000 (21:21 +0000)]
Remove 2009-09-04-modify-crash.cpp as clang doesn't support 32-bit kext.

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

12 years agoRemove migrated tests.
Eric Christopher [Fri, 19 Aug 2011 21:21:26 +0000 (21:21 +0000)]
Remove migrated tests.

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

12 years agoRemove migrated test.
Eric Christopher [Fri, 19 Aug 2011 21:21:24 +0000 (21:21 +0000)]
Remove migrated test.

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

12 years agoRemove this test. There are other, duplicates, in the clang test suite.
Eric Christopher [Fri, 19 Aug 2011 21:21:21 +0000 (21:21 +0000)]
Remove this test. There are other, duplicates, in the clang test suite.

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

12 years agoAdd file.
Eric Christopher [Fri, 19 Aug 2011 21:21:20 +0000 (21:21 +0000)]
Add file.

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

12 years agoMove 2010-03-22-empty-baseclass.cpp from a frontend+opt test to just
Eric Christopher [Fri, 19 Aug 2011 21:21:14 +0000 (21:21 +0000)]
Move 2010-03-22-empty-baseclass.cpp from a frontend+opt test to just
an opt test.

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

12 years agoAdd FIXME.
Jim Grosbach [Fri, 19 Aug 2011 20:48:54 +0000 (20:48 +0000)]
Add FIXME.

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

12 years agoThumb assembly parsing and encoding for MOV.
Jim Grosbach [Fri, 19 Aug 2011 20:46:54 +0000 (20:46 +0000)]
Thumb assembly parsing and encoding for MOV.

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

12 years agoAllow non zero_reg explicit values for OptionalDefOperands in aliases.
Jim Grosbach [Fri, 19 Aug 2011 20:33:06 +0000 (20:33 +0000)]
Allow non zero_reg explicit values for OptionalDefOperands in aliases.

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

12 years agoTidy up. Tab character.
Jim Grosbach [Fri, 19 Aug 2011 20:30:19 +0000 (20:30 +0000)]
Tidy up. Tab character.

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

12 years agoThis is not actually unreachable, so don't use llvm_unreachable for it. Since
Nick Lewycky [Fri, 19 Aug 2011 20:14:27 +0000 (20:14 +0000)]
This is not actually unreachable, so don't use llvm_unreachable for it. Since
the intent seems to be to terminate even in Release builds, just use abort()
directly.

If program flow ever reaches a __builtin_unreachable (which llvm_unreachable is
#define'd to on newer GCCs) then the program is undefined.

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

12 years agoTidy up. Formatting.
Jim Grosbach [Fri, 19 Aug 2011 19:53:51 +0000 (19:53 +0000)]
Tidy up. Formatting.

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

12 years agoTab characters.
Jim Grosbach [Fri, 19 Aug 2011 19:41:46 +0000 (19:41 +0000)]
Tab characters.

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

12 years agoThumb assembly parsing and encoding for LSR.
Jim Grosbach [Fri, 19 Aug 2011 19:34:22 +0000 (19:34 +0000)]
Thumb assembly parsing and encoding for LSR.

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

12 years agoThumb assembly parsing and encoding for LSL(register).
Jim Grosbach [Fri, 19 Aug 2011 19:30:58 +0000 (19:30 +0000)]
Thumb assembly parsing and encoding for LSL(register).

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

12 years agoThumb assembly parsing and encoding for LSL(immediate).
Jim Grosbach [Fri, 19 Aug 2011 19:29:25 +0000 (19:29 +0000)]
Thumb assembly parsing and encoding for LSL(immediate).

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

12 years agoThumb assembly parsing and encoding for LDRSB and LDRSH.
Jim Grosbach [Fri, 19 Aug 2011 19:17:58 +0000 (19:17 +0000)]
Thumb assembly parsing and encoding for LDRSB and LDRSH.

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

12 years agoThumb assembly parsing and encoding for LDRH.
Jim Grosbach [Fri, 19 Aug 2011 18:55:51 +0000 (18:55 +0000)]
Thumb assembly parsing and encoding for LDRH.

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

12 years agoThumb assembly parsing and encoding for LDRB.
Jim Grosbach [Fri, 19 Aug 2011 18:49:59 +0000 (18:49 +0000)]
Thumb assembly parsing and encoding for LDRB.

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

12 years agoThumb assembly parsing and encoding for LDR(register).
Jim Grosbach [Fri, 19 Aug 2011 18:35:06 +0000 (18:35 +0000)]
Thumb assembly parsing and encoding for LDR(register).

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

12 years agoFixed a memory bug in the MCDisassembler where
Sean Callanan [Fri, 19 Aug 2011 18:23:06 +0000 (18:23 +0000)]
Fixed a memory bug in the MCDisassembler where
MCParsedAsmOperand objects were being leaked.

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

12 years agoThumb assembly parsing and encoding for LDR(literal).
Jim Grosbach [Fri, 19 Aug 2011 18:20:48 +0000 (18:20 +0000)]
Thumb assembly parsing and encoding for LDR(literal).

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

12 years agoThumb assembly parsing and encoding for LDR(immediate) form T2.
Jim Grosbach [Fri, 19 Aug 2011 18:13:48 +0000 (18:13 +0000)]
Thumb assembly parsing and encoding for LDR(immediate) form T2.

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

12 years agoUse helper function to check for low registers.
Jim Grosbach [Fri, 19 Aug 2011 17:57:22 +0000 (17:57 +0000)]
Use helper function to check for low registers.

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

12 years agoThumb assembly parsing and encoding for LDR(immediate) form T1.
Jim Grosbach [Fri, 19 Aug 2011 17:55:24 +0000 (17:55 +0000)]
Thumb assembly parsing and encoding for LDR(immediate) form T1.

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

12 years agoFixed some punctuation. Sentences can be combined with semi-colons but not
John Criswell [Fri, 19 Aug 2011 16:57:55 +0000 (16:57 +0000)]
Fixed some punctuation.  Sentences can be combined with semi-colons but not
commas.

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

12 years agoAdd explanatory comment.
Jim Grosbach [Fri, 19 Aug 2011 16:52:32 +0000 (16:52 +0000)]
Add explanatory comment.

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

12 years agoHave SPU backend use the external TCE scheduler, if the library is loaded as a
Kalle Raiskila [Fri, 19 Aug 2011 10:50:24 +0000 (10:50 +0000)]
Have SPU backend use the external TCE scheduler, if the library is loaded as a
module.

Patch by Pekka Jääskeläinen.

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

12 years agoAdd TB encoding to VEX versions of SSE fp logical operations to fix disassembler
Craig Topper [Fri, 19 Aug 2011 05:28:50 +0000 (05:28 +0000)]
Add TB encoding to VEX versions of SSE fp logical operations to fix disassembler

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

12 years agoAdd test case for r138018.
Jakob Stoklund Olesen [Fri, 19 Aug 2011 04:30:24 +0000 (04:30 +0000)]
Add test case for r138018.

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

12 years agoFix PR10677. Initial patch and idea by Peter Cooper but I've changed the
Bruno Cardoso Lopes [Fri, 19 Aug 2011 02:23:56 +0000 (02:23 +0000)]
Fix PR10677. Initial patch and idea by Peter Cooper but I've changed the
implementation!

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

12 years agoAdd llc flags to disable machine DCE and CSE.
Jakob Stoklund Olesen [Fri, 19 Aug 2011 02:05:35 +0000 (02:05 +0000)]
Add llc flags to disable machine DCE and CSE.

This is useful for unit tests.

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

12 years agoMake a bunch of symbols private.
Benjamin Kramer [Fri, 19 Aug 2011 01:42:18 +0000 (01:42 +0000)]
Make a bunch of symbols private.

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

12 years agoC API functions must be able to see their extern "C" definitions, or it will be impos...
Benjamin Kramer [Fri, 19 Aug 2011 01:36:54 +0000 (01:36 +0000)]
C API functions must be able to see their extern "C" definitions, or it will be impossible to call them from C.

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

12 years agoDon't treat a partial <def,undef> operand as a read.
Jakob Stoklund Olesen [Fri, 19 Aug 2011 00:30:17 +0000 (00:30 +0000)]
Don't treat a partial <def,undef> operand as a read.

Normally, a partial register def is treated as reading the
super-register unless it also defines the full register like this:

  %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def>

This patch also uses the <undef> flag on partial defs to recognize
non-reading operands:

  %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit

This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses
would treat a coalesced copy as still reading the register, extending
the live range artificially.

My test case only works when I disable DCE so a dead copy is left for
RegisterCoalescer, so I am not including it.

<rdar://problem/9967101>

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

12 years agoTrack a retain+release nesting level independently of the
Dan Gohman [Fri, 19 Aug 2011 00:26:36 +0000 (00:26 +0000)]
Track a retain+release nesting level independently of the
known-incremented level, because the two concepts can be used
to prove the saftey of a retain+release removal in different
ways.

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

12 years agoIntelligently split the landing pad block.
Bill Wendling [Fri, 19 Aug 2011 00:09:22 +0000 (00:09 +0000)]
Intelligently split the landing pad block.

We have to be careful when splitting the landing pad block, because the
landingpad instruction is required to remain as the first non-PHI of an invoke's
unwind edge. To retain this, we split the block into two blocks, moving the
predecessors within the loop to one block and the remaining predecessors to the
other. The landingpad instruction is cloned into the new blocks.

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

12 years agoAdd SplitLandingPadPredecessors().
Bill Wendling [Fri, 19 Aug 2011 00:05:40 +0000 (00:05 +0000)]
Add SplitLandingPadPredecessors().

SplitLandingPadPredecessors is similar to SplitBlockPredecessors in that it
splits the current block and attaches a set of predecessors to the new basic
block. However, it differs from SplitBlockPredecessors in that it's specifically
designed to handle landing pad blocks.

Two new basic blocks are created: one that is has the vector of predecessors as
its predecessors and one that has the remaining predecessors as its
predecessors. Those two new blocks then receive a cloned copy of the landingpad
instruction from the original block. The landingpad instructions are joined in a
PHI, etc. Like SplitBlockPredecessors, it updates the LLVM IR, AliasAnalysis,
DominatorTree, DominanceFrontier, LoopInfo, and LCCSA analyses.

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

12 years agoRe-encoded 128-bit AVX versions of SQRT, RSQRT, RCP have 3 operands
Bruno Cardoso Lopes [Thu, 18 Aug 2011 23:59:21 +0000 (23:59 +0000)]
Re-encoded 128-bit AVX versions of SQRT, RSQRT, RCP have 3 operands
instead of 2. They were already defined this way in their regular
version, but not for the intrinsics versions (*_Int), and that would work
for assembly emission but not for object code, since a MachineOperand
would be missing. This commit fix PR10697.

Also removed the {VSQRT,VRSQRT,VRCP}r_Int forms and match the intrinsic
via INSERT_SUBREG+EXTRACT_SUBREG patterns. The same couldn't be done for
memory versions because sse_load_f32/sse_load_f64 operand need special
handling and don't work like regular "addr" operands.

There are right now 114 "*_Int" and 98 "Int_*" forms! I'm slowly
removing them as I step through, but hope we can get rid of these
someday, they are really annoying :)

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

12 years agoThere is no need to add file as context for subroutine type. The subroutine type...
Devang Patel [Thu, 18 Aug 2011 23:50:57 +0000 (23:50 +0000)]
There is no need to add file as context for subroutine type. The subroutine type does not need any context.

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

12 years agoadd the comments of each declaration follow it, making it easier to read and compare...
Renato Golin [Thu, 18 Aug 2011 23:43:14 +0000 (23:43 +0000)]
add the comments of each declaration follow it, making it easier to read and compare to GCC's result.

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

12 years agoUse 'getFirstInsertionPt' when trying to insert new instructions during LICM.
Bill Wendling [Thu, 18 Aug 2011 23:42:36 +0000 (23:42 +0000)]
Use 'getFirstInsertionPt' when trying to insert new instructions during LICM.

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

12 years agoUse subword loads instead of a 4-byte load when the size of a structure (or a
Akira Hatanaka [Thu, 18 Aug 2011 23:39:37 +0000 (23:39 +0000)]
Use subword loads instead of a 4-byte load when the size of a structure (or a
piece of it) that is being passed by value is smaller than a word.

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

12 years agoEliminate unnecessary forwarding function.
Devang Patel [Thu, 18 Aug 2011 23:17:55 +0000 (23:17 +0000)]
Eliminate unnecessary forwarding function.

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

12 years agoAdd NativeClient operating system support.
Ivan Krasin [Thu, 18 Aug 2011 22:54:21 +0000 (22:54 +0000)]
Add NativeClient operating system support.

This patch adds support of NativeClient (*-*-nacl) OS support to LLVM.
It's already supported in autoconf/config.sub.

The motivation for this change is to start upstreaming PNaCl work. The
whole set of patches include llvm backends (i686, x86_64, ARM),
llvm-gcc (probably, would not be upstreamed because it's deprecated)
and clang (the work has been just started, the amount of changes is
going to be low and the most of the work is expected to be done close
to the mainline).

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

12 years agoSTC2L_POST and STC2L_POST should be handled the same as STCL_POST/LDC_POST for the...
Owen Anderson [Thu, 18 Aug 2011 22:47:44 +0000 (22:47 +0000)]
STC2L_POST and STC2L_POST should be handled the same as STCL_POST/LDC_POST for the purposes of decoding all operands except the predicate.
Found by randomized testing.

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

12 years agoFix the decoding of RFE instruction. RFEs have the load bit set, while SRSs have...
Owen Anderson [Thu, 18 Aug 2011 22:31:17 +0000 (22:31 +0000)]
Fix the decoding of RFE instruction.  RFEs have the load bit set, while SRSs have it unset.

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

12 years agoAdd new DIE into the map asap.
Devang Patel [Thu, 18 Aug 2011 22:21:50 +0000 (22:21 +0000)]
Add new DIE into the map asap.

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

12 years agoRemember to fill in some operands so we can print _something_ coherent even when...
Owen Anderson [Thu, 18 Aug 2011 22:15:25 +0000 (22:15 +0000)]
Remember to fill in some operands so we can print _something_ coherent even when decoding the CPS instruction soft-fails.

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

12 years agoImprove handling of failure and unpredictable cases for CPS, STR, and SMLA instructions.
Owen Anderson [Thu, 18 Aug 2011 22:11:02 +0000 (22:11 +0000)]
Improve handling of failure and unpredictable cases for CPS, STR, and SMLA instructions.
Fixes a large class of disassembler crashes found by randomized testing.

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

12 years agoFastISel: avoid function calls between the materialization of the constant and its...
Ivan Krasin [Thu, 18 Aug 2011 22:06:10 +0000 (22:06 +0000)]
FastISel: avoid function calls between the materialization of the constant and its use.

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

12 years agoThumb assembly parsing and encoding for LDM instruction.
Jim Grosbach [Thu, 18 Aug 2011 21:50:53 +0000 (21:50 +0000)]
Thumb assembly parsing and encoding for LDM instruction.

Fix base register type and canonicallize to the "ldm" spelling rather than
"ldmia." Add diagnostics for incorrect writeback token and out-of-range
registers.

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

12 years agoMake it clear that this code is iterating in reverse order through the array.
Dan Gohman [Thu, 18 Aug 2011 21:27:42 +0000 (21:27 +0000)]
Make it clear that this code is iterating in reverse order through the array.

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