oota-llvm.git
11 years agoPR14992 - Tablegen incorrectly converts ARM tLDMIA_UPD pseudo to tLDMIA
David Peixotto [Wed, 13 Feb 2013 19:21:47 +0000 (19:21 +0000)]
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

11 years ago[ms-inline-asm] Use an array_pod_sort, rather than a std:sort.
Chad Rosier [Wed, 13 Feb 2013 18:38:58 +0000 (18:38 +0000)]
[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

11 years agoMetadata for annotating loops as parallel. The first consumer for this
Pekka Jaaskelainen [Wed, 13 Feb 2013 18:08:57 +0000 (18:08 +0000)]
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

11 years agoAdd registration for PPC-specific passes to allow the IR to be dumped
Krzysztof Parzyszek [Wed, 13 Feb 2013 17:40:07 +0000 (17:40 +0000)]
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

11 years agoX86: Disable generation of rep;movsl when %esi is used as a base pointer.
Benjamin Kramer [Wed, 13 Feb 2013 13:40:35 +0000 (13:40 +0000)]
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

11 years agoMention AArch64 in release notes for 3.3
Tim Northover [Wed, 13 Feb 2013 12:46:32 +0000 (12:46 +0000)]
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

11 years agoFix MSan annotations inclusion guard.
Evgeniy Stepanov [Wed, 13 Feb 2013 10:40:01 +0000 (10:40 +0000)]
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

11 years agoUse array_pod_sort.
Bill Wendling [Wed, 13 Feb 2013 09:26:26 +0000 (09:26 +0000)]
Use array_pod_sort.

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

11 years agoUpdate phab docs to clarify how to accept a change.
Manuel Klimek [Wed, 13 Feb 2013 09:07:18 +0000 (09:07 +0000)]
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

11 years agoAdd some accessor and query methods for retrieving Attribute objects and such.
Bill Wendling [Wed, 13 Feb 2013 08:42:21 +0000 (08:42 +0000)]
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

11 years agoMake jumptables work for -static
Reed Kotler [Wed, 13 Feb 2013 08:32:14 +0000 (08:32 +0000)]
Make jumptables work for -static

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

11 years agoPrevent insertion of "vzeroupper" before call that preserves YMM registers, since...
Elena Demikhovsky [Wed, 13 Feb 2013 08:02:04 +0000 (08:02 +0000)]
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

11 years agoRemove unnecessary condtional assignment. The next line ignores the result of the...
Craig Topper [Wed, 13 Feb 2013 07:44:17 +0000 (07:44 +0000)]
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

11 years agoThis is actually located at the end, not the middle.
Eric Christopher [Wed, 13 Feb 2013 07:22:25 +0000 (07:22 +0000)]
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

11 years agoCheck i1 as well as i8 variables for 8 bit registers for x86 inline
Eric Christopher [Wed, 13 Feb 2013 06:01:05 +0000 (06:01 +0000)]
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

11 years agoFinish obviously broken thought.
Eric Christopher [Wed, 13 Feb 2013 06:01:00 +0000 (06:01 +0000)]
Finish obviously broken thought.

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

11 years ago[tsan] disable load widening in ThreadSanitizer mode
Kostya Serebryany [Wed, 13 Feb 2013 05:59:45 +0000 (05:59 +0000)]
[tsan] disable load widening in ThreadSanitizer mode

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

11 years ago[asan] fix confusing indentation
Kostya Serebryany [Wed, 13 Feb 2013 05:14:12 +0000 (05:14 +0000)]
[asan] fix confusing indentation

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

11 years agouse memcpy instead of dubious union to type pun two values,
Chris Lattner [Wed, 13 Feb 2013 04:53:40 +0000 (04:53 +0000)]
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

11 years agoFix comment.
Eric Christopher [Wed, 13 Feb 2013 02:29:18 +0000 (02:29 +0000)]
Fix comment.

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

11 years agoDebug Info: LiveDebugVarible can remove DBG_VALUEs, make sure we emit them back.
Manman Ren [Wed, 13 Feb 2013 01:14:49 +0000 (01:14 +0000)]
Debug Info: LiveDebugVarible can remove DBG_VALUEs, make sure we emit them back.

RegisterCoalescer used to depend on LiveDebugVariable. LDV removes DBG_VALUEs
without emitting them at the end.

We fix this by removing LDV from RegisterCoalescer. Also add an assertion to
make sure we call emitDebugValues if DBG_VALUEs are removed at
runOnMachineFunction.

rdar://problem/13183203
Reviewed by Andy & Jakob

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

11 years ago[ms-inline-asm] Make sure the AsmRewrite list is sorted in lexical order.
Chad Rosier [Wed, 13 Feb 2013 01:03:13 +0000 (01:03 +0000)]
[ms-inline-asm] Make sure the AsmRewrite list is sorted in lexical order.
rdar://13202662

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

11 years agoTest commit. Fixed typo.
David Peixotto [Wed, 13 Feb 2013 00:36:35 +0000 (00:36 +0000)]
Test commit. Fixed typo.

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

11 years agoFix comment
Arnaud A. de Grandmaison [Wed, 13 Feb 2013 00:19:19 +0000 (00:19 +0000)]
Fix comment

visitSExt is an adapted copy of the related visitZExt method, so adapt the comment accordingly.

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

11 years agoChanged isStoredObjCPointer => IsStoredObjCPointer. No functionality change.
Michael Gottesman [Tue, 12 Feb 2013 23:35:08 +0000 (23:35 +0000)]
Changed isStoredObjCPointer => IsStoredObjCPointer. No functionality change.

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

11 years agoAdd a default empty string to the 'value' of a string attribute.
Bill Wendling [Tue, 12 Feb 2013 23:14:31 +0000 (23:14 +0000)]
Add a default empty string to the 'value' of a string attribute.

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

11 years agoActually delete this code, since it's really not clear what it's
Dan Gohman [Tue, 12 Feb 2013 22:26:41 +0000 (22:26 +0000)]
Actually delete this code, since it's really not clear what it's
trying to do.

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

11 years ago[ms-inline-asm] Implement align directive (which is roughly equivalent to .align).
Chad Rosier [Tue, 12 Feb 2013 21:33:51 +0000 (21:33 +0000)]
[ms-inline-asm] Implement align directive (which is roughly equivalent to .align).

Also, allow _EMIT and __EMIT for the emit directive.  We already do the same
for TYPE, SIZE, and LENGTH.
rdar://13200215

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

11 years agoThis patch just fixes up various llvm formatting
Jack Carter [Tue, 12 Feb 2013 21:29:39 +0000 (21:29 +0000)]
This patch just fixes up various llvm formatting
violations such as tabs, blanks at eol and long
lines.

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

11 years agoAdd static cast to unsigned char whenever a character classification function is...
Guy Benyei [Tue, 12 Feb 2013 21:21:59 +0000 (21:21 +0000)]
Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration.

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

11 years agoRecord PRE predecessors with a SmallVector instead of a DenseMap, and
Dan Gohman [Tue, 12 Feb 2013 19:49:10 +0000 (19:49 +0000)]
Record PRE predecessors with a SmallVector instead of a DenseMap, and
avoid a second pred_iterator traversal.

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

11 years ago[ms-inline asm] Pass the length of the IDVal, so we can do a proper AsmRewrite.
Chad Rosier [Tue, 12 Feb 2013 19:42:32 +0000 (19:42 +0000)]
[ms-inline asm] Pass the length of the IDVal, so we can do a proper AsmRewrite.

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

11 years ago[ms-inline asm] Accept the emit directive as either _emit or __emit.
Chad Rosier [Tue, 12 Feb 2013 19:31:23 +0000 (19:31 +0000)]
[ms-inline asm] Accept the emit directive as either _emit or __emit.

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

11 years agoWhen disabling PRE for a value is directly redundant with itself
Dan Gohman [Tue, 12 Feb 2013 19:05:10 +0000 (19:05 +0000)]
When disabling PRE for a value is directly redundant with itself
(through a loop), don't continue to iterate through the reamining
predecessors.

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

11 years agoRemove target-specific info from the testcase for DWARF/pubnames.
Krzysztof Parzyszek [Tue, 12 Feb 2013 18:53:21 +0000 (18:53 +0000)]
Remove target-specific info from the testcase for DWARF/pubnames.

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

11 years agoCheck that pointers are removed from maps before calling delete on the pointers,
Dan Gohman [Tue, 12 Feb 2013 18:44:43 +0000 (18:44 +0000)]
Check that pointers are removed from maps before calling delete on the pointers,
for tidiness' sake.

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

11 years agoMinor code simplification.
Dan Gohman [Tue, 12 Feb 2013 18:38:36 +0000 (18:38 +0000)]
Minor code simplification.

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

11 years ago[ms-inline asm] Add support for lexing binary integers with a [bB] suffix.
Chad Rosier [Tue, 12 Feb 2013 18:29:02 +0000 (18:29 +0000)]
[ms-inline asm] Add support for lexing binary integers with a [bB] suffix.

This is complicated by backward labels (e.g., 0b can be both a backward label
and a binary zero).  The current implementation assumes [0-9]b is always a
label and thus it's possible for 0b and 1b to not be interpreted correctly for
ms-style inline assembly.  However, this is relatively simple to fix in the
inline assembly (i.e., drop the [bB]).

This patch also limits backward labels to [0-9]b, so that only 0b and 1b are
ambiguous.
Part of rdar://12470373

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

11 years agoDocumentation: HowToUseAttributes: formatting (use monospaced font)
Dmitri Gribenko [Tue, 12 Feb 2013 18:26:08 +0000 (18:26 +0000)]
Documentation: HowToUseAttributes: formatting (use monospaced font)

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

11 years agoAllow optionally generating pubnames section in DWARF info. Introduce
Krzysztof Parzyszek [Tue, 12 Feb 2013 18:00:14 +0000 (18:00 +0000)]
Allow optionally generating pubnames section in DWARF info.  Introduce
option "generate-dwarf-pubnames" to control it, set to "false" by default.

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

11 years agoadded test cases for r174920 (prefetch disassembly)
Kay Tiong Khoo [Tue, 12 Feb 2013 17:07:44 +0000 (17:07 +0000)]
added test cases for r174920 (prefetch disassembly)

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

11 years agoEqual treatment of labels and other terminators in MI DAG construction.
Sergei Larin [Tue, 12 Feb 2013 16:36:03 +0000 (16:36 +0000)]
Equal treatment of labels and other terminators in MI DAG construction.

MI sched DAG construction allows targets to include terminators into scheduling DAG.
Extend this functionality to labels as well.

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

11 years agoAdd support for the pubnames section to llvm-dwarfdump.
Krzysztof Parzyszek [Tue, 12 Feb 2013 16:20:28 +0000 (16:20 +0000)]
Add support for the pubnames section to llvm-dwarfdump.

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

11 years agoFix the lit test added in r174972
Paul Redmond [Tue, 12 Feb 2013 16:07:27 +0000 (16:07 +0000)]
Fix the lit test added in r174972

Patch by: Kevin Schoedel

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

11 years agoHexagon: Add support to generate predicated absolute addressing mode
Jyotsna Verma [Tue, 12 Feb 2013 16:06:23 +0000 (16:06 +0000)]
Hexagon: Add support to generate predicated absolute addressing mode
instructions.

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

11 years agoPR14562 - Truncation of left shift became undef
Paul Redmond [Tue, 12 Feb 2013 15:21:21 +0000 (15:21 +0000)]
PR14562 - Truncation of left shift became undef

DAGCombiner::ReduceLoadWidth was converting (trunc i32 (shl i64 v, 32))
into (shl i32 v, 32) into undef. To prevent this, check the shift count
against the final result size.

Patch by: Kevin Schoedel
Reviewed by: Nadav Rotem

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

11 years ago[NVPTX] Disable vector registers
Justin Holewinski [Tue, 12 Feb 2013 14:18:49 +0000 (14:18 +0000)]
[NVPTX] Disable vector registers

Vectors were being manually scalarized by the backend.  Instead,
let the target-independent code do all of the work.  The manual
scalarization was from a time before good target-independent support
for scalarization in LLVM. However, this forces us to specially-handle
vector loads and stores, which we can turn into PTX instructions that
produce/consume multiple operands.

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

11 years ago[ASan] Do not use kDefaultShort64bitShadowOffset on Mac, where the binaries may get...
Alexander Potapenko [Tue, 12 Feb 2013 12:41:12 +0000 (12:41 +0000)]
[ASan] Do not use kDefaultShort64bitShadowOffset on Mac, where the binaries may get mapped at 0x100000000+ and thus may interleave with the shadow.

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

11 years agoR600: Fix regression with shadow array sampler on pre-SI GPUs.
Michel Danzer [Tue, 12 Feb 2013 12:11:23 +0000 (12:11 +0000)]
R600: Fix regression with shadow array sampler on pre-SI GPUs.

'R600/SI: Use proper instructions for array/shadow samplers.' removed two
cases from TEX_SHADOW. Vincent Lejeune reported on IRC that this broke some
shadow array piglit tests with the r600g driver. Reinstating the removed
cases should fix this, and still works with radeonsi as well.

I will follow up with some lit tests which would have caught the regression.

NOTE: This is a candidate for the Mesa stable branch.

Tested-by: Vincent Lejeune <vljn@ovi.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174963 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdding a HowTo for Attributes.
Joe Abbey [Tue, 12 Feb 2013 11:45:22 +0000 (11:45 +0000)]
Adding a HowTo for Attributes.

This is based on Bill Wendling's email.  No additional content has been added,
but now there's a place for Attributes to capture future information.

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

11 years ago[asan] fix tests for the new ABI
Kostya Serebryany [Tue, 12 Feb 2013 11:14:24 +0000 (11:14 +0000)]
[asan] fix tests for the new ABI

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

11 years ago[asan] change the default mapping offset on x86_64 to 0x7fff8000. This gives roughly...
Kostya Serebryany [Tue, 12 Feb 2013 11:11:02 +0000 (11:11 +0000)]
[asan] change the default mapping offset on x86_64 to 0x7fff8000. This gives roughly 5% speedup. Since this is an ABI change, bump the asan ABI version by renaming __asan_init to __asan_init_v1. llvm part, compiler-rt part will follow

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

11 years agoMerge the collected attributes into the call instruction's attributes.
Bill Wendling [Tue, 12 Feb 2013 10:13:06 +0000 (10:13 +0000)]
Merge the collected attributes into the call instruction's attributes.

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

11 years agoTest for string attributes and for attribute group output.
Bill Wendling [Tue, 12 Feb 2013 09:14:20 +0000 (09:14 +0000)]
Test for string attributes and for attribute group output.

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

11 years agoHave the bitcode writer and reader handle the new attribute references.
Bill Wendling [Tue, 12 Feb 2013 08:13:50 +0000 (08:13 +0000)]
Have the bitcode writer and reader handle the new attribute references.

The bitcode writer emits a reference to the attribute group that the object at
the given index refers to. The bitcode reader is modified to read this in and
map it back to the attribute group.

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

11 years agoUse the AttributeSet as the 'key' to the map instead of the 'raw' pointer.
Bill Wendling [Tue, 12 Feb 2013 08:01:22 +0000 (08:01 +0000)]
Use the AttributeSet as the 'key' to the map instead of the 'raw' pointer.

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

11 years agoSupport string attributes in the AttrBuilder.
Bill Wendling [Tue, 12 Feb 2013 07:56:49 +0000 (07:56 +0000)]
Support string attributes in the AttrBuilder.

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

11 years agoDon't consider definitions by other PHIs live-in when trimming a PHI source's
Cameron Zwarich [Tue, 12 Feb 2013 05:48:58 +0000 (05:48 +0000)]
Don't consider definitions by other PHIs live-in when trimming a PHI source's
live range after inserting a copy at the end of a block.

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

11 years agoFix indentation.
Cameron Zwarich [Tue, 12 Feb 2013 05:48:56 +0000 (05:48 +0000)]
Fix indentation.

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

11 years agoAdd a hidden option to PHIElimination to split all critical edges. This is
Cameron Zwarich [Tue, 12 Feb 2013 03:49:25 +0000 (03:49 +0000)]
Add a hidden option to PHIElimination to split all critical edges. This is
particularly useful for catching issues with architectures that have exotic
terminators like MIPS.

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

11 years agoRenumber SlotIndexes locally when a new block is inserted.
Cameron Zwarich [Tue, 12 Feb 2013 03:49:22 +0000 (03:49 +0000)]
Renumber SlotIndexes locally when a new block is inserted.

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

11 years agoAdd blocks to the LiveIntervalAnalysis RegMaskBlocks array when splitting
Cameron Zwarich [Tue, 12 Feb 2013 03:49:20 +0000 (03:49 +0000)]
Add blocks to the LiveIntervalAnalysis RegMaskBlocks array when splitting
a critical edge.

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

11 years agoFix the updating of LiveIntervals after splitting a critical edge. PHI operand
Cameron Zwarich [Tue, 12 Feb 2013 03:49:17 +0000 (03:49 +0000)]
Fix the updating of LiveIntervals after splitting a critical edge. PHI operand
live ranges should always be extended, and the only successor that should be
considered for extension of other ranges is the target of the split edge.

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

11 years agoCheck type for legality before forming a select from loads.
Pete Cooper [Tue, 12 Feb 2013 03:14:50 +0000 (03:14 +0000)]
Check type for legality before forming a select from loads.

Sorry for the lack of a test case.  I tried writing one for i386 as i know selects are illegal on this target, but they are actually considered legal by isel and expanded later.

I can't see any targets to trigger this, but checking for the legality of a node before forming it is general goodness.

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

11 years agoARM cost model: Add vector reverse shuffle costs
Arnold Schwaighofer [Tue, 12 Feb 2013 02:40:39 +0000 (02:40 +0000)]
ARM cost model: Add vector reverse shuffle costs

A reverse shuffle is lowered to a vrev and possibly a vext instruction (quad
word).

radar://13171406

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

11 years agoCost model: Add check for reverse shuffles to CostModel analysis
Arnold Schwaighofer [Tue, 12 Feb 2013 02:40:37 +0000 (02:40 +0000)]
Cost model: Add check for reverse shuffles to CostModel analysis

Check for reverse shuffles in the CostModel analysis pass and query
TargetTransform info accordingly. This allows us we can write test cases for
reverse shuffles.

radar://13171406

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

11 years agoARM NEON: Handle v16i8 and v8i16 reverse shuffles
Arnold Schwaighofer [Tue, 12 Feb 2013 01:58:32 +0000 (01:58 +0000)]
ARM NEON: Handle v16i8 and v8i16 reverse shuffles

Lower reverse shuffles to a vrev64 and a vext instruction instead of the default
legalization of storing and loading to the stack. This is important because we
generate reverse shuffles in the loop vectorizer when we reverse store to an
array.

  uint8_t Arr[N];
  for (i = 0; i < N; ++i)
    Arr[N - i - 1] = ...

radar://13171760

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

11 years agoUpdate error message due to previous commit, r174926.
Chad Rosier [Tue, 12 Feb 2013 01:12:24 +0000 (01:12 +0000)]
Update error message due to previous commit, r174926.

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

11 years ago[ms-inline asm] Add support for lexing hexidecimal integers with a [hH] suffix.
Chad Rosier [Tue, 12 Feb 2013 01:00:01 +0000 (01:00 +0000)]
[ms-inline asm] Add support for lexing hexidecimal integers with a [hH] suffix.
Part of rdar://12470373

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

11 years agoDIBuilder: make the return type of createBasicType more specific
David Blaikie [Tue, 12 Feb 2013 00:40:41 +0000 (00:40 +0000)]
DIBuilder: make the return type of createBasicType more specific

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

11 years agoAdded 0x0D to 2-byte opcode extension table for prefetch* variants
Kay Tiong Khoo [Tue, 12 Feb 2013 00:19:12 +0000 (00:19 +0000)]
Added 0x0D to 2-byte opcode extension table for prefetch* variants
Fixed decode of existing 3dNow prefetchw instruction
Intel is scheduled to add a compatible prefetchw (same encoding) to future CPUs

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

11 years agoBBVectorize: Don't over-search when building the dependency map
Hal Finkel [Mon, 11 Feb 2013 23:02:17 +0000 (23:02 +0000)]
BBVectorize: Don't over-search when building the dependency map

When building the pairable-instruction dependency map, don't search
past the last pairable instruction. For large blocks that have been
divided into multiple instruction groups, searching past the last
instruction in each group is very wasteful. This gives a 32% speedup
on the csa.ll test case from PR15222 (when using 50 instructions
in each group).

No functionality change intended.

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

11 years agoBBVectorize: Omit unnecessary entries in PairableInstUsers
Hal Finkel [Mon, 11 Feb 2013 23:02:09 +0000 (23:02 +0000)]
BBVectorize: Omit unnecessary entries in PairableInstUsers

This map is queried only for instructions in pairs of pairable
instructions; so make sure that only pairs of pairable
instructions are added to the map. This gives a 3.5% speedup
on the csa.ll test case from PR15222.

No functionality change intended.

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

11 years ago[Support][Compiler] Add LLVM_HAS_VARIADIC_TEMPLATES.
Michael J. Spencer [Mon, 11 Feb 2013 22:51:07 +0000 (22:51 +0000)]
[Support][Compiler] Add LLVM_HAS_VARIADIC_TEMPLATES.

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

11 years ago[mips] Expand pseudo instructions before they are emitted in
Akira Hatanaka [Mon, 11 Feb 2013 22:35:40 +0000 (22:35 +0000)]
[mips] Expand pseudo instructions before they are emitted in
MipsCodeEmitter.cpp.

JALR and NOP are expanded by function emitPseudoExpansionLowering, which is not
called when the old JIT is used.

This fixes the following tests which have been failing on
llvm-mips-linux builder:

LLVM :: ExecutionEngine__2003-01-04-LoopTest.ll
LLVM :: ExecutionEngine__2003-05-06-LivenessClobber.ll
LLVM :: ExecutionEngine__2003-06-04-bzip2-bug.ll
LLVM :: ExecutionEngine__2005-12-02-TailCallBug.ll
LLVM :: ExecutionEngine__2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll
LLVM :: ExecutionEngine__hello2.ll
LLVM :: ExecutionEngine__stubs.ll
LLVM :: ExecutionEngine__test-branch.ll
LLVM :: ExecutionEngine__test-call.ll
LLVM :: ExecutionEngine__test-common-symbols.ll
LLVM :: ExecutionEngine__test-loadstore.ll
LLVM :: ExecutionEngine__test-loop.ll

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

11 years agoRename AttributeSets to AttributeGroups so that it's more meaningful.
Bill Wendling [Mon, 11 Feb 2013 22:33:26 +0000 (22:33 +0000)]
Rename AttributeSets to AttributeGroups so that it's more meaningful.

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

11 years agoUse a std::map so that we record the group ID.
Bill Wendling [Mon, 11 Feb 2013 22:32:29 +0000 (22:32 +0000)]
Use a std::map so that we record the group ID.

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

11 years agoRename to something more sensible. No functionality change.
Bill Wendling [Mon, 11 Feb 2013 22:31:34 +0000 (22:31 +0000)]
Rename to something more sensible. No functionality change.

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

11 years ago[mips] Fix indentation.
Akira Hatanaka [Mon, 11 Feb 2013 22:03:52 +0000 (22:03 +0000)]
[mips] Fix indentation.

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

11 years agoOptimization: bitcast (<1 x ...> insertelement ..., X, ...) to ... ==> bitcast X...
Michael Ilseman [Mon, 11 Feb 2013 21:41:44 +0000 (21:41 +0000)]
Optimization: bitcast (<1 x ...> insertelement ..., X, ...) to ... ==> bitcast X to ...

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

11 years agoExtend Hexagon hardware loop generation to handle various additional cases:
Krzysztof Parzyszek [Mon, 11 Feb 2013 21:37:55 +0000 (21:37 +0000)]
Extend Hexagon hardware loop generation to handle various additional cases:
- variety of compare instructions,
- loops with no preheader,
- arbitrary lower and upper bounds.

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

11 years agoRemove trailing whitespace
Michael Ilseman [Mon, 11 Feb 2013 21:36:49 +0000 (21:36 +0000)]
Remove trailing whitespace

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

11 years agoImplement HexagonInstrInfo::analyzeCompare.
Krzysztof Parzyszek [Mon, 11 Feb 2013 20:04:29 +0000 (20:04 +0000)]
Implement HexagonInstrInfo::analyzeCompare.

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

11 years ago*fixed disassembly of some i386 system insts with intel syntax
Kay Tiong Khoo [Mon, 11 Feb 2013 19:46:36 +0000 (19:46 +0000)]
*fixed disassembly of some i386 system insts with intel syntax
*added file for test cases for i386 intel syntax

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

11 years ago[NVPTX] Remove NoCapture from address space conversion intrinsics. NoCapture is not...
Justin Holewinski [Mon, 11 Feb 2013 18:56:35 +0000 (18:56 +0000)]
[NVPTX] Remove NoCapture from address space conversion intrinsics. NoCapture is not valid in this case, and was causing incorrect optimizations.

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

11 years agoBBVectorize: Eliminate one more restricted linear search
Hal Finkel [Mon, 11 Feb 2013 17:19:34 +0000 (17:19 +0000)]
BBVectorize: Eliminate one more restricted linear search

This eliminates one more linear search over a range of
std::multimap entries. This gives a 22% speedup on the
csa.ll test case from PR15222.

No functionality change intended.

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

11 years agoAArch64: generate dwarfdump test rather than include .o in subversion
Tim Northover [Mon, 11 Feb 2013 16:28:12 +0000 (16:28 +0000)]
AArch64: generate dwarfdump test rather than include .o in subversion

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

11 years agoR600/SI: Use V_ADD_F32 instead of V_MOV_B32 for clamp/neg/abs modifiers.
Michel Danzer [Mon, 11 Feb 2013 15:58:21 +0000 (15:58 +0000)]
R600/SI: Use V_ADD_F32 instead of V_MOV_B32 for clamp/neg/abs modifiers.

The modifiers don't seem to have any effect with V_MOV_B32, supposedly it's
meant to just move bits untouched.

Fixes 46 piglit tests with radeonsi, though unfortunately 11 of those had
just regressed because they started using the clamp modifier.

NOTE: This is a candidate for the Mesa stable branch.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174890 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[asan] added a flag -mllvm asan-short-64bit-mapping-offset=1 (0 by default)
Kostya Serebryany [Mon, 11 Feb 2013 14:36:01 +0000 (14:36 +0000)]
[asan] added a flag -mllvm asan-short-64bit-mapping-offset=1 (0 by default)
This flag makes asan use a small (<2G) offset for 64-bit asan shadow mapping.
On x86_64 this saves us a register, thus achieving ~2/3 of the
zero-base-offset's benefits in both performance and code size.

Thanks Jakub Jelinek for the idea.

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

11 years agoAArch64: fix build on some MSVC versions
Tim Northover [Mon, 11 Feb 2013 14:25:52 +0000 (14:25 +0000)]
AArch64: fix build on some MSVC versions

This does two things:

It removes a call to abs() which may have "long long" parameter on Windows,
which is not necessarily available in C++03.

It also corrects the signedness of Amount, which was relying on
implementation-defined conversions previously.

Code was already tested (albeit in an implemnetation defined way) so no extra
tests.

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

11 years agoRestore the resurrected doc link previously deleted
Bill Schmidt [Mon, 11 Feb 2013 14:14:32 +0000 (14:14 +0000)]
Restore the resurrected doc link previously deleted

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

11 years agoRemove a dead PowerPC doc link
Bill Schmidt [Mon, 11 Feb 2013 13:16:30 +0000 (13:16 +0000)]
Remove a dead PowerPC doc link

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

11 years agoAArch64: Simplify logic in deciding whether bfi is valid
Tim Northover [Mon, 11 Feb 2013 12:32:18 +0000 (12:32 +0000)]
AArch64: Simplify logic in deciding whether bfi is valid

Previous code had a confusing comment which was mostly an implementation
detail. This condition corresponds to "lsb up to register width" and "width not
ridiculous".

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

11 years agoAArch64: Add basic relocation processing for llvm-dwarfdump.
Tim Northover [Mon, 11 Feb 2013 11:16:02 +0000 (11:16 +0000)]
AArch64: Add basic relocation processing for llvm-dwarfdump.

This allows llvm-dwarfdump to handle the relocations needed, at least
for LLVM-produced code.

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

11 years agoAArch64: Undo change to how test was run
Tim Northover [Mon, 11 Feb 2013 10:51:41 +0000 (10:51 +0000)]
AArch64: Undo change to how test was run

This broke on Windows, presumably due to interleaving of output streams.

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

11 years agoMake use of DiagnosticType to provide better AArch64 diagnostics.
Tim Northover [Mon, 11 Feb 2013 09:29:37 +0000 (09:29 +0000)]
Make use of DiagnosticType to provide better AArch64 diagnostics.

This gives a DiagnosticType to all AsmOperands in sight. This replaces all
"invalid operand" diagnostics with something more specific. The messages given
should still be sufficiently vague that they're not usually actively misleading
when LLVM guesses your instruction incorrectly.

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

11 years agoAdd support for updating LiveIntervals to MachineBasicBlock::SplitCriticalEdge().
Cameron Zwarich [Mon, 11 Feb 2013 09:24:47 +0000 (09:24 +0000)]
Add support for updating LiveIntervals to MachineBasicBlock::SplitCriticalEdge().
This is currently a bit hairier than it needs to be, since depending on where the
split block resides the end ListEntry of the split block may be the end ListEntry
of the original block or a new entry. Some changes to the SlotIndexes updating
should make it possible to eliminate the two cases here.

This also isn't as optimized as it could be. In the future Liveinterval should
probably get a flag that indicates whether the LiveInterval is within a single
basic block. We could ignore all such intervals when splitting an edge.

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

11 years agoUpdate SlotIndexes after updateTerminator() possibly removes instructions. I am
Cameron Zwarich [Mon, 11 Feb 2013 09:24:45 +0000 (09:24 +0000)]
Update SlotIndexes after updateTerminator() possibly removes instructions. I am
really trying to avoid piping SlotIndexes through to RemoveBranch() and friends.

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

11 years agoFix some problems with the updating of SlotIndexes after adding a new MBB. In
Cameron Zwarich [Mon, 11 Feb 2013 09:24:42 +0000 (09:24 +0000)]
Fix some problems with the updating of SlotIndexes after adding a new MBB. In
particular, holes were being left between two blocks after splitting an edge.

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

11 years agoAdd support for printing out the attribute groups.
Bill Wendling [Mon, 11 Feb 2013 08:43:33 +0000 (08:43 +0000)]
Add support for printing out the attribute groups.

This emits the attribute groups that are used by the functions. (It currently
doesn't print out return type or parameter attributes within attribute groups.)

Note: The functions still retrieve their attributes from the "old" bitcode
format (using the deprecated 'Raw()' method). This means that string attributes
within an attribute group will not show up during a disassembly. This will be
addressed in a future commit.

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