oota-llvm.git
14 years agoAdded LDRSBT, LDRHT, LDRSHT for disassembly only. And fixed encoding errors
Johnny Chen [Thu, 18 Feb 2010 03:27:42 +0000 (03:27 +0000)]
Added LDRSBT, LDRHT, LDRSHT for disassembly only.  And fixed encoding errors
of AI3ldsbpo, AI3ldhpo, and AI3ldshpo in ARMInstrFormats.td in the process.

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

14 years agorename the child field to 'next'. This is not a parent/child
Chris Lattner [Thu, 18 Feb 2010 02:53:41 +0000 (02:53 +0000)]
rename the child field to 'next'.  This is not a parent/child
relationship, this is a linear list relationship.

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

14 years agoeliminate the MatcherNodeWithChild class, give the 'child'
Chris Lattner [Thu, 18 Feb 2010 02:49:24 +0000 (02:49 +0000)]
eliminate the MatcherNodeWithChild class, give the 'child'
field to MatcherNode.

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

14 years agoAdd a shared library for LLVM, named libLLVM2.7svn.(so|dylib), and add an
Jeffrey Yasskin [Thu, 18 Feb 2010 02:36:02 +0000 (02:36 +0000)]
Add a shared library for LLVM, named libLLVM2.7svn.(so|dylib), and add an
--enable-shared configure flag to have the tools linked shared. (2.7svn is just
$(LLVMVersion) so it'll change to "2.7" in the release.)  Always link the
example programs shared to test that the shared library keeps working.

On my mac laptop, Debug libLLVM2.7svn.dylib is 39MB, and opt (for example) is
16M static vs 440K shared.

Two things are less than ideal here:
1) The library doesn't include any version information. Since we expect to break
the ABI with every release, this shouldn't be much of a problem. If we do
release a compatible 2.7.1, we may be able to hack its library to work with
binaries compiled against 2.7.0, or we can just ask them to recompile. I'm
hoping to get a real packaging expert to look at this for the 2.8 release.
2) llvm-config doesn't yet have an option to print link options for the shared
library. I'll add this as a subsequent patch.

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

14 years agoSome dag combiner goodness:
Evan Cheng [Thu, 18 Feb 2010 02:13:50 +0000 (02:13 +0000)]
Some dag combiner goodness:
Transform br (xor (x, y)) -> br (x != y)
Transform br (xor (xor (x,y), 1)) -> br (x == y)
Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm"

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

14 years agoNew test case for r96543.
Devang Patel [Thu, 18 Feb 2010 00:53:49 +0000 (00:53 +0000)]
New test case for r96543.

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

14 years agofit in 80 cols
Chris Lattner [Thu, 18 Feb 2010 00:23:27 +0000 (00:23 +0000)]
fit in 80 cols

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

14 years agoAdded for disassembly only the variants of DMB, DSB, and ISB.
Johnny Chen [Thu, 18 Feb 2010 00:19:08 +0000 (00:19 +0000)]
Added for disassembly only the variants of DMB, DSB, and ISB.

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

14 years agoFix a few unused parameter warnings.
Eric Christopher [Wed, 17 Feb 2010 23:55:26 +0000 (23:55 +0000)]
Fix a few unused parameter warnings.

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

14 years agoMC/Mach-O: Update fixup values for change to X86 offsets.
Daniel Dunbar [Wed, 17 Feb 2010 23:45:16 +0000 (23:45 +0000)]
MC/Mach-O: Update fixup values for change to X86 offsets.

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

14 years agoMake this an unnumbered list.
Dan Gohman [Wed, 17 Feb 2010 22:54:10 +0000 (22:54 +0000)]
Make this an unnumbered list.

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

14 years agoHTML validation fixes.
Dan Gohman [Wed, 17 Feb 2010 22:50:12 +0000 (22:50 +0000)]
HTML validation fixes.

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

