oota-llvm.git
14 years agoFix comment.
Eric Christopher [Sun, 17 Oct 2010 01:42:53 +0000 (01:42 +0000)]
Fix comment.

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

14 years agoTurn on AddOperator folding in GEP.
Eric Christopher [Sun, 17 Oct 2010 01:41:46 +0000 (01:41 +0000)]
Turn on AddOperator folding in GEP.

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

14 years agoUse the i12 immediate versions of the load instructions - they're handled
Eric Christopher [Sun, 17 Oct 2010 01:40:27 +0000 (01:40 +0000)]
Use the i12 immediate versions of the load instructions - they're handled
more in the post-passes.

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

14 years agoAdd a MCObjectFormat class so that code common to all targets that use a
Rafael Espindola [Sat, 16 Oct 2010 18:23:53 +0000 (18:23 +0000)]
Add a MCObjectFormat class so that code common to all targets that use a
single object format can be shared.

This also adds support for

mov zed+(bar-foo), %eax

on ELF and COFF targets.

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

14 years agoHack around incompatible pointer warnings.
Benjamin Kramer [Sat, 16 Oct 2010 15:43:02 +0000 (15:43 +0000)]
Hack around incompatible pointer warnings.

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

14 years agoEliminate some calls to Value::getNameStr.
Benjamin Kramer [Sat, 16 Oct 2010 11:28:23 +0000 (11:28 +0000)]
Eliminate some calls to Value::getNameStr.

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

14 years agoUnbreak test on non-COFF targets.
Benjamin Kramer [Sat, 16 Oct 2010 11:27:13 +0000 (11:27 +0000)]
Unbreak test on non-COFF targets.

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

14 years agoMC-COFF: Add support for default-null weak externals.
Michael J. Spencer [Sat, 16 Oct 2010 08:25:57 +0000 (08:25 +0000)]
MC-COFF: Add support for default-null weak externals.

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

14 years agoX86-Windows: Emit an undefined global __fltused symbol when targeting Windows
Michael J. Spencer [Sat, 16 Oct 2010 08:25:41 +0000 (08:25 +0000)]
X86-Windows: Emit an undefined global __fltused symbol when targeting Windows
if any floating point arguments are passed to an external function.

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

14 years agoWhitespace!
Michael J. Spencer [Sat, 16 Oct 2010 08:25:21 +0000 (08:25 +0000)]
Whitespace!

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

14 years agoMC/AsmParser: Report .stabs directive as unsupported.
Daniel Dunbar [Sat, 16 Oct 2010 04:56:42 +0000 (04:56 +0000)]
MC/AsmParser: Report .stabs directive as unsupported.

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

14 years agoMore machine LICM work. It now tracks register pressure for path from preheader to...
Evan Cheng [Sat, 16 Oct 2010 02:20:26 +0000 (02:20 +0000)]
More machine LICM work. It now tracks register pressure for path from preheader to current BB and use the information determine whether hoisting is worthwhile.

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

14 years agoFix some funky formatting that got through.
Eric Christopher [Sat, 16 Oct 2010 01:10:35 +0000 (01:10 +0000)]
Fix some funky formatting that got through.

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

14 years agoARMCodeEmitter::emitMiscInstruction is dead. Long live
Bill Wendling [Fri, 15 Oct 2010 23:35:12 +0000 (23:35 +0000)]
ARMCodeEmitter::emitMiscInstruction is dead. Long live
ARMCodeEmitter::emitMiscInstruction!

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

14 years agoMake sure offset is 0 for load/store register to the stack call.
Eric Christopher [Fri, 15 Oct 2010 23:07:10 +0000 (23:07 +0000)]
Make sure offset is 0 for load/store register to the stack call.

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

14 years agoGeneralize MemCpyOpt's handling of call slot forwarding to function properly when...
Owen Anderson [Fri, 15 Oct 2010 22:52:12 +0000 (22:52 +0000)]
Generalize MemCpyOpt's handling of call slot forwarding to function properly when the call slot
forwarding is implemented with a load/store pair rather than a memcpy.

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

14 years agoFormatting.
Eric Christopher [Fri, 15 Oct 2010 22:49:28 +0000 (22:49 +0000)]
Formatting.

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

