oota-llvm.git
14 years agoChange the String<size> methods to take a fragment instead of a buffer.
Rafael Espindola [Wed, 10 Nov 2010 20:02:59 +0000 (20:02 +0000)]
Change the String<size> methods to take a fragment instead of a buffer.

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

14 years agoBasic rematerialization during splitting.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 19:31:50 +0000 (19:31 +0000)]
Basic rematerialization during splitting.

Whenever splitting wants to insert a copy, it checks if the value can be
rematerialized cheaply instead.

Missing features:
- Delete instructions when all uses have been rematerialized.
- Truncate live ranges to the remaining uses after rematerialization.

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

14 years agoRABasic is nearly functionally complete. There are a few remaining
Andrew Trick [Wed, 10 Nov 2010 19:18:47 +0000 (19:18 +0000)]
RABasic is nearly functionally complete. There are a few remaining
benchmarks hitting an assertion.
Adds LiveIntervalUnion::collectInterferingVRegs.
Fixes "late spilling" by checking for any unspillable live vregs among
all physReg aliases.

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

14 years agoUse MCSectionELF in places we know we have an ELF section.
Rafael Espindola [Wed, 10 Nov 2010 19:05:07 +0000 (19:05 +0000)]
Use MCSectionELF in places we know we have an ELF section.

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

14 years agoUse getValueOperand() and getPointerOperand() on load and store
Dan Gohman [Wed, 10 Nov 2010 19:03:33 +0000 (19:03 +0000)]
Use getValueOperand() and getPointerOperand() on load and store
instructions instead of hard-coding operand numbers.

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

14 years agoRename AccessesArguments and AccessesArgumentsReadonly, and rewrite
Dan Gohman [Wed, 10 Nov 2010 18:30:00 +0000 (18:30 +0000)]
Rename AccessesArguments and AccessesArgumentsReadonly, and rewrite
their comments.

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

14 years agoTeach InstructionSimplify how to look through PHI nodes. Since PHI
Duncan Sands [Wed, 10 Nov 2010 18:23:01 +0000 (18:23 +0000)]
Teach InstructionSimplify how to look through PHI nodes.  Since PHI
nodes can be used in loops, this could result in infinite looping
if there is no recursion limit, so add such a limit.  It is also
used for the SelectInst case because in theory there could be an
infinite loop there too if the basic block is unreachable.

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

14 years agoFix a copy+pasto Duncan noticed.
Dan Gohman [Wed, 10 Nov 2010 18:18:23 +0000 (18:18 +0000)]
Fix a copy+pasto Duncan noticed.

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

14 years agoAdd a doesAccessArgPointees helper function, and update code to use
Dan Gohman [Wed, 10 Nov 2010 18:17:28 +0000 (18:17 +0000)]
Add a doesAccessArgPointees helper function, and update code to use
it, and to be consistent.

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

14 years agoSimplify and clean up MC symbol lookup for ARM constant pool values. This fixes
Jim Grosbach [Wed, 10 Nov 2010 17:59:10 +0000 (17:59 +0000)]
Simplify and clean up MC symbol lookup for ARM constant pool values. This fixes
double quoting of ObjC symbol names in constant pool entries.

rdar://8652107

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

14 years agoFactor out the code for testing whether a function accesses
Dan Gohman [Wed, 10 Nov 2010 17:34:04 +0000 (17:34 +0000)]
Factor out the code for testing whether a function accesses
arbitrary memory into a helper function, and adjust some comments.

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

14 years agoGive NonLocalDepResult a NonLocalDepEntry member, replacing
Dan Gohman [Wed, 10 Nov 2010 17:15:52 +0000 (17:15 +0000)]
Give NonLocalDepResult a NonLocalDepEntry member, replacing
indivudal members holding the same data, to clarify the relationship
between NonLocalDepResult and NonLocalDepEntry.

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

