oota-llvm.git
14 years agoAdd the missing cases to the type->registerclass conversion function.
Kalle Raiskila [Thu, 7 Oct 2010 16:32:42 +0000 (16:32 +0000)]
Add the missing cases to the type->registerclass conversion function.

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

14 years agoImplement two virtual functions in SPUTargetLowering.
Kalle Raiskila [Thu, 7 Oct 2010 16:24:35 +0000 (16:24 +0000)]
Implement two virtual functions in SPUTargetLowering.

Before the implementation of isLegalAddressingMode, some rare cases
of code were miscompiled if optimized with the LoopStrengthReduce pass.
It is unclear (to me) if LSR is "allowed" to produce wrong code with a
bad TargetLowering, or if the bug is elsewhere and this patch just
hides it.

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

14 years agoMinor cosmetic change: fix DOSish \r\n.
NAKAMURA Takumi [Thu, 7 Oct 2010 07:21:04 +0000 (07:21 +0000)]
Minor cosmetic change: fix DOSish \r\n.

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

14 years agoMC-COFF: Fix symbol aliases. Fixes PR8251.
Michael J. Spencer [Thu, 7 Oct 2010 06:29:33 +0000 (06:29 +0000)]
MC-COFF: Fix symbol aliases. Fixes PR8251.

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

14 years agotest: Fix binary stdin issues with coff-dump on Windows.
Michael J. Spencer [Thu, 7 Oct 2010 06:29:21 +0000 (06:29 +0000)]
test: Fix binary stdin issues with coff-dump on Windows.

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

14 years agoUse the correct register class for load instructions - fixes
Eric Christopher [Thu, 7 Oct 2010 05:50:44 +0000 (05:50 +0000)]
Use the correct register class for load instructions - fixes
compilation of MultiSource/Benchmarks/Bullet.

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

14 years agoUse the correct register class here.
Eric Christopher [Thu, 7 Oct 2010 05:39:19 +0000 (05:39 +0000)]
Use the correct register class here.

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

14 years agoUse the thumb2 conditional move instruction.
Eric Christopher [Thu, 7 Oct 2010 05:31:49 +0000 (05:31 +0000)]
Use the thumb2 conditional move instruction.

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

14 years agoRemove in-progress assertion, add TODO.
Eric Christopher [Thu, 7 Oct 2010 05:14:08 +0000 (05:14 +0000)]
Remove in-progress assertion, add TODO.

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

14 years agoAdd the header that I accidentally forgot from r115900.
Owen Anderson [Thu, 7 Oct 2010 04:17:38 +0000 (04:17 +0000)]
Add the header that I accidentally forgot from r115900.

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

14 years agoMove the pass initialization helper functions into the llvm namespace, and add
Owen Anderson [Thu, 7 Oct 2010 04:13:08 +0000 (04:13 +0000)]
Move the pass initialization helper functions into the llvm namespace, and add
a header declaring them all.  This is also where we will declare per-library pass-set
initializer functions down the road.

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

14 years agoModel operand cycles of vldm / vstm; also fixes scheduling itineraries of vldr /...
Evan Cheng [Thu, 7 Oct 2010 01:50:48 +0000 (01:50 +0000)]
Model operand cycles of vldm / vstm; also fixes scheduling itineraries of vldr / vstr, etc.

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

14 years agoadd support for isConvertibleToThreeAddress to ArithBinOpEFLAGS,
Chris Lattner [Thu, 7 Oct 2010 01:37:01 +0000 (01:37 +0000)]
add support for isConvertibleToThreeAddress to ArithBinOpEFLAGS,
allowing us to convert ADD over.  deletes 160 lines of .td file.

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

14 years agoFix a few issues in ArithBinOpEFLAGS that made it specific to and.
Chris Lattner [Thu, 7 Oct 2010 01:26:27 +0000 (01:26 +0000)]
Fix a few issues in ArithBinOpEFLAGS that made it specific to and.

Start using ArithBinOpEFLAGS for OR, XOR, and SUB.