14 years agolto: Respect LLVM_VERSION_INFO make variable, since setting CC arguments with
Daniel Dunbar [Fri, 15 Oct 2010 22:46:15 +0000 (22:46 +0000)]
lto: Respect LLVM_VERSION_INFO make variable, since setting CC arguments with
spaces gives tests fits and shell escaping is an art best left to jabberwockies.

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

14 years agoFix else if -> if in store machinery.
Eric Christopher [Fri, 15 Oct 2010 22:32:37 +0000 (22:32 +0000)]
Fix else if -> if in store machinery.

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

14 years agoReformatting. No functionalogicality changes.
Bill Wendling [Fri, 15 Oct 2010 21:50:45 +0000 (21:50 +0000)]
Reformatting. No functionalogicality changes.

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

14 years agoRefactor ARM fast-isel reg + offset to be a base + offset.
Eric Christopher [Fri, 15 Oct 2010 21:32:12 +0000 (21:32 +0000)]
Refactor ARM fast-isel reg + offset to be a base + offset.

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

14 years agoEncoding information for the various ARM saturating add/sub instructions.
Jim Grosbach [Fri, 15 Oct 2010 19:49:46 +0000 (19:49 +0000)]
Encoding information for the various ARM saturating add/sub instructions.

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

14 years agollvmc: Add a test for the -c flag.
Mikhail Glushenkov [Fri, 15 Oct 2010 19:30:49 +0000 (19:30 +0000)]
llvmc: Add a test for the -c flag.

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

14 years agoARM binary encoding information for RSB and RSC instructions.
Jim Grosbach [Fri, 15 Oct 2010 18:42:41 +0000 (18:42 +0000)]
ARM binary encoding information for RSB and RSC instructions.

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

14 years agoDon't mark argument value stores as immutable, as otherwise the post-RA
Jim Grosbach [Fri, 15 Oct 2010 18:34:47 +0000 (18:34 +0000)]
Don't mark argument value stores as immutable, as otherwise the post-RA
scheduler may reorder loads from them before the stores and other such
badness. PR8347. Patch by David Meyer

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

14 years agoUse simple RegState::Define flag instead of getDefRegState(true).
Bob Wilson [Fri, 15 Oct 2010 18:25:59 +0000 (18:25 +0000)]
Use simple RegState::Define flag instead of getDefRegState(true).

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

14 years agoRefactor alias handling to AliasedSymbol.
Rafael Espindola [Fri, 15 Oct 2010 18:25:33 +0000 (18:25 +0000)]
Refactor alias handling to AliasedSymbol.

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

14 years agoKillTheDoctor: Fix 2008 build. I'm actually surprised 2010 defines all of these,...
Michael J. Spencer [Fri, 15 Oct 2010 18:13:02 +0000 (18:13 +0000)]
KillTheDoctor: Fix 2008 build. I'm actually surprised 2010 defines all of these, many are non-standard posix/unix extensions.

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

14 years agoExpand GEP handling for constant offsets.
Eric Christopher [Fri, 15 Oct 2010 18:02:07 +0000 (18:02 +0000)]
Expand GEP handling for constant offsets.

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

14 years agoTeach FileCheck to handle trailing CHECK-NOT patterns.
Jakob Stoklund Olesen [Fri, 15 Oct 2010 17:47:12 +0000 (17:47 +0000)]
Teach FileCheck to handle trailing CHECK-NOT patterns.

A CHECK-NOT pattern without a following CHECK pattern simply checks that the
pattern doesn't match before the end of the input file.

You can even have only CHECK-NOT patterns to check that strings appear nowhere
in the input file.

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

14 years agoWhen expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes
Jim Grosbach [Fri, 15 Oct 2010 17:35:17 +0000 (17:35 +0000)]
When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes
an explicit def. Make sure to capture that properly. rdar://8556556

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

14 years agoARM mode encoding information for UBFX and SBFX instructions.
Jim Grosbach [Fri, 15 Oct 2010 17:15:16 +0000 (17:15 +0000)]
ARM mode encoding information for UBFX and SBFX instructions.

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

14 years agoFileCheckize
Jakob Stoklund Olesen [Fri, 15 Oct 2010 16:06:42 +0000 (16:06 +0000)]
FileCheckize

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

14 years agoRemove unused accessor.
Jakob Stoklund Olesen [Fri, 15 Oct 2010 16:06:40 +0000 (16:06 +0000)]
Remove unused accessor.

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