14 years agoDetect if llvm-gcc is built on dragonegg.
Tobias Grosser [Wed, 10 Nov 2010 16:31:34 +0000 (16:31 +0000)]
Detect if llvm-gcc is built on dragonegg.

Store the flags needed to disable optimizations and to emit LLVM-IR depending on
the version of llvm-gcc used.

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

14 years agoFix Whitespace.
Michael J. Spencer [Wed, 10 Nov 2010 15:06:00 +0000 (15:06 +0000)]
Fix Whitespace.

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

14 years agoSystem/Path: Update comments to match code.
Michael J. Spencer [Wed, 10 Nov 2010 15:05:50 +0000 (15:05 +0000)]
System/Path: Update comments to match code.

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

14 years agoSystem/Win32/Path: Implement isSymLink.
Michael J. Spencer [Wed, 10 Nov 2010 15:05:39 +0000 (15:05 +0000)]
System/Win32/Path: Implement isSymLink.

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

14 years agoSimplify binary operations where one operand is a select instruction.
Duncan Sands [Wed, 10 Nov 2010 13:00:08 +0000 (13:00 +0000)]
Simplify binary operations where one operand is a select instruction.
The simplifications performed here never create new instructions, they
only return existing instructions (or a constant), and so are always a
win.  In theory they should transform (for example)
  %z = and i32 %x, %y
  %s = select i1 %cond, i32 %y, i32 %z
  %r = and i32 %x, %s
into
  %r = and i32 %x, y
but in practice they get into a fight with instcombine, and lose.
Unfortunately instcombine does a poor job in this case.  Nonetheless
I'm committing this transform to make it easier to discuss what to
do to make peace with instcombine.

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

14 years agoWin32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check...
NAKAMURA Takumi [Wed, 10 Nov 2010 08:37:47 +0000 (08:37 +0000)]
Win32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check by FILE_TYPE_CHAR. It must be better to check it with Console API.

The special file "NUL" is FILE_TYPE_CHAR with GetFileType(h). It was treated as display device and discarding output to NUL had failed. (eg. opt -o nul)

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

14 years agoThere is no EndPtr anymore - reinterpret the original comment in terms
Duncan Sands [Wed, 10 Nov 2010 07:46:36 +0000 (07:46 +0000)]
There is no EndPtr anymore - reinterpret the original comment in terms
of InputData.

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

14 years agoUpdate ARMConstantPoolValue to not use a modifier string. Use an explicit
Jim Grosbach [Wed, 10 Nov 2010 03:26:07 +0000 (03:26 +0000)]
Update ARMConstantPoolValue to not use a modifier string. Use an explicit
VariantKind marker to indicate the additional information necessary. Update
MC to handle the new Kinds. rdar://8647623

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

14 years agoAdd a test to the previous added clo instruction. Patch by Akira again
Bruno Cardoso Lopes [Wed, 10 Nov 2010 02:22:44 +0000 (02:22 +0000)]
Add a test to the previous added clo instruction. Patch by Akira again

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

14 years agoAdd clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor...
Bruno Cardoso Lopes [Wed, 10 Nov 2010 02:13:22 +0000 (02:13 +0000)]
Add clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor tweaks

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

14 years agoWhen checking that the necessary bits are zero in
Dale Johannesen [Wed, 10 Nov 2010 01:30:56 +0000 (01:30 +0000)]
When checking that the necessary bits are zero in
order to reduce ((x<<30)>>24) to x<<6, check the
correct bits.  PR 8547.

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

14 years agoEmit a '!' if this is a "writeback" register or memory address.
Bill Wendling [Wed, 10 Nov 2010 01:07:54 +0000 (01:07 +0000)]
Emit a '!' if this is a "writeback" register or memory address.

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

14 years agoSimplify the LiveRangeEdit::canRematerializeAt() interface a bit.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 01:05:12 +0000 (01:05 +0000)]
Simplify the LiveRangeEdit::canRematerializeAt() interface a bit.

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

