oota-llvm.git
14 years agotemporarily xfail this.
Chris Lattner [Tue, 2 Nov 2010 23:44:50 +0000 (23:44 +0000)]
temporarily xfail this.

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

14 years agoCompletely reject instructions that have an operand in their
Chris Lattner [Tue, 2 Nov 2010 23:40:41 +0000 (23:40 +0000)]
Completely reject instructions that have an operand in their
ins/outs list that isn't specified by their asmstring.  Previously
the asmmatcher would just force a 0 register into it, which clearly
isn't right.  Mark a bunch of ARM instructions that use this as
isCodeGenOnly.  Some of them are clearly pseudo instructions (like
t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will
either need to be removed or the asmmatcher will need to be taught
about it (someday).

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

14 years agoTweak the opt -O2 / opt -O3 inliner thresholds to be the same as llvm-gcc and
Jakob Stoklund Olesen [Tue, 2 Nov 2010 23:40:28 +0000 (23:40 +0000)]
Tweak the opt -O2 / opt -O3 inliner thresholds to be the same as llvm-gcc and
clang are using.

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

14 years agoLet the -inline-threshold command line argument take precedence over the
Jakob Stoklund Olesen [Tue, 2 Nov 2010 23:40:26 +0000 (23:40 +0000)]
Let the -inline-threshold command line argument take precedence over the
threshold given to createFunctionInliningPass().

Both opt -O3 and clang would silently ignore the -inline-threshold option.

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

14 years agoDon't try to enforce MAXPATHLEN in sys::Path for Unix. OS's can check
Dan Gohman [Tue, 2 Nov 2010 23:19:55 +0000 (23:19 +0000)]
Don't try to enforce MAXPATHLEN in sys::Path for Unix. OS's can check
limits on their own.

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

14 years agomake MatchableInfo::Validate reject instructions (like LDR_PRE in ARM)
Chris Lattner [Tue, 2 Nov 2010 23:18:43 +0000 (23:18 +0000)]
make MatchableInfo::Validate reject instructions (like LDR_PRE in ARM)
that have complicated tying going on.

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

14 years agoSimplify.
Dan Gohman [Tue, 2 Nov 2010 23:16:26 +0000 (23:16 +0000)]
Simplify.

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

14 years agoInline asm mult-alt constraint tests.
John Thompson [Tue, 2 Nov 2010 23:01:44 +0000 (23:01 +0000)]
Inline asm mult-alt constraint tests.

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

14 years agoFix a copy+pasto.
Dan Gohman [Tue, 2 Nov 2010 22:56:51 +0000 (22:56 +0000)]
Fix a copy+pasto.

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

14 years agoAvoid manipulating paths in fixed-sized arrays.
Dan Gohman [Tue, 2 Nov 2010 22:55:34 +0000 (22:55 +0000)]
Avoid manipulating paths in fixed-sized arrays.

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

14 years agorewrite EmitConvertToMCInst to iterate over the MCInst operands,
Chris Lattner [Tue, 2 Nov 2010 22:55:03 +0000 (22:55 +0000)]
rewrite EmitConvertToMCInst to iterate over the MCInst operands,
filling them in one at a time.  Previously this iterated over the
asmoperands, which left the problem of "holes".  The new approach
simplifies things.

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

14 years agoObsessive formatting changes. No functionality impact.
Bill Wendling [Tue, 2 Nov 2010 22:53:11 +0000 (22:53 +0000)]
Obsessive formatting changes. No functionality impact.

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

14 years agoSimplify this code.
Dan Gohman [Tue, 2 Nov 2010 22:50:10 +0000 (22:50 +0000)]
Simplify this code.

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

14 years agoOmit unused parameter name.
Bill Wendling [Tue, 2 Nov 2010 22:46:04 +0000 (22:46 +0000)]
Omit unused parameter name.

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

14 years agoSimplify the EncodeInstruction method now that a lot of the special case stuff
Bill Wendling [Tue, 2 Nov 2010 22:44:12 +0000 (22:44 +0000)]
Simplify the EncodeInstruction method now that a lot of the special case stuff
is handled with the MC encoder.

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

14 years agoSince these fields are not exactly equivalent to the encoded field, rename them to...
Owen Anderson [Tue, 2 Nov 2010 22:41:42 +0000 (22:41 +0000)]
Since these fields are not exactly equivalent to the encoded field, rename them to something with semantic meaning.

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

14 years agoUse '\0' instead of 0 for nul character constants.
Dan Gohman [Tue, 2 Nov 2010 22:41:19 +0000 (22:41 +0000)]
Use '\0' instead of 0 for nul character constants.

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

14 years agoRename getAddrModeImm12OpValue to getAddrModeImmOpValue and expand it to work
Bill Wendling [Tue, 2 Nov 2010 22:31:46 +0000 (22:31 +0000)]
Rename getAddrModeImm12OpValue to getAddrModeImmOpValue and expand it to work
with immediates up to 16-bits in size. The same logic is applied to other LDR
encodings, e.g. VLDR, but which use a different immediate bit width (8-bits in
VLDR's case). Removing the "12" allows it to be more generic.

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

14 years agoRename encoder methods to match naming convention.
Owen Anderson [Tue, 2 Nov 2010 22:28:01 +0000 (22:28 +0000)]
Rename encoder methods to match naming convention.

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

14 years agomark a few codegenonly instructions.
Chris Lattner [Tue, 2 Nov 2010 22:26:33 +0000 (22:26 +0000)]
mark a few codegenonly instructions.

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

14 years agoappendSuffix: don't append a dot when the suffix is empty.
Mikhail Glushenkov [Tue, 2 Nov 2010 22:18:37 +0000 (22:18 +0000)]
appendSuffix: don't append a dot when the suffix is empty.

Additionally, move the implementation of appendSuffix to Path.cpp: it is
platform-independent.

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

14 years agoRevert r118057, this is better fixed in appendSuffix itself.
Mikhail Glushenkov [Tue, 2 Nov 2010 22:18:28 +0000 (22:18 +0000)]
Revert r118057, this is better fixed in appendSuffix itself.

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

14 years agoProvide correct encodings for the remaining vst variants that we currently generate.
Owen Anderson [Tue, 2 Nov 2010 22:18:18 +0000 (22:18 +0000)]
Provide correct encodings for the remaining vst variants that we currently generate.

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

14 years agoEliminate some temporary std::strings.
Dan Gohman [Tue, 2 Nov 2010 22:07:47 +0000 (22:07 +0000)]
Eliminate some temporary std::strings.

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

14 years agoTentative encodings for the "single element from one lane" variant of vst1.
Owen Anderson [Tue, 2 Nov 2010 21:54:45 +0000 (21:54 +0000)]
Tentative encodings for the "single element from one lane" variant of vst1.

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

14 years agomerge two large parallel loops in EmitConvertToMCInst, no change
Chris Lattner [Tue, 2 Nov 2010 21:49:44 +0000 (21:49 +0000)]
merge two large parallel loops in EmitConvertToMCInst, no change
in the generated .inc files.

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

14 years agoAdd correct encodings for basic variants for vst3 and vst4.
Owen Anderson [Tue, 2 Nov 2010 21:47:03 +0000 (21:47 +0000)]
Add correct encodings for basic variants for vst3 and vst4.

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

14 years agoDo relaxations with FT_Org fragments. Fixes the FIXME:
Rafael Espindola [Tue, 2 Nov 2010 21:38:23 +0000 (21:38 +0000)]
Do relaxations with FT_Org fragments. Fixes the FIXME:

    // FIXME: We should compute this sooner, we don't want to recurse here, and
    // we would like to be more functional.

In MCAssembler::ComputeFragmentSize.

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

14 years agoRemoved obsolete section about VC++ project files.
Oscar Fuentes [Tue, 2 Nov 2010 21:34:19 +0000 (21:34 +0000)]
Removed obsolete section about VC++ project files.

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

14 years agoAdd NEON VST1-lane instructions. Partial fix for Radar 8599955.
Bob Wilson [Tue, 2 Nov 2010 21:18:25 +0000 (21:18 +0000)]
Add NEON VST1-lane instructions.  Partial fix for Radar 8599955.

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

14 years agoAdd correct encodings for the basic variants for vst2.
Owen Anderson [Tue, 2 Nov 2010 21:16:58 +0000 (21:16 +0000)]
Add correct encodings for the basic variants for vst2.

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

14 years agoAdd correct encodings for the basic form of vst1.
Owen Anderson [Tue, 2 Nov 2010 21:06:06 +0000 (21:06 +0000)]
Add correct encodings for the basic form of vst1.

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

14 years agoMicro-optimize.
Dan Gohman [Tue, 2 Nov 2010 20:52:47 +0000 (20:52 +0000)]
Micro-optimize.

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

14 years agoDon't append a dot on platforms which don't use exe suffixes.
Dan Gohman [Tue, 2 Nov 2010 20:49:48 +0000 (20:49 +0000)]
Don't append a dot on platforms which don't use exe suffixes.

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

14 years agollvmc: Fix tool finding logic.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:47:41 +0000 (20:47 +0000)]
llvmc: Fix tool finding logic.

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

14 years agoFactor out a common encoding class for loads and stores with a lane parameter.
Owen Anderson [Tue, 2 Nov 2010 20:47:39 +0000 (20:47 +0000)]
Factor out a common encoding class for loads and stores with a lane parameter.

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

14 years agoFix DIType verifier. The element 3 is DIFile now.
Devang Patel [Tue, 2 Nov 2010 20:41:13 +0000 (20:41 +0000)]
Fix DIType verifier. The element 3 is DIFile now.

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

14 years agoAdd correct encodings for the rest of the vld instructions that we generate.
Owen Anderson [Tue, 2 Nov 2010 20:40:59 +0000 (20:40 +0000)]
Add correct encodings for the rest of the vld instructions that we generate.

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

14 years agoGetDLLSuffix: Remove the leading dot from LTDL_SHLIB_EXT.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:59 +0000 (20:32 +0000)]
GetDLLSuffix: Remove the leading dot from LTDL_SHLIB_EXT.