14 years agoRefactor code a bit and avoid creating unnecessary entries in the string
Rafael Espindola [Fri, 15 Oct 2010 15:39:06 +0000 (15:39 +0000)]
Refactor code a bit and avoid creating unnecessary entries in the string
map.

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

14 years agoRemove unused ARMISD::AND selection DAG node.
Bob Wilson [Fri, 15 Oct 2010 04:34:40 +0000 (04:34 +0000)]
Remove unused ARMISD::AND selection DAG node.

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

14 years agoARM instructions that are both predicated and set the condition codes
Bob Wilson [Fri, 15 Oct 2010 03:23:44 +0000 (03:23 +0000)]
ARM instructions that are both predicated and set the condition codes
have been printed with the "S" modifier after the predicate.  With ARM's
unified syntax, they are supposed to go in the other order.  We fixed this
for Thumb when we switched to unified syntax but missed changing it for
ARM.  Apparently we don't generate these instructions often because no one
noticed until now.  Thanks to Bill Wendling for the testcase!

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

14 years agoEncoding info for extension instructions.
Jim Grosbach [Fri, 15 Oct 2010 02:29:58 +0000 (02:29 +0000)]
Encoding info for extension instructions.

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

14 years agoGrammar.
Jim Grosbach [Fri, 15 Oct 2010 01:44:59 +0000 (01:44 +0000)]
Grammar.

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

14 years agoDon't pass --export-dynamic if TOOL_NO_EXPORTS is set.
Rafael Espindola [Fri, 15 Oct 2010 00:58:12 +0000 (00:58 +0000)]
Don't pass --export-dynamic if TOOL_NO_EXPORTS is set.

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

14 years agoEliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.
Jakob Stoklund Olesen [Fri, 15 Oct 2010 00:34:01 +0000 (00:34 +0000)]
Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.

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

14 years agoMove stack slot assignments into LiveRangeEdit.
Jakob Stoklund Olesen [Fri, 15 Oct 2010 00:16:55 +0000 (00:16 +0000)]
Move stack slot assignments into LiveRangeEdit.

All registers created during splitting or spilling are assigned to the same
stack slot as the parent register.

When splitting or rematting, we may not spill at all. In that case the stack
slot is still assigned, but it will be dead.

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

14 years agoCreate a new LiveRangeEdit class to keep track of the new registers created when
Jakob Stoklund Olesen [Thu, 14 Oct 2010 23:49:52 +0000 (23:49 +0000)]
Create a new LiveRangeEdit class to keep track of the new registers created when
splitting or spillling, and to help with rematerialization.

Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it
possible to share remat code between InlineSpiller and SplitKit.

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

14 years agoSimplify test file a bit.
Jim Grosbach [Thu, 14 Oct 2010 23:32:44 +0000 (23:32 +0000)]
Simplify test file a bit.

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

14 years agoAdd testcase for RRX and ASRS (which effectively tests MOVs, since those
Jim Grosbach [Thu, 14 Oct 2010 23:29:18 +0000 (23:29 +0000)]
Add testcase for RRX and ASRS (which effectively tests MOVs, since those
are just forms of that instruction).

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

14 years agoAdd missing Rd encoding for MOVs instruction.
Jim Grosbach [Thu, 14 Oct 2010 23:28:31 +0000 (23:28 +0000)]
Add missing Rd encoding for MOVs instruction.

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

14 years agoRefactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudos
Jim Grosbach [Thu, 14 Oct 2010 22:57:13 +0000 (22:57 +0000)]
Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudos
and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs)
instruction form.

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

14 years agoTolerate a null parent pointer.
Dan Gohman [Thu, 14 Oct 2010 22:55:57 +0000 (22:55 +0000)]
Tolerate a null parent pointer.

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

14 years agoAdded basic support for CPack.
Oscar Fuentes [Thu, 14 Oct 2010 21:11:51 +0000 (21:11 +0000)]
Added basic support for CPack.

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

14 years agoTweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'
Jim Grosbach [Thu, 14 Oct 2010 20:43:44 +0000 (20:43 +0000)]
Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'
pseudonym.

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

