oota-llvm.git
13 years agoUpdate ARM STM tests. Fix check: prefix for diagnostic tests.
Jim Grosbach [Tue, 26 Jul 2011 15:41:22 +0000 (15:41 +0000)]
Update ARM STM tests. Fix check: prefix for diagnostic tests.

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

13 years agoTeach the Triple class about kfreebsd (FreeBSD kernel with
Duncan Sands [Tue, 26 Jul 2011 15:30:04 +0000 (15:30 +0000)]
Teach the Triple class about kfreebsd (FreeBSD kernel with
a GNU userspace).

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

13 years agoAdd LLVMAddAlwaysInlinerPass to the C API.
Rafael Espindola [Tue, 26 Jul 2011 15:23:23 +0000 (15:23 +0000)]
Add LLVMAddAlwaysInlinerPass to the C API.

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

13 years agoLLVM 3.0 is here, remove old do nothing method.
Rafael Espindola [Tue, 26 Jul 2011 15:17:32 +0000 (15:17 +0000)]
LLVM 3.0 is here, remove old do nothing method.

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

13 years agoSrcDef is only written and never read. Remove it.
Duncan Sands [Tue, 26 Jul 2011 15:05:06 +0000 (15:05 +0000)]
SrcDef is only written and never read.  Remove it.

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

13 years agoAdd helper function for getting true/false constants in a uniform
Duncan Sands [Tue, 26 Jul 2011 15:03:53 +0000 (15:03 +0000)]
Add helper function for getting true/false constants in a uniform
way for i1 and vector of i1 types.  Use these to make some code
more self-documenting.

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

13 years agoClean up the HTML here a bit.
Bill Wendling [Tue, 26 Jul 2011 10:41:15 +0000 (10:41 +0000)]
Clean up the HTML here a bit.

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

13 years agoFix typo in comment.
Jay Foad [Tue, 26 Jul 2011 09:36:52 +0000 (09:36 +0000)]
Fix typo in comment.

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

13 years agoDon't try to dereference syms[0] on an empty vector. Reported by Todd Jackson
Nick Lewycky [Tue, 26 Jul 2011 08:40:36 +0000 (08:40 +0000)]
Don't try to dereference syms[0] on an empty vector. Reported by Todd Jackson
and Jeffrey Bosboom!

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

13 years agoThe compact unwinding offsets are divided by 8 on 64-bit machines.
Bill Wendling [Tue, 26 Jul 2011 08:03:49 +0000 (08:03 +0000)]
The compact unwinding offsets are divided by 8 on 64-bit machines.

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

13 years agoDescribe the reasoning for compact unwind in better terms. Thanks to Nick Kledzik...
Bill Wendling [Tue, 26 Jul 2011 07:58:09 +0000 (07:58 +0000)]
Describe the reasoning for compact unwind in better terms. Thanks to Nick Kledzik for the description.

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

13 years agoAdd 256-bit isel for movsldup/movshdup
Bruno Cardoso Lopes [Tue, 26 Jul 2011 02:39:32 +0000 (02:39 +0000)]
Add 256-bit isel for movsldup/movshdup

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

13 years agoMore movsldup/movshdup cleanup. Rewrite the mask matching function and add
Bruno Cardoso Lopes [Tue, 26 Jul 2011 02:39:28 +0000 (02:39 +0000)]
More movsldup/movshdup cleanup. Rewrite the mask matching function and add
support for 256-bit versions (but no instruction selection yet, coming next).

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

13 years agoMore cleanup, subtarget info isn't used here.
Bruno Cardoso Lopes [Tue, 26 Jul 2011 02:39:25 +0000 (02:39 +0000)]
More cleanup, subtarget info isn't used here.

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

13 years agoAdd 128-bit AVX versions of movshdup/mosldup
Bruno Cardoso Lopes [Tue, 26 Jul 2011 02:39:23 +0000 (02:39 +0000)]
Add 128-bit AVX versions of movshdup/mosldup

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

13 years agoCleanup movsldup/movshdup matching.
Bruno Cardoso Lopes [Tue, 26 Jul 2011 02:39:13 +0000 (02:39 +0000)]
Cleanup movsldup/movshdup matching.
27 insertions(+), 62 deletions(-)

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

13 years agoRevert to RA_Assign when a virtreg separates into components.
Jakob Stoklund Olesen [Tue, 26 Jul 2011 00:54:56 +0000 (00:54 +0000)]
Revert to RA_Assign when a virtreg separates into components.

When dead code elimination deletes a PHI value, the virtual register may
split into multiple connected components. In that case, revert each
component to the RS_Assign stage.

The new components are guaranteed to be smaller (the original value
numbers are distributed among the components), so this will always be
making progress. The components are now allowed to evict other live
ranges or be split again.

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

13 years agoRename createCodeEmitter to createMCCodeEmitter; createObjectStreamer to createMCObje...
Evan Cheng [Tue, 26 Jul 2011 00:42:34 +0000 (00:42 +0000)]
Rename createCodeEmitter to createMCCodeEmitter; createObjectStreamer to createMCObjectStreamer.

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

13 years agoRemove a file from CMakeLists.txt that Evan removed in r136027.
Chandler Carruth [Tue, 26 Jul 2011 00:30:33 +0000 (00:30 +0000)]
Remove a file from CMakeLists.txt that Evan removed in r136027.

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

13 years agoRename TargetAsmParser to MCTargetAsmParser and TargetAsmLexer to MCTargetAsmLexer...
Evan Cheng [Tue, 26 Jul 2011 00:24:13 +0000 (00:24 +0000)]
Rename TargetAsmParser to MCTargetAsmParser and TargetAsmLexer to MCTargetAsmLexer; rename createAsmLexer to createMCAsmLexer and createAsmParser to createMCAsmParser.

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

13 years agoStill more library dependency updates. This reflects the ever decreasing
Chandler Carruth [Tue, 26 Jul 2011 00:09:11 +0000 (00:09 +0000)]
Still more library dependency updates. This reflects the ever decreasing
dependence on CodeGen layers and backends from the MC layers.

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

13 years agoClean up a pile of hacks in our CMake build relating to TableGen.
Chandler Carruth [Tue, 26 Jul 2011 00:09:08 +0000 (00:09 +0000)]
Clean up a pile of hacks in our CMake build relating to TableGen.

The first problem to fix is to stop creating synthetic *Table_gen
targets next to all of the LLVM libraries. These had no real effect as
CMake specifies that add_custom_command(OUTPUT ...) directives (what the
'tablegen(...)' stuff expands to) are implicitly added as dependencies
to all the rules in that CMakeLists.txt.

These synthetic rules started to cause problems as we started more and
more heavily using tablegen files from *subdirectories* of the one where
they were generated. Within those directories, the set of tablegen
outputs was still available and so these synthetic rules added them as
dependencies of those subdirectories. However, they were no longer
properly associated with the custom command to generate them. Most of
the time this "just worked" because something would get to the parent
directory first, and run tablegen there. Once run, the files existed and
the build proceeded happily. However, as more and more subdirectories
have started using this, the probability of this failing to happen has
increased. Recently with the MC refactorings, it became quite common for
me when touching a large enough number of targets.

To add insult to injury, several of the backends *tried* to fix this by
adding explicit dependencies back to the parent directory's tablegen
rules, but those dependencies didn't work as expected -- they weren't
forming a linear chain, they were adding another thread in the race.

This patch removes these synthetic rules completely, and adds a much
simpler function to declare explicitly that a collection of tablegen'ed
files are referenced by other libraries. From that, we can add explicit
dependencies from the smaller libraries (such as every architectures
Desc library) on this and correctly form a linear sequence. All of the
backends are updated to use it, sometimes replacing the existing attempt
at adding a dependency, sometimes adding a previously missing dependency
edge.

Please let me know if this causes any problems, but it fixes a rather
persistent and problematic source of build flakiness on our end.

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

13 years agoARM assembly parsing and encoding for SSAX, SSUB16 and SSUB8.
Jim Grosbach [Mon, 25 Jul 2011 23:32:14 +0000 (23:32 +0000)]
ARM assembly parsing and encoding for SSAX, SSUB16 and SSUB8.

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

13 years agoTargetAsmBackend has been renamed to MCAsmBackend.
Evan Cheng [Mon, 25 Jul 2011 23:28:36 +0000 (23:28 +0000)]
TargetAsmBackend has been renamed to MCAsmBackend.

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

13 years agoRename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.
Evan Cheng [Mon, 25 Jul 2011 23:24:55 +0000 (23:24 +0000)]
Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.

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

13 years agoInitial implementation of 'fence' instruction, the new C++0x-style replacement for...
Eli Friedman [Mon, 25 Jul 2011 23:16:38 +0000 (23:16 +0000)]
Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier.

This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen support coming soon.

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

13 years agoFinish adding support for lifetime intrinsics to SROA. Fixes PR10121!
Nick Lewycky [Mon, 25 Jul 2011 23:14:22 +0000 (23:14 +0000)]
Finish adding support for lifetime intrinsics to SROA. Fixes PR10121!

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

13 years agoI will save before I commit.
Benjamin Kramer [Mon, 25 Jul 2011 23:10:23 +0000 (23:10 +0000)]
I will save before I commit.
I will save before I commit.
I will save before I commit.
I will save before I commit.

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

13 years agoARM assembly parsing and encoding for SSAT16 instruction.
Jim Grosbach [Mon, 25 Jul 2011 23:09:14 +0000 (23:09 +0000)]
ARM assembly parsing and encoding for SSAT16 instruction.

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

13 years agoCodegen allonesvector better while using AVX: vpcmpeqd + vinsertf128
Bruno Cardoso Lopes [Mon, 25 Jul 2011 23:05:32 +0000 (23:05 +0000)]
Codegen allonesvector better while using AVX: vpcmpeqd + vinsertf128
This also fixes PR10452

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

13 years agoAdd remaining 256-bit vector bitcasts. This also fixes PR10451
Bruno Cardoso Lopes [Mon, 25 Jul 2011 23:05:28 +0000 (23:05 +0000)]
Add remaining 256-bit vector bitcasts. This also fixes PR10451

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

13 years ago- Handle special scalar_to_vector case: splats. Using a native 128-bit
Bruno Cardoso Lopes [Mon, 25 Jul 2011 23:05:25 +0000 (23:05 +0000)]
- Handle special scalar_to_vector case: splats. Using a native 128-bit
shuffle before inserting on a 256-bit vector.
- Add AVX versions of movd/movq instructions
- Introduce a few COPY patterns to match insert_subvector instructions.
This turns a trivial insert_subvector instruction into a register copy,
coalescing the xmm into a ymm and avoid emiting on more instruction.

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

13 years agoReintroduce r135730, this is indeed the right approach, there is no
Bruno Cardoso Lopes [Mon, 25 Jul 2011 23:05:16 +0000 (23:05 +0000)]
Reintroduce r135730, this is indeed the right approach, there is no
native 256-bit vector instruction to do scalar_to_vector.

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

13 years agollvm-objdump: Ignore unreachable blocks when printing the CFG.
Benjamin Kramer [Mon, 25 Jul 2011 23:04:36 +0000 (23:04 +0000)]
llvm-objdump: Ignore unreachable blocks when printing the CFG.

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

13 years agoFix include guards.
Evan Cheng [Mon, 25 Jul 2011 22:52:04 +0000 (22:52 +0000)]
Fix include guards.

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

13 years agoAdd a note about efficient codegen for binary log.
Benjamin Kramer [Mon, 25 Jul 2011 22:30:00 +0000 (22:30 +0000)]
Add a note about efficient codegen for binary log.

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

13 years agoAttempt to fix test failure reported on llvm-commits.
Eli Friedman [Mon, 25 Jul 2011 22:28:51 +0000 (22:28 +0000)]
Attempt to fix test failure reported on llvm-commits.

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

13 years agoBranchProbability::print returns void now.
Jakub Staszak [Mon, 25 Jul 2011 22:27:42 +0000 (22:27 +0000)]
BranchProbability::print returns void now.

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

13 years agoMake sure this DAGCombine actually returns an UNDEF of the correct type; PR10476.
Eli Friedman [Mon, 25 Jul 2011 22:25:42 +0000 (22:25 +0000)]
Make sure this DAGCombine actually returns an UNDEF of the correct type; PR10476.

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

13 years agoAdd BlockFrequency class.
Jakub Staszak [Mon, 25 Jul 2011 22:24:51 +0000 (22:24 +0000)]
Add BlockFrequency class.

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

13 years agoARM assembly parsing and encoding for SSAT instruction.
Jim Grosbach [Mon, 25 Jul 2011 22:20:28 +0000 (22:20 +0000)]
ARM assembly parsing and encoding for SSAT instruction.

Fix the Rn register encoding for both SSAT and USAT. Update the parsing of the
shift operand to correctly handle the allowed shift types and immediate ranges
and issue meaningful diagnostics when an illegal value or shift type is
specified. Add aliases to parse an ommitted shift operand (default value of
'lsl #0').

Add tests for diagnostics and proper encoding.

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

13 years agoAdd clarifying comments for the new arguments to UnrollLoop.
Andrew Trick [Mon, 25 Jul 2011 22:17:47 +0000 (22:17 +0000)]
Add clarifying comments for the new arguments to UnrollLoop.

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

13 years agoRefactoring fail.
Evan Cheng [Mon, 25 Jul 2011 22:16:37 +0000 (22:16 +0000)]
Refactoring fail.

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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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