This allows using GetDLLSuffix() with appendSuffix().

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

14 years agoTrailing whitespace.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:52 +0000 (20:32 +0000)]
Trailing whitespace.

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

14 years agoFindExecutable: remove the executability check.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:46 +0000 (20:32 +0000)]
FindExecutable: remove the executability check.

This makes the behaviour of FindExecutable more consistent across platforms, but
I'm not very happy with the name...

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

14 years agoMake FindProgramByName return paths with slashes unmodified on Windows.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:39 +0000 (20:32 +0000)]
Make FindProgramByName return paths with slashes unmodified on Windows.

This makes its behaviour more consistent across platforms.

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

14 years ago80-col violations.
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:31 +0000 (20:32 +0000)]
80-col violations.

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

14 years agoPath: Add GetEXESuffix() to complement GetDLLSuffix().
Mikhail Glushenkov [Tue, 2 Nov 2010 20:32:26 +0000 (20:32 +0000)]
Path: Add GetEXESuffix() to complement GetDLLSuffix().

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

14 years agoFixes <rdar://problem/8612856>: During postRAsched, the antidependence
Andrew Trick [Tue, 2 Nov 2010 18:16:45 +0000 (18:16 +0000)]
Fixes <rdar://problem/8612856>: During postRAsched, the antidependence
breaker needs to check all definitions of the antidepenent register to
avoid multiple defs of the same new register.

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