14 years agoMake ModRefBehavior a lattice. Use this to clean up AliasAnalysis
Dan Gohman [Wed, 10 Nov 2010 01:02:18 +0000 (01:02 +0000)]
Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
chaining and simplify FunctionAttrs' GetModRefBehavior logic.

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

14 years agoRename a parameter to avoid confusion with a local variable
Matt Beaumont-Gay [Wed, 10 Nov 2010 00:08:58 +0000 (00:08 +0000)]
Rename a parameter to avoid confusion with a local variable

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

14 years agoEmit the warning about the register list not being in ascending order only once.
Bill Wendling [Tue, 9 Nov 2010 23:45:59 +0000 (23:45 +0000)]
Emit the warning about the register list not being in ascending order only once.

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

14 years agoJim's recent fixes 118600, 118587, 118513 have made these work.
Dale Johannesen [Tue, 9 Nov 2010 23:43:34 +0000 (23:43 +0000)]
Jim's recent fixes 118600, 118587, 118513 have made these work.

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

14 years agoFixed version of 118639 with an extra assert to catch similar problems
Rafael Espindola [Tue, 9 Nov 2010 23:42:07 +0000 (23:42 +0000)]
Fixed version of 118639 with an extra assert to catch similar problems
earlier. Implicit bool -> int conversions are evil!

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

14 years agos/std::vector/SmallVector/
Bill Wendling [Tue, 9 Nov 2010 23:28:44 +0000 (23:28 +0000)]
s/std::vector/SmallVector/

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

14 years agoRevert previous patch. Missed a case.
Rafael Espindola [Tue, 9 Nov 2010 22:54:38 +0000 (22:54 +0000)]
Revert previous patch. Missed a case.

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

14 years agoDelete the allocated vector.
Bill Wendling [Tue, 9 Nov 2010 22:51:42 +0000 (22:51 +0000)]
Delete the allocated vector.

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

14 years agoDefine the subtarget feature for the architecture version,
Bob Wilson [Tue, 9 Nov 2010 22:50:47 +0000 (22:50 +0000)]
Define the subtarget feature for the architecture version,
as derived from the target triple.  This is important for enabling
features that are implied based on the architecture version.

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

14 years agoDo not use MEMBARRIER_MCR for any Thumb code.
Bob Wilson [Tue, 9 Nov 2010 22:50:44 +0000 (22:50 +0000)]
Do not use MEMBARRIER_MCR for any Thumb code.
It is only supported for ARM code.  Normally Thumb2 code would use DMB instead,
but depending on how the compiler is invoked (e.g., -mattr=-db) that might be
disabled.  This prevents a "cannot select MEMBARRIER_MCR" error in that
situation.  Radar 8644195

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

14 years agoTwo types of instructions have register lists:
Bill Wendling [Tue, 9 Nov 2010 22:44:22 +0000 (22:44 +0000)]
Two types of instructions have register lists:

* LDM, et al, uses a bit mask to indicate the register list.
* VLDM, et al, uses a base register plus number.

The LDM instructions may be non-contiguous, but the VLDM ones must be
contiguous. Those are semantic checks that should be done later in the
compiler. Also postpone the creation of the bit mask until it's needed.

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

14 years agoRemove IsExplicit. It was always false.
Rafael Espindola [Tue, 9 Nov 2010 22:37:44 +0000 (22:37 +0000)]
Remove IsExplicit. It was always false.

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

14 years agoChange the ARMConstantPoolValue modifier string to an enumeration. This will
Jim Grosbach [Tue, 9 Nov 2010 21:36:17 +0000 (21:36 +0000)]
Change the ARMConstantPoolValue modifier string to an enumeration. This will
help in MC'izing the references that use them.

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

14 years agoAdds RABasic verification and tracing.
Andrew Trick [Tue, 9 Nov 2010 21:04:34 +0000 (21:04 +0000)]
Adds RABasic verification and tracing.
(retry now that the windows build is green)

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