14 years agoAdd an "advanced" GetElementPtr FAQ document, with answers to
Dan Gohman [Wed, 17 Feb 2010 22:47:06 +0000 (22:47 +0000)]
Add an "advanced" GetElementPtr FAQ document, with answers to
questions left unanswered by the first GetElementPtr FAQ.

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

14 years agoRemove the NEON N2VSInt instruction class: it's only used in one place and
Bob Wilson [Wed, 17 Feb 2010 22:42:54 +0000 (22:42 +0000)]
Remove the NEON N2VSInt instruction class: it's only used in one place and
since it has no pattern, there's not much point in distinguishing an "N2VS"
class for intrinsics anyway.

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

14 years agoAdded CLREX (Clear-Exclusive) for disassembly only.
Johnny Chen [Wed, 17 Feb 2010 22:37:58 +0000 (22:37 +0000)]
Added CLREX (Clear-Exclusive) for disassembly only.

A8.6.30

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

14 years agoMore cleanup for NEON:
Bob Wilson [Wed, 17 Feb 2010 22:23:11 +0000 (22:23 +0000)]
More cleanup for NEON:
* Use "S" abbreviation for scalar single FP registers in class and pattern
names, instead of keeping the "D" (for "double") abbreviation and tacking on
an "s" elsewhere in the name.
* Move the scalar single FP register classes and patterns to be more
consistent with other definitions in the file.
* Rename "VNEGf32d" definition to "VNEGfd" for consistency.
* Deleted the N2VDIntsPat pattern; N2VSPat is good enough.

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

14 years agoAdded RFE for disassembly only.
Johnny Chen [Wed, 17 Feb 2010 21:39:10 +0000 (21:39 +0000)]
Added RFE for disassembly only.

B6.1.8 RFE Return From Exception loads the PC and the CPSR from the word at the
specified address and the following word respectively.

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

14 years agoMake the non-temporal bit "significant" in MemSDNodes so they aren't
David Greene [Wed, 17 Feb 2010 20:21:42 +0000 (20:21 +0000)]
Make the non-temporal bit "significant" in MemSDNodes so they aren't
CSE'd or otherwise combined with temporal MemSDNodes.

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

14 years agoRemember to define super registers in mips calls.
Jakob Stoklund Olesen [Wed, 17 Feb 2010 20:18:50 +0000 (20:18 +0000)]
Remember to define super registers in mips calls.

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

14 years agoAdd Regex::sub, for doing regular expression substitution with backreferences.
Daniel Dunbar [Wed, 17 Feb 2010 20:08:42 +0000 (20:08 +0000)]
Add Regex::sub, for doing regular expression substitution with backreferences.

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

14 years agoirbuilder is doing constant folding now by default, PR6092
Chris Lattner [Wed, 17 Feb 2010 19:54:34 +0000 (19:54 +0000)]
irbuilder is doing constant folding now by default, PR6092

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

14 years agofix some out of date prose dating from the LLVMContext changes.
Chris Lattner [Wed, 17 Feb 2010 19:51:31 +0000 (19:51 +0000)]
fix some out of date prose dating from the LLVMContext changes.

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

14 years agoFix comment.
Daniel Dunbar [Wed, 17 Feb 2010 19:26:45 +0000 (19:26 +0000)]
Fix comment.

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

14 years agoredisable this to save people a small amount of build time.
Chris Lattner [Wed, 17 Feb 2010 19:19:50 +0000 (19:19 +0000)]
redisable this to save people a small amount of build time.

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

14 years agoDead code elimination.
Jakob Stoklund Olesen [Wed, 17 Feb 2010 19:13:56 +0000 (19:13 +0000)]
Dead code elimination.

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

14 years ago"Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn symbols could...
Chris Lattner [Wed, 17 Feb 2010 18:57:19 +0000 (18:57 +0000)]
"Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn symbols could be emitted in the same file (it was uniqued by block number, but not by function number). "  Patch by Nathan Keynes!

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