14 years agoAlways use binary mode for output stream. This is important to prevent unwanted end...
Francois Pichet [Thu, 14 Oct 2010 20:30:58 +0000 (20:30 +0000)]
Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.

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

14 years agoMOVi16 and MOVT ARM mode encodings.
Jim Grosbach [Thu, 14 Oct 2010 18:54:27 +0000 (18:54 +0000)]
MOVi16 and MOVT ARM mode encodings.

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

14 years agoOnly split around a loop if the live range has uses outside the loop periphery.
Jakob Stoklund Olesen [Thu, 14 Oct 2010 18:26:45 +0000 (18:26 +0000)]
Only split around a loop if the live range has uses outside the loop periphery.

Before we would also split around a loop if any peripheral block had multiple
uses. This could cause repeated splitting when splitting a different live range
would insert uses into the periphery.

Now -spiller=inline passes the nightly test suite again.

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

14 years agoTry again at implementing thread-safe lazy pass initialization, without depending...
Owen Anderson [Thu, 14 Oct 2010 17:59:03 +0000 (17:59 +0000)]
Try again at implementing thread-safe lazy pass initialization, without depending on static local initialization
being threadsafe AND ensuring that initialization is complete by the time the initializeFooPass method returns.

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

14 years agoRevert r116489. It included some changes I didn't intend to commit, and broke the...
Owen Anderson [Thu, 14 Oct 2010 17:36:50 +0000 (17:36 +0000)]
Revert r116489.  It included some changes I didn't intend to commit, and broke the buildbots.

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

14 years agoApparently MSVC doesn't support thread-safe static local initialization. Roll our...
Owen Anderson [Thu, 14 Oct 2010 17:26:06 +0000 (17:26 +0000)]
Apparently MSVC doesn't support thread-safe static local initialization.  Roll our own solution instead.

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

14 years agoSimplify encoding information and add 'dst' operand info for TAILJMP.
Jim Grosbach [Thu, 14 Oct 2010 17:24:28 +0000 (17:24 +0000)]
Simplify encoding information and add 'dst' operand info for TAILJMP.

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

14 years agoRemove some code duplication.
Rafael Espindola [Thu, 14 Oct 2010 16:34:44 +0000 (16:34 +0000)]
Remove some code duplication.

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

14 years agoRemove explicit dependency of LLVMARMCodeGen on LLVMARMAsmPrinter. It
Oscar Fuentes [Thu, 14 Oct 2010 15:54:46 +0000 (15:54 +0000)]
Remove explicit dependency of LLVMARMCodeGen on LLVMARMAsmPrinter. It
creates a cyclic dependency that breaks the build when
BUILD_SHARED_LIBS=ON

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

14 years agoWhen building shared libraries, link to required system libraries.
Oscar Fuentes [Thu, 14 Oct 2010 15:54:41 +0000 (15:54 +0000)]
When building shared libraries, link to required system libraries.

PR 8375

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

14 years agoComments.
Mikhail Glushenkov [Thu, 14 Oct 2010 13:43:20 +0000 (13:43 +0000)]
Comments.

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

14 years agoForward -march correctly.
Mikhail Glushenkov [Thu, 14 Oct 2010 11:22:06 +0000 (11:22 +0000)]
Forward -march correctly.

Also includes some cosmetic changes.

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

14 years agoHandle more complex GEP based loads and add a few TODOs to deal with
Eric Christopher [Thu, 14 Oct 2010 09:29:41 +0000 (09:29 +0000)]
Handle more complex GEP based loads and add a few TODOs to deal with
GEP + alloca.

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

14 years agoAdd support for vmov.f64/.f32 encoding. There's a bit of a hack going on
Bill Wendling [Thu, 14 Oct 2010 02:33:26 +0000 (02:33 +0000)]
Add support for vmov.f64/.f32 encoding. There's a bit of a hack going on
here. The f32 in FCONSTS is handled as a double instead of a float in the
code. So the encoding of the immediate into the instruction isn't exactly in
line with the documentation in that regard. But given that we know it's handled
as a double, it doesn't cause any harm.

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

14 years agoAdd encoding for 'fmstat'.
Bill Wendling [Thu, 14 Oct 2010 01:19:34 +0000 (01:19 +0000)]
Add encoding for 'fmstat'.

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