14 years agoConvert comments to doxygen syntax.
Dan Gohman [Tue, 9 Nov 2010 20:33:57 +0000 (20:33 +0000)]
Convert comments to doxygen syntax.

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

14 years agoTeach FunctionAttrs about the VAArg instruction.
Dan Gohman [Tue, 9 Nov 2010 20:17:38 +0000 (20:17 +0000)]
Teach FunctionAttrs about the VAArg instruction.

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

14 years agoUse the AliasAnalysis interface to determine how a Function accesses
Dan Gohman [Tue, 9 Nov 2010 20:13:27 +0000 (20:13 +0000)]
Use the AliasAnalysis interface to determine how a Function accesses
memory. This isn't a real improvement with present day AliasAnalysis
implementations; it's mainly for consistency.

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

14 years agoVAArg doesn't capture its operand.
Dan Gohman [Tue, 9 Nov 2010 20:09:35 +0000 (20:09 +0000)]
VAArg doesn't capture its operand.

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

14 years agoTranslate IntrReadArgMem to AccessesArgumentsReadonly.
Dan Gohman [Tue, 9 Nov 2010 20:07:20 +0000 (20:07 +0000)]
Translate IntrReadArgMem to AccessesArgumentsReadonly.

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

14 years agoTeach AliasAnalysis about AccessesArgumentsReadonly.
Dan Gohman [Tue, 9 Nov 2010 20:06:55 +0000 (20:06 +0000)]
Teach AliasAnalysis about AccessesArgumentsReadonly.

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

14 years agoTeach LICM and AliasSetTracker about AccessesArgumentsReadonly.
Dan Gohman [Tue, 9 Nov 2010 19:58:21 +0000 (19:58 +0000)]
Teach LICM and AliasSetTracker about AccessesArgumentsReadonly.

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

14 years agoTeach FunctionAttrs about AccessesArgumentsReadonly.
Dan Gohman [Tue, 9 Nov 2010 19:56:27 +0000 (19:56 +0000)]
Teach FunctionAttrs about AccessesArgumentsReadonly.

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

14 years agoAdd a trivial virtual dtor to AbstractRegisterDescription to appease
Matt Beaumont-Gay [Tue, 9 Nov 2010 19:56:25 +0000 (19:56 +0000)]
Add a trivial virtual dtor to AbstractRegisterDescription to appease
-Wnon-virtual-dtor.

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

14 years agoAccessesArgumentsReadonly is read-only.
Dan Gohman [Tue, 9 Nov 2010 19:50:00 +0000 (19:50 +0000)]
AccessesArgumentsReadonly is read-only.

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

14 years agoAdd a AccessesArgumentsReadonly ModRefBehavior value, so that the intrinsic
Dan Gohman [Tue, 9 Nov 2010 19:48:55 +0000 (19:48 +0000)]
Add a AccessesArgumentsReadonly ModRefBehavior value, so that the intrinsic
property IntrReadArgMem can be modeled.

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

14 years agoReverting r118604. Windows build broke.
Andrew Trick [Tue, 9 Nov 2010 19:47:51 +0000 (19:47 +0000)]
Reverting r118604. Windows build broke.

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

14 years agoFactor out the logic for onlyReadsMemory into a helper function.
Dan Gohman [Tue, 9 Nov 2010 19:43:24 +0000 (19:43 +0000)]
Factor out the logic for onlyReadsMemory into a helper function.

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

14 years agoDelete AccessesArgumentsAndGlobals, which was unused.
Dan Gohman [Tue, 9 Nov 2010 19:41:37 +0000 (19:41 +0000)]
Delete AccessesArgumentsAndGlobals, which was unused.

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

14 years agoHandle ARM constant pool values that need an explicit reference to the '.'
Jim Grosbach [Tue, 9 Nov 2010 19:40:22 +0000 (19:40 +0000)]
Handle ARM constant pool values that need an explicit reference to the '.'
pseudo-label. (TLS stuff).

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