This removes 500 lines from the .td file.  Now AND/OR/XOR/SUB are all
defined exactly the same way instead of being close relatives.

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

14 years agoConvert 'and' to single instance of a multipattern
Chris Lattner [Thu, 7 Oct 2010 01:10:20 +0000 (01:10 +0000)]
Convert 'and' to single instance of a multipattern
which instantiates the 34 versions of and all in one
swoop.  The BaseOpc/BaseOpc2/BaseOpc4 stuff should not
be required, but tblgen's feeble brain explodes when I
use Or4<BaseOpc>.V in the multipattern.

No change in the generated .inc files.

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

14 years agoAllow use of the 16-bit literal move instruction in CMOVs for Thumb2 mode.
Jim Grosbach [Thu, 7 Oct 2010 00:53:56 +0000 (00:53 +0000)]
Allow use of the 16-bit literal move instruction in CMOVs for Thumb2 mode.

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

14 years agoadd a new BinOpAI class to represent the immediate form that directly acts on EAX.
Chris Lattner [Thu, 7 Oct 2010 00:43:39 +0000 (00:43 +0000)]
add a new BinOpAI class to represent the immediate form that directly acts on EAX.
This does change the generated .inc files to include the implicit use/def of eax.
Since these instructions are only generated by the assembler and disassembler it
doesn't actually matter though.

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

14 years agoAllow use of the 16-bit literal move instruction in CMOVs for ARM mode.
Jim Grosbach [Thu, 7 Oct 2010 00:42:42 +0000 (00:42 +0000)]
Allow use of the 16-bit literal move instruction in CMOVs for ARM mode.

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

14 years agoadd a bunch of classes for other common patterns.
Chris Lattner [Thu, 7 Oct 2010 00:35:28 +0000 (00:35 +0000)]
add a bunch of classes for other common patterns.
As usual, no change in generated .inc files.

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

14 years agoSince the Hello pass is built as a loadable dynamic library, don't try to convert...
Owen Anderson [Thu, 7 Oct 2010 00:31:16 +0000 (00:31 +0000)]
Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet.

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

14 years agoDefine a new BinOpRI8 class and use it to define the imm8 versions of and.
Chris Lattner [Thu, 7 Oct 2010 00:12:45 +0000 (00:12 +0000)]
Define a new BinOpRI8 class and use it to define the imm8 versions of and.

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

14 years agoConstrain the offset register to a *_NOSP register class when inserting LEA
Jakob Stoklund Olesen [Thu, 7 Oct 2010 00:07:26 +0000 (00:07 +0000)]
Constrain the offset register to a *_NOSP register class when inserting LEA
instructions.

This unbreaks the machine code verifier and fixes PR8317.

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

14 years agoadd the pattern operator to match to X86TypeInfo, use this to
Chris Lattner [Thu, 7 Oct 2010 00:01:39 +0000 (00:01 +0000)]
add the pattern operator to match to X86TypeInfo, use this to
convert AND64ri32 to use BinOpRI.

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

14 years agoadd a common SDPatternOperator base class to SDNode and PatFrag for
Chris Lattner [Thu, 7 Oct 2010 00:01:00 +0000 (00:01 +0000)]
add a common SDPatternOperator base class to SDNode and PatFrag for
stuff that wants to take one or the other.  These can both be used
as the operation of a dag in a pattern match.

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

14 years agoProperly handle GR32_NOSP in X86RegisterInfo::getMatchingSuperRegClass.
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:56:46 +0000 (23:56 +0000)]
Properly handle GR32_NOSP in X86RegisterInfo::getMatchingSuperRegClass.

This function looks like it is about ready to be generated by TebleGen.

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

14 years agoAdd MachineRegisterInfo::constrainRegClass and use it in MachineCSE.
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:54:39 +0000 (23:54 +0000)]
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE.

This function is intended to be used when inserting a machine instruction that
trivially restricts the legal registers, like LEA requiring a GR32_NOSP
argument.

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

14 years agoSkip unused registers when verifying LiveIntervals.
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:54:35 +0000 (23:54 +0000)]
Skip unused registers when verifying LiveIntervals.

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

