Adam Nemet
f36c3de849
[Disasm][AVX512] Implement decoding of top bit for non-destructive reg fields
...
V' bit in the P2 byte of the EVEX prefix provides the top bit of the NDD and
NDS register fields. This was simply not used in the decoder until now.
Fixes <rdar://problem/17402661>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211565 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 01:42:32 +00:00
Adam Nemet
68cda26497
[Emacs] Use spaces rather than tabs for indentation in tablegen-mode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211564 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 01:42:29 +00:00
Duncan P. N. Exon Smith
856361cb06
Support: Move class ScaledNumber
...
ScaledNumber has been cleaned up enough to pull out of BFI now. Still
work to do there (tests for shifting, bloated printing code, etc.), but
it seems clean enough for its new home.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211562 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 00:38:09 +00:00
Duncan P. N. Exon Smith
6ecab5a5b1
BFI: Un-floatify more language
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211561 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 00:26:13 +00:00
Duncan P. N. Exon Smith
529072a6da
BFI: Remove more float-like language from ScaledNumber
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211560 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 00:26:10 +00:00
Duncan P. N. Exon Smith
8e52bcc591
Support: Return ScaledNumbers::MaxScale from getQuotient()
...
Return MaxScale now that it's available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211559 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 00:26:08 +00:00
Duncan P. N. Exon Smith
784bb5992a
Support: Extract ScaledNumbers::MinScale and MaxScale
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211558 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 00:15:19 +00:00
Duncan P. N. Exon Smith
747b62f119
BFI: Change language from "exponent" to "scale"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211557 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:57:12 +00:00
Duncan P. N. Exon Smith
1c4709c618
BFI: Update ScaledNumber header docs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211556 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:49:31 +00:00
Duncan P. N. Exon Smith
7c21d709a3
BFI: Rename UnsignedFloat => ScaledNumber
...
A lot of the docs and API are out of date, but I'll leave that for a
separate commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211555 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:36:17 +00:00
Duncan P. N. Exon Smith
67886a98a2
Fix comments from r211553
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211554 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:17:36 +00:00
Duncan P. N. Exon Smith
558b7725b7
Support: Extract ScaledNumbers::getSum() and getDifference()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211553 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:15:25 +00:00
Duncan P. N. Exon Smith
465f06cfa6
Support: Return scale from ScaledNumbers::matchScales()
...
This will be convenient when extracting `ScaledNumbers::getSum()`.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211552 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 23:14:51 +00:00
Reid Kleckner
71c24112f1
not: Only consider exit code 3 to be a crash with --crash
...
This fixes Clang's test/Index/comment-xml-schema.c with Cygwin's
xmllint.exe, which uses exit(3) for XML validation failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211550 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 22:54:33 +00:00
Rafael Espindola
b138caba43
Pass a std::unique_ptr& to the create??? methods is lib/Object.
...
This makes the buffer ownership on error conditions very natural. The buffer
is only moved out of the argument if an object is constructed that now
owns the buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211546 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 22:00:37 +00:00
Juergen Ributzka
20732d55c2
[FastISel][X86] Lower unsupported selects to control-flow.
...
The extends the select lowering coverage by emiting pseudo cmov
instructions. These insturction will be later on lowered to control-flow to
simulate the select.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211545 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:55:44 +00:00
Juergen Ributzka
d0976a3d20
[FastISel][X86] Add support for floating-point select.
...
This extends the select lowering to support floating-point selects. The
lowering depends on SSE instructions and that the conditon comes from a
floating-point compare. Under this conditions it is possible to emit an
optimized instruction sequence that doesn't require any branches to
simulate the select.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211544 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:55:40 +00:00
Juergen Ributzka
5f4e6e1ec0
[FastISel][X86] Optimize selects when the condition comes from a compare.
...
Optimize the select instructions sequence to use the EFLAGS directly from a
compare when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211543 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:55:36 +00:00
Rafael Espindola
1f659329b6
Make ObjectFile and BitcodeReader always own the MemoryBuffer.
...
This allows us to just use a std::unique_ptr to store the pointer to the buffer.
The flip side is that they have to support releasing the buffer back to the
caller.
Overall this looks like a more efficient and less brittle api.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211542 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:53:12 +00:00
Rafael Espindola
7e7e89f178
This reverts commit r211533 and r211539.
...
Revert "Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
Revert "Fix cmake build."
It was missing a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211540 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:20:58 +00:00
Juergen Ributzka
af5c54f140
Fix cmake build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211539 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:15:55 +00:00
Rafael Espindola
61438b1c26
Simplify memory management with std::unique_ptr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211538 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:15:27 +00:00
NAKAMURA Takumi
63a0ff93c0
nm-trivial-object.test requires shell since Lit internal runner isn't capable of chdir.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211537 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 21:07:04 +00:00
Weiming Zhao
3cffac5061
Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64
...
This patch is based on the changes from ARM target [1,2]
Based on ARM doc [3], if the literal value can be loaded with a valid MOV,
it can emit that instruction. This is implemented in this patch.
[1] Fix PR18345: ldr= pseudo instruction produces incorrect code when using in inline assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit b92cca2228
(r200777)
[2] Implement the ldr-pseudo opcode for ARM assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit 0fa193b086
(r197708)
[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/CJAHAIBC.html
Differential Revision: http://reviews.llvm.org/D4163
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211533 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 20:44:16 +00:00
Rafael Espindola
2da970364f
Convert a few methods to use ErrorOr.
...
It used to be inconvenient to mix ErrorOr and UniquePtr, but with c++11
they work OK together.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211532 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 20:41:02 +00:00
Duncan P. N. Exon Smith
0da818cdbb
Support: Extract ScaledNumbers::matchScale()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211531 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 20:40:45 +00:00
Kevin Enderby
138222e56f
Change the default input for llvm-nm to be a.out instead of standard input
...
to match llvm-size and other UNIX systems for their nm(1).
Tweak test cases that used llvm-nm with standard input to add a "-" to
indicate that and add a test case to check the default of a.out for llvm-nm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211529 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 20:27:53 +00:00
Rafael Espindola
5e761eb4ae
[Mips] Add a target streamer when creating a null streamer.
...
Should fix DebugInfo/global.ll on the mips bot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211527 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 19:43:40 +00:00
David Blaikie
9dd6fee485
Recommit 211309 (StringMap::insert), reverted in 211328 due to issues with private, but non-deleted, move members.
...
Certain versions of GCC (~4.7) couldn't handle the SFINAE on access
control, but with "= delete" (hidden behind a macro for portability)
this issue is worked around/addressed.
Patch by Agustín Bergé
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211525 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:28:53 +00:00
Matt Arsenault
140c6ae970
R600/SI: Verify restrictions on div_scale operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211524 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:28:31 +00:00
Matt Arsenault
ed143b7c0c
R600/SI: Fix div_scale intrinsic.
...
The operand that must match one of the others does matter,
and implement selecting for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211523 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:28:28 +00:00
Matt Arsenault
d88f5b71c7
R600: Fix formatting of intrinsic definitions.
...
It makes more sense for the GCCBuiltin name to come immediately
after the ID name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211522 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:28:23 +00:00
Duncan P. N. Exon Smith
dd15ed8a83
Cleanup r211507
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211521 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:08:58 +00:00
Christian Pirker
737f207468
ARMEB: Vector extend operations
...
Reviewed at http://reviews.llvm.org/D4043
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211520 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:05:53 +00:00
Matt Arsenault
791c054391
R600: Remove AMDILISelLowering
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211519 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:55 +00:00
Matt Arsenault
6272302394
R600: Select is not expensive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211518 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:52 +00:00
Matt Arsenault
9ad2c7ef92
R600: Move add/sub with overflow out of AMDILISelLowering
...
Add more tests for these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211517 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:49 +00:00
Matt Arsenault
5f607c0b39
R600: Move more out of AMDILISelLowering
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211516 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:44 +00:00
Matt Arsenault
a12b356464
R600: Don't set fp_round_inreg action.
...
There's no point in setting this since it seems to only
by created in 1 place for ppcf128
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211515 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:41 +00:00
Matt Arsenault
c4471e9248
R600/SI: Handle i64 sub.
...
We can handle it the same way as add
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211514 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:38 +00:00
Matt Arsenault
e564b6ed79
R600/SI: Move selection of i64 add to separate function.
...
Also don't use a SmallVector for fixed size array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211513 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:34 +00:00
Matt Arsenault
b170a8042a
R600: Rename AMDIL file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211512 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:31 +00:00
Matt Arsenault
cf88d40c8a
Fix missing words in sentence
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211511 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:26 +00:00
Matt Arsenault
261698fbd5
Use helper function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211510 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:24 +00:00
Matt Arsenault
1f93cf49fc
Alphabetize forward declarations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211509 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 18:00:20 +00:00
Rafael Espindola
67c5f45306
Delete utils/FileUpdate.
...
It is unused and it looks like it was never used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211508 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 17:58:39 +00:00
Duncan P. N. Exon Smith
18a301e578
Support: Extract ScaledNumbers::compare()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211507 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 17:47:40 +00:00
Rafael Espindola
88a564f55e
Allow using .cfi_startproc without a leading symbol.
...
This is possible now that we don't produce .eh symbols. This fixes pr19430.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211502 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 15:34:32 +00:00
Rafael Espindola
1e1bf1bf76
clang-format initializer to reduce noise in another patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211501 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 15:17:34 +00:00
Rafael Espindola
a118083442
Stop producing func.eh symbols on Darwin.
...
According Nick Kledzik (http://llvm.org/bugs/show_bug.cgi?id=19430#c2 ):
"... mach-o no longer needs names in the __eh_frame section (and has not for
years)."
Iain Sandoe confirms it is also unnecessary for their old darwin support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211500 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 15:13:23 +00:00