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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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