14 years agoa bunch of random cleanup, move a helper to CGT where it belongs.
Chris Lattner [Tue, 2 Nov 2010 18:10:06 +0000 (18:10 +0000)]
a bunch of random cleanup, move a helper to CGT where it belongs.

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

14 years agoApply patch for use-after-free in InlineAsm constant handling,
Dale Johannesen [Tue, 2 Nov 2010 17:59:27 +0000 (17:59 +0000)]
Apply patch for use-after-free in InlineAsm constant handling,
PR 8522 / 8616046.  Test reduction, analysis and patch by Tim Deegan!
(However, review by someone who understands the classes here better
is welcome.  John Krum will return!)

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

14 years agoSort bit assignments. Cosmetic change only.
Jim Grosbach [Tue, 2 Nov 2010 17:59:04 +0000 (17:59 +0000)]
Sort bit assignments. Cosmetic change only.

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

14 years agoSimplify.
Devang Patel [Tue, 2 Nov 2010 17:37:00 +0000 (17:37 +0000)]
Simplify.

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

14 years agoRevert r114340 (improvements in Darwin function prologue/epilogue), as it broke
Jim Grosbach [Tue, 2 Nov 2010 17:35:25 +0000 (17:35 +0000)]
Revert r114340 (improvements in Darwin function prologue/epilogue), as it broke
assumptions about stack layout. Specifically, LR must be saved next to FP.

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

14 years agoadd and update comments.
Chris Lattner [Tue, 2 Nov 2010 17:34:28 +0000 (17:34 +0000)]
add and update comments.

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

