Commit Graph

77632 Commits

Author SHA1 Message Date
Owen Anderson
81550dc0a8 Fix the issue that r143552 was trying to address the _right_ way. One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143557 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 18:03:14 +00:00
Kevin Enderby
dba9a17f9a Replace tabs I added in this new line of code with spaces.
Thanks to Nick for spotting this!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143556 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:56:38 +00:00
Daniel Dunbar
0738e76381 tests: Clean up tests/CMakeLists.txt to drop some variable configuration we no
longer need substitutions for.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143555 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:54:51 +00:00
Owen Anderson
244006db5c The rules disallowing single-register reglist operands only apply to the POP alias, not to LDM/STM instructions. Revert r143552.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143553 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:46:18 +00:00
Owen Anderson
e31b42a6f5 Register list operands are not allowed to contain only a single register. Alternate encodings are used in that case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143552 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:41:23 +00:00
Benjamin Kramer
5a83264fa2 Don't print two 0x prefixes when printing an address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143549 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:24:36 +00:00
Chandler Carruth
05a484b909 Add back the top-level target for 'llvm-config' and the dependency edge
to force it to build after all library targets so it has complete
dependency information. This should fix broken 'make install' with
CMake.

This is a partial revert of r143540, but it doesn't revert the most
important part of that change: removing the dependency edge from LLVM
tools to the llvm-config script.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143548 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:22:57 +00:00
Chad Rosier
87633026d6 Factor out an EmitIntExt function. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:20:24 +00:00
Andrew Trick
d3714b60b5 Rewrite LinearFunctionTestReplace to handle pointer-type IVs.
We've been hitting asserts in this code due to the many supported
combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This
second rewrite of the code attempts to deal with these cases systematically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143546 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 17:19:57 +00:00
Chandler Carruth
a71b7b0911 Fix a typo noticed by Peter Collingbourne. No one depends on this
working today, but it shouldn't corrupt state for some poor soul to
debug later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 16:55:57 +00:00
Daniel Dunbar
6c13db4b4f docs: Remove an out-of-date and unnecessary tool list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 15:57:05 +00:00
Daniel Dunbar
30288277d9 docs: Separate development process type of documentation from programming
documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143543 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 15:56:58 +00:00
Daniel Dunbar
1bb568d2a5 docs: Remove UsingLibraries page, which was inaccurate / out-of-date and not
particularly useful.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143542 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 15:56:55 +00:00
Daniel Dunbar
47c30da847 build/Make: Get rid of llvm-config-perobj, which isn't used anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143541 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 15:56:52 +00:00
Daniel Dunbar
89975e5542 build/CMake: Remove llvm-config.target used to serialize tool builds on
llvm-config build, there is no longer a point to this after Chandler's work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143540 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 15:56:38 +00:00
Chandler Carruth
37efc9fe42 Begin collecting some of the statistics for block placement discussed on
the mailing list. Suggestions for other statistics to collect would be
awesome. =]

Currently these are implemented as a separate pass guarded by a separate
flag. I'm not thrilled by that, but I wanted to be able to collect the
statistics for the old code placement as well as the new in order to
have a point of comparison. I'm planning on folding them into the single
pass if / when there is only one pass of interest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143537 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 07:17:12 +00:00
Craig Topper
205e3378fd More AVX2 instructions and intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143536 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 06:54:17 +00:00
Chandler Carruth
94dffd2bb0 Add parentheses to disambiguate the precedence of these operations and
silence -Wparentheses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143534 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 05:43:44 +00:00
Chandler Carruth
1bfc9f8ff2 The TableGen parts of the CMake build are seriously broken. This fixes
one aspect of them by having them use the (annoying, if not broken)
proper library dependency model for adding the LLVMTableGen library as
a dependency. This could manifest as a link order issue in the presence
of separate LLVM / Clang source builds with CMake and a linker that
really cares about such things.

Also, add the Support dependency to llvm-tblgen itself so that it
doesn't rely on TableGen's transitive Support dependency. A parallel
change for clang-tblgen will be forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 05:03:06 +00:00
Craig Topper
3f2b2c218f Add a bunch more X86 AVX2 instructions and their corresponding intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143529 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 04:42:13 +00:00
Chad Rosier
3eae0c2fa6 Rename show-diagnostics to something less ambiguous.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143525 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 00:44:16 +00:00
Tanya Lattner
9af37a3de8 Add support to the linker to lazily link in functions. This change only links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143524 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 00:24:56 +00:00
Chad Rosier
0d7b231c9b Factor out a SelectTrunc function. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143523 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 00:18:48 +00:00
Andrew Trick
3129da8d1a Broaden an assert to handle enable-iv-rewrite=true following r143183.
Narrowest possible fix for PR11279.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143522 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 00:02:45 +00:00
Kevin Enderby
064e48a3dc Fixed a bug in the code to create a dwarf file and directory table entires when
it is separating the directory part from the basename of the FileName.  Noticed 
that this:

  .file 1 "dir/foo"

