oota-llvm.git
12 years agoMove CBackend and CppBackend MC initialization to TargetInfo.
Evan Cheng [Mon, 25 Jul 2011 21:44:12 +0000 (21:44 +0000)]
Move CBackend and CppBackend MC initialization to TargetInfo.

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

12 years agoGet rid of an incorrect optimization for shuffles with PALIGNR and simplify isPALIGNR...
Eli Friedman [Mon, 25 Jul 2011 21:36:45 +0000 (21:36 +0000)]
Get rid of an incorrect optimization for shuffles with PALIGNR and simplify isPALIGNRMask.

Addresses PR10466, although the crash from that PR only triggers in cases where DAGCombine misses optimizing a shuffle.

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

12 years agoFix more MC layering violations.
Evan Cheng [Mon, 25 Jul 2011 21:32:49 +0000 (21:32 +0000)]
Fix more MC layering violations.

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

12 years agoMore MC layering violations.
Evan Cheng [Mon, 25 Jul 2011 21:29:26 +0000 (21:29 +0000)]
More MC layering violations.

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

12 years agoCheck in updated CMake dependencies after Evan's latest round of
Chandler Carruth [Mon, 25 Jul 2011 21:25:07 +0000 (21:25 +0000)]
Check in updated CMake dependencies after Evan's latest round of
refactorings. Several places that shouldn't have dependend on Target no
longer do. Also almost all of the CodeGen dependencies have gone away
for the MCDisassembler. Others add reasonable dependencies within the
target-specific layers.

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

12 years agoAdd a missing enumerator to this switch. Currently its in the
Chandler Carruth [Mon, 25 Jul 2011 21:21:08 +0000 (21:21 +0000)]
Add a missing enumerator to this switch. Currently its in the
assert-path code, as previously we would have fallen off the end of the
function, but please review and let me know if this should go somewhere
else.

