Nick Lewycky
9d90163bc3
Teach the DataLayout aware constant folder to be much more aggressive towards
...
'and' instructions. This is a pattern that shows up a lot in ubsan binaries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175128 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 03:23:37 +00:00
Reed Kotler
38f85c5b9f
Remove the form field from Mips16 instruction formats and set things
...
up so that we can apply the direct object emitter patch. This patch
should be a nop right now and it's test is to not break what is already
there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175126 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 03:05:25 +00:00
Andrew Trick
fd1335e982
Revert "s/grep/FileCheck/ in some tests"
...
This reverts commit 8b75e6bc35
.
The FileCheck tests are not equivalent:
test/CodeGen/X86/tailcall-structret.ll:6:10: error: expected string not found in input
; CHECK: jmp init
^
<stdin>:1:2: note: scanning from here
.section __TEXT,__text,regular,pure_instructions
^
<stdin>:13:2: note: possible intended match here
jmp _init ## TAILCALL
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175124 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 03:00:57 +00:00
Cameron Zwarich
1d46732281
Fix RegisterCoalescer::rematerializeTrivialDef() so that it works on flipped
...
CoalescerPairs. Also, make it take a CoalescerPair directly like other methods
of RegisterCoalescer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175123 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 02:51:05 +00:00
Cameron Zwarich
c5f147459b
Fix some issues with rematerialization in RegisterCoalescer when the destination
...
of the copy is a subregister def. The current code assumes that it can do a full
def of the destination register, but it is not checking that the def operand is
read-undef. It also doesn't clear the subregister index of the destination in
the new instruction to reflect the full subregister def.
These issues were found running 'make check' with my next commit that enables
rematerialization in more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175122 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 02:51:03 +00:00
Rafael Espindola
ad236eb8c6
Don't assume the mangling of static functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175121 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 02:49:18 +00:00
Rafael Espindola
382a5530ec
Don't asume that a static function in an extern "C" block will not be mangled.
...
Since functions with internal linkage don't have language linkage, it is valid
to overload them:
extern "C" {
static int foo();
static int foo(int);
}
So we mangle them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175120 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-14 01:58:08 +00:00
Weiming Zhao
c0c2816fb3
temporarily revert the patch due to some conflicts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175107 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 23:24:40 +00:00
Bill Wendling
17fe48ce6e
Retain the name of the new internal global that's been shrunk.
...
It's possible (e.g. after an LTO build) that an internal global may be used for
debugging purposes. If that's the case appending a '.b' to it makes it hard to
find that variable. Steal the name from the old GV before deleting it so that
they can find that variable again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175104 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 23:00:51 +00:00
Anshuman Dasgupta
666e0d3bc4
Hexagon: add support for predicate-GPR copies.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175102 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 22:56:34 +00:00
Alex Rosenberg
ff91f2ef47
llvm-gcc -pedantic warns about C++ comments in C90 mode even if they're
...
inside an #if 0 block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175098 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 22:45:52 +00:00
Ryan Govostes
779a96362e
Fix iterator definitions for ImmutableSet and ImmutableMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175097 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 22:37:27 +00:00
Tom Stellard
76308d8d28
R600: Add support for 128-bit parameters
...
NOTE: This is a candidate for the Mesa stable branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175096 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 22:05:20 +00:00
Eli Bendersky
fa7c9efcd3
s/grep/FileCheck/ in some tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175093 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 22:00:37 +00:00
Nick Lewycky
48aaf5fd02
Don't build tail calls to functions with three inreg arguments on x86-32 PIC.
...
Fixes PR15250!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175092 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:59:15 +00:00
Eli Bendersky
8b75e6bc35
s/grep/FileCheck/ in some tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175089 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:46:38 +00:00
Weiming Zhao
3019fbbe6a
Bug fix 13622: Add paired register support for inline asm with 64-bit data on ARM
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175088 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:43:02 +00:00
Chad Rosier
5867302b16
[ms-inline asm] Fix up test case for non-Darwin platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175087 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:41:58 +00:00
Jyotsna Verma
f6563427c4
Hexagon: Use absolute addressing mode loads/stores for global+offset
...
instead of redefining separate instructions for them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175086 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:38:46 +00:00
Ryan Govostes
3df02ac9d4
Add iterator_traits to ImmutableMap and ImmutableSet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175085 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:38:22 +00:00
Chad Rosier
7b0bc3fe3e
[ms-inline-asm] Add support for memory references that have non-immediate
...
displacements.
rdar://12974533
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175083 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:33:44 +00:00
Chad Rosier
19aa3e37dc
[ms-inline asm] Add a comment about the determinism of the rewrite sort.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175082 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:27:17 +00:00
Dmitri Gribenko
7c62701c22
configure: remove workaround for gcc's -Wno-maybe-uninitialized
...
Since r174770 gcc version check is not needed because CXX_FLAG_CHECK
implements the workaround itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175080 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:19:39 +00:00
Sean Silva
ccb51f923f
[docs] PR15254: Add "AST" to the lexicon.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175077 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:17:20 +00:00
Benjamin Kramer
c0a6e070fc
LoopVectorize: Simplify code for clarity.
...
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175076 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:12:29 +00:00
Bill Wendling
6eaab0d69b
Add a blurb about the attributes changes to the release notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175075 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:10:15 +00:00
Reed Kotler
6b9d461780
For Mips 16, add the optimization where the 16 bit form of addiu sp can be used
...
if the offset fits in 11 bits. This makes use of the fact that the abi
requires sp to be 8 byte aligned so the actual offset can fit in 8
bits. It will be shifted left and sign extended before being actually used.
The assembler or direct object emitter will shift right the 11 bit
signed field by 3 bits. We don't need to deal with that here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175073 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 20:28:27 +00:00
Manman Ren
f098620095
Clean up LDV, no functionality change.
...
Remove dead functions: renameRegister
Move private member variables from LDV to Impl
Remove ssp/uwtable from testing case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175072 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 20:23:48 +00:00
Bill Wendling
ee740ddf9d
Use 'RC_XBS' instead of 'RC_BUILDIT' to catch all times when it's built in the Apple way.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175069 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 19:44:08 +00:00
Andrew Trick
ecb8c2ba60
MIsched: HazardRecognizers are created for each DAG. Free them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175067 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 19:22:27 +00:00
David Peixotto
af7c042af1
PR14992 - Tablegen incorrectly converts ARM tLDMIA_UPD pseudo to tLDMIA
...
Fixed bug in tablegen conversion when source pseudo instruction has
a different number of arguments than the destination instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175066 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 19:21:47 +00:00
Chad Rosier
abde6755f9
[ms-inline-asm] Use an array_pod_sort, rather than a std:sort.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175063 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 18:38:58 +00:00
Pekka Jaaskelainen
5d0ce79e26
Metadata for annotating loops as parallel. The first consumer for this
...
metadata is the loop vectorizer.
See the documentation update for more info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175060 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 18:08:57 +00:00
Krzysztof Parzyszek
96848dfc46
Add registration for PPC-specific passes to allow the IR to be dumped
...
via -print-after-all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175058 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 17:40:07 +00:00
Benjamin Kramer
f09e02f01a
X86: Disable generation of rep;movsl when %esi is used as a base pointer.
...
This happens when there is both stack realignment and a dynamic alloca in the
function. If we overwrite %esi (rep;movsl uses fixed registers) we'll lose the
base pointer and the next register spill will write into oblivion.
Fixes PR15249 and unbreaks firefox on i386/freebsd. Mozilla uses dynamic allocas
and freebsd a 4 byte stack alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175057 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 13:40:35 +00:00
Tim Northover
0f80f7bfd7
Mention AArch64 in release notes for 3.3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175055 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 12:46:32 +00:00
Evgeniy Stepanov
782a65056a
Fix MSan annotations inclusion guard.
...
#cmakedefine does not behave the way I though it was.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175050 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 10:40:01 +00:00
Bill Wendling
f107e6ca9b
Use array_pod_sort.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175048 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 09:26:26 +00:00
Manuel Klimek
f1dd494129
Update phab docs to clarify how to accept a change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175047 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 09:07:18 +00:00
Bill Wendling
0e9d5d059c
Add some accessor and query methods for retrieving Attribute objects and such.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175046 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 08:42:21 +00:00
Reed Kotler
8080696103
Make jumptables work for -static
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175044 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 08:32:14 +00:00
Elena Demikhovsky
d29804f80d
Prevent insertion of "vzeroupper" before call that preserves YMM registers, since a caller uses preserved registers across the call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175043 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 08:02:04 +00:00
Craig Topper
cef6cfe4a6
Remove unnecessary condtional assignment. The next line ignores the result of the assignment with the same condition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175042 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 07:44:17 +00:00
Eric Christopher
34760ee55f
This is actually located at the end, not the middle.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175041 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 07:22:25 +00:00
Eric Christopher
23571f4f2c
Check i1 as well as i8 variables for 8 bit registers for x86 inline
...
assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175036 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 06:01:05 +00:00
Eric Christopher
a4e8694053
Finish obviously broken thought.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175035 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 06:01:00 +00:00
Kostya Serebryany
7bce462c15
[tsan] disable load widening in ThreadSanitizer mode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175034 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 05:59:45 +00:00
Kostya Serebryany
39f02940ba
[asan] fix confusing indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175033 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 05:14:12 +00:00
Chris Lattner
519e1475d6
use memcpy instead of dubious union to type pun two values,
...
thanks to David Blaike for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175032 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 04:53:40 +00:00
Eric Christopher
b3cecdfcf9
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175024 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 02:29:18 +00:00