14 years agorefactor/cleanup MatchableInfo by eliminating the Tokens array,
Chris Lattner [Tue, 2 Nov 2010 17:30:52 +0000 (17:30 +0000)]
refactor/cleanup MatchableInfo by eliminating the Tokens array,
merging it into a Token field in Operand, and moving the first
token to an explicit mnemonic field.  These were parallel
arrays before (except for the mnemonic) which kept confusing me.

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

14 years agoAdd support for expressions in .sleb/.uleb directives.
Rafael Espindola [Tue, 2 Nov 2010 17:22:24 +0000 (17:22 +0000)]
Add support for expressions in .sleb/.uleb directives.

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

14 years agoIf value map does not have register for an argument then try to find frame index...
Devang Patel [Tue, 2 Nov 2010 17:19:03 +0000 (17:19 +0000)]
If value map does not have register for an argument then try to find frame index before giving up.

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

14 years agoUse frameindex, if available, as a last resort to emit debug info for a parameter.
Devang Patel [Tue, 2 Nov 2010 17:01:30 +0000 (17:01 +0000)]
Use frameindex, if available, as a last resort to emit debug info for a parameter.

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

14 years agoFix comment typo.
Duncan Sands [Tue, 2 Nov 2010 15:12:48 +0000 (15:12 +0000)]
Fix comment typo.

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

14 years agoAdd some comments explaining what MVT and EVT are, and how they differ.
Duncan Sands [Tue, 2 Nov 2010 13:57:09 +0000 (13:57 +0000)]
Add some comments explaining what MVT and EVT are, and how they differ.

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

14 years agoRemove trailing whitespace.
Duncan Sands [Tue, 2 Nov 2010 13:43:07 +0000 (13:43 +0000)]
Remove trailing whitespace.

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

14 years agoAdd correct NEON encodings for vld2, vld3, and vld4 basic variants.
Owen Anderson [Tue, 2 Nov 2010 01:24:55 +0000 (01:24 +0000)]
Add correct NEON encodings for vld2, vld3, and vld4 basic variants.

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

14 years agoRemove an assert - it's possible to be hit, and we just want to avoid
Eric Christopher [Tue, 2 Nov 2010 01:24:49 +0000 (01:24 +0000)]
Remove an assert - it's possible to be hit, and we just want to avoid
handling those cases for now.

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

14 years agoWhitespeace
Eric Christopher [Tue, 2 Nov 2010 01:22:45 +0000 (01:22 +0000)]
Whitespeace

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

14 years agoNo really, no thumb1 for arm fast isel. Also add an informative comment as
Eric Christopher [Tue, 2 Nov 2010 01:21:28 +0000 (01:21 +0000)]
No really, no thumb1 for arm fast isel. Also add an informative comment as
to what someone would need to do to support thumb1.

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

14 years agorename operands -> asmoperands to be more descriptive.
Chris Lattner [Tue, 2 Nov 2010 01:03:43 +0000 (01:03 +0000)]
rename operands -> asmoperands to be more descriptive.

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

14 years agoDon't try to split weird critical edges that really aren't:
Jakob Stoklund Olesen [Tue, 2 Nov 2010 00:58:37 +0000 (00:58 +0000)]
Don't try to split weird critical edges that really aren't:

BB#1: derived from LLVM BB %bb.nph28
    Live Ins: %AL
    Predecessors according to CFG: BB#0
TEST8rr %reg16384<kill>, %reg16384, %EFLAGS<imp-def>; GR8:%reg16384
JNE_4 <BB#2>, %EFLAGS<imp-use,kill>
JMP_4 <BB#2>
    Successors according to CFG: BB#2 BB#2

These double CFG edges only ever occur in bugpoint-generated code, so there is
no need to attempt something clever.

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

14 years agoAttempt to provide correct encodings for a number of other vld1 variants, which we...
Owen Anderson [Tue, 2 Nov 2010 00:24:52 +0000 (00:24 +0000)]
Attempt to provide correct encodings for a number of other vld1 variants, which we can't test
since we can neither generate nor parse them at the moment.

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

14 years agoTidy up.
Jim Grosbach [Tue, 2 Nov 2010 00:16:39 +0000 (00:16 +0000)]
Tidy up.

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

14 years agoAdd aesthetic break.
Owen Anderson [Tue, 2 Nov 2010 00:14:00 +0000 (00:14 +0000)]
Add aesthetic break.

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

