oota-llvm.git
9 years ago[Object][ELF] Support dumping hash-tables from files with no section table.
Michael J. Spencer [Thu, 9 Jul 2015 00:21:06 +0000 (00:21 +0000)]
[Object][ELF] Support dumping hash-tables from files with no section table.

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

9 years ago[CodeView] Add support for emitting column information
David Majnemer [Thu, 9 Jul 2015 00:19:51 +0000 (00:19 +0000)]
[CodeView] Add support for emitting column information

Column information is present in CodeView when the line table subsection
has bit 0 set to 1 in it's flags field.  The column information is
represented as a pair of 16-bit quantities: a starting and ending
column.  This information is present at the end of the chunk, after all
the line-PC pairs.

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

9 years ago[LAA] Fix misleading use of word 'consecutive'
Adam Nemet [Thu, 9 Jul 2015 00:03:22 +0000 (00:03 +0000)]
[LAA] Fix misleading use of word 'consecutive'

Fix some places where the word consecutive is used but the code really
means constant-stride (i.e. not just unit stride).

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

9 years agoMIR Serialization: Serialize the 'undef' register machine operand flag.
Alex Lorenz [Wed, 8 Jul 2015 23:58:31 +0000 (23:58 +0000)]
MIR Serialization: Serialize the 'undef' register machine operand flag.

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

9 years ago[SLPVectorizer] Try different vectorization factors for store chains
Sanjay Patel [Wed, 8 Jul 2015 23:40:55 +0000 (23:40 +0000)]
[SLPVectorizer] Try different vectorization factors for store chains
...and set max vector register size based on target

This patch is based on discussion on the llvmdev mailing list:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-July/087405.html

and also solves:
https://llvm.org/bugs/show_bug.cgi?id=17170

Several FIXME/TODO items are noted in comments as potential improvements.

Differential Revision: http://reviews.llvm.org/D10950

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

9 years agoRegisterPressure: Add PressureDiff::dump()
Matthias Braun [Wed, 8 Jul 2015 23:40:27 +0000 (23:40 +0000)]
RegisterPressure: Add PressureDiff::dump()

Also display the pressure diff in the case of a
getMaxUpwardPressureDelta() verify failure.

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

9 years ago[LAA] Revert a small part of r239295
Adam Nemet [Wed, 8 Jul 2015 22:58:48 +0000 (22:58 +0000)]
[LAA] Revert a small part of r239295

This commit ([LAA] Fix estimation of number of memchecks) regressed the
logic a bit.  We shouldn't quit the analysis if we encounter a pointer
without known bounds *unless* we actually need to emit a memcheck for
it.

The original code was using NumComparisons which is now computed
differently.  Instead I compute NeedRTCheck from NumReadPtrChecks and
NumWritePtrChecks.

As side note, I find the separation of NeedRTCheck and CanDoRT
confusing, so I will try to merge them in a follow-up patch.

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

9 years agoRun clang-format before making changes to StackMaps. NFC.
Juergen Ributzka [Wed, 8 Jul 2015 22:42:09 +0000 (22:42 +0000)]
Run clang-format before making changes to StackMaps. NFC.

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

9 years agoRevert part of "Disallow Archive::child_iterator that don't point to an archive."
Rafael Espindola [Wed, 8 Jul 2015 22:41:41 +0000 (22:41 +0000)]
Revert part of "Disallow Archive::child_iterator that don't point to an archive."

This reverts parts of commit r241747. MSVC doesn't like it.

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

9 years ago[x86] enable machine combiner reassociations for scalar single-precision multiplies
Sanjay Patel [Wed, 8 Jul 2015 22:35:20 +0000 (22:35 +0000)]
[x86] enable machine combiner reassociations for scalar single-precision multiplies

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

9 years agoDon't reject an archive with just a symbol table.
Rafael Espindola [Wed, 8 Jul 2015 22:27:54 +0000 (22:27 +0000)]
Don't reject an archive with just a symbol table.

It is pretty unambiguous how to interpret it and gnu ar accepts it too.

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

9 years agoDisallow Archive::child_iterator that don't point to an archive.
Rafael Espindola [Wed, 8 Jul 2015 22:15:07 +0000 (22:15 +0000)]
Disallow Archive::child_iterator that don't point to an archive.

NFC, just less error prone.

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

9 years ago[LoopVectorizer] Rename BypassBlock to VectorPH, and CheckBlock to NewVectorPH. NFCI.
Michael Zolotukhin [Wed, 8 Jul 2015 21:48:03 +0000 (21:48 +0000)]
[LoopVectorizer] Rename BypassBlock to VectorPH, and CheckBlock to NewVectorPH. NFCI.

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