14 years agoadd a case we fail to devirt.
Chris Lattner [Tue, 9 Nov 2010 19:37:28 +0000 (19:37 +0000)]
add a case we fail to devirt.

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

14 years agoTrailing whitespace.
Jim Grosbach [Tue, 9 Nov 2010 19:22:26 +0000 (19:22 +0000)]
Trailing whitespace.

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

14 years agoAdds RABasic verification and tracing.
Andrew Trick [Tue, 9 Nov 2010 19:01:17 +0000 (19:01 +0000)]
Adds RABasic verification and tracing.

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

14 years agoFurther MCize ARM constant pool values. This allows basic PIC references for
Jim Grosbach [Tue, 9 Nov 2010 18:45:04 +0000 (18:45 +0000)]
Further MCize ARM constant pool values. This allows basic PIC references for
object file emission.

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

14 years agoAdd encoding of Rt to ARM LDR/STR w/ reg+reg offset encoding.
Jim Grosbach [Tue, 9 Nov 2010 18:43:54 +0000 (18:43 +0000)]
Add encoding of Rt to ARM LDR/STR w/ reg+reg offset encoding.

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

14 years agoLast try to get this reference counting right, I swear.
Owen Anderson [Tue, 9 Nov 2010 17:47:10 +0000 (17:47 +0000)]
Last try to get this reference counting right, I swear.

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

14 years agoReally fix the leak in the attributes list. Thanks to Benjamin Kramer for pointing...
Owen Anderson [Tue, 9 Nov 2010 17:46:38 +0000 (17:46 +0000)]
Really fix the leak in the attributes list.  Thanks to Benjamin Kramer for pointing out how I was being stupid.

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

14 years agoFor ARM load/store instructions, encode [reg+reg] with no shifter immediate as
Jim Grosbach [Tue, 9 Nov 2010 17:38:15 +0000 (17:38 +0000)]
For ARM load/store instructions, encode [reg+reg] with no shifter immediate as
a left shift by zero.

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

14 years agoARM .word data fixups don't need an adjustment.
Jim Grosbach [Tue, 9 Nov 2010 17:36:59 +0000 (17:36 +0000)]
ARM .word data fixups don't need an adjustment.

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

14 years agoFactorize code, no functionality change.
Duncan Sands [Tue, 9 Nov 2010 17:25:51 +0000 (17:25 +0000)]
Factorize code, no functionality change.

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

14 years agoFix trailing whitespace and style, no functionality change
Bruno Cardoso Lopes [Tue, 9 Nov 2010 17:25:34 +0000 (17:25 +0000)]
Fix trailing whitespace and style, no functionality change

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

14 years agoAdd encoder method for ARM load/store shifted register offset operands.
Jim Grosbach [Tue, 9 Nov 2010 17:20:53 +0000 (17:20 +0000)]
Add encoder method for ARM load/store shifted register offset operands.

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

14 years agoTestcase for PR8211 (llc crash at -O0).
Duncan Sands [Tue, 9 Nov 2010 16:22:27 +0000 (16:22 +0000)]
Testcase for PR8211 (llc crash at -O0).

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

14 years agoSystem/Path/Windows: Implement GetLLVMDefaultConfigDir.
Michael J. Spencer [Tue, 9 Nov 2010 15:11:42 +0000 (15:11 +0000)]
System/Path/Windows: Implement GetLLVMDefaultConfigDir.

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

14 years agoSystem/Path/Windows: Generalize GetUserHomeDirectory.
Michael J. Spencer [Tue, 9 Nov 2010 15:11:31 +0000 (15:11 +0000)]
System/Path/Windows: Generalize GetUserHomeDirectory.

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

14 years agoSystem/Path/Windows: Make GetSystemLibraryPaths more generic.
Michael J. Spencer [Tue, 9 Nov 2010 15:11:19 +0000 (15:11 +0000)]
System/Path/Windows: Make GetSystemLibraryPaths more generic.

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