14 years agomove isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter,
Chris Lattner [Wed, 17 Feb 2010 18:52:56 +0000 (18:52 +0000)]
move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter,
and add a sparc implementation that knows about delay slots.  Patch by
Nathan Keynes!

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

14 years agoadd a note, from PR5100
Chris Lattner [Wed, 17 Feb 2010 18:42:24 +0000 (18:42 +0000)]
add a note, from PR5100

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

14 years agoadd missing method, PR6284
Chris Lattner [Wed, 17 Feb 2010 18:39:56 +0000 (18:39 +0000)]
add missing method, PR6284

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

14 years agoadd optional debian instructions, PR6272
Chris Lattner [Wed, 17 Feb 2010 18:33:13 +0000 (18:33 +0000)]
add optional debian instructions, PR6272

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

14 years agoAdded routine to clone the body of a function and maintain a map of already
Sanjiv Gupta [Wed, 17 Feb 2010 18:11:29 +0000 (18:11 +0000)]
Added routine to clone the body of a function and maintain a map of already
cloned functions.

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

14 years agoMention an API change.
Duncan Sands [Wed, 17 Feb 2010 17:20:17 +0000 (17:20 +0000)]
Mention an API change.

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

14 years agoPacify gcc-4.5, which warns (correctly) that these switches have
Duncan Sands [Wed, 17 Feb 2010 14:52:22 +0000 (14:52 +0000)]
Pacify gcc-4.5, which warns (correctly) that these switches have
cases that are not part of the enum.

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

14 years agoRevert:
Eric Christopher [Wed, 17 Feb 2010 08:53:27 +0000 (08:53 +0000)]
Revert:
r95605 | dpatel | 2010-02-08 15:27:46 -0800 (Mon, 08 Feb 2010) | 2 lines

test case for r95604.

Which was the testcase for the patch reverted from llvm-gcc.

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

14 years agoreduce nesting.
Chris Lattner [Wed, 17 Feb 2010 06:53:36 +0000 (06:53 +0000)]
reduce nesting.

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