9 years ago[LoopVectorizer] Restructurize code for emitting RT checks. NFCI.
Michael Zolotukhin [Wed, 8 Jul 2015 21:47:59 +0000 (21:47 +0000)]
[LoopVectorizer] Restructurize code for emitting RT checks. NFCI.

Place all code corresponding to a run-time check in one place.
Previously we generated some code, then proceeded to a next check, then
finished the code for the first check (like splitting blocks and
generating branches). Now the code for generating a check is
self-contained.

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

9 years ago[LoopVectorizer] Remove redundant variables PastOverflowCheck and OverflowCheckAnchor...
Michael Zolotukhin [Wed, 8 Jul 2015 21:47:56 +0000 (21:47 +0000)]
[LoopVectorizer] Remove redundant variables PastOverflowCheck and OverflowCheckAnchor. NFCI.

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

9 years ago[LoopVectorizer] Move some code around to ease further refactoring. NFCI.
Michael Zolotukhin [Wed, 8 Jul 2015 21:47:53 +0000 (21:47 +0000)]
[LoopVectorizer] Move some code around to ease further refactoring. NFCI.

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

9 years ago[LoopVectorizer] Remove redundant variable LastBypassBlock. NFC.
Michael Zolotukhin [Wed, 8 Jul 2015 21:47:47 +0000 (21:47 +0000)]
[LoopVectorizer] Remove redundant variable LastBypassBlock. NFC.

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

9 years agoMIR Parser: Remove redundant TODO comment. NFC.
Alex Lorenz [Wed, 8 Jul 2015 21:30:21 +0000 (21:30 +0000)]
MIR Parser: Remove redundant TODO comment. NFC.

This TODO comment has been redundant since r240474.

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

9 years agoAdd tests for the NVPTXLowerAggrCopies pass.
Eli Bendersky [Wed, 8 Jul 2015 21:29:28 +0000 (21:29 +0000)]
Add tests for the NVPTXLowerAggrCopies pass.