14 years agoTweak to fix spelling and grammar in comment.
Jim Grosbach [Tue, 2 Nov 2010 00:13:15 +0000 (00:13 +0000)]
Tweak to fix spelling and grammar in comment.

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

14 years agoAdd correct NEON encodings for the "multiple single elements" form of vld.
Owen Anderson [Tue, 2 Nov 2010 00:05:05 +0000 (00:05 +0000)]
Add correct NEON encodings for the "multiple single elements" form of vld.

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

14 years agoMachineLICM should not claim to be preserving the CFG when it can split critical
Jakob Stoklund Olesen [Mon, 1 Nov 2010 23:59:55 +0000 (23:59 +0000)]
MachineLICM should not claim to be preserving the CFG when it can split critical
edges on demand.

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

14 years agoBe more precise about verifying missing kill flags.
Jakob Stoklund Olesen [Mon, 1 Nov 2010 23:59:53 +0000 (23:59 +0000)]
Be more precise about verifying missing kill flags.

It is legal for an instruction to have two operands using the same register,
only one a kill. This is interpreted as a kill.

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

14 years agoWhen inserting copies during splitting, always use the parent register as the
Jakob Stoklund Olesen [Mon, 1 Nov 2010 23:59:48 +0000 (23:59 +0000)]
When inserting copies during splitting, always use the parent register as the
source, and let rewrite() clean it up.

This way, kill flags on the inserted copies are fixed as well during rewrite().

We can't just assume that all the copies we insert are going to be kills since
critical edges into loop headers sometimes require both source and dest to be
live out of a block.

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

14 years agofix computation of ambiguous instructions to not ignore the mnemonic.
Chris Lattner [Mon, 1 Nov 2010 23:57:23 +0000 (23:57 +0000)]
fix computation of ambiguous instructions to not ignore the mnemonic.
FWIW, X86 has 254 ambiguous instructions.

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

14 years agoExplicitly check for non-consant reference in an LDRi12 instruction. Add FIXME
Jim Grosbach [Mon, 1 Nov 2010 23:45:50 +0000 (23:45 +0000)]
Explicitly check for non-consant reference in an LDRi12 instruction. Add FIXME
for handling the fixup necessary.

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

14 years agoRemove unused function.
Jim Grosbach [Mon, 1 Nov 2010 23:40:56 +0000 (23:40 +0000)]
Remove unused function.

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

14 years agoAdd support for alignment operands on VLD1-lane instructions.
Bob Wilson [Mon, 1 Nov 2010 23:40:51 +0000 (23:40 +0000)]
Add support for alignment operands on VLD1-lane instructions.
This is another part of the fix for Radar 8599955.

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

14 years agoAdd VLD1-lane testcases for quad-register types.
Bob Wilson [Mon, 1 Nov 2010 23:40:46 +0000 (23:40 +0000)]
Add VLD1-lane testcases for quad-register types.

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

14 years agoMissed reverting this bit.
Bill Wendling [Mon, 1 Nov 2010 23:17:54 +0000 (23:17 +0000)]
Missed reverting this bit.

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

14 years agoMinor cleanup.
Bill Wendling [Mon, 1 Nov 2010 23:11:22 +0000 (23:11 +0000)]
Minor cleanup.

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

14 years agogive MatchableInfo::Operand a constructor
Chris Lattner [Mon, 1 Nov 2010 23:08:02 +0000 (23:08 +0000)]
give MatchableInfo::Operand a constructor

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

14 years agorearrange a bit.
Chris Lattner [Mon, 1 Nov 2010 23:07:52 +0000 (23:07 +0000)]
rearrange a bit.

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

14 years agoAdd NEON VLD1-lane instructions. Partial fix for Radar 8599955.
Bob Wilson [Mon, 1 Nov 2010 22:04:05 +0000 (22:04 +0000)]
Add NEON VLD1-lane instructions.  Partial fix for Radar 8599955.

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

14 years agoAdd kill flag verification.
Jakob Stoklund Olesen [Mon, 1 Nov 2010 21:51:31 +0000 (21:51 +0000)]
Add kill flag verification.

At least X86FloatingPoint requires correct kill flags after register allocation,
and targets using register scavenging benefit. Conservative kill flags are not
enough.

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

14 years agoUpdate kill flags while rewriting instructions after splitting.
Jakob Stoklund Olesen [Mon, 1 Nov 2010 21:51:29 +0000 (21:51 +0000)]
Update kill flags while rewriting instructions after splitting.

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