14 years agoRegister pressure and instruction latency aware machine LICM. Work in progress.
Evan Cheng [Thu, 14 Oct 2010 01:16:09 +0000 (01:16 +0000)]
Register pressure and instruction latency aware machine LICM. Work in progress.

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

14 years ago- Add encodings for multiply add/subtract instructions in all their glory.
Bill Wendling [Thu, 14 Oct 2010 01:02:08 +0000 (01:02 +0000)]
- Add encodings for multiply add/subtract instructions in all their glory.
- Add missing patterns for some multiply add/subtract instructions.
- Add encodings for VMRS and VMSR.

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

14 years agofix a bug I introduced, no idea how this didn't repro right.
Chris Lattner [Thu, 14 Oct 2010 00:30:00 +0000 (00:30 +0000)]
fix a bug I introduced, no idea how this didn't repro right.

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

14 years agohack to unbreak buildbots
Chris Lattner [Thu, 14 Oct 2010 00:26:10 +0000 (00:26 +0000)]
hack to unbreak buildbots

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

14 years agoRegenerate. No functional change, just cleanup.
Jim Grosbach [Thu, 14 Oct 2010 00:15:18 +0000 (00:15 +0000)]
Regenerate. No functional change, just cleanup.

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

14 years agoTeach PerfectShuffle to not generate files with embedded tab characters.
Jim Grosbach [Thu, 14 Oct 2010 00:12:49 +0000 (00:12 +0000)]
Teach PerfectShuffle to not generate files with embedded tab characters.

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

14 years agoadd uadd_ov/usub_ov to apint, consolidate constant folding
Chris Lattner [Thu, 14 Oct 2010 00:05:07 +0000 (00:05 +0000)]
add uadd_ov/usub_ov to apint, consolidate constant folding
logic to use the new APInt methods.  Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold

which comes from "clang -ftrapv", originally brought to my attention from PR8221.

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