This fixes a Clang warning:
lib/MC/MCMachOStreamer.cpp:201:11: error: enumeration value 'MCSA_IndirectSymbol' not handled in switch [-Werror,-Wswitch-enum]
  switch (Attribute) {
          ^
1 error generated.

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

12 years agoAdd LLVMAddTargetLibraryInfo to the C API.
Rafael Espindola [Mon, 25 Jul 2011 21:20:54 +0000 (21:20 +0000)]
Add LLVMAddTargetLibraryInfo to the C API.

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

12 years agoSeparate MCInstPrinter registration from AsmPrinter registration.
Evan Cheng [Mon, 25 Jul 2011 21:20:24 +0000 (21:20 +0000)]
Separate MCInstPrinter registration from AsmPrinter registration.

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

12 years agoAdd missing space (this line is no longer pushing the 80-column limit).
Nick Lewycky [Mon, 25 Jul 2011 21:16:04 +0000 (21:16 +0000)]
Add missing space (this line is no longer pushing the 80-column limit).

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

12 years ago80 columns.
Nick Lewycky [Mon, 25 Jul 2011 21:13:23 +0000 (21:13 +0000)]
80 columns.

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

12 years agoFix typo.
Nick Lewycky [Mon, 25 Jul 2011 21:12:44 +0000 (21:12 +0000)]
Fix typo.

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

12 years agoSimply ARM so_reg MIOperandInfo definitions.
Jim Grosbach [Mon, 25 Jul 2011 21:04:58 +0000 (21:04 +0000)]
Simply ARM so_reg MIOperandInfo definitions.

The shift immediate encoding, printing, etc. is handled directly by the
enclosing operand definition, so it should be a vanilla immediate, not a
nested complex operand (shift_imm).

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

12 years agoAdd LLVMAddLowerExpectIntrinsicPass to the C API.
Rafael Espindola [Mon, 25 Jul 2011 20:57:59 +0000 (20:57 +0000)]
Add LLVMAddLowerExpectIntrinsicPass to the C API.

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

12 years agoFix last bits of MC layer issues. llvm-mc doesn't need to initialize TargetMachine...
Evan Cheng [Mon, 25 Jul 2011 20:53:02 +0000 (20:53 +0000)]
Fix last bits of MC layer issues. llvm-mc doesn't need to initialize TargetMachine's anymore.

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

12 years agoARM asm operand renaming. Make things a bit more explicit.
Jim Grosbach [Mon, 25 Jul 2011 20:49:51 +0000 (20:49 +0000)]
ARM asm operand renaming. Make things a bit more explicit.

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

12 years agoMore simple cleanup of ARM asm operand definitions.
Jim Grosbach [Mon, 25 Jul 2011 20:38:18 +0000 (20:38 +0000)]
More simple cleanup of ARM asm operand definitions.

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

12 years agoFix some typos.
Bill Wendling [Mon, 25 Jul 2011 20:25:03 +0000 (20:25 +0000)]
Fix some typos.

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

12 years agoAn initial description of the compact unwind encoding.
Bill Wendling [Mon, 25 Jul 2011 20:19:48 +0000 (20:19 +0000)]
An initial description of the compact unwind encoding.

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

12 years agoCode clean up.
Evan Cheng [Mon, 25 Jul 2011 20:18:48 +0000 (20:18 +0000)]
Code clean up.

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

12 years agoRefactor MBlaze target to separate MC routines from Target routines.
Evan Cheng [Mon, 25 Jul 2011 20:18:18 +0000 (20:18 +0000)]
Refactor MBlaze target to separate MC routines from Target routines.

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

12 years agoWhile building a LLVM target, put the current source directory on the
Oscar Fuentes [Mon, 25 Jul 2011 20:17:01 +0000 (20:17 +0000)]
While building a LLVM target, put the current source directory on the
header search path.

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

12 years agoUpdate the comment. This feature is available only on Darwin at the moment. Though...
Bill Wendling [Mon, 25 Jul 2011 20:15:15 +0000 (20:15 +0000)]
Update the comment. This feature is available only on Darwin at the moment. Though it's not Darwin-specific.

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

12 years agoMake assembly parser method names more consistent.
Jim Grosbach [Mon, 25 Jul 2011 20:14:50 +0000 (20:14 +0000)]
Make assembly parser method names more consistent.

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

12 years agoUnbreak the build.
Oscar Fuentes [Mon, 25 Jul 2011 20:13:36 +0000 (20:13 +0000)]
Unbreak the build.

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

12 years agoFix class description.
Jakub Staszak [Mon, 25 Jul 2011 20:08:58 +0000 (20:08 +0000)]
Fix class description.

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

12 years agoFix #include guard directive.
Jakub Staszak [Mon, 25 Jul 2011 20:08:00 +0000 (20:08 +0000)]
Fix #include guard directive.

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

12 years agoTidy up formatting.
Jim Grosbach [Mon, 25 Jul 2011 20:06:30 +0000 (20:06 +0000)]
Tidy up formatting.

Remove some inititalizers that are the same as the default, move defs next to
their (singular) uses and generally simplify some formatting of asm operand
definitions.

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

12 years agoTidy up a bit.
Jim Grosbach [Mon, 25 Jul 2011 20:00:32 +0000 (20:00 +0000)]
Tidy up a bit.

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

12 years agoMissed a file.
Evan Cheng [Mon, 25 Jul 2011 19:55:33 +0000 (19:55 +0000)]
Missed a file.

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

12 years agoRefactor PPC target to separate MC routines from Target routines.
Evan Cheng [Mon, 25 Jul 2011 19:53:23 +0000 (19:53 +0000)]
Refactor PPC target to separate MC routines from Target routines.

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

12 years agoMore refactoring.
Evan Cheng [Mon, 25 Jul 2011 19:33:48 +0000 (19:33 +0000)]
More refactoring.

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

12 years agoRename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency to
Jakub Staszak [Mon, 25 Jul 2011 19:25:40 +0000 (19:25 +0000)]
Rename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency to
MachineBlockFrequencyInfo.

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

12 years agoRefactor X86 target to separate MC code from Target code.
Evan Cheng [Mon, 25 Jul 2011 18:43:53 +0000 (18:43 +0000)]
Refactor X86 target to separate MC code from Target code.

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

12 years agoChanged disabled code into a flag.
Bill Wendling [Mon, 25 Jul 2011 18:04:49 +0000 (18:04 +0000)]
Changed disabled code into a flag.

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

12 years agoRemove dead variable.
Bill Wendling [Mon, 25 Jul 2011 18:01:27 +0000 (18:01 +0000)]
Remove dead variable.

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

12 years agoAfter we've modified the prolog to save volatile registers, generate the compact
Bill Wendling [Mon, 25 Jul 2011 18:00:28 +0000 (18:00 +0000)]
After we've modified the prolog to save volatile registers, generate the compact
unwind encoding for that function. This simply crawls through the prolog looking
for machine instrs marked as "frame setup". It can calculate from these what the
compact unwind should look like.

This is currently disabled because of needed linker support. But initial tests
look good.

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

12 years agoMove some ELF directives into ELF asm parser.
Jim Grosbach [Mon, 25 Jul 2011 17:55:35 +0000 (17:55 +0000)]
Move some ELF directives into ELF asm parser.

The .local, .hidden, .internal, and .protected are not legal for all supported
file formats (in particular, they're invalid for MachO). Move the parsing for
them into the ELF assembly parser since that's the format they're for.
Similarly, .weak is used by COFF and ELF, but not MachO, so move the parsing
to the COFF and ELF asm parsers. Previously, using any of these directives
on Darwin would result in an assertion failure in the parser; now we get
a diagnostic as we should.

rdar://9827089

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

12 years agoBuilds llvmc and its examples with CMake.
Oscar Fuentes [Mon, 25 Jul 2011 17:25:10 +0000 (17:25 +0000)]
Builds llvmc and its examples with CMake.

Patch by arrowdodger!

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

12 years agoFixes VS support for llvmc mcc16 llvmc example.
Oscar Fuentes [Mon, 25 Jul 2011 17:24:54 +0000 (17:24 +0000)]
Fixes VS support for llvmc mcc16 llvmc example.

Patch by arrowdodger!

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

12 years agoTidy up. 80 columns.
Jim Grosbach [Mon, 25 Jul 2011 17:11:29 +0000 (17:11 +0000)]
Tidy up. 80 columns.

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

12 years agoAdd uwtable to the langref.
Rafael Espindola [Mon, 25 Jul 2011 15:27:59 +0000 (15:27 +0000)]
Add uwtable to the langref.

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

12 years agoAdd an RS_Split2 stage used for loop prevention.
Jakob Stoklund Olesen [Mon, 25 Jul 2011 15:25:43 +0000 (15:25 +0000)]
Add an RS_Split2 stage used for loop prevention.

This mechanism already exists, but the RS_Split2 stage makes it clearer.

When live range splitting creates ranges that may not be making
progress, they are marked RS_Split2 instead of RS_New. These ranges may
be split again, but only in a way that can be proven to make progress.

For local ranges, that means they must be split into ranges used by
strictly fewer instructions.

For global ranges, region splitting is bypassed and the RS_Split2
ranges go straight to per-block splitting.

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

12 years agoRename live range stages to better reflect how they are used.
Jakob Stoklund Olesen [Mon, 25 Jul 2011 15:25:41 +0000 (15:25 +0000)]
Rename live range stages to better reflect how they are used.

The stage is used to control where a live range is going, not where it
is coming from. Live ranges created by splitting will usually be marked
RS_New, but some are marked RS_Spill to avoid wasting time trying to
split them again.

The old RS_Global and RS_Local stages are merged - they are really the
same thing for local and global live ranges.

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

12 years agoShorten some expressions by using ArrayRef::slice().
Frits van Bommel [Mon, 25 Jul 2011 15:13:01 +0000 (15:13 +0000)]
Shorten some expressions by using ArrayRef::slice().

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

12 years agoCMake: generalize the system that creates custom targets for
Oscar Fuentes [Mon, 25 Jul 2011 14:11:55 +0000 (14:11 +0000)]
CMake: generalize the system that creates custom targets for
tablegenning to all libraries and executables.

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

12 years agoRemove uses of std::vector from TypeBuilder.
Jay Foad [Mon, 25 Jul 2011 10:32:27 +0000 (10:32 +0000)]
Remove uses of std::vector from TypeBuilder.

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

12 years agoUse ArrayRef in the (protected) constructors of ConstantArray, ConstantStruct and...
Jay Foad [Mon, 25 Jul 2011 10:14:44 +0000 (10:14 +0000)]
Use ArrayRef in the (protected) constructors of ConstantArray, ConstantStruct and ConstantVector.

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

12 years agoConvert GetElementPtrInst to use ArrayRef.
Jay Foad [Mon, 25 Jul 2011 09:48:08 +0000 (09:48 +0000)]
Convert GetElementPtrInst to use ArrayRef.

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

12 years agoswitch Triple to take twines instead of stringrefs.
Chris Lattner [Sun, 24 Jul 2011 20:45:08 +0000 (20:45 +0000)]
switch Triple to take twines instead of stringrefs.

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

12 years agoAdd Twine support for characters, and switch twine to use a union internally
Chris Lattner [Sun, 24 Jul 2011 20:44:30 +0000 (20:44 +0000)]
Add Twine support for characters, and switch twine to use a union internally
to eliminate some casting.

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

12 years agoNever extend live ranges for <undef> uses.
Jakob Stoklund Olesen [Sun, 24 Jul 2011 20:33:23 +0000 (20:33 +0000)]
Never extend live ranges for <undef> uses.

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

12 years agoCorrectly handle <undef> tied uses when rewriting after a split.
Jakob Stoklund Olesen [Sun, 24 Jul 2011 20:23:50 +0000 (20:23 +0000)]
Correctly handle <undef> tied uses when rewriting after a split.

This fixes PR10463. A two-address instruction with an <undef> use
operand was incorrectly rewritten so the def and use no longer used the
same register, violating the tie constraint.

Fix this by always rewriting <undef> operands with the register a def
operand would use.

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

12 years agoOmit explicit length here, now that I've had a chance to test this with gcc.
Frits van Bommel [Sun, 24 Jul 2011 09:53:46 +0000 (09:53 +0000)]
Omit explicit length here, now that I've had a chance to test this with gcc.

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

12 years agoSet PPCII::MO_DARWIN_STUB only on MacOSX < 10.5.
Roman Divacky [Sun, 24 Jul 2011 08:22:56 +0000 (08:22 +0000)]
Set PPCII::MO_DARWIN_STUB only on MacOSX < 10.5.

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

12 years agoclarify that opaque is actually a struct type, PR10430
Chris Lattner [Sat, 23 Jul 2011 19:59:08 +0000 (19:59 +0000)]
clarify that opaque is actually a struct type, PR10430

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

12 years agohow about that, StringRef doesn't allow any mutation, thanks to
Chris Lattner [Sat, 23 Jul 2011 17:18:57 +0000 (17:18 +0000)]
how about that, StringRef doesn't allow any mutation, thanks to
Frits for straightening me out.

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

12 years agoAdd RAGreedy::calcCompactRegion.
Jakob Stoklund Olesen [Sat, 23 Jul 2011 03:41:57 +0000 (03:41 +0000)]
Add RAGreedy::calcCompactRegion.

This method computes the edge bundles that should be live when splitting
around a compact region. This is independent of interference.

The function returns false if the live range was already a compact
region, or the compact region doesn't have any live bundles - it would
be the same as splitting around basic blocks.

Compact regions are computed using the normal spill placement code. We
pretend there is interference in all live-through blocks that don't use
the live range. This removes all edges from the Hopfield network used
for spill placement, so it converges instantly.

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

12 years agoFix bug in SplitEditor::splitLiveThroughBlock when switching registers.
Jakob Stoklund Olesen [Sat, 23 Jul 2011 03:32:26 +0000 (03:32 +0000)]
Fix bug in SplitEditor::splitLiveThroughBlock when switching registers.

If there is no interference and no last split point, we cannot
enterIntvBefore(Stop) - that function needs a real instruction.

Use enterIntvAtEnd instead for that very easy case.

This code doesn't currently run, it is needed by multi-way splitting.

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

12 years agoPrepare RAGreedy::growRegion for compact regions.
Jakob Stoklund Olesen [Sat, 23 Jul 2011 03:22:33 +0000 (03:22 +0000)]
Prepare RAGreedy::growRegion for compact regions.

A split candidate can have a null PhysReg which means that it doesn't
map to a real interference pattern. Instead, pretend that all through
blocks have interference.

This makes it possible to generate compact regions where the live range
doesn't go through blocks that don't use it. The live range will still
be live between directly connected blocks with uses.

Splitting around a compact region tends to produce a live range with a
high spill weight, so it may evict a less dense live range.

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

12 years agoAdd a simple method for marking blocks with interference in and out.
Jakob Stoklund Olesen [Sat, 23 Jul 2011 03:10:19 +0000 (03:10 +0000)]
Add a simple method for marking blocks with interference in and out.

This method matches addLinks - All the listed blocks are considered to
have interference, so they add a negative bias to their bundles.

This could also be done by addConstraints, but that requires building a
separate BlockConstraint array.

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

12 years agoAllow null interference cursors to be queried.
Jakob Stoklund Olesen [Sat, 23 Jul 2011 03:10:17 +0000 (03:10 +0000)]
Allow null interference cursors to be queried.

They always report 'no interference'.

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

12 years agoFix a silly off by one.
Benjamin Kramer [Sat, 23 Jul 2011 03:04:46 +0000 (03:04 +0000)]
Fix a silly off by one.

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

12 years agoWe always bounds check the bit set, there is no need to emit zero bytes at the end.
Benjamin Kramer [Sat, 23 Jul 2011 02:49:37 +0000 (02:49 +0000)]
We always bounds check the bit set, there is no need to emit zero bytes at the end.

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

12 years agoAdd more constness.
Benjamin Kramer [Sat, 23 Jul 2011 01:40:15 +0000 (01:40 +0000)]
Add more constness.

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

12 years agoARMMCTargetDesc.h: Fixup to add DataTypes.h, or uint32_t would be unavailable.
NAKAMURA Takumi [Sat, 23 Jul 2011 01:16:22 +0000 (01:16 +0000)]
ARMMCTargetDesc.h: Fixup to add DataTypes.h, or uint32_t would be unavailable.

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

12 years agoTurn the DenseSet in MCRegisterClass into a tblgenerated bit field. This should be...
Benjamin Kramer [Sat, 23 Jul 2011 00:47:49 +0000 (00:47 +0000)]
Turn the DenseSet in MCRegisterClass into a tblgenerated bit field. This should be faster and smaller.

Goodbye static ctors and dtors!

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

12 years agoGive TargetRegisterClass a pointer to the MCRegisterClass and use it to access its...
Benjamin Kramer [Sat, 23 Jul 2011 00:47:46 +0000 (00:47 +0000)]
Give TargetRegisterClass a pointer to the MCRegisterClass and use it to access its data.

This makes TargetRegisterClass slightly slower. Next step will be making contains faster.
Eventually TargetRegisterClass will be killed entirely.

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

12 years agoMove TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.
Evan Cheng [Sat, 23 Jul 2011 00:45:41 +0000 (00:45 +0000)]
Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.

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

12 years agoCMake: Fix LLVM_NATIVE_TARGETMC in config.h.cmake.
NAKAMURA Takumi [Sat, 23 Jul 2011 00:45:23 +0000 (00:45 +0000)]
CMake: Fix LLVM_NATIVE_TARGETMC in config.h.cmake.

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

12 years agoconfig.h.cmake: Reorder along config.h.in.
NAKAMURA Takumi [Sat, 23 Jul 2011 00:45:16 +0000 (00:45 +0000)]
config.h.cmake: Reorder along config.h.in.

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

12 years agoMove trip count discovery outside of the generic LoopUnroll helper. This
Andrew Trick [Sat, 23 Jul 2011 00:33:05 +0000 (00:33 +0000)]
Move trip count discovery outside of the generic LoopUnroll helper. This
removes its dependence on canonical induction variables.

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

12 years agowhitespace
Andrew Trick [Sat, 23 Jul 2011 00:29:16 +0000 (00:29 +0000)]
whitespace

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

12 years agocreateXXXMCCodeGenInfo should be static.
Evan Cheng [Sat, 23 Jul 2011 00:01:04 +0000 (00:01 +0000)]
createXXXMCCodeGenInfo should be static.

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

12 years agoSink ARM mc routines into MCTargetDesc.
Evan Cheng [Sat, 23 Jul 2011 00:00:19 +0000 (00:00 +0000)]
Sink ARM mc routines into MCTargetDesc.

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

12 years agoARM SSAT instruction 5-bit immediate handling.
Jim Grosbach [Fri, 22 Jul 2011 23:16:18 +0000 (23:16 +0000)]
ARM SSAT instruction 5-bit immediate handling.

The immediate is in the range 1-32, but is encoded as 0-31 in a 5-bit bitfield.
Update the representation such that we store the operand as 0-31, allowing us
to remove the encoder method and the special case handling in the disassembler.
Update the assembly parser and the instruction printer accordingly.

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

12 years agoMove the last uses of RetainFunc etc. over to using getRetainCallee() etc.
Dan Gohman [Fri, 22 Jul 2011 22:29:21 +0000 (22:29 +0000)]
Move the last uses of RetainFunc etc. over to using getRetainCallee() etc.
so that a declaration for objc_retain is created when needed if it doesn't
already exist. rdar://9825114.

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

12 years agoTeach cmake configured headers about LLVM_NATIVE_TARGETMC
Oscar Fuentes [Fri, 22 Jul 2011 22:21:47 +0000 (22:21 +0000)]
Teach cmake configured headers about LLVM_NATIVE_TARGETMC

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

12 years agoAdd FIXME
Jim Grosbach [Fri, 22 Jul 2011 22:15:38 +0000 (22:15 +0000)]
Add FIXME

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

12 years agoARM encoding and assembly parsing tests for SMULWB, SMULWT, SMUSD and SMUSDX.
Jim Grosbach [Fri, 22 Jul 2011 22:13:00 +0000 (22:13 +0000)]
ARM encoding and assembly parsing tests for SMULWB, SMULWT, SMUSD and SMUSDX.

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

12 years agoARM assembly parsing and encoding updates.
Jim Grosbach [Fri, 22 Jul 2011 22:06:05 +0000 (22:06 +0000)]
ARM assembly parsing and encoding updates.

Tests for SMULBB, SMLALBT, SMLALTB, SMLALTT, and SMULL. Fix parsing of SMULLS.

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

12 years agoUse the enum value for RegClassIDs.
Benjamin Kramer [Fri, 22 Jul 2011 22:01:58 +0000 (22:01 +0000)]
Use the enum value for RegClassIDs.

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

12 years agoCombine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,
Evan Cheng [Fri, 22 Jul 2011 21:58:54 +0000 (21:58 +0000)]
Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,
InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC.

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

12 years agoadd section to ToC
Chris Lattner [Fri, 22 Jul 2011 21:36:29 +0000 (21:36 +0000)]
add section to ToC

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

12 years agoARM assembly parsing and encoding tests.
Jim Grosbach [Fri, 22 Jul 2011 21:34:56 +0000 (21:34 +0000)]
ARM assembly parsing and encoding tests.

Add tests for SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR,
SMMUL, SMMULR, SMUAD and SMUADX.

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

12 years agowrite the long-overdue strings section of the data structure guide.
Chris Lattner [Fri, 22 Jul 2011 21:34:12 +0000 (21:34 +0000)]
write the long-overdue strings section of the data structure guide.

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

12 years agoEmit the __compact_unwind section first. If there are any frames which weren't
Bill Wendling [Fri, 22 Jul 2011 21:18:59 +0000 (21:18 +0000)]
Emit the __compact_unwind section first. If there are any frames which weren't
emitted, emit them next as CIE/FDEs.

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

12 years agoAdd a method to set the compact unwind info.
Bill Wendling [Fri, 22 Jul 2011 21:17:05 +0000 (21:17 +0000)]
Add a method to set the compact unwind info.

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

12 years agoAdd a method to get the list of FrameInfos.
Bill Wendling [Fri, 22 Jul 2011 21:16:32 +0000 (21:16 +0000)]
Add a method to get the list of FrameInfos.

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

12 years agoFix test check!
Bruno Cardoso Lopes [Fri, 22 Jul 2011 20:55:28 +0000 (20:55 +0000)]
Fix test check!

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

12 years agoFix PR10422 by adding the necessary AVX UCOMISD memory versions to
Bruno Cardoso Lopes [Fri, 22 Jul 2011 20:53:20 +0000 (20:53 +0000)]
Fix PR10422 by adding the necessary AVX UCOMISD memory versions to
load folding logic

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

12 years agoARM assembly parsing and encoding tests for SMLAWB/SMLAWT.
Jim Grosbach [Fri, 22 Jul 2011 20:51:24 +0000 (20:51 +0000)]
ARM assembly parsing and encoding tests for SMLAWB/SMLAWT.

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

12 years agomove the section for string-like containers to follow the section for sequential...
Chris Lattner [Fri, 22 Jul 2011 20:46:49 +0000 (20:46 +0000)]
move the section for string-like containers to follow the section for sequential containers.

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

12 years agoARM assembly parsing and encoding tests.
Jim Grosbach [Fri, 22 Jul 2011 20:30:40 +0000 (20:30 +0000)]
ARM assembly parsing and encoding tests.

Tests for SMLAL, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, and SMLALDX
instructions.

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

12 years agoARM assembly parsing and encoding of SMLAL instruction.
Jim Grosbach [Fri, 22 Jul 2011 20:18:21 +0000 (20:18 +0000)]
ARM assembly parsing and encoding of SMLAL instruction.

Fix parsing of carry-setting variant SMLALS and add tests.

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

12 years agoARM encoding and assembly parsing of SMLAD{X} instructions.
Jim Grosbach [Fri, 22 Jul 2011 20:11:20 +0000 (20:11 +0000)]
ARM encoding and assembly parsing of SMLAD{X} instructions.

Fix encoding of destination register. Add tests.

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

12 years agoARM testcases for assembly parsing and encoding SMLA* instructions.
Jim Grosbach [Fri, 22 Jul 2011 20:01:34 +0000 (20:01 +0000)]
ARM testcases for assembly parsing and encoding SMLA* instructions.

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

12 years agoAdd v8f32->v8i32 bitcast. Fixes PR10440
Bruno Cardoso Lopes [Fri, 22 Jul 2011 19:51:02 +0000 (19:51 +0000)]
Add v8f32->v8i32 bitcast. Fixes PR10440

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

12 years agoTurn shuffles into unpacks for VT == MVT::v2i64 and MVT::v2f64
Rafael Espindola [Fri, 22 Jul 2011 18:56:05 +0000 (18:56 +0000)]
Turn shuffles into unpacks for VT == MVT::v2i64 and MVT::v2f64
too. Patch by Jeff Muizelaar.

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

12 years agoFix x86's XALUO lowering to return its replacement values instead
Dan Gohman [Fri, 22 Jul 2011 18:45:15 +0000 (18:45 +0000)]
Fix x86's XALUO lowering to return its replacement values instead
of doing the RAUW calls for the overflow value itself. This makes
it more consistent with how the rest of LegalizeDAG works.

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

12 years agollvm-objdump: Don't ignore errors from raw_fd_ostream.
Benjamin Kramer [Fri, 22 Jul 2011 18:35:11 +0000 (18:35 +0000)]
llvm-objdump: Don't ignore errors from raw_fd_ostream.

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