14 years agoFixed RELEASE_28 tags.
Bill Wendling [Wed, 6 Oct 2010 23:50:30 +0000 (23:50 +0000)]
Fixed RELEASE_28 tags.

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

14 years agoremove trailing whitespace
Jim Grosbach [Wed, 6 Oct 2010 22:46:47 +0000 (22:46 +0000)]
remove trailing whitespace

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

14 years agoFirst in a sequence of ARM/MC/*ELF* specific work.
Jason W Kim [Wed, 6 Oct 2010 22:36:46 +0000 (22:36 +0000)]
First in a sequence of ARM/MC/*ELF* specific work.
Lifted the EmitRawText calls to ARMAsmPrinter::emitAttribute()
Added ARMAsmPrinter::emitAttributes() (plural s).
TODO:
.cpu attribute needs to be refactored

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

14 years agoAnother case of 256 sections not being enough :-)
Rafael Espindola [Wed, 6 Oct 2010 22:28:19 +0000 (22:28 +0000)]
Another case of 256 sections not being enough :-)

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

14 years agoAppease the clang self-host buildbot by providing a correct instantiation.
Owen Anderson [Wed, 6 Oct 2010 22:23:20 +0000 (22:23 +0000)]
Appease the clang self-host buildbot by providing a correct instantiation.

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

14 years agoClean up MOVi32imm and t2MOVi32imm pseudo instruction definitions.
Jim Grosbach [Wed, 6 Oct 2010 22:01:26 +0000 (22:01 +0000)]
Clean up MOVi32imm and t2MOVi32imm pseudo instruction definitions.

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

14 years agoKill of the vestiges of the 'call' Modifier (no longer needed for PLT).
Jim Grosbach [Wed, 6 Oct 2010 21:36:43 +0000 (21:36 +0000)]
Kill of the vestiges of the 'call' Modifier (no longer needed for PLT).

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

14 years agoNow that VDUPfqf and VDUPfdfare properly pseudos, kill the no-longer-needed
Jim Grosbach [Wed, 6 Oct 2010 21:22:32 +0000 (21:22 +0000)]
Now that VDUPfqf and VDUPfdfare properly pseudos, kill the no-longer-needed
"lane" operand modifier.

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

14 years agoNow that VDUPfqf and VDUPfdfare properly pseudos, nuke the special handling.
Jim Grosbach [Wed, 6 Oct 2010 21:17:07 +0000 (21:17 +0000)]
Now that VDUPfqf and VDUPfdfare properly pseudos, nuke the special handling.

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

14 years agoChange the NEON VDUPfdf and VDUPfqf pseudo-instructions to actually be
Jim Grosbach [Wed, 6 Oct 2010 21:16:16 +0000 (21:16 +0000)]
Change the NEON VDUPfdf and VDUPfqf pseudo-instructions to actually be
pseudo instructions.

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

14 years agoFix libc++ link in release notes.
Tobias Grosser [Wed, 6 Oct 2010 21:07:30 +0000 (21:07 +0000)]
Fix libc++ link in release notes.

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

14 years agoGet binding and visibility info from the the alias, but Type from the symbol
Rafael Espindola [Wed, 6 Oct 2010 21:02:29 +0000 (21:02 +0000)]
Get binding and visibility info from the the alias, but Type from the symbol
being aliased.

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

14 years agoHide analysis group registration behind a macro, just like pass registration.
Owen Anderson [Wed, 6 Oct 2010 21:02:27 +0000 (21:02 +0000)]
Hide analysis group registration behind a macro, just like pass registration.

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

14 years agoAdd support for DW_TAG_unspecified_parameters.
Devang Patel [Wed, 6 Oct 2010 20:50:40 +0000 (20:50 +0000)]
Add support for DW_TAG_unspecified_parameters.

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

14 years agoAdd a 'pattern' arg to the ARM PseudoNeonI class.
Jim Grosbach [Wed, 6 Oct 2010 20:36:55 +0000 (20:36 +0000)]
Add a 'pattern' arg to the ARM PseudoNeonI class.

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

14 years agoMC: Add missing forward in MCLoggingStreamer.
Michael J. Spencer [Wed, 6 Oct 2010 20:36:47 +0000 (20:36 +0000)]
MC: Add missing forward in MCLoggingStreamer.

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

14 years agoCleanup Whitespace.
Michael J. Spencer [Wed, 6 Oct 2010 20:36:38 +0000 (20:36 +0000)]
Cleanup Whitespace.

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

14 years agoRevert "RequiresUnique" patch. This should be handled at a lower level.
Bill Wendling [Wed, 6 Oct 2010 20:18:44 +0000 (20:18 +0000)]
Revert "RequiresUnique" patch. This should be handled at a lower level.

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

14 years agoPass initialization functions should take a PassRegistry as a parameter
Owen Anderson [Wed, 6 Oct 2010 20:07:03 +0000 (20:07 +0000)]
Pass initialization functions should take a PassRegistry as a parameter
rather than being fixed to the global registry.

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

14 years agoIf a symbol is global, reloc against it even if it is in a mergeable section.
Rafael Espindola [Wed, 6 Oct 2010 19:27:21 +0000 (19:27 +0000)]
If a symbol is global, reloc against it even if it is in a mergeable section.

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

14 years agoRemove unused variables.
Nick Lewycky [Wed, 6 Oct 2010 18:11:50 +0000 (18:11 +0000)]
Remove unused variables.

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

14 years agoRemove compatibilty code for old-style multiple return values.
Dan Gohman [Wed, 6 Oct 2010 16:59:24 +0000 (16:59 +0000)]
Remove compatibilty code for old-style multiple return values.

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

14 years agotarget operand flag values aren't a bitmask
Jim Grosbach [Wed, 6 Oct 2010 16:51:55 +0000 (16:51 +0000)]
target operand flag values aren't a bitmask

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

14 years agoMake sure weak symbols are listed after the local ones.
Rafael Espindola [Wed, 6 Oct 2010 16:47:31 +0000 (16:47 +0000)]
Make sure weak symbols are listed after the local ones.

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

14 years agoCorrectly handle GOTPCREL relocations.
Rafael Espindola [Wed, 6 Oct 2010 16:23:36 +0000 (16:23 +0000)]
Correctly handle GOTPCREL relocations.

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

14 years agoComputeLinearIndex doesn't need its TLI argument.
Dan Gohman [Wed, 6 Oct 2010 16:18:29 +0000 (16:18 +0000)]
ComputeLinearIndex doesn't need its TLI argument.

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

14 years agoConstify isReachableFromEntry.
Dan Gohman [Wed, 6 Oct 2010 15:49:14 +0000 (15:49 +0000)]
Constify isReachableFromEntry.

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

14 years agoAdd missing "-" to the command line.
Tobias Grosser [Wed, 6 Oct 2010 11:43:06 +0000 (11:43 +0000)]
Add missing "-" to the command line.

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

14 years agoRemove tabs.
Bill Wendling [Wed, 6 Oct 2010 07:19:18 +0000 (07:19 +0000)]
Remove tabs.

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

14 years agoChange RequiresMerge to RequiresUnique. It's a better description of what this
Bill Wendling [Wed, 6 Oct 2010 07:03:52 +0000 (07:03 +0000)]
Change RequiresMerge to RequiresUnique. It's a better description of what this
fix is trying to accomplish.

This code could still use some polishing.

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

14 years agoNo need to check out everything: binutils is enough.
Duncan Sands [Wed, 6 Oct 2010 06:45:11 +0000 (06:45 +0000)]
No need to check out everything: binutils is enough.
Patch by John Tytgat.

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

14 years ago- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This
Evan Cheng [Wed, 6 Oct 2010 06:27:31 +0000 (06:27 +0000)]
- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This
  allow target to correctly compute latency for cases where static scheduling
  itineraries isn't sufficient. e.g. variable_ops instructions such as
  ARM::ldm.
  This also allows target without scheduling itineraries to compute operand
  latencies. e.g. X86 can return (approximated) latencies for high latency
  instructions such as division.
- Compute operand latencies for those defined by load multiple instructions,
  e.g. ldm and those used by store multiple instructions, e.g. stm.

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

14 years agoIf the destination module all ready has a copy of the global coming from the
Bill Wendling [Wed, 6 Oct 2010 06:16:30 +0000 (06:16 +0000)]
If the destination module all ready has a copy of the global coming from the
source module *and* it must be merged (instead of simply replaced or appended
to), then merge instead of replacing or adding another global.

The ObjC __image_info section was being appended to because of this
failure. This caused a crash because the linker expects the image info section
to be a specific size.

<rdar://problem/8198537>

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

14 years agoenhance X86TypeInfo to include information about the encoding and
Chris Lattner [Wed, 6 Oct 2010 05:55:42 +0000 (05:55 +0000)]
enhance X86TypeInfo to include information about the encoding and
operand kind for immediates.  Use these to define a new BinOpRI
class and switch AND8/16/32ri over to it.  AND64ri32 needs some
more refactoring before it can make the switcheroo.

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

14 years agoUpdate release location.
Tanya Lattner [Wed, 6 Oct 2010 05:36:01 +0000 (05:36 +0000)]
Update release location.

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

14 years agoadd a class for _REV nodes.
Chris Lattner [Wed, 6 Oct 2010 05:35:22 +0000 (05:35 +0000)]
add a class for _REV nodes.

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

14 years agosink more intelligence into the ITy base class. Now it knows
Chris Lattner [Wed, 6 Oct 2010 05:28:38 +0000 (05:28 +0000)]
sink more intelligence into the ITy base class.  Now it knows
that i8 operations are even and i16,i32,i64 operations have a
low opcode bit set (they are odd).

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

14 years agorefactor things a bit, now the REX_W and OpSize prefix bytes are inferred from the...
Chris Lattner [Wed, 6 Oct 2010 05:20:57 +0000 (05:20 +0000)]
refactor things a bit, now the REX_W and OpSize prefix bytes are inferred from the type info.

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

14 years agowith tblgen suitably extended, we can now get the load node from typeinfo.
Chris Lattner [Wed, 6 Oct 2010 04:58:43 +0000 (04:58 +0000)]
with tblgen suitably extended, we can now get the load node from typeinfo.

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

14 years agoGeneralize tblgen's dag parsing logic to handle arbitrary expressions
Chris Lattner [Wed, 6 Oct 2010 04:55:48 +0000 (04:55 +0000)]
Generalize tblgen's dag parsing logic to handle arbitrary expressions
as the operator of the dag.  Specifically, this allows parsing things
like (F.x 4) in addition to just (a 4).

Unfortunately, this runs afoul of an idiom being used by llvmc.  It
is using dags like (foo [1,2,3]) to represent a list of stuff being
passed into foo.  With this change, this is parsed as a [1,2,3]
subscript on foo instead of being the first argument to the dag.
Cope with this in the short term by requiring a "-llvmc-temp-hack"
argument to tblgen to get the old parsing behavior.

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

14 years agorename add some comments.
Chris Lattner [Wed, 6 Oct 2010 04:37:17 +0000 (04:37 +0000)]
rename add some comments.

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

14 years agofilecheckize
Chris Lattner [Wed, 6 Oct 2010 04:36:30 +0000 (04:36 +0000)]
filecheckize

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

14 years agocleanups
Chris Lattner [Wed, 6 Oct 2010 04:31:40 +0000 (04:31 +0000)]
cleanups

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

14 years agolib/System/Win32/Signals.inc: Enable LLVM_DISABLE_CRT_DEBUG also on mingw.
NAKAMURA Takumi [Wed, 6 Oct 2010 02:15:22 +0000 (02:15 +0000)]
lib/System/Win32/Signals.inc: Enable LLVM_DISABLE_CRT_DEBUG also on mingw.

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

14 years agoProvide a fast "get me the target triple from the module" API. This can
Bill Wendling [Wed, 6 Oct 2010 01:22:42 +0000 (01:22 +0000)]
Provide a fast "get me the target triple from the module" API. This can
drastically reduce the linking time during LTO.

Patch by Shantonu Sen!

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

14 years agolets go all meta and define new X86 type wrappers that declare the associated
Chris Lattner [Wed, 6 Oct 2010 00:45:24 +0000 (00:45 +0000)]
lets go all meta and define new X86 type wrappers that declare the associated
gunk that goes along with an MVT (e.g. reg class, preferred load operation,
memory operand)

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

14 years agointroduce a new BinOpRM class and use it to factor AND*rm. This points out
Chris Lattner [Wed, 6 Oct 2010 00:30:49 +0000 (00:30 +0000)]
introduce a new BinOpRM class and use it to factor AND*rm.  This points out
that I need a heavier handed approach to get ultimate factorization.

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

14 years agoremove the !nameconcat tblgen feature. It "shorthand" and only used in 4 places
Chris Lattner [Wed, 6 Oct 2010 00:19:21 +0000 (00:19 +0000)]
remove the !nameconcat tblgen feature.  It "shorthand" and only used in 4 places
where !cast is just as short.

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

14 years agoreplace stuff like:
Chris Lattner [Wed, 6 Oct 2010 00:05:18 +0000 (00:05 +0000)]
replace stuff like:

  let AsmString = !strconcat(
                     !strconcat(!strconcat(opc, "${p}"), !strconcat(".", dt)),
                     !strconcat("\t", asm));

with:

  let AsmString = !strconcat(opc, "${p}", ".", dt, "\t", asm);

:)

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

14 years agoallow !strconcat to take more than two operands to eliminate
Chris Lattner [Tue, 5 Oct 2010 23:58:18 +0000 (23:58 +0000)]
allow !strconcat to take more than two operands to eliminate
!strconcat(!strconcat(!strconcat(!strconcat

Simplify some x86 td files to use it.

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

14 years agoUse a relocation against the symbol if it is a PLT and the symbol is in another
Rafael Espindola [Tue, 5 Oct 2010 23:57:26 +0000 (23:57 +0000)]
Use a relocation against the symbol if it is a PLT and the symbol is in another
section. Common because of linkonce sections.

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

14 years agoComment out fastisel debugging message.
Eric Christopher [Tue, 5 Oct 2010 23:50:58 +0000 (23:50 +0000)]
Comment out fastisel debugging message.

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

14 years agoassociate the instruction suffix letter with the integer gpr
Chris Lattner [Tue, 5 Oct 2010 23:43:04 +0000 (23:43 +0000)]
associate the instruction suffix letter with the integer gpr
register class, and use this to simplify use of BinOpRR.

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

14 years agointroduce a new BinOpRR class, and convert 4 and instructions to use it.
Chris Lattner [Tue, 5 Oct 2010 23:32:05 +0000 (23:32 +0000)]
introduce a new BinOpRR class, and convert 4 and instructions to use it.

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

14 years agoRandom cleanup and make the intermediate register in fptosi a
Eric Christopher [Tue, 5 Oct 2010 23:13:24 +0000 (23:13 +0000)]
Random cleanup and make the intermediate register in fptosi a
32-bit fp reg, not 64-bit.

Fixes SingleSource.

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

14 years agoCount uses in all nested loops, not just the deepest.
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:12 +0000 (23:10 +0000)]
Count uses in all nested loops, not just the deepest.

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

14 years agoRemove SplitAnalysis::removeUse. It was only used to make SplitAnalysis
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:09 +0000 (23:10 +0000)]
Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysis
reusable, but that is no longer relevant since a split will always replace the
original.

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

14 years agodupli always has an interval now.
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:04 +0000 (23:10 +0000)]
dupli always has an interval now.

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

14 years agoMove cmov pseudo instructions to InstrCompiler,
Chris Lattner [Tue, 5 Oct 2010 23:09:10 +0000 (23:09 +0000)]
Move cmov pseudo instructions to InstrCompiler,
convert all the rest of the cmovs to the multiclass,
with good results:

 X86InstrCMovSetCC.td |  598 +--------------------------------------------------
 X86InstrCompiler.td  |   61 +++++
 2 files changed, 77 insertions(+), 582 deletions(-)

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

14 years agoUse #NAME# to have the CMOV multiclass define things with the same names as before
Chris Lattner [Tue, 5 Oct 2010 23:00:14 +0000 (23:00 +0000)]
Use #NAME# to have the CMOV multiclass define things with the same names as before
(e.g. CMOVBE16rr instead of CMOVBErr16).

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

14 years agowhen david added support for #NAME# he didn't update the comments and
Chris Lattner [Tue, 5 Oct 2010 22:59:29 +0000 (22:59 +0000)]
when david added support for #NAME# he didn't update the comments and
tried (but failed) to artificially constrain it to working with #NAME#.
Just allow any # in identifiers, and update the comments.

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

14 years agoAnother step towards getting rid of static ctors for pass registration: have INITIALI...
Owen Anderson [Tue, 5 Oct 2010 22:58:16 +0000 (22:58 +0000)]
Another step towards getting rid of static ctors for pass registration: have INITIALIZE_PASS AND INITIALIZE_AG_PASS
expand to an initializeMyPass() function (in additional to the extant static ctors).  Eventually, these will be called
from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used
at the moment) will be handed off to a PassRegistry for ownership.

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

14 years agoenhance tblgen to support anonymous defm's, use this to
Chris Lattner [Tue, 5 Oct 2010 22:51:56 +0000 (22:51 +0000)]
enhance tblgen to support anonymous defm's, use this to
simplify the X86 CMOVmr's.

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

14 years agoconvert cmov mr patterns to use a multipattern. Death to redundancy
Chris Lattner [Tue, 5 Oct 2010 22:42:54 +0000 (22:42 +0000)]
convert cmov mr patterns to use a multipattern.  Death to redundancy
and verbosity

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

14 years agoImplement more alias cases.
Rafael Espindola [Tue, 5 Oct 2010 22:26:43 +0000 (22:26 +0000)]
Implement more alias cases.

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

14 years agoswitch CMOVBE to the multipattern:
Chris Lattner [Tue, 5 Oct 2010 22:23:58 +0000 (22:23 +0000)]
switch CMOVBE to the multipattern:
21 insertions(+), 53 deletions(-)

Moar change coming before I switch the rest.

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

14 years agoWe can split around loops with multiple exits now.
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:35 +0000 (22:19 +0000)]
We can split around loops with multiple exits now.

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

14 years agoUpdate SplitEditor API to reflect the fact that the original live interval is
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:33 +0000 (22:19 +0000)]
Update SplitEditor API to reflect the fact that the original live interval is
never kept after splitting.

Keeping the original interval made sense when the split region doesn't modify
the register, and the original is spilled. We can get the same effect by
detecting reloaded values when spilling around copies.

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

14 years agoIntervals are half-open.
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:29 +0000 (22:19 +0000)]
Intervals are half-open.

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

14 years agofix a bug I introduced in r115669, which ended up with MOV64mr_TC
Chris Lattner [Tue, 5 Oct 2010 22:16:48 +0000 (22:16 +0000)]
fix a bug I introduced in r115669, which ended up with MOV64mr_TC
not getting marked as mayStore.  This fixes llvm-gcc bootstrap.

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

14 years agoadd a multiclass for cmov's, but don't start using it yet.
Chris Lattner [Tue, 5 Oct 2010 22:01:02 +0000 (22:01 +0000)]
add a multiclass for cmov's, but don't start using it yet.

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

14 years agoPSHUFW is in SSE, not SSSE3.
Bill Wendling [Tue, 5 Oct 2010 21:58:12 +0000 (21:58 +0000)]
PSHUFW is in SSE, not SSSE3.

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

14 years agouse a multipattern to define setcc instructions:
Chris Lattner [Tue, 5 Oct 2010 21:34:29 +0000 (21:34 +0000)]
use a multipattern to define setcc instructions:

 X86InstrCMovSetCC.td |  200 ++++++---------------------------------------------
 1 file changed, 27 insertions(+), 173 deletions(-)

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