14 years agoMove the machine operand MC encoding patterns to the parent classes.
Bill Wendling [Mon, 1 Nov 2010 21:17:06 +0000 (21:17 +0000)]
Move the machine operand MC encoding patterns to the parent classes.

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

14 years agoUse ARM-style comments.
Bill Wendling [Mon, 1 Nov 2010 21:16:39 +0000 (21:16 +0000)]
Use ARM-style comments.

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

14 years agoWhen folding away a (shl (shr)) pair, we need to check that the bits that will BECOME...
Owen Anderson [Mon, 1 Nov 2010 21:08:20 +0000 (21:08 +0000)]
When folding away a (shl (shr)) pair, we need to check that the bits that will BECOME the low
bits are zero, not that the current low bits are zero.  Fixes <rdar://problem/8606771>.

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

14 years agouse our fancy new MnemonicAlias mechanism to remove a bunch of hacks
Chris Lattner [Mon, 1 Nov 2010 21:06:34 +0000 (21:06 +0000)]
use our fancy new MnemonicAlias mechanism to remove a bunch of hacks
from X86AsmParser.cpp

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

14 years agoWhen we look at instructions to convert to setting the 's' flag, we need to look
Bill Wendling [Mon, 1 Nov 2010 20:41:43 +0000 (20:41 +0000)]
When we look at instructions to convert to setting the 's' flag, we need to look
at more than those which define CPSR. You can have this situation:

(1)  subs  ...
(2)  sub   r6, r5, r4
(3)  movge ...
(4)  cmp   r6, 0
(5)  movge ...

We cannot convert (2) to "subs" because (3) is using the CPSR set by
(1). There's an analogous situation here:

(1)  sub   r1, r2, r3
(2)  sub   r4, r5, r6
(3)  cmp   r4, ...
(5)  movge ...
(6)  cmp   r1, ...
(7)  movge ...

We cannot convert (1) to "subs" because of the intervening use of CPSR.

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

14 years agoDon't assign new registers created during a split to the same stack slot, but
Jakob Stoklund Olesen [Mon, 1 Nov 2010 19:49:57 +0000 (19:49 +0000)]
Don't assign new registers created during a split to the same stack slot, but
give them individual stack slots once the are actually spilled.

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

14 years agoAdd basic LiveStacks verification.
Jakob Stoklund Olesen [Mon, 1 Nov 2010 19:49:52 +0000 (19:49 +0000)]
Add basic LiveStacks verification.

When an instruction refers to a spill slot with a LiveStacks entry, check that
the spill slot is live at the instruction.

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

14 years agoUse ARM-style comment syntax.
Owen Anderson [Mon, 1 Nov 2010 18:33:37 +0000 (18:33 +0000)]
Use ARM-style comment syntax.

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

14 years agoNEON does not support truncating vector stores. Radar 8598391.
Bob Wilson [Mon, 1 Nov 2010 18:31:39 +0000 (18:31 +0000)]
NEON does not support truncating vector stores.  Radar 8598391.

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

14 years agoCovert this test to .s form.
Owen Anderson [Mon, 1 Nov 2010 18:30:39 +0000 (18:30 +0000)]
Covert this test to .s form.

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

14 years agoConvert this test to .s form.
Owen Anderson [Mon, 1 Nov 2010 18:26:43 +0000 (18:26 +0000)]
Convert this test to .s form.

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

14 years agoCovert this test to .s form.
Owen Anderson [Mon, 1 Nov 2010 18:13:11 +0000 (18:13 +0000)]
Covert this test to .s form.

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

14 years agoAdd FIXME.
Jim Grosbach [Mon, 1 Nov 2010 18:11:14 +0000 (18:11 +0000)]
Add FIXME.

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

14 years agoCovert this test to .s form.
Owen Anderson [Mon, 1 Nov 2010 18:03:16 +0000 (18:03 +0000)]
Covert this test to .s form.

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

14 years agoFix test.
Rafael Espindola [Mon, 1 Nov 2010 17:10:53 +0000 (17:10 +0000)]
Fix test.

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

14 years agoAdd 'IsThumb' predicate to patterns marked as 'IsThumb1Only'. The latter gates
Jim Grosbach [Mon, 1 Nov 2010 17:08:58 +0000 (17:08 +0000)]
Add 'IsThumb' predicate to patterns marked as 'IsThumb1Only'. The latter gates
codegen using the patterns; the latter gates the assembler recognizing the
instruction.

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