14 years agoSystem/Windows: Reduce dependencies.
Michael J. Spencer [Tue, 9 Nov 2010 15:11:07 +0000 (15:11 +0000)]
System/Windows: Reduce dependencies.

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

14 years agoSystem/Windows: Use normalized case and include method.
Michael J. Spencer [Tue, 9 Nov 2010 15:10:56 +0000 (15:10 +0000)]
System/Windows: Use normalized case and include method.

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

14 years agoSystem/Path/Windows: Change GetRootDirectory to return file:/// instead of C:/.
Michael J. Spencer [Tue, 9 Nov 2010 15:10:45 +0000 (15:10 +0000)]
System/Path/Windows: Change GetRootDirectory to return file:/// instead of C:/.

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

14 years agoUpdate comment.
Michael J. Spencer [Tue, 9 Nov 2010 15:10:29 +0000 (15:10 +0000)]
Update comment.

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

14 years agoFix leak in my recent fix for PR8442.
Owen Anderson [Tue, 9 Nov 2010 05:17:47 +0000 (05:17 +0000)]
Fix leak in my recent fix for PR8442.

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

14 years agoFix DAGCombiner to avoid folding a sext-in-reg or similar through a shl
Dan Gohman [Tue, 9 Nov 2010 01:54:35 +0000 (01:54 +0000)]
Fix DAGCombiner to avoid folding a sext-in-reg or similar through a shl
in order to fold it into a load.

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

14 years agoDelete an extraneous svn:executable property.
Dan Gohman [Tue, 9 Nov 2010 01:51:06 +0000 (01:51 +0000)]
Delete an extraneous svn:executable property.

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

14 years agoAdd support for a few simple fixups to the ARM Darwin asm backend. This allows
Jim Grosbach [Tue, 9 Nov 2010 01:37:15 +0000 (01:37 +0000)]
Add support for a few simple fixups to the ARM Darwin asm backend. This allows
constant pool references and global variable refernces to resolve properly
for object file generation. For example,

int x;
void foo(unsigned a, unsigned *p) {
  p[a] = x;
}

can now be successfully compiled directly to an (ARM mode) object file.

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

14 years agoFix an inline asm pasto from 117667; was preventing
Dale Johannesen [Tue, 9 Nov 2010 01:15:07 +0000 (01:15 +0000)]
Fix an inline asm pasto from 117667; was preventing
{i64, i64} from matching i128.

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

14 years agoFix some places where error messages were being swallowed.
Dan Gohman [Tue, 9 Nov 2010 01:13:31 +0000 (01:13 +0000)]
Fix some places where error messages were being swallowed.

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

14 years agoFix PR8441, a thread unsafe static variable in our dynamic library loading facilities.
Owen Anderson [Tue, 9 Nov 2010 00:36:06 +0000 (00:36 +0000)]
Fix PR8441, a thread unsafe static variable in our dynamic library loading facilities.

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

14 years agoRevert r118457 and r118458. These won't hold for GPRs.
Bill Wendling [Tue, 9 Nov 2010 00:30:18 +0000 (00:30 +0000)]
Revert r118457 and r118458. These won't hold for GPRs.

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

14 years agoFix PR8441, a race condition in the static attributes list. While the reference...
Owen Anderson [Tue, 9 Nov 2010 00:27:03 +0000 (00:27 +0000)]
Fix PR8441, a race condition in the static attributes list.  While the reference counting was itself threadsafe,
the implicit removal of each object from the global list was not.  Make this operation atomic.

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

14 years agoGet the register and count from the register list operands.
Bill Wendling [Mon, 8 Nov 2010 23:51:20 +0000 (23:51 +0000)]
Get the register and count from the register list operands.

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

14 years agoreglist has two operands.
Bill Wendling [Mon, 8 Nov 2010 23:50:20 +0000 (23:50 +0000)]
reglist has two operands.

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