14 years agoAdded a function to clone locals of a function.( which for pic16 are globals
Sanjiv Gupta [Wed, 17 Feb 2010 06:48:50 +0000 (06:48 +0000)]
Added a function to clone locals of a function.( which for pic16 are globals
with mangled names).

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

14 years agoimprove comments, the matcher is now feature complete, on to codegen.
Chris Lattner [Wed, 17 Feb 2010 06:47:35 +0000 (06:47 +0000)]
improve comments, the matcher is now feature complete, on to codegen.

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

14 years agoRemoved header files from .h by adding forward decls.
Sanjiv Gupta [Wed, 17 Feb 2010 06:46:23 +0000 (06:46 +0000)]
Removed header files from .h by adding forward decls.
Renamed PIC16FrameOverlay namespace to PIC16OVERLAY.
Renamed PIC16FrameOverlay class to PIC16Overlay.

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

14 years agoAdded BFI for disassembly only.
Johnny Chen [Wed, 17 Feb 2010 06:31:48 +0000 (06:31 +0000)]
Added BFI for disassembly only.

A8.6.18  BFI - Bitfield insert (Encoding A1)

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

14 years agosink special case "cannotyetselect" for intrinsics out of the
Chris Lattner [Wed, 17 Feb 2010 06:28:22 +0000 (06:28 +0000)]
sink special case "cannotyetselect" for intrinsics out of the
tblgen splatted code into the implementation.

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

14 years agoEmulate the current isel's "IsChainCompatible" logic for now.
Chris Lattner [Wed, 17 Feb 2010 06:23:39 +0000 (06:23 +0000)]
Emulate the current isel's "IsChainCompatible" logic for now.
I'd like to eventually rip it out, but for now producing the
same selections as the old matcher is more important.

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

14 years agoproperly record chain inputs to complex patterns,
Chris Lattner [Wed, 17 Feb 2010 06:08:25 +0000 (06:08 +0000)]
properly record chain inputs to complex patterns,
resolving a fixme.

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

14 years agorename and document some arguments so I don't have to keep
Chris Lattner [Wed, 17 Feb 2010 06:07:47 +0000 (06:07 +0000)]
rename and document some arguments so I don't have to keep
reverse engineering what they are.

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

14 years agoUse pointer-wide encoding for LSDA and FDE on Darwin.
Anton Korobeynikov [Wed, 17 Feb 2010 05:53:11 +0000 (05:53 +0000)]
Use pointer-wide encoding for LSDA and FDE on Darwin.
Hopefully, this will fix the remaining issues seen there.

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

14 years agosimplify IsChainCompatible codegen, add comments. no
Chris Lattner [Wed, 17 Feb 2010 05:35:28 +0000 (05:35 +0000)]
simplify IsChainCompatible codegen, add comments.  no
functionality change.

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

14 years agoRemoved an early out which was causing the PBQP allocator to not compute live-in...
Lang Hames [Wed, 17 Feb 2010 03:42:51 +0000 (03:42 +0000)]
Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter.

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

14 years agoFix SCEVExpander's existing PHI reuse checking to recognize the
Dan Gohman [Wed, 17 Feb 2010 02:39:31 +0000 (02:39 +0000)]
Fix SCEVExpander's existing PHI reuse checking to recognize the
case where there are loop-invariant instructions somehow left
inside the loop, and in a position where they won't dominate
the IV increment position.

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

14 years agoBefore setting scope end marker, pay attention to scope begin marker and existing...
Devang Patel [Wed, 17 Feb 2010 02:20:34 +0000 (02:20 +0000)]
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope.

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

14 years agoPrep work to handle input chains of matched patterns and checking for
Chris Lattner [Wed, 17 Feb 2010 02:16:19 +0000 (02:16 +0000)]
Prep work to handle input chains of matched patterns and checking for
'ischaincompatible' when a pattern has more than one input chain.  Need
to do some commenting and cleanup now that I understand how this works.

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

14 years agodaniel remembered why this was needed.
Chris Lattner [Wed, 17 Feb 2010 01:55:54 +0000 (01:55 +0000)]
daniel remembered why this was needed.

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

14 years agoadd a comment explaining why darwin/i386 uses ## as a comment.
Chris Lattner [Wed, 17 Feb 2010 01:38:01 +0000 (01:38 +0000)]
add a comment explaining why darwin/i386 uses ## as a comment.
It's not clear why this is really required, but it was explicitly
added in r48808 with no real explanation or rdar #.

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

14 years agorecord input chains.
Chris Lattner [Wed, 17 Feb 2010 01:34:15 +0000 (01:34 +0000)]
record input chains.

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

14 years agoprefix captured value names with $ so they look like
Chris Lattner [Wed, 17 Feb 2010 01:27:29 +0000 (01:27 +0000)]
prefix captured value names with $ so they look like
variables.  Use the fancy OpNo variable instead of i,
which has the right index including chains.

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

14 years agoInitial implementation of PIC16 Cloner pass.
Sanjiv Gupta [Wed, 17 Feb 2010 01:11:53 +0000 (01:11 +0000)]
Initial implementation of PIC16 Cloner pass.

This pass is supposed to be run on the linked .bc module.
It traveses the module call graph twice. Once starting from the main function
and marking each reached function as "ML". Again, starting from the ISR
and cloning any reachable function that was marked as "ML". After cloning
the function, it remaps all the call sites in IL functions to call the
cloned functions.

Currently only marking is being done.

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

14 years agoDon't check for comments, which vary between subtargets.
Dan Gohman [Wed, 17 Feb 2010 01:08:57 +0000 (01:08 +0000)]
Don't check for comments, which vary between subtargets.

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

14 years agoimprove comments on OPC_Record to say what we're recording a node.
Chris Lattner [Wed, 17 Feb 2010 01:03:09 +0000 (01:03 +0000)]
improve comments on OPC_Record to say what we're recording a node.

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

14 years agoFold bswap(undef) to undef.
Dan Gohman [Wed, 17 Feb 2010 00:54:58 +0000 (00:54 +0000)]
Fold bswap(undef) to undef.

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

14 years agoDelete some unneeded casts.
Dan Gohman [Wed, 17 Feb 2010 00:42:19 +0000 (00:42 +0000)]
Delete some unneeded casts.

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

14 years agoDon't attempt to divide INT_MIN by -1; consider such cases to
Dan Gohman [Wed, 17 Feb 2010 00:41:53 +0000 (00:41 +0000)]
Don't attempt to divide INT_MIN by -1; consider such cases to
have overflowed.

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

14 years agomake the new isel's interpreter loop call the generated
Chris Lattner [Wed, 17 Feb 2010 00:41:34 +0000 (00:41 +0000)]
make the new isel's interpreter loop call the generated
CheckComplexPattern function.  Though it is logically const,
I don't have the fortitude to clean up all the targets now,
and it not being const doesn't block anything.

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

14 years agoimprove comments in generated matcher a bit.
Chris Lattner [Wed, 17 Feb 2010 00:39:26 +0000 (00:39 +0000)]
improve comments in generated matcher a bit.

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

14 years agoMake the operand and format specifier match, and print all
Dan Gohman [Wed, 17 Feb 2010 00:37:20 +0000 (00:37 +0000)]
Make the operand and format specifier match, and print all
64 bits, fixing a variety of problems.

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

14 years agomake the new isel generator plop out a CheckComplexPattern function
Chris Lattner [Wed, 17 Feb 2010 00:31:50 +0000 (00:31 +0000)]
make the new isel generator plop out a CheckComplexPattern function
for evaluating complex patterns.  Some cleanup has to happen before
this can be used though.

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

14 years agoWrap lines to 80 columns and generally try to clean up whitespace and
Bob Wilson [Wed, 17 Feb 2010 00:31:29 +0000 (00:31 +0000)]
Wrap lines to 80 columns and generally try to clean up whitespace and
indentation.  No functional changes.

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

14 years agoroundss is an sse 4 thing, fix the test on non-sse41 builders
Chris Lattner [Wed, 17 Feb 2010 00:29:06 +0000 (00:29 +0000)]
roundss is an sse 4 thing, fix the test on non-sse41 builders
like llvm-gcc-x86_64-darwin10-selfhost

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

14 years agofix inverted condition.
Chris Lattner [Wed, 17 Feb 2010 00:11:30 +0000 (00:11 +0000)]
fix inverted condition.

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

14 years agoMake g5 target explicit; scheduling affects register choice.
Dale Johannesen [Tue, 16 Feb 2010 23:25:23 +0000 (23:25 +0000)]
Make g5 target explicit; scheduling affects register choice.

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

14 years agocomplex patterns don't get 'record' nodes, they implicitly
Chris Lattner [Tue, 16 Feb 2010 23:16:25 +0000 (23:16 +0000)]
complex patterns don't get 'record' nodes, they implicitly
record all their results.

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

14 years agoclean up some code, eliminate NodeIsComplexPattern, which
Chris Lattner [Tue, 16 Feb 2010 23:13:59 +0000 (23:13 +0000)]
clean up some code, eliminate NodeIsComplexPattern, which
does the same thing as getComplexPatternInfo.

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

14 years agoMake error statement more personal.
Bill Wendling [Tue, 16 Feb 2010 22:47:14 +0000 (22:47 +0000)]
Make error statement more personal.

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

14 years agofix indentation
Chris Lattner [Tue, 16 Feb 2010 22:38:31 +0000 (22:38 +0000)]
fix indentation

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

14 years agofix rdar://7653908, a crash on a case where we would fold a load
Chris Lattner [Tue, 16 Feb 2010 22:35:06 +0000 (22:35 +0000)]
fix rdar://7653908, a crash on a case where we would fold a load
into a roundss intrinsic, producing a cyclic dag.  The root cause
of this is badness handling ComplexPattern nodes in the old dagisel
that I noticed through inspection.  Eliminate a copy of the of the
code that handled ComplexPatterns by making EmitChildMatchCode call
into EmitMatchCode.

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

14 years agoAdjust register numbers in tests to compensate for the
Dale Johannesen [Tue, 16 Feb 2010 22:31:31 +0000 (22:31 +0000)]
Adjust register numbers in tests to compensate for the
new lack of R2.

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

14 years agofilecheckize
Chris Lattner [Tue, 16 Feb 2010 22:13:43 +0000 (22:13 +0000)]
filecheckize

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

14 years agoHandle tGPR register class in a few more places. This fixes some llvm-gcc
Bob Wilson [Tue, 16 Feb 2010 22:01:59 +0000 (22:01 +0000)]
Handle tGPR register class in a few more places.  This fixes some llvm-gcc
build failures due to my fix for pr6111.

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

14 years agoAdd SMC (Secure Monitor Call) system instruction for disassembly only.
Johnny Chen [Tue, 16 Feb 2010 21:59:54 +0000 (21:59 +0000)]
Add SMC (Secure Monitor Call) system instruction for disassembly only.

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

14 years agoReally reserve R2 on PPC Darwin. PR 6314.
Dale Johannesen [Tue, 16 Feb 2010 21:53:27 +0000 (21:53 +0000)]
Really reserve R2 on PPC Darwin.  PR 6314.

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

14 years agoUse line and column number to distinguish two lexical blocks at the same level.
Devang Patel [Tue, 16 Feb 2010 21:39:34 +0000 (21:39 +0000)]
Use line and column number to distinguish two lexical blocks at the same level.

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

14 years ago80 column cleanup
Jim Grosbach [Tue, 16 Feb 2010 21:23:02 +0000 (21:23 +0000)]
80 column cleanup

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

14 years agoNew testcase.
Devang Patel [Tue, 16 Feb 2010 21:16:08 +0000 (21:16 +0000)]
New testcase.

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

14 years agoLook for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).
Evan Cheng [Tue, 16 Feb 2010 21:09:44 +0000 (21:09 +0000)]
Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).
If there exists a use of a build_vector that's the bitwise complement of the mask,
then transform the node to
(and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)).