14 years agomissed a line :(
Chris Lattner [Wed, 13 Oct 2010 23:57:00 +0000 (23:57 +0000)]
missed a line :(

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

14 years agoconstify these methods.
Chris Lattner [Wed, 13 Oct 2010 23:54:10 +0000 (23:54 +0000)]
constify these methods.

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

14 years agoDetabify and clean up 80 column violations.
Jim Grosbach [Wed, 13 Oct 2010 23:47:11 +0000 (23:47 +0000)]
Detabify and clean up 80 column violations.

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

14 years agoadd a few operations for signed operations that also
Chris Lattner [Wed, 13 Oct 2010 23:46:33 +0000 (23:46 +0000)]
add a few operations for signed operations that also
return an overflow flag.

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

14 years agoA few 80 column fixes.
Jim Grosbach [Wed, 13 Oct 2010 23:34:31 +0000 (23:34 +0000)]
A few 80 column fixes.

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

14 years agotrailing whitespace
Jim Grosbach [Wed, 13 Oct 2010 23:12:26 +0000 (23:12 +0000)]
trailing whitespace

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

14 years agoAdd a FIXME.
Jim Grosbach [Wed, 13 Oct 2010 22:55:33 +0000 (22:55 +0000)]
Add a FIXME.

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

14 years agoAdd operand encoding bits for SMC and SVC in ARM mode.
Jim Grosbach [Wed, 13 Oct 2010 22:38:23 +0000 (22:38 +0000)]
Add operand encoding bits for SMC and SVC in ARM mode.

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

14 years agoMore encoding cleanup. Also add register Rd operands for indirect branches.
Jim Grosbach [Wed, 13 Oct 2010 22:09:34 +0000 (22:09 +0000)]
More encoding cleanup. Also add register Rd operands for indirect branches.

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

14 years agoCallGraphSCC passes implicity require CallGraph analysis.
Owen Anderson [Wed, 13 Oct 2010 22:00:45 +0000 (22:00 +0000)]
CallGraphSCC passes implicity require CallGraph analysis.

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

14 years agoConversely, Analysis-implementations do NOT need to initialize the AnalysisGroup...
Owen Anderson [Wed, 13 Oct 2010 21:55:07 +0000 (21:55 +0000)]
Conversely, Analysis-implementations do NOT need to initialize the AnalysisGroup.  It will only matter when
someone tries to require that AG, in which case it is the requester's responsibility to initialize it.

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

14 years agoAnalysis groups need to initialize their default implementations.
Owen Anderson [Wed, 13 Oct 2010 21:49:58 +0000 (21:49 +0000)]
Analysis groups need to initialize their default implementations.

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

14 years agoSimplify some ARM encoding information.
Jim Grosbach [Wed, 13 Oct 2010 21:48:54 +0000 (21:48 +0000)]
Simplify some ARM encoding information.

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

14 years agoUpdate comment.
Eric Christopher [Wed, 13 Oct 2010 21:41:51 +0000 (21:41 +0000)]
Update comment.

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

14 years agoAdd a FIXME. The ADR instruction is a bit odd.
Jim Grosbach [Wed, 13 Oct 2010 21:32:30 +0000 (21:32 +0000)]
Add a FIXME. The ADR instruction is a bit odd.

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

14 years agoRefactor the ARM 'setend' instruction pattern. Use a single instruction pattern
Jim Grosbach [Wed, 13 Oct 2010 21:00:04 +0000 (21:00 +0000)]
Refactor the ARM 'setend' instruction pattern. Use a single instruction pattern
and handle the operand explicitly. Flesh out encoding information. Add an
explicit disassembler testcase for the instruction.

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

14 years agoAdd MC encodings for VCVT* instrunctions.
Bill Wendling [Wed, 13 Oct 2010 20:58:46 +0000 (20:58 +0000)]
Add MC encodings for VCVT* instrunctions.

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

14 years agoAdd a FIXME.
Jim Grosbach [Wed, 13 Oct 2010 20:38:04 +0000 (20:38 +0000)]
Add a FIXME.

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

14 years agoMake a few more bits of some simple instructions explicit. nop, yield, wfe,
Jim Grosbach [Wed, 13 Oct 2010 20:30:55 +0000 (20:30 +0000)]
Make a few more bits of some simple instructions explicit. nop, yield, wfe,
wfi, sel, sev and bkpt. All would disassemble properly before, but more
explicitness is good, especially with the integrated assembler coming in
the future.

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

14 years agoTake advantage of C++'s thread-safe static local initialization to simplify thread...
Owen Anderson [Wed, 13 Oct 2010 20:24:34 +0000 (20:24 +0000)]
Take advantage of C++'s thread-safe static local initialization to simplify thread-safe pass initialization.

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

14 years agoGetTargetTriple.cmake: detect MinGW 64 bits.
Oscar Fuentes [Wed, 13 Oct 2010 20:15:08 +0000 (20:15 +0000)]
GetTargetTriple.cmake: detect MinGW 64 bits.

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

14 years agoAdd ARM mode encoding for [SU]XT[BH] and [SU]XTA[BH] instructions.
Jim Grosbach [Wed, 13 Oct 2010 19:56:10 +0000 (19:56 +0000)]
Add ARM mode encoding for [SU]XT[BH] and [SU]XTA[BH] instructions.

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

14 years agoFix encoding for compares. No Rd register.
Jim Grosbach [Wed, 13 Oct 2010 18:05:25 +0000 (18:05 +0000)]
Fix encoding for compares. No Rd register.

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

14 years agoAdd ARM mode operand encoding information for ADDE/SUBE instructions.
Jim Grosbach [Wed, 13 Oct 2010 18:00:52 +0000 (18:00 +0000)]
Add ARM mode operand encoding information for ADDE/SUBE instructions.

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

14 years agoFix another case where we were preferring instructions with large
Rafael Espindola [Wed, 13 Oct 2010 17:14:25 +0000 (17:14 +0000)]
Fix another case where we were preferring instructions with large
immediates instead of 8 bits ones.

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

14 years agoRemove noisy semicolon.
Benjamin Kramer [Wed, 13 Oct 2010 15:55:12 +0000 (15:55 +0000)]
Remove noisy semicolon.

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

14 years agoFix PR8365 by adding a more specialized Pat that checks if an 'and' with
Rafael Espindola [Wed, 13 Oct 2010 13:31:20 +0000 (13:31 +0000)]
Fix PR8365 by adding a more specialized Pat that checks if an 'and' with
8 bit constants can be used.

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

14 years agoAdd Region::isTopLevelRegion().
Tobias Grosser [Wed, 13 Oct 2010 11:02:44 +0000 (11:02 +0000)]
Add Region::isTopLevelRegion().

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