14 years agoThe "addRegListOperands()" function returns the start register and the total
Bill Wendling [Mon, 8 Nov 2010 23:49:57 +0000 (23:49 +0000)]
The "addRegListOperands()" function returns the start register and the total
number of registers in the list.

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

14 years agoAdd some comments noting some correspondences between ModRefBehavior
Dan Gohman [Mon, 8 Nov 2010 23:46:02 +0000 (23:46 +0000)]
Add some comments noting some correspondences between ModRefBehavior
values, LLVM IR function attributes, and LLVM intrinsic attributes.

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

14 years agoAdd support for ARM's specialized vector-compare-against-zero instructions.
Owen Anderson [Mon, 8 Nov 2010 23:21:22 +0000 (23:21 +0000)]
Add support for ARM's specialized vector-compare-against-zero instructions.

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

14 years agoInitial support for Mips32 and Mips32r2. Patch contributed by Akira Hatanaka (ahatana...
Bruno Cardoso Lopes [Mon, 8 Nov 2010 21:42:32 +0000 (21:42 +0000)]
Initial support for Mips32 and Mips32r2. Patch contributed by Akira Hatanaka (ahatanaka@mips.com)

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

14 years agoAdd "write back" bit encoding.
Bill Wendling [Mon, 8 Nov 2010 21:28:03 +0000 (21:28 +0000)]
Add "write back" bit encoding.

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

14 years agoFix PR8211
Bruno Cardoso Lopes [Mon, 8 Nov 2010 21:24:59 +0000 (21:24 +0000)]
Fix PR8211

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

14 years agoRemove contributor names as per coding statndard.
Michael J. Spencer [Mon, 8 Nov 2010 20:56:32 +0000 (20:56 +0000)]
Remove contributor names as per coding statndard.

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

14 years agoAdd an additional test for icmp of select folding.
Duncan Sands [Mon, 8 Nov 2010 20:56:28 +0000 (20:56 +0000)]
Add an additional test for icmp of select folding.

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

14 years agoRe-introduce the MaxLookup limit to BasicAliasAnalysis'
Dan Gohman [Mon, 8 Nov 2010 20:26:19 +0000 (20:26 +0000)]
Re-introduce the MaxLookup limit to BasicAliasAnalysis'
pointsToConstantMemory code to guard against possible
compile time slowdowns.

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

14 years agoAdd a testcase for a call which BasicAA says only accesses memory through
Dan Gohman [Mon, 8 Nov 2010 20:20:11 +0000 (20:20 +0000)]
Add a testcase for a call which BasicAA says only accesses memory through
its arguments and which TBAA says doesn't write to memory.

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

14 years agoAdding working version of assembly parser for the MBlaze backend
Wesley Peck [Mon, 8 Nov 2010 19:40:01 +0000 (19:40 +0000)]
Adding working version of assembly parser for the MBlaze backend
Major cleanup of whitespace and formatting issues in MBlaze backend

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

14 years agoFix a thinko that Duncan spotted.
Dan Gohman [Mon, 8 Nov 2010 19:24:47 +0000 (19:24 +0000)]
Fix a thinko that Duncan spotted.

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

14 years agoRevert 118422 in search of bot verdancy.
Dale Johannesen [Mon, 8 Nov 2010 19:17:22 +0000 (19:17 +0000)]
Revert 118422 in search of bot verdancy.

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

14 years agoDocument parameters. Fix typos.
Devang Patel [Mon, 8 Nov 2010 18:28:34 +0000 (18:28 +0000)]
Document parameters. Fix typos.

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

14 years agoAdds support for spilling previously allocated live intervals to
Andrew Trick [Mon, 8 Nov 2010 18:02:08 +0000 (18:02 +0000)]
Adds support for spilling previously allocated live intervals to
handle cases in which a register is unavailable for spill code.
Adds LiveIntervalUnion::extract. While processing interferences on a
live virtual register, reuses the same Query object for each
physcial reg.

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