Since this transformation is only useful when 1) the given build_vector will
become a load from constpool, and 2) (and (xor x -1), y) matches to a single
instruction, I decided this is appropriate as a x86 specific transformation.
rdar://7323335

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

14 years agoRemove trailing whitespace
Jim Grosbach [Tue, 16 Feb 2010 21:07:46 +0000 (21:07 +0000)]
Remove trailing whitespace

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

14 years agoRename SuccessorNumber to GetSuccessorNumber.
Bob Wilson [Tue, 16 Feb 2010 21:06:42 +0000 (21:06 +0000)]
Rename SuccessorNumber to GetSuccessorNumber.

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

14 years agoAdd support for emitting non-temporal stores for DAGs marked
David Greene [Tue, 16 Feb 2010 20:50:18 +0000 (20:50 +0000)]
Add support for emitting non-temporal stores for DAGs marked
non-temporal.  Fix from r96241 for botched encoding of MOVNTDQ.

Add documentation for !nontemporal metadata.

Add a simpler movnt testcase.

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

14 years agoTestcase for critical edge splitting with load PRE.
Bob Wilson [Tue, 16 Feb 2010 20:48:55 +0000 (20:48 +0000)]
Testcase for critical edge splitting with load PRE.

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

14 years agoUpdate Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, but
Jim Grosbach [Tue, 16 Feb 2010 20:42:29 +0000 (20:42 +0000)]
Update Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, but
to have the predicate on the pattern itself instead. Support for the new
ISel. Remove definitions of CarryDefIsUnused and CarryDefIsUsed since they are
no longer used anywhere.

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

14 years agoRemove redundant setting of Defs. CPSR is already marked by the block level set of...
Jim Grosbach [Tue, 16 Feb 2010 20:35:59 +0000 (20:35 +0000)]
Remove redundant setting of Defs. CPSR is already marked by the block level set of Defs.

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

14 years agoRefactor rewriting for PHI nodes into a separate function.
Dan Gohman [Tue, 16 Feb 2010 20:25:07 +0000 (20:25 +0000)]
Refactor rewriting for PHI nodes into a separate function.

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

14 years agoFirst step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates.
Jim Grosbach [Tue, 16 Feb 2010 20:17:57 +0000 (20:17 +0000)]
First step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates.
They won't work with the new ISel mechanism, as Requires predicates are no
longer allowed to reference the node being selected. Moving the predicate to
the patterns instead solves the problem.

This patch handles ARM mode. Thumb2 will follow.

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

14 years agoAdded for disassembly the following instructions:
Johnny Chen [Tue, 16 Feb 2010 20:04:27 +0000 (20:04 +0000)]
Added for disassembly the following instructions:

o Store Return State (SRSW, SRS)
o Load/Store Coprocessor (LDC/STC and friends)
o MSR (immediate)

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

14 years agoSplit critical edges as needed for load PRE.
Bob Wilson [Tue, 16 Feb 2010 19:51:59 +0000 (19:51 +0000)]
Split critical edges as needed for load PRE.

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

14 years agoRefactor to share code to find the position of a basic block successor in the
Bob Wilson [Tue, 16 Feb 2010 19:49:17 +0000 (19:49 +0000)]
Refactor to share code to find the position of a basic block successor in the
terminator's list of successors.

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

14 years agoFix whitespace.
Dan Gohman [Tue, 16 Feb 2010 19:42:34 +0000 (19:42 +0000)]
Fix whitespace.

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

14 years agoFunction attributes have index ~0, not 0
Kenneth Uildriks [Tue, 16 Feb 2010 19:28:02 +0000 (19:28 +0000)]
Function attributes have index ~0, not 0

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

14 years agosimplify this code. In the new world order there is no
Chris Lattner [Tue, 16 Feb 2010 19:19:58 +0000 (19:19 +0000)]
simplify this code.  In the new world order there is no
need to scan the entire subtree of the pattern anymore.

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

14 years agoconvert the new matcher to check intermediate nodes for a single
Chris Lattner [Tue, 16 Feb 2010 19:15:55 +0000 (19:15 +0000)]
convert the new matcher to check intermediate nodes for a single
use and only call IsProfitableToFold/IsLegalToFold on the load
being folded, like the old dagiselemitter does.  This
substantially simplifies the code and improves opportunities for
sharing.

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

14 years agochange dag isel emitter to only call 'IsProfitableToFold' on nodes
Chris Lattner [Tue, 16 Feb 2010 19:03:34 +0000 (19:03 +0000)]
change dag isel emitter to only call 'IsProfitableToFold' on nodes
with chains.  On interior nodes that lead up to them, we just directly
check that there is a single use.  This generates slightly more
efficient code.

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

14 years agoFix pr6111: Avoid using the LR register for the target address of an indirect
Bob Wilson [Tue, 16 Feb 2010 17:24:15 +0000 (17:24 +0000)]
Fix pr6111: Avoid using the LR register for the target address of an indirect
branch in ARM v4 code, since it gets clobbered by the return address before
it is used.  Instead of adding a new register class containing all the GPRs
except LR, just use the existing tGPR class.

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

14 years agoIntroduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
Duncan Sands [Tue, 16 Feb 2010 14:50:09 +0000 (14:50 +0000)]
Introduce isOpaqueTy and use it rather than isa<OpaqueType>.  Also, move some
methods to try to have the type predicates be more logically positioned.

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

14 years agoThere are two ways of checking for a given type, for example isa<PointerType>(T)
Duncan Sands [Tue, 16 Feb 2010 11:11:14 +0000 (11:11 +0000)]
There are two ways of checking for a given type, for example isa<PointerType>(T)
and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.

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