Note: not testing memmove lowering for now, as it's broken
[see https://llvm.org/bugs/show_bug.cgi?id=24056]

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

9 years agoMIR Serialization: Serialize the 'killed' register machine operand flag.
Alex Lorenz [Wed, 8 Jul 2015 21:23:34 +0000 (21:23 +0000)]
MIR Serialization: Serialize the 'killed' register machine operand flag.

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

9 years agoAdd missing dependency to Hexagon target.
Diego Novillo [Wed, 8 Jul 2015 21:13:37 +0000 (21:13 +0000)]
Add missing dependency to Hexagon target.

A recent patch added calls to isInstructionTriviallyDead without the
corresponding dependency on TransformUtils.

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

9 years ago[X86][SSE] Vector shift test cleanup. NFC.
Simon Pilgrim [Wed, 8 Jul 2015 21:11:17 +0000 (21:11 +0000)]
[X86][SSE] Vector shift test cleanup. NFC.

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

9 years agoUse a raw_svector_ostream and simplify a loop. NFC.
Rafael Espindola [Wed, 8 Jul 2015 21:07:18 +0000 (21:07 +0000)]
Use a raw_svector_ostream and simplify a loop. NFC.

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

9 years ago[Win64] Only treat some functions as having the Win64 convention
Reid Kleckner [Wed, 8 Jul 2015 21:03:47 +0000 (21:03 +0000)]
[Win64] Only treat some functions as having the Win64 convention

All the usual X86 target-specific conventions are collapsed to the
normal Win64 convention, but the custom conventions like GHC and webkit
should not be.

Previously we would assume that the caller allocated 32 bytes of shadow
space for us, which is not how webkit_jscc or other custom conventions
are supposed to work.

Based on a patch by peavo@outlook.com.

Fixes PR24051.

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

9 years agoStart adding support for writing archives in BSD format.
Rafael Espindola [Wed, 8 Jul 2015 20:47:32 +0000 (20:47 +0000)]
Start adding support for writing archives in BSD format.

No support for the symbol table yet (but will hopefully add it today).
We always use the long filename format so that we can align the member,
which is an advantage of the BSD format.

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

9 years agoMIR Parser: Use source locations for MBB naming errors.
Alex Lorenz [Wed, 8 Jul 2015 20:22:20 +0000 (20:22 +0000)]
MIR Parser: Use source locations for MBB naming errors.

This commit changes the type of the field 'Name' in the struct
'yaml::MachineBasicBlock' from 'std::string' to 'yaml::StringValue'. This change
allows the MIR parser to report errors related to the MBB name with the proper
source locations.

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

9 years agoearly exits -> less indenting; NFCI
Sanjay Patel [Wed, 8 Jul 2015 19:32:39 +0000 (19:32 +0000)]
early exits -> less indenting; NFCI

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

9 years ago[Hexagon] Implement commoning of GetElementPtr instructions
Krzysztof Parzyszek [Wed, 8 Jul 2015 19:22:28 +0000 (19:22 +0000)]
[Hexagon] Implement commoning of GetElementPtr instructions

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

9 years agoLibDriver: Fix output path inference.
Peter Collingbourne [Wed, 8 Jul 2015 19:00:46 +0000 (19:00 +0000)]
LibDriver: Fix output path inference.

The inferred output file name is based on the first input file, not the
first one with extension .obj. The output file was also being written to
the wrong directory; it needs to be written to whichever directory on the
libpath it was found in. This change fixes both issues.

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

9 years ago[LAA] Add missing debug output after r239285
Adam Nemet [Wed, 8 Jul 2015 18:47:38 +0000 (18:47 +0000)]
[LAA] Add missing debug output after r239285

r239285 ([LoopAccessAnalysis] Teach LAA to check the memory dependence
between strided accesses.) introduced a new case under
MemoryDepChecker::isDependent.  We normally have debug output for each
case.

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

9 years agoObject/COFF: Fix import library's getNameType method.
Rui Ueyama [Wed, 8 Jul 2015 18:21:09 +0000 (18:21 +0000)]
Object/COFF: Fix import library's getNameType method.

This expression to extract bits were simply wrong.
I'm going to test this functionality from LLD.

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

9 years ago[SEH] Add missing test case from previous realignment commit
Reid Kleckner [Wed, 8 Jul 2015 18:09:39 +0000 (18:09 +0000)]
[SEH] Add missing test case from previous realignment commit

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

9 years ago[SEH] Ensure that empty __except blocks have their own BB
Reid Kleckner [Wed, 8 Jul 2015 18:08:52 +0000 (18:08 +0000)]
[SEH] Ensure that empty __except blocks have their own BB

The 32-bit lowering assumed that WinEHPrepare had this invariant.
WinEHPrepare did it for C++, but not SEH. The result was that we would
insert calls to llvm.x86.seh.restoreframe in normal basic blocks, which
corrupted the frame pointer.

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

9 years agoExpand LangRef.html's documentation on LLVM's inline assembly.
James Y Knight [Wed, 8 Jul 2015 18:08:36 +0000 (18:08 +0000)]
Expand LangRef.html's documentation on LLVM's inline assembly.

While trying to figure out how this was all supposed to work, I
figured I'd start writing down some documentation, since it was
basically completely missing.

Differential Revision: http://reviews.llvm.org/D10816

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

9 years agoMC: Make MCSubtargetInfo::isCPUStringValid() const, NFC
Duncan P. N. Exon Smith [Wed, 8 Jul 2015 17:41:53 +0000 (17:41 +0000)]
MC: Make MCSubtargetInfo::isCPUStringValid() const, NFC

This method doesn't modify any members, so it should be const.

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

9 years agoMC: Constify MCSubtargetInfo in getDeprecationInfo(), NFC
Duncan P. N. Exon Smith [Wed, 8 Jul 2015 17:30:55 +0000 (17:30 +0000)]
MC: Constify MCSubtargetInfo in getDeprecationInfo(), NFC

There's no reason to be able to mutate `MCSubtargetInfo` in
`getDeprecationInfo()`.  Constify the reference.

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

9 years agoInline function into only use.
Rafael Espindola [Wed, 8 Jul 2015 17:26:24 +0000 (17:26 +0000)]
Inline function into only use.

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

9 years agoAdd a helper function to reduce a bit of code duplication.
Rafael Espindola [Wed, 8 Jul 2015 17:08:26 +0000 (17:08 +0000)]
Add a helper function to reduce a bit of code duplication.

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

9 years agoCosmetic cleanups - NFC
Eli Bendersky [Wed, 8 Jul 2015 16:33:21 +0000 (16:33 +0000)]
Cosmetic cleanups - NFC

Remove commented lines, trailing whitespace, etc.

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

9 years ago[SPARC] Cleanup handling of the Y/ASR registers.
James Y Knight [Wed, 8 Jul 2015 16:25:12 +0000 (16:25 +0000)]
[SPARC] Cleanup handling of the Y/ASR registers.

- Implement copying ASR to/from GPR regs.
- Mark ASRs as non-allocatable, so it won't try to arbitrarily use
  them inappropriately.
- Instead of inserting explicit WRASR/RDASR nodes in the MUL/DIV
  routines, just do normal register copies.
- Also...mark div as using Y, not just writing it.

Added a test case with some code which previously died with an
assertion failure (with -O0), or produced wrong code (otherwise).

(Third time's the charm?)

Differential Revision: http://reviews.llvm.org/D10401

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

9 years agoUse a range loop. NFC.
Rafael Espindola [Wed, 8 Jul 2015 16:16:15 +0000 (16:16 +0000)]
Use a range loop. NFC.

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

9 years ago[Hexagon] Generate "insert" instructions more aggressively
Krzysztof Parzyszek [Wed, 8 Jul 2015 14:47:34 +0000 (14:47 +0000)]
[Hexagon] Generate "insert" instructions more aggressively

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

9 years agoRevert 241681: causes Windows builds to fail
Krzysztof Parzyszek [Wed, 8 Jul 2015 14:34:13 +0000 (14:34 +0000)]
Revert 241681: causes Windows builds to fail

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

9 years ago[Hexagon] Generate "insert" instructions more aggressively
Krzysztof Parzyszek [Wed, 8 Jul 2015 14:22:27 +0000 (14:22 +0000)]
[Hexagon] Generate "insert" instructions more aggressively

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

9 years ago[yaml2obj] Align section content using AddressAlign field's value
Simon Atanasyan [Wed, 8 Jul 2015 10:12:40 +0000 (10:12 +0000)]
[yaml2obj] Align section content using AddressAlign field's value

Use AddressAlign field's value to properly align sections content in the
yaml2obj tool. Before this change the yaml2obj ignored AddressAlign and
always aligned section on 16 bytes boundary.

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

9 years ago[LAA] Merge memchecks for accesses separated by a constant offset
Silviu Baranga [Wed, 8 Jul 2015 09:16:33 +0000 (09:16 +0000)]
[LAA] Merge memchecks for accesses separated by a constant offset

Summary:
Often filter-like loops will do memory accesses that are
separated by constant offsets. In these cases it is
common that we will exceed the threshold for the
allowable number of checks.

However, it should be possible to merge such checks,
sice a check of any interval againt two other intervals separated
by a constant offset (a,b), (a+c, b+c) will be equivalent with
a check againt (a, b+c), as long as (a,b) and (a+c, b+c) overlap.
Assuming the loop will be executed for a sufficient number of
iterations, this will be true. If not true, checking against
(a, b+c) is still safe (although not equivalent).

As long as there are no dependencies between two accesses,
we can merge their checks into a single one. We use this
technique to construct groups of accesses, and then check
the intervals associated with the groups instead of
checking the accesses directly.

Reviewers: anemet

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10386

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

9 years ago[X86][SSE] Added (V)ROUNDSD + (V)ROUNDSS stack folding support
Simon Pilgrim [Wed, 8 Jul 2015 08:07:57 +0000 (08:07 +0000)]
[X86][SSE] Added (V)ROUNDSD + (V)ROUNDSS stack folding support

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

9 years ago[yaml2obj] Use regex to match sections offsets. NFC
Simon Atanasyan [Wed, 8 Jul 2015 06:57:24 +0000 (06:57 +0000)]
[yaml2obj] Use regex to match sections offsets. NFC

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

9 years agoAllow constfolding of llvm.sin.* and llvm.cos.* intrinsics
Karthik Bhat [Wed, 8 Jul 2015 03:55:47 +0000 (03:55 +0000)]
Allow constfolding of llvm.sin.* and llvm.cos.* intrinsics
This patch const folds llvm.sin.* and llvm.cos.* intrinsics whenever feasible.

Differential Revision: http://reviews.llvm.org/D10836

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

9 years agoRevert r241621, "[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto...
NAKAMURA Takumi [Wed, 8 Jul 2015 02:35:43 +0000 (02:35 +0000)]
Revert r241621, "[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that was already partially working."

It broke the build that relies on LLVM_EXTERNAL_CLANG_*.

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

9 years agollvm-objdump: Replace the -macho -raw option with a generic -raw-clang-ast
Adrian Prantl [Wed, 8 Jul 2015 02:04:15 +0000 (02:04 +0000)]
llvm-objdump: Replace the -macho -raw option with a generic -raw-clang-ast
option that works with all object container formats.
Now that clang modules/PCH are object containers this option is useful to
to construct pipes like

  llvm-objdump -raw-clang-ast foo.pcm | llvm-bcanalyzer -

to inspect the AST contents in a PCH container.
Will be tested via clang.

Belatedly addresses review feedback for r233390.

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

9 years agoRemove IsLittleEndian from TargetLowering and redirect to DataLayout
Mehdi Amini [Wed, 8 Jul 2015 01:00:38 +0000 (01:00 +0000)]
Remove IsLittleEndian from TargetLowering and redirect to DataLayout

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits, rafael, yaron.keren

Differential Revision: http://reviews.llvm.org/D11017

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoRedirect DataLayout from TargetMachine to Module in SjLjEHPrepare
Mehdi Amini [Wed, 8 Jul 2015 01:00:31 +0000 (01:00 +0000)]
Redirect DataLayout from TargetMachine to Module in SjLjEHPrepare

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: yaron.keren, rafael, llvm-commits

Differential Revision: http://reviews.llvm.org/D11009

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years ago[WinEH] Make llvm.x86.seh.restoreframe work for stack realignment prologues
Reid Kleckner [Tue, 7 Jul 2015 23:45:58 +0000 (23:45 +0000)]
[WinEH] Make llvm.x86.seh.restoreframe work for stack realignment prologues

The incoming EBP value points to the end of a local stack allocation, so
we can use that to restore ESI, the base pointer. Once we do that, we
can use local stack allocations. If we know we need stack realignment,
spill the original frame pointer in the prologue and reload it after
restoring ESI.

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

9 years agoRedirect DataLayout from TargetMachine to Module in StackProtector
Mehdi Amini [Tue, 7 Jul 2015 23:38:49 +0000 (23:38 +0000)]
Redirect DataLayout from TargetMachine to Module in StackProtector

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits, rafael, yaron.keren

Differential Revision: http://reviews.llvm.org/D11010

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoMIR Printer: Use a module slot tracker to print global address operands. NFC.
Alex Lorenz [Tue, 7 Jul 2015 23:27:53 +0000 (23:27 +0000)]
MIR Printer: Use a module slot tracker to print global address operands. NFC.

This commit adopts the 'ModuleSlotTracker' class, which was surfaced in r240842,
to print the global address operands. This change ensures that the slot tracker
won't have to be recreated every time a global address operand is printed,
making the MIR printing more efficient.

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

9 years ago[WinEH] Add localaddress intrinsic instead of using frameaddress
Reid Kleckner [Tue, 7 Jul 2015 23:23:03 +0000 (23:23 +0000)]
[WinEH] Add localaddress intrinsic instead of using frameaddress

Clang uses this for SEH finally. The new intrinsic will produce the
right value when stack realignment is required.

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

9 years agoAdd more nvcasts
Arnold Schwaighofer [Tue, 7 Jul 2015 23:13:18 +0000 (23:13 +0000)]
Add more nvcasts

Tim Northover has told me that they can occur when the compiler cleverly
constructs constants - as demonstrated in the test case.

rdar://21703486

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

9 years ago[WebAssembly] Set the scheduling preference.
Dan Gohman [Tue, 7 Jul 2015 22:38:06 +0000 (22:38 +0000)]
[WebAssembly] Set the scheduling preference.

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

9 years agoRename llvm.frameescape and llvm.framerecover to localescape and localrecover
Reid Kleckner [Tue, 7 Jul 2015 22:25:32 +0000 (22:25 +0000)]
Rename llvm.frameescape and llvm.framerecover to localescape and localrecover

Summary:
Initially, these intrinsics seemed like part of a family of "frame"
related intrinsics, but now I think that's more confusing than helpful.
Initially, the LangRef specified that this would create a new kind of
allocation that would be allocated at a fixed offset from the frame
pointer (EBP/RBP). We ended up dropping that design, and leaving the
stack frame layout alone.

These intrinsics are really about sharing local stack allocations, not
frame pointers. I intend to go further and add an `llvm.localaddress()`
intrinsic that returns whatever register (EBP, ESI, ESP, RBX) is being
used to address locals, which should not be confused with the frame
pointer.

Naming suggestions at this point are welcome, I'm happy to re-run sed.

Reviewers: majnemer, nicholas

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11011

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

9 years ago[llvm-objdump] Print the call target next to the instruction
David Majnemer [Tue, 7 Jul 2015 22:06:59 +0000 (22:06 +0000)]
[llvm-objdump] Print the call target next to the instruction

GNU binutils provides this behavior.  objdump -r doesn't really help
when you aren't dealing with relocation object files.

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

9 years agofix typo; NFC
Sanjay Patel [Tue, 7 Jul 2015 21:31:54 +0000 (21:31 +0000)]
fix typo; NFC

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

9 years agoFix comment typo. NFC
Jonathan Roelofs [Tue, 7 Jul 2015 20:57:47 +0000 (20:57 +0000)]
Fix comment typo. NFC

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

9 years agoMIR Serialization: Serialize the 'dead' register machine operand flag.
Alex Lorenz [Tue, 7 Jul 2015 20:34:53 +0000 (20:34 +0000)]
MIR Serialization: Serialize the 'dead' register machine operand flag.

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

9 years agoMinor updates to gitignore so that symlinks are ignored in the projects dir.
Chris Bieneman [Tue, 7 Jul 2015 20:24:58 +0000 (20:24 +0000)]
Minor updates to gitignore so that symlinks are ignored in the projects dir.

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

9 years ago[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that...
Chris Bieneman [Tue, 7 Jul 2015 20:24:55 +0000 (20:24 +0000)]
[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that was already partially working.

Summary:
The tools CMakeLists file already had implicit tool registration, but there were a few things off about it that needed to be altered to make it work. This change addresses all that. The changes in this patch are:

* factored out canonicalizing tool names from paths to CMake variables
* removed the LLVM_IMPLICIT_PROJECT_IGNORE mechanism in favor of LLVM_EXTERNAL_${nameUPPER}_BUILD which I renamed to LLVM_TOOL_${nameUPPER}_BUILD because it applies to internal and external tools
* removed ignore_llvm_tool_subdirectory() in favor of just setting LLVM_TOOL_${nameUPPER}_BUILD to Off
* Added create_llvm_tool_options() to resolve a bug in add_llvm_external_project() - the old LLVM_EXTERNAL_${nameUPPER}_BUILD would not work on a clean CMake directory because the option could be created after it was set in code.
* Removed all but the minimum required calls to add_llvm_external_project from tools/CMakeLists.txt

Reviewers: bogner, samsonov, chapuni, beanz

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10665

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

9 years agoAdd CHECK lines to test case
Arnold Schwaighofer [Tue, 7 Jul 2015 19:26:31 +0000 (19:26 +0000)]
Add CHECK lines to test case

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

9 years agoRedirect DataLayout from TargetMachine to Module in SelectionDAG
Mehdi Amini [Tue, 7 Jul 2015 19:07:19 +0000 (19:07 +0000)]
Redirect DataLayout from TargetMachine to Module in SelectionDAG

Summary:
SelectionDAG itself is not invoking directly the DataLayout in the
TargetMachine, but the "TargetLowering" class is still using it. I'll
address it in a following commit.

This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11000

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoDon't pass a null pointer to memcpy.
Rafael Espindola [Tue, 7 Jul 2015 19:00:02 +0000 (19:00 +0000)]
Don't pass a null pointer to memcpy.

Fixes pr23650.

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

9 years agoRevert "Revert r241570, it caused PR24053"
David Majnemer [Tue, 7 Jul 2015 18:49:41 +0000 (18:49 +0000)]
Revert "Revert r241570, it caused PR24053"

This reverts commit r241602.  We had a latent bug in SCCP where we would
make a basic block empty and then proceed to ask questions about it's
terminator.

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

9 years agoRedirect DataLayout from TargetMachine to Module in GlobalMerge
Mehdi Amini [Tue, 7 Jul 2015 18:49:25 +0000 (18:49 +0000)]
Redirect DataLayout from TargetMachine to Module in GlobalMerge

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10987

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoRedirect DataLayout from TargetMachine to Module in CodeGen Prepare
Mehdi Amini [Tue, 7 Jul 2015 18:45:17 +0000 (18:45 +0000)]
Redirect DataLayout from TargetMachine to Module in CodeGen Prepare

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10986

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoRedirect DataLayout from TargetMachine to Module in FastISel
Mehdi Amini [Tue, 7 Jul 2015 18:39:02 +0000 (18:39 +0000)]
Redirect DataLayout from TargetMachine to Module in FastISel

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10985

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoAdd a pattern for a nvcast from v2f64 -> v4f32
Arnold Schwaighofer [Tue, 7 Jul 2015 18:31:55 +0000 (18:31 +0000)]
Add a pattern for a nvcast from v2f64 -> v4f32

Since the NvCast is generated by the selection process the concerns about
endianess and bit reversal don't apply.

rdar://21703486

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

9 years agoRedirect DataLayout from TargetMachine to Module in MachineFunction
Mehdi Amini [Tue, 7 Jul 2015 18:20:57 +0000 (18:20 +0000)]
Redirect DataLayout from TargetMachine to Module in MachineFunction

Summary:
This change is part of a series of commits dedicated to have a
single DataLayout during compilation by using always the one owned by the
module.

Reviewers: echristo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10984

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoUse default member initializers to deduplicate code in X86MachineFunctionInfo, NFC
Reid Kleckner [Tue, 7 Jul 2015 18:12:06 +0000 (18:12 +0000)]
Use default member initializers to deduplicate code in X86MachineFunctionInfo, NFC

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

9 years agoFix the -DBUILD_SHARED_LIBS=ON build.
Rafael Espindola [Tue, 7 Jul 2015 17:48:00 +0000 (17:48 +0000)]
Fix the -DBUILD_SHARED_LIBS=ON build.

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

9 years agoMIR Parser: wrap 'MBBSlots' from the MI parsing functions in a struct. NFC.
Alex Lorenz [Tue, 7 Jul 2015 17:46:43 +0000 (17:46 +0000)]
MIR Parser: wrap 'MBBSlots' from the MI parsing functions in a struct. NFC.

This commit modifies the interface for the machine instruction parsing
functions by wrapping the parameter 'MBBSlots' in a new structure called
'PerFunctionMIParsingState'. This change is useful as in the future I will be
able to pass new parameters to the machine instruction parser just by modifying
the 'PerFunctionMIParsingState' structure instead of adding a new parameter to
each function.

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

9 years agoDelete UnknownAddress. It is a perfectly valid symbol value.
Rafael Espindola [Tue, 7 Jul 2015 17:12:59 +0000 (17:12 +0000)]
Delete UnknownAddress. It is a perfectly valid symbol value.

getSymbolValue now returns a value that in convenient for most callers:
* 0 for undefined
* symbol size for common symbols
* offset/address for symbols the rest

Code that needs something more specific can check getSymbolFlags.

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

9 years agoSimplify by passing in the section of the symbol. NFC.
Rafael Espindola [Tue, 7 Jul 2015 16:45:55 +0000 (16:45 +0000)]
Simplify by passing in the section of the symbol. NFC.

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

9 years agoRevert r241570, it caused PR24053
Nico Weber [Tue, 7 Jul 2015 16:42:50 +0000 (16:42 +0000)]
Revert r241570, it caused PR24053

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

9 years ago[Hexagon] Fix unused variable warnings in NDEBUG build caused by r241595
Krzysztof Parzyszek [Tue, 7 Jul 2015 16:02:11 +0000 (16:02 +0000)]
[Hexagon] Fix unused variable warnings in NDEBUG build caused by r241595

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

9 years agoFix bug in test-release.sh where the script would not exit if any
Dan Liew [Tue, 7 Jul 2015 15:50:33 +0000 (15:50 +0000)]
Fix bug in test-release.sh where the script would not exit if any
of the build stages that are sent through a pipe (e.g. tee) failed.

This potentially allowed builds and/or tests to fail without anyone
noticing. It appears that for the LLVM 3.6.[01] releases this actually
happened for the Ubuntu 14.04LTS binary releases. The essence of the
issue is that without ``set -o pipefail`` the following command in bash
has a zero exit code.

false | tee /dev/null ; exit $?

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

9 years ago[WinEH] Add a report_fatal_error for 32-bit stack realignment
Reid Kleckner [Tue, 7 Jul 2015 15:47:29 +0000 (15:47 +0000)]
[WinEH] Add a report_fatal_error for 32-bit stack realignment

This type of prologue isn't supported yet. Implementing it should be a
matter of copying the adjusted incoming EBP into ESI (the base pointer)
instead of EBP.  The original EBP can be saved and restored from other
memory afterwards.

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

9 years ago[Hexagon] Implement bit-tracking facility with specifics for Hexagon
Krzysztof Parzyszek [Tue, 7 Jul 2015 15:16:42 +0000 (15:16 +0000)]
[Hexagon] Implement bit-tracking facility with specifics for Hexagon

This includes code that is intended to be target-independent as well
as the Hexagon-specific details. This is just the framework without
any users.

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

9 years agoCommon symbols don't have a value.
Rafael Espindola [Tue, 7 Jul 2015 15:05:09 +0000 (15:05 +0000)]
Common symbols don't have a value.

At least not in the interface exposed by ObjectFile. This matches what ELF and
COFF implement.

Adjust existing code that was expecting them to have values. No overall
functionality change intended.

Another option would be to change the interface and the ELF and COFF
implementations to say that the value of a common symbol is its size.

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

9 years agouse range-based for loops; NFCI
Sanjay Patel [Tue, 7 Jul 2015 15:03:53 +0000 (15:03 +0000)]
use range-based for loops; NFCI

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

9 years agoFix test case to unbreak build.
Akira Hatanaka [Tue, 7 Jul 2015 14:45:12 +0000 (14:45 +0000)]
Fix test case to unbreak build.

This commit changes the target arch to fix the test case commited in r241566
that was failing on ninja-x64-msvc-RA-centos6. Also add checks to make sure
the callee's address is loaded to blx's operand.

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

9 years agoCommon symbols are not undefined, at least for ObjectFile.
Rafael Espindola [Tue, 7 Jul 2015 14:26:39 +0000 (14:26 +0000)]
Common symbols are not undefined, at least for ObjectFile.

They are implemented like that in some object formats, but for the interface
provided by lib/Object, SF_Undefined and SF_Common are different things.

This matches the ELF and COFF implementation and fixes llvm-nm for MachO.

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

9 years agoSimplify, NFC.
Rafael Espindola [Tue, 7 Jul 2015 13:58:32 +0000 (13:58 +0000)]
Simplify, NFC.

In these two contexts we really just want the raw n_value. No need to use
getSymbolValue which checks for special cases where, semantically, the symbol
has no value.

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

9 years ago[IR] Make getFirstNonPHI return null if the BB is empty
David Majnemer [Tue, 7 Jul 2015 09:15:29 +0000 (09:15 +0000)]
[IR] Make getFirstNonPHI return null if the BB is empty

getFirstNonPHI's documentation states that it returns null if there is
no non-PHI instruction.  However, it instead returns a pointer to the
end iterator.  The implementation of getFirstNonPHI claims that
dereferencing the iterator will result in an assertion failure but this
doesn't occur.  Instead, machinery like getFirstInsertionPt will attempt
to isa<> this invalid memory which results in unpredictable behavior.
Instead, make getFirst* return null if no such instruction exists.

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

9 years agoFix gcc warnings of different enum and non-enum types in ternaries
Denis Protivensky [Tue, 7 Jul 2015 07:48:48 +0000 (07:48 +0000)]
Fix gcc warnings of different enum and non-enum types in ternaries

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

9 years ago[ARM] Define a subtarget feature and use it to decide whether long calls should
Akira Hatanaka [Tue, 7 Jul 2015 06:54:42 +0000 (06:54 +0000)]
[ARM] Define a subtarget feature and use it to decide whether long calls should
be emitted.

This is needed to enable ARM long calls for LTO and enable and disable it on a
per-function basis.

Out-of-tree projects currently using EnableARMLongCalls to emit long calls
should start passing "+long-calls" to the feature string (see the changes made
to clang in r241565).

rdar://problem/21529937

Differential Revision: http://reviews.llvm.org/D9364

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

9 years agoFix \param in r241472. [-Wdocumentation]
NAKAMURA Takumi [Tue, 7 Jul 2015 04:09:55 +0000 (04:09 +0000)]
Fix \param in r241472. [-Wdocumentation]

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

9 years agoMIR Parser: Verify the implicit machine register operands.
Alex Lorenz [Tue, 7 Jul 2015 02:08:46 +0000 (02:08 +0000)]
MIR Parser: Verify the implicit machine register operands.

This commit verifies that the parsed machine instructions contain the implicit
register operands as specified by the MCInstrDesc. Variadic and call
instructions aren't verified.

Reviewers: Duncan P. N. Exon Smith

Differential Revision: http://reviews.llvm.org/D10781

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

9 years ago[StackMap Liveness] Calling the base class' getAnalysisUsage method. NFCI.
Juergen Ributzka [Tue, 7 Jul 2015 02:05:18 +0000 (02:05 +0000)]
[StackMap Liveness] Calling the base class' getAnalysisUsage method. NFCI.

Calling into the base class' getAnalysisUsage method after we did our pass
specific modifications. This shouldn't really matter since this is the last
pass in the pipeline anyways.

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

9 years ago[StackMap Liveness] No need to cache the MachineFunction. NFC.
Juergen Ributzka [Tue, 7 Jul 2015 02:05:15 +0000 (02:05 +0000)]
[StackMap Liveness] No need to cache the MachineFunction. NFC.

Don't cache the MachineFunction in the pass and range'ify some loops.

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

9 years ago[Triple] Add a helper to switch between big/little endian variants
Benjamin Kramer [Mon, 6 Jul 2015 23:58:14 +0000 (23:58 +0000)]
[Triple] Add a helper to switch between big/little endian variants

This will be used from clang's driver.

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

9 years agoMake UnitTestMain/TestMain.cpp free from llvm/Config/config.h.
NAKAMURA Takumi [Mon, 6 Jul 2015 23:51:40 +0000 (23:51 +0000)]
Make UnitTestMain/TestMain.cpp free from llvm/Config/config.h.

llvm/Config/config.h is unavailable outside of build tree.

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

9 years ago[FaultMaps] Add statistic to count the # of implicit null checks.
Sanjoy Das [Mon, 6 Jul 2015 23:32:10 +0000 (23:32 +0000)]
[FaultMaps] Add statistic to count the # of implicit null checks.

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