when assembled got the two parts switched.  Using the Mac OS X dwarfdump tool
it can be seen easily:

% dwarfdump -a a.out
include_directories[  1] = 'foo'
                Dir  Mod Time   File Len   File Name
                ---- ---------- ---------- ---------------------------
file_names[  1]    1 0x00000000 0x00000000 dir
...

Which should be:
...
include_directories[  1] = 'dir'
                Dir  Mod Time   File Len   File Name
                ---- ---------- ---------- ---------------------------
file_names[  1]    1 0x00000000 0x00000000 foo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143521 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 23:39:05 +00:00
Jim Grosbach
6284afc293 ARM label operands can be quoted.
For example, labels from Objective-C sources.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143511 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 22:38:31 +00:00
Jim Grosbach
ed6a0c5243 ARM label operands can have an optional '#' before them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143510 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 22:37:37 +00:00
Kevin Enderby
613b757689 First part of support for generating dwarf for assembly source files with the
-g flag.  In this part we generate the .file for the source being assembled and
the .loc's for the assembled instructions.

The next part will be to generate the dwarf Compile Unit DIE and a dwarf
subprogram DIE for each non-temporary label.

Once the next part is done test cases will be added.  rdar://9275556


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143509 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 22:27:22 +00:00
Owen Anderson
60cb643f75 Fix disassembly of some VST1 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143507 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 22:18:13 +00:00
Sebastian Pop
0173864d8a rename getHostTriple into getDefaultTargetTriple
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143502 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 21:32:20 +00:00
Sebastian Pop
de2e0b5e6d rename LLVM_HOSTTRIPLE into LLVM_DEFAULT_TARGET_TRIPLE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143501 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 21:31:44 +00:00
Sebastian Pop
c4cbf4a6a4 derive LLVM_HOSTTRIPLE from target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143500 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 21:30:04 +00:00
Eli Friedman
f6aa6b12f1 Teach the x86 backend a couple tricks for dealing with v16i8 sra by a constant splat value. Fixes PR11289.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143498 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 21:18:39 +00:00
Jim Grosbach
fadfd7b977 Ignore MachO symbol flags in the upper nibble of n_desc.
They don't impact the MCJIT rtdyld, so just mask them off for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143472 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 18:10:23 +00:00
Daniel Dunbar
8f4a17214c Support/Compiler: Add LLVM_EXTENSION for use where we want to hide pedantic diags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143468 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 17:46:12 +00:00
Richard Osborne
0e6c1c536b Don't fold negative offsets into cp / dp accesses to avoid relocation errors.
This can happen if the address + addend is less than the start of the cp / dp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143459 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 11:31:53 +00:00
Richard Osborne
441ed4ac23 Combine various XCore tests for floating point intrinsic support into a single test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143458 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 10:51:48 +00:00
Richard Osborne
70ad3951e4 Move various XCore tests to FileCheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143457 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 10:41:28 +00:00
Craig Topper
ce7de9f36d Fix operand type for x86 pmadd_ub_sw intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143455 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 07:25:22 +00:00
Eli Friedman
c94792507d Remove a couple unused methods. PR11201.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143452 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 05:11:01 +00:00
Eli Friedman
049260d9e2 Make sure we use the right insertion point when instcombine replaces a PHI with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143437 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 04:49:29 +00:00
Eli Friedman
597362a54b A couple misc fixes so that bugpoint doesn't explode reducing code containing landingpads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143435 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 04:40:56 +00:00
Bill Wendling
0325053da3 Add LuaAV to external projects list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143431 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 04:08:23 +00:00
Eli Friedman
dc9414d62f Move x86-specific tests into X86 folder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 03:21:48 +00:00
Eli Friedman
50ea611e2c Remove empty directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143422 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 03:21:17 +00:00
Eli Friedman
9c06bc7c10 Move another test requiring x86 into X86 directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143421 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 03:12:47 +00:00
Eli Friedman
f001fe72f4 Move test requiring x86 backend into X86 directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143420 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 03:11:41 +00:00
Jim Grosbach
681460f954 ARM VLD/VST assembly parsing for symbolic address operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143413 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 01:24:45 +00:00
Jakob Stoklund Olesen
7bdf0060a0 Update split candidate correctly when interference cache is full.
No test case, spotted by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143407 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 00:02:31 +00:00
Eli Friedman
a7dd4dfcca Add support for new atomics to cpp backend. Misc other fixes while I'm here. PR11268.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143406 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-31 23:59:22 +00:00