platform/upstream/llvm.git
5 years agogn build: Use "git rev-parse --git-dir" to discover the path to the .git directory.
Peter Collingbourne [Thu, 10 Jan 2019 21:57:07 +0000 (21:57 +0000)]
gn build: Use "git rev-parse --git-dir" to discover the path to the .git directory.

This makes it compatible with worktrees.

Differential Revision: https://reviews.llvm.org/D56422

llvm-svn: 350897

5 years ago[MachineCombiner][NFC] Prevent dereferencing past-the-end object in an MRI container
Gerolf Hoflehner [Thu, 10 Jan 2019 21:53:13 +0000 (21:53 +0000)]
[MachineCombiner][NFC] Prevent dereferencing past-the-end object in an MRI container

llvm-svn: 350896

5 years ago[MemorySSA] Disable checkClobberSanity for SkipSelfWalker.
Alina Sbirlea [Thu, 10 Jan 2019 21:47:15 +0000 (21:47 +0000)]
[MemorySSA] Disable checkClobberSanity for SkipSelfWalker.

Sanity will fail for this, since we're exploring getting a clobber
further than the sanity check expects.
Ideally we need to teach the sanity check to differentiate between the
two walkers based on the SkipSelf bool in the query.

llvm-svn: 350895

5 years agogn build: Merge r350893
Nico Weber [Thu, 10 Jan 2019 21:47:10 +0000 (21:47 +0000)]
gn build: Merge r350893

llvm-svn: 350894

5 years ago[llvm-objcopy] [COFF] Add support for removing symbols
Martin Storsjo [Thu, 10 Jan 2019 21:28:24 +0000 (21:28 +0000)]
[llvm-objcopy] [COFF] Add support for removing symbols

Differential Revision: https://reviews.llvm.org/D55881

llvm-svn: 350893

5 years agoUpdate clang-tools-extra for r350891 from Clang.
Aaron Ballman [Thu, 10 Jan 2019 21:22:28 +0000 (21:22 +0000)]
Update clang-tools-extra for r350891 from Clang.

llvm-svn: 350892

5 years agoCorrect the source range returned from preprocessor callbacks.
Aaron Ballman [Thu, 10 Jan 2019 21:22:13 +0000 (21:22 +0000)]
Correct the source range returned from preprocessor callbacks.

This adjusts the source range passed in to the preprocessor callbacks to only include the condition range itself, rather than all of the conditionally skipped tokens.

llvm-svn: 350891

5 years agoNFC: Change case of identifiers
Stephen Kelly [Thu, 10 Jan 2019 20:58:21 +0000 (20:58 +0000)]
NFC: Change case of identifiers

llvm-svn: 350890

5 years agoChange SymbolFile::ParseTypes to ParseTypesForCompileUnit.
Zachary Turner [Thu, 10 Jan 2019 20:57:50 +0000 (20:57 +0000)]
Change SymbolFile::ParseTypes to ParseTypesForCompileUnit.

The function SymbolFile::ParseTypes previously accepted a SymbolContext.
This makes it extremely difficult to implement faithfully, because you
have to account for all possible combinations of members being set in
the SymbolContext. On the other hand, no clients of this function
actually care about implementing this function to this strict of a
standard. AFAICT, there is actually only 1 client in the entire
codebase, and it is the function ParseAllDebugSymbols, which is itself
only called for testing purposes when dumping information. At this
call-site, the only field it sets is the CompileUnit, meaning that an
implementer of a SymbolFile need not worry about any examining or
handling any other fields which might be set.

By restricting this API to accept exactly a CompileUnit& and nothing
more, we can simplify the life of new SymbolFile plugin implementers by
making it clear exactly what the necessary and sufficient set of
functionality they need to implement is, while at the same time removing
some dead code that tried to handle other types of SymbolContext fields
that were never going to be set anyway.

Differential Revision: https://reviews.llvm.org/D56462

llvm-svn: 350889

5 years ago[NativePDB] Add support for parsing typedef records.
Zachary Turner [Thu, 10 Jan 2019 20:57:32 +0000 (20:57 +0000)]
[NativePDB] Add support for parsing typedef records.

Typedefs are represented as S_UDT records in the globals stream. This
creates a strange situation where "types" are actually represented as
"symbols", so they need special handling.

In order to test this, we don't just use lldb and print out some
variables causing the AST to get created, because variables whose type
is a typedef will have debug info referencing the original type, not the
typedef. So we use lldb-test instead which will parse all debug info in
the entire file. This exposed some problems with lldb-test and the
native reader, mainly that certain types of obscure symbols which we can
find when iterating every single record would trigger crashes. These
have been fixed as well so that lldb-test can be used to test this
functionality.

Differential Revision: https://reviews.llvm.org/D56461

llvm-svn: 350888

5 years ago[Sema] Call CheckPlaceholderExpr to resolve typeof or decltype
Akira Hatanaka [Thu, 10 Jan 2019 20:12:16 +0000 (20:12 +0000)]
[Sema] Call CheckPlaceholderExpr to resolve typeof or decltype
placeholder expressions while an unevaluated context is still on the
expression evaluation context stack.

This prevents recordUseOfWeek from being called when a weak variable is
used as an operand of a decltype or a typeof expression and fixes
spurious -Warc-repeated-use-of-weak warnings.

rdar://problem/45742525

Differential Revision: https://reviews.llvm.org/D55662

llvm-svn: 350887

5 years agoAvoid use-after-free in ~LegacyRTDyldObjectLinkingLayer
Sanjoy Das [Thu, 10 Jan 2019 20:12:09 +0000 (20:12 +0000)]
Avoid use-after-free in ~LegacyRTDyldObjectLinkingLayer

Reviewers: lhames

Subscribers: mcrosier, jlebar, bixia, llvm-commits

Differential Revision: https://reviews.llvm.org/D56521

llvm-svn: 350886

5 years ago[HIP] Use nul instead of /dev/null when running on windows
Yaxun Liu [Thu, 10 Jan 2019 20:09:52 +0000 (20:09 +0000)]
[HIP] Use nul instead of /dev/null when running on windows

When clang is running on windows, /dev/null is not available. Use nul as empty input file instead.

Differential Revision: https://reviews.llvm.org/D56225

llvm-svn: 350885

5 years ago[libcxx] Reorganize tests since the application of P0602R4
Louis Dionne [Thu, 10 Jan 2019 20:06:11 +0000 (20:06 +0000)]
[libcxx] Reorganize tests since the application of P0602R4

Summary:
P0602R4 makes the special member functions of optional and variant
conditionally trivial based on the types in the optional/variant.
We already implemented that, but the tests were organized as if this
were a non-standard extension. This patch reorganizes the tests in a
way that makes more sense since this is not an extension anymore.

Reviewers: EricWF, mpark, mclow.lists

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D54772

llvm-svn: 350884

5 years ago[TSan] Remove ignore_interceptors_accesses flag
Julian Lettner [Thu, 10 Jan 2019 20:04:33 +0000 (20:04 +0000)]
[TSan] Remove ignore_interceptors_accesses flag

Summary:
It has been superseded by the `ignore_noninstrumented_modules` flag and is no longer needed.

Also simplify a test that checks that `mmap_interceptor` respects ignore annotations (`thr->ignore_reads_and_writes `).
Relevant: https://reviews.llvm.org/rL269855

<rdar://problem/46263073> Remove obsolete Apple-specific suppression option

Reviewers: dcoughlin, kubamracek, dvyukov, delcypher

Reviewed By: dvyukov

Subscribers: jfb, llvm-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D55075

llvm-svn: 350883

5 years ago[sanitizer_common] Define __sanitizer_FILE on NetBSD
Michal Gorny [Thu, 10 Jan 2019 19:56:57 +0000 (19:56 +0000)]
[sanitizer_common] Define __sanitizer_FILE on NetBSD

Differential Revision: https://reviews.llvm.org/D56109

llvm-svn: 350882

5 years ago[sanitizer_common] Remove support for tirpc/rpc/xdr.h
Michal Gorny [Thu, 10 Jan 2019 19:56:50 +0000 (19:56 +0000)]
[sanitizer_common] Remove support for tirpc/rpc/xdr.h

Remove the partial support for rpc/xdr.h from libtirpc.  Since it is
an entirely external library, we ought to build it sanitized separately
and not attempt to intercept like the libc implementation.  Besides,
the existing code for tirpc support was neither complete nor working.

Noted by @krytarowski.

Differential Revision: https://reviews.llvm.org/D47817

llvm-svn: 350881

5 years ago[GVN] Update BlockRPONumber prior to use.
Matt Davis [Thu, 10 Jan 2019 19:56:03 +0000 (19:56 +0000)]
[GVN] Update BlockRPONumber prior to use.

Summary:
The original patch addressed the use of BlockRPONumber by forcing a sequence point when accessing that map in a conditional.  In short we found cases where that map was being accessed with blocks that had not yet been added to that structure.  For context, I've kept the wall of text below,  to what we are trying to fix, by always ensuring a updated BlockRPONumber.

== Backstory ==

I was investigating an ICE (segfault accessing a DenseMap item).  This failure happened non-deterministically, with no apparent reason and only on a Windows build of LLVM (from October 2018).

After looking into the crashes (multiple core files) and running DynamoRio, the cores and DynamoRio (DR) log pointed to the same code in `GVN::performScalarPRE()`. The values in the map are unsigned integers, the keys are `llvm::BasicBlock*`.  Our test case that triggered this warning and periodic crash is rather involved.  But the problematic line looks to be:

GVN.cpp: Line 2197

```
     if (BlockRPONumber[P] >= BlockRPONumber[CurrentBlock] &&
```

To test things out, I cooked up a patch that accessed the items in the map outside of the condition, by forcing a sequence point between accesses. DynamoRio stopped warning of the issue, and the test didn't seem to crash after 1000+ runs.

My investigation was on an older version of LLVM, (source from October this year). What it looks like was occurring is the following, and the assembly from the latest pull of llvm in December seems to confirm this might still be an issue; however, I have not witnessed the crash on more recent builds. Of course the asm in question is generated from the host compiler on that Windows box (not clang), but it hints that we might want to consider how we access the BlockRPONumber map in this conditional (line 2197, listed above).  In any case, I don't think the host compiler is wrong, rather I think it is pointing out a possibly latent bug in llvm.

1) There is no sequence point for the `>=` operation.

2) A call to a `DenseMapBase::operator[]` can have the side effect of the map reallocating a larger store (more Buckets, via a call to `DenseMap::grow`).

3) It seems perfectly legal for a host compiler to generate assembly that stores the result of a call to `operator[]` on the stack (that's what my host compile of GVN.cpp is doing) .  A second call to `operator[]` //might// encourage the map to 'grow' thus making any pointers to the map's store invalid.  The `>=` compares the first and second values. If the first happens to be a pointer produced from operator[], it could be invalid when dereferenced at the time of comparison.

The assembly generated from the Window's host compiler does show the result of the first access to the map via `operator[]` produces a pointer to an unsigned int.  And that pointer is being stored on  the stack.  If a second call to the map (which does occur) causes the map to grow, that address (on the stack) is now invalid.

Reviewers: t.p.northover, efriedma

Reviewed By: efriedma

Subscribers: efriedma, llvm-commits

Differential Revision: https://reviews.llvm.org/D55974

llvm-svn: 350880

5 years agoUse MemorySSA in LICM to do sinking and hoisting.
Alina Sbirlea [Thu, 10 Jan 2019 19:29:04 +0000 (19:29 +0000)]
Use MemorySSA in LICM to do sinking and hoisting.

Summary:
Step 2 in using MemorySSA in LICM:
Use MemorySSA in LICM to do sinking and hoisting, all under "EnableMSSALoopDependency" flag.
Promotion is disabled.

Enable flag in LICM sink/hoist tests to test correctness of this change. Moved one test which
relied on promotion, in order to test all sinking tests.

Reviewers: sanjoy, davide, gberry, george.burgess.iv

Subscribers: llvm-commits, Prazek

Differential Revision: https://reviews.llvm.org/D40375

llvm-svn: 350879

5 years agofixup: sphinx warning
Nick Desaulniers [Thu, 10 Jan 2019 19:26:35 +0000 (19:26 +0000)]
fixup: sphinx warning

Fixes the sphinx warning:
tools/clang/docs/DiagnosticsReference.rst:7889: WARNING: Title underline
too short.

That I just introduced in r350877.

llvm-svn: 350878

5 years ago[SemaCXX] add -Woverride-init alias to -Winitializer-overrides
Nick Desaulniers [Thu, 10 Jan 2019 19:12:39 +0000 (19:12 +0000)]
[SemaCXX] add -Woverride-init alias to -Winitializer-overrides

Summary:
https://bugs.llvm.org/show_bug.cgi?id=40251
https://github.com/ClangBuiltLinux/linux/issues/307

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits, nathanchance, srhines

Differential Revision: https://reviews.llvm.org/D56522

llvm-svn: 350877

5 years agolldbtest.py: try to fix a runtime exception
Adrian Prantl [Thu, 10 Jan 2019 19:06:46 +0000 (19:06 +0000)]
lldbtest.py: try to fix a runtime exception
found on http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-matrix/32/consoleFull#15046896708254eaf0-7326-4999-85b0-388101f2d404

llvm-svn: 350876

5 years ago[X86] Call SimplifyDemandedBits on conditions of X86ISD::SHRUNKBLEND
Craig Topper [Thu, 10 Jan 2019 19:05:34 +0000 (19:05 +0000)]
[X86] Call SimplifyDemandedBits on conditions of X86ISD::SHRUNKBLEND

This extends to combineVSelectToShrunkBlend to be able to resimplify SHRUNKBLENDS that have already been created.

This should help some of the regressions from D56387

Differential Revision: https://reviews.llvm.org/D56421

llvm-svn: 350875

5 years agoFix false positive unsequenced access and modification warning in array subscript...
Nicolas Lesser [Thu, 10 Jan 2019 19:03:33 +0000 (19:03 +0000)]
Fix false positive unsequenced access and modification warning in array subscript expression.

Summary: In the [expr.sub] p1, we can read that for a given E1[E2], E1 is sequenced before E2.

Patch by Mateusz Janek.

Reviewers: rsmith, Rakete1111

Reviewed By: rsmith, Rakete1111

Subscribers: riccibruno, lebedev.ri, Rakete1111, hiraditya, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D50766

llvm-svn: 350874

5 years ago[X86] Simplify the BRCOND handling for FCMP_UNE.
Craig Topper [Thu, 10 Jan 2019 19:02:14 +0000 (19:02 +0000)]
[X86] Simplify the BRCOND handling for FCMP_UNE.

Despite what the comment says, FCMP_UNE would be an OR not an AND. In the lowering code the first branch created still goes to the original destination. The second branch was exchanged to go to where the subsequent unconditional branch went. This is different than what we do for FCMP_OEQ where both branches that we create go to the original unconditional branch.

As far as I can tell, I think this means we don't need to exchange the branch target with the unconditional branch for FCMP_UNE at all.

Differential Revision: https://reviews.llvm.org/D56309

llvm-svn: 350873

5 years agoFilesystem tests: fix fs.op.relative
JF Bastien [Thu, 10 Jan 2019 18:50:34 +0000 (18:50 +0000)]
Filesystem tests: fix fs.op.relative

Summary: The test wasn't using the testing infrastructure properly.

Reviewers: ldionne, mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D56519

llvm-svn: 350872

5 years ago[llvm-objdump][MachO] Fix test to work on Windows
Francis Visoiu Mistrih [Thu, 10 Jan 2019 18:32:30 +0000 (18:32 +0000)]
[llvm-objdump][MachO] Fix test to work on Windows

This fails in http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/3208/steps/stage%201%20check/logs/stdio.

llvm-svn: 350871

5 years ago[analyzer] [hotfix] Fix the tests
George Karpenkov [Thu, 10 Jan 2019 18:28:10 +0000 (18:28 +0000)]
[analyzer] [hotfix] Fix the tests

The error must have crept during the cherry-pick.

llvm-svn: 350870

5 years ago[analyzer] Update the category name for RetainCountChecker reports
George Karpenkov [Thu, 10 Jan 2019 18:16:25 +0000 (18:16 +0000)]
[analyzer] Update the category name for RetainCountChecker reports

..now that it includes OSObjects

rdar://46509986

Differential Revision: https://reviews.llvm.org/D56404

llvm-svn: 350869

5 years ago[analyzer] [NFC] [RetainCountChecker] Remove dead unused map
George Karpenkov [Thu, 10 Jan 2019 18:16:10 +0000 (18:16 +0000)]
[analyzer] [NFC] [RetainCountChecker] Remove dead unused map

Differential Revision: https://reviews.llvm.org/D56402

llvm-svn: 350868

5 years ago[analyzer] Quote the type of the leaked/problematic object in diagnostics for readability
George Karpenkov [Thu, 10 Jan 2019 18:15:57 +0000 (18:15 +0000)]
[analyzer] Quote the type of the leaked/problematic object in diagnostics for readability

Differential Revision: https://reviews.llvm.org/D56344

llvm-svn: 350867

5 years ago[analyzer] [NFC] Reverse the argument order for "diff" in tests
George Karpenkov [Thu, 10 Jan 2019 18:15:44 +0000 (18:15 +0000)]
[analyzer] [NFC] Reverse the argument order for "diff" in tests

The current argument order has "expected" and "actual" the wrong way around,
so that the diff shows the change from expected to actual, not from actual to expected.

Namely, if the expected diagnostics contains the string "foo", but the analyzer emits "bar",
we really want to see:

```
- foo
+ bar
```

not

```
- bar
+ foo
```

since adapting to most changes would require applying that diff to the expected output.

Differential Revision: https://reviews.llvm.org/D56340

llvm-svn: 350866

5 years ago[analyzer] [NFC] Reduce redundancy in RetainSummaryManager by using a function
George Karpenkov [Thu, 10 Jan 2019 18:15:30 +0000 (18:15 +0000)]
[analyzer] [NFC] Reduce redundancy in RetainSummaryManager by using a function

Differential Revision: https://reviews.llvm.org/D56282

llvm-svn: 350865

5 years ago[analyzer] [RetainCountChecker] [NFC] Remove SummaryLog
George Karpenkov [Thu, 10 Jan 2019 18:15:17 +0000 (18:15 +0000)]
[analyzer] [RetainCountChecker] [NFC] Remove SummaryLog

The complicated machinery for passing the summary log around is actually
only used for one thing! To figure out whether the "dealloc" message was
sent.

Since I have tried to extend it for other uses and failed (it's actually
very hard to use), I think it's much better to simply use a tag and
remove the summary log altogether.

Differential Revision: https://reviews.llvm.org/D56228

llvm-svn: 350864

5 years ago[analyzer] [RetainCountChecker] [NFC] Another minor cleanup
George Karpenkov [Thu, 10 Jan 2019 18:15:04 +0000 (18:15 +0000)]
[analyzer] [RetainCountChecker] [NFC] Another minor cleanup

Differential Revision: https://reviews.llvm.org/D56224

llvm-svn: 350863

5 years ago[analyzer] [RetainCountChecker] [NFC] Refactor the way attributes are handled
George Karpenkov [Thu, 10 Jan 2019 18:14:51 +0000 (18:14 +0000)]
[analyzer] [RetainCountChecker] [NFC] Refactor the way attributes are handled

Make sure all checks for attributes go through a centralized function,
which checks whether attribute handling is enabled, and performs
validation.  The type of the attribute is returned.

Sadly, metaprogramming is required as attributes have no sensible static
getters.

Differential Revision: https://reviews.llvm.org/D56222

llvm-svn: 350862

5 years ago[analyzer] [RetainCountChecker] Remove redundant enum UnarySummaryKind
George Karpenkov [Thu, 10 Jan 2019 18:14:38 +0000 (18:14 +0000)]
[analyzer] [RetainCountChecker] Remove redundant enum UnarySummaryKind

Differential Revision: https://reviews.llvm.org/D56072

llvm-svn: 350861

5 years ago[analyzer] [RetainCountChecker] Remove obsolete "MakeCollectable" enum value
George Karpenkov [Thu, 10 Jan 2019 18:14:25 +0000 (18:14 +0000)]
[analyzer] [RetainCountChecker] Remove obsolete "MakeCollectable" enum value

Differential Revision: https://reviews.llvm.org/D56071

llvm-svn: 350860

5 years ago[analyzer] [RetainCountChecker] [NFC] Remove redundant enum items *Msg, as the object...
George Karpenkov [Thu, 10 Jan 2019 18:14:12 +0000 (18:14 +0000)]
[analyzer] [RetainCountChecker] [NFC] Remove redundant enum items *Msg, as the object type is already communicated by a separate field

Differential Revision: https://reviews.llvm.org/D56070

llvm-svn: 350859

5 years ago[analyzer] [NFC] Track object type with ArgEffect in RetainCountChecker.
George Karpenkov [Thu, 10 Jan 2019 18:13:59 +0000 (18:13 +0000)]
[analyzer] [NFC] Track object type with ArgEffect in RetainCountChecker.

This would be needed in the future.

https://reviews.llvm.org/D56040

llvm-svn: 350858

5 years ago[analyzer] [NFC] Move ObjKind into a separate top-level enum in RetainSummaryManager.
George Karpenkov [Thu, 10 Jan 2019 18:13:46 +0000 (18:13 +0000)]
[analyzer] [NFC] Move ObjKind into a separate top-level enum in RetainSummaryManager.

Allows using it in future outside of RetEffect.

Differential Revision: https://reviews.llvm.org/D56039

llvm-svn: 350857

5 years agoSplit -Wdelete-non-virtual-dtor into two groups
Erik Pilkington [Thu, 10 Jan 2019 18:03:07 +0000 (18:03 +0000)]
Split -Wdelete-non-virtual-dtor into two groups

This group controls two diagnostics: deleting an abstract class with
a non-virtual dtor, which is a guaranteed crash, and deleting a
non-abstract polymorphic class with a non-virtual dtor, which is just
suspicious.

rdar://40380564

Differential revision: https://reviews.llvm.org/D56405

llvm-svn: 350856

5 years agoRemove an external test file. NFC.
Rui Ueyama [Thu, 10 Jan 2019 17:57:30 +0000 (17:57 +0000)]
Remove an external test file. NFC.

llvm-svn: 350855

5 years ago[lit] Make it possible for the lit test suite to pass with
Dan Liew [Thu, 10 Jan 2019 17:47:44 +0000 (17:47 +0000)]
[lit] Make it possible for the lit test suite to pass with
`FILECHECK_OPTS=-v` set in the environment.

Follow up to r350850 as requested by Joel E. Denny in
https://reviews.llvm.org/D56541 .

llvm-svn: 350854

5 years agoTrapInstr must be 4 bytes long. Currently we write two zeros on every two bytes.
Rui Ueyama [Thu, 10 Jan 2019 17:45:56 +0000 (17:45 +0000)]
TrapInstr must be 4 bytes long. Currently we write two zeros on every two bytes.

llvm-svn: 350853

5 years ago[analyzer][CrossTU][NFC] Generalize to external definitions instead of external functions
Rafael Stahl [Thu, 10 Jan 2019 17:44:04 +0000 (17:44 +0000)]
[analyzer][CrossTU][NFC] Generalize to external definitions instead of external functions

Summary: This is just changing naming and documentation to be general about external definitions that can be imported for cross translation unit analysis. There is at least a plan to add VarDecls: D46421

Reviewers: NoQ, xazax.hun, martong, a.sidorin, george.karpenkov, serge-sans-paille

Reviewed By: xazax.hun, martong

Subscribers: mgorny, whisperity, baloghadamsoftware, szepet, rnkovacs, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, cfe-commits

Differential Revision: https://reviews.llvm.org/D56441

llvm-svn: 350852

5 years ago[llvm-objdump][MachO] Fix error reporting after r350848 and r350849
Francis Visoiu Mistrih [Thu, 10 Jan 2019 17:36:54 +0000 (17:36 +0000)]
[llvm-objdump][MachO] Fix error reporting after r350848 and r350849

llvm-svn: 350851

5 years ago[FileCheck] Don't propagate `FILECHECK_DUMP_INPUT_ON_FAILURE` and
Dan Liew [Thu, 10 Jan 2019 17:24:06 +0000 (17:24 +0000)]
[FileCheck] Don't propagate `FILECHECK_DUMP_INPUT_ON_FAILURE` and
`FILECHECK_OPTS` into environment for FileCheck tests.

Summary:

This fixes the following FileCheck tests:

* FileCheck/dump-input-enable.txt
* FileCheck/match-full-lines.txt

when `FILECHECK_DUMP_INPUT_ON_FAILURE` is set in the environment.

By default llvm-lit propagates `FILECHECK_DUMP_INPUT_ON_FAILURE` and
`FILECHECK_OPTS` from llvm-lit's environment into the test environment.
Unfortunately this can break FileCheck's tests because they expect that
these environment variables not to be set.

rdar://problem/47176262

Reviewers: jdenny, probinson, george.karpenkov

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D56541

llvm-svn: 350850

5 years ago[llvm-objdump][MachO] Use the -dsym file name when reporting errors
Francis Visoiu Mistrih [Thu, 10 Jan 2019 17:16:42 +0000 (17:16 +0000)]
[llvm-objdump][MachO] Use the -dsym file name when reporting errors

Instead of using the binary filename.

llvm-svn: 350849

5 years ago[llvm-objdump][MachO] Correctly handle the llvm::Error when -dsym has errors
Francis Visoiu Mistrih [Thu, 10 Jan 2019 17:16:37 +0000 (17:16 +0000)]
[llvm-objdump][MachO] Correctly handle the llvm::Error when -dsym has errors

In an assert build, the Error gets destroyed and we get "Program aborted
due to an unhandled Error:".

In release, we get an empty message.

llvm-svn: 350848

5 years ago[clangd] Introduce loading of shards within auto-index
Kadir Cetinkaya [Thu, 10 Jan 2019 17:03:04 +0000 (17:03 +0000)]
[clangd] Introduce loading of shards within auto-index

Summary:
Whenever a change happens on a CDB, load shards associated with that
CDB before issuing re-index actions.

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D55224

llvm-svn: 350847

5 years ago[Docs] fix typo, adjust text order
Sanjay Patel [Thu, 10 Jan 2019 17:02:55 +0000 (17:02 +0000)]
[Docs] fix typo, adjust text order

llvm-svn: 350846

5 years ago[Docs] add note to avoid 'errno' for better vectorization (PR40265)
Sanjay Patel [Thu, 10 Jan 2019 16:57:28 +0000 (16:57 +0000)]
[Docs] add note to avoid 'errno' for better vectorization (PR40265)

This is a partial fix for the documentation improvements requested in:
https://bugs.llvm.org/show_bug.cgi?id=40265

llvm-svn: 350845

5 years ago[DAGCombiner] simplify code; NFC
Sanjay Patel [Thu, 10 Jan 2019 16:47:42 +0000 (16:47 +0000)]
[DAGCombiner] simplify code; NFC

llvm-svn: 350844

5 years agoRepair compilation of llvm-stress after r350835.
James Y Knight [Thu, 10 Jan 2019 16:43:26 +0000 (16:43 +0000)]
Repair compilation of llvm-stress after r350835.

Apparently it doesn't get built by 'ninja check'. :(

llvm-svn: 350843

5 years ago[LLD][ELF] - Fix tests after r350840.
George Rimar [Thu, 10 Jan 2019 16:26:05 +0000 (16:26 +0000)]
[LLD][ELF] - Fix tests after r350840.

D56076 (r350840) changed the llvm-objdump output.

This is a follow up commit to fix LLD test cases.

llvm-svn: 350842

5 years ago[SelectionDAGBuilder] Refactor GetRegistersForValue. NFCI.
Nirav Dave [Thu, 10 Jan 2019 16:25:47 +0000 (16:25 +0000)]
[SelectionDAGBuilder] Refactor GetRegistersForValue. NFCI.

llvm-svn: 350841

5 years ago[llvm-objdump] - Do not include reserved undefined symbol in -t output.
George Rimar [Thu, 10 Jan 2019 16:24:10 +0000 (16:24 +0000)]
[llvm-objdump] - Do not include reserved undefined symbol in -t output.

This is https://bugs.llvm.org/show_bug.cgi?id=26892,

GNU objdump hides the special symbol entry:

SYMBOL TABLE:
000000000000a7e0 l     F .text 00000000000003f9 bi_copymodules
while llvm-objdump does not:

SYMBOL TABLE:
0000000000000000         *UND*  00000000
000000000000a7e0 l     F .text  000003f9 bi_copymodules

Patch makes the behavior of the llvm-objdump to be consistent with the GNU objdump.

Differential revision: https://reviews.llvm.org/D56076

llvm-svn: 350840

5 years ago[SelectionDAGBuilder] Fix formatting. NFC.
Nirav Dave [Thu, 10 Jan 2019 16:22:19 +0000 (16:22 +0000)]
[SelectionDAGBuilder] Fix formatting. NFC.

llvm-svn: 350839

5 years ago[AMDGPU] Fix dwordx3/southern-islands failures.
Neil Henning [Thu, 10 Jan 2019 16:21:08 +0000 (16:21 +0000)]
[AMDGPU] Fix dwordx3/southern-islands failures.

This commit fixes the dwordx3/southern-islands failures that were found
in bugzilla https://bugs.llvm.org/show_bug.cgi?id=40129, by not
generating the dwordx3 variants of load/store instructions that were
added to the ISA after southern islands.

Differential Revision: https://reviews.llvm.org/D56434

llvm-svn: 350838

5 years ago[SelectionDAGBuilder] Refactor visitInlineAsm. NFC.
Nirav Dave [Thu, 10 Jan 2019 16:18:18 +0000 (16:18 +0000)]
[SelectionDAGBuilder] Refactor visitInlineAsm. NFC.

llvm-svn: 350837

5 years ago[ELF] Fix ARM and Thumb V7PILongThunk overflow behavior.
Peter Smith [Thu, 10 Jan 2019 16:08:23 +0000 (16:08 +0000)]
[ELF] Fix ARM and Thumb V7PILongThunk overflow behavior.

When the range between the source and target of a V7PILongThunk exceeded an
int32 we would trigger a relocation out of range error for the
R_ARM_MOVT_PREL or R_ARM_THM_MOVT_PREL relocation. This case can happen when
linking the linux kernel as it is loaded above 0xf0000000.

There are two parts to the fix.
- Remove the overflow check for R_ARM_MOVT_PREL or R_ARM_THM_MOVT_PREL. The
ELF for the ARM Architecture document defines these relocations as having no
overflow checking so the check was spurious.
- Use int64_t for the offset calculation, in line with similar thunks so
that PC + (S - P) < 32-bits. This results in less surprising disassembly.

Differential Revision: https://reviews.llvm.org/D56396

llvm-svn: 350836

5 years ago[opaque pointer types] Remove some calls to generic Type subtype accessors.
James Y Knight [Thu, 10 Jan 2019 16:07:20 +0000 (16:07 +0000)]
[opaque pointer types] Remove some calls to generic Type subtype accessors.

That is, remove many of the calls to Type::getNumContainedTypes(),
Type::subtypes(), and Type::getContainedType(N).

I'm not intending to remove these accessors -- they are
useful/necessary in some cases. However, removing the pointee type
from pointers would potentially break some uses, and reducing the
number of calls makes it easier to audit.

llvm-svn: 350835

5 years agoFix compilation error on 32-bit architectures introduced in r350511
Pavel Labath [Thu, 10 Jan 2019 15:53:20 +0000 (15:53 +0000)]
Fix compilation error on 32-bit architectures introduced in r350511

The issue was a narrowing conversion when converting from uint64_t to a
size_t.

llvm-svn: 350834

5 years ago[LLD][ELF] - A follow up for r350819 ("Support MSP430") : add a test case missing.
George Rimar [Thu, 10 Jan 2019 15:34:33 +0000 (15:34 +0000)]
[LLD][ELF] - A follow up for r350819 ("Support MSP430") : add a test case missing.

It got lost for some reason.

llvm-svn: 350833

5 years ago[llvm-symbolizer] Add -p as alias to -pretty-print
Dmitry Venikov [Thu, 10 Jan 2019 15:33:35 +0000 (15:33 +0000)]
[llvm-symbolizer] Add -p as alias to -pretty-print

Summary: Provides -p as a short alias for -pretty-print. Motivation: https://bugs.llvm.org/show_bug.cgi?id=40076

Reviewers: samsonov, khemant, ruiu, rnk, fjricci, jhenderson

Reviewed By: jhenderson

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D56542

llvm-svn: 350832

5 years ago[RISCV][MC] Add support for evaluating constant symbols as immediates
Alex Bradbury [Thu, 10 Jan 2019 15:33:17 +0000 (15:33 +0000)]
[RISCV][MC] Add support for evaluating constant symbols as immediates

This further improves compatibility with GNU as, allowing input such as the
following to be assembled:

.equ CONST, 0x123456
li a0, CONST
addi a0, a0, %lo(CONST)

.equ CONST, 1
slli a0, a0, CONST

Note that we don't have perfect compatibility with gas, as it will avoid
emitting a relocation in this case:

addi a0, a0, %lo(CONST2)
.equ CONST2, 0x123456

Thanks to Shiva Chen for suggesting a better way to approach this during review.

Differential Revision: https://reviews.llvm.org/D52298

llvm-svn: 350831

5 years ago[x86] fix remaining miscompile bug in horizontal binop matching (PR40243)
Sanjay Patel [Thu, 10 Jan 2019 15:27:23 +0000 (15:27 +0000)]
[x86] fix remaining miscompile bug in horizontal binop matching (PR40243)

When we use the partial-matching function on a 128-bit chunk, we must
account for the possibility that we've matched undef halves of the
original source vectors, so the outputs may need to be reset.

This should allow closing PR40243:
https://bugs.llvm.org/show_bug.cgi?id=40243

llvm-svn: 350830

5 years agogn build: Merge r350819
Nico Weber [Thu, 10 Jan 2019 15:16:32 +0000 (15:16 +0000)]
gn build: Merge r350819

llvm-svn: 350829

5 years agoModify InputSectionBase::getLocation to add section and offset to every loc.
Sean Fertile [Thu, 10 Jan 2019 15:08:06 +0000 (15:08 +0000)]
Modify InputSectionBase::getLocation to add section and offset to every loc.

The section and offset can be very helpful in diagnosing certian errors.
For example on a relocation overflow or misalignment diagnostic:

test.c:(function  foo): relocation R_PPC64_ADDR16_DS out of range: ...

The function foo can have many R_PPC64_ADDR16_DS relocations. Adding the offset
and section will identify exactly which relocation is causing the failure.

Differential Revision: https://reviews.llvm.org/D56453

llvm-svn: 350828

5 years ago[PPC64] Fix RelType in checkInt and checkAlignment diagnsotics.
Sean Fertile [Thu, 10 Jan 2019 15:08:02 +0000 (15:08 +0000)]
[PPC64] Fix RelType in checkInt and checkAlignment diagnsotics.

In the PPC64 target we map toc-relative relocations, dynamic thread pointer
relative relocations, and got relocations into a corresponding ADDR16 relocation
type for handling in relocateOne. This patch saves the orignal RelType before
mapping to an ADDR16 relocation so that any diagnostic messages will not
mistakenly use the mapped type.

Differential Revision: https://reviews.llvm.org/D56448

llvm-svn: 350827

5 years ago[x86] fix horizontal binop matching for 256-bit vectors (PR40243)
Sanjay Patel [Thu, 10 Jan 2019 15:04:52 +0000 (15:04 +0000)]
[x86] fix horizontal binop matching for 256-bit vectors (PR40243)

This is a partial fix for:
https://bugs.llvm.org/show_bug.cgi?id=40243
...as seen in the integer test, we still need to correct the result when using the
existing (old) horizontal op matching function because it does not model the way
x86 256-bit horizontal ops return results (each 128-bit half is its own horizontal-op).
A potential follow-up change for that is discussed in the bug report - see also D56490.

This generally duplicates a lot of the existing matching code, but we can't just remove
that without introducing regressions, so the existing code is renamed and used less often.
Follow-ups may try to reduce that overlap.

Differential Revision: https://reviews.llvm.org/D56450

llvm-svn: 350826

5 years ago[AArch64] Fix operation actions for FP16 vector intrinsics
Bryan Chan [Thu, 10 Jan 2019 15:02:37 +0000 (15:02 +0000)]
[AArch64] Fix operation actions for FP16 vector intrinsics

Summary:
This patch changes the legalization action for some half-precision floating-
point vector intrinsics (FSIN, FLOG, etc.) from Promote to Expand. These ops
are not supported in hardware for half-precision vectors, but promotion is
not always possible (for v8f16 operands). Changing the action to Expand fixes
an assertion failure in the legalizer when the frontend produces such ops.
In addition, a quick microbenchmark shows that, in the v4f16 case,
expanding introduces fewer spills and is therefore slightly faster than
promoting.

Reviewers: t.p.northover, SjoerdMeijer

Reviewed By: SjoerdMeijer

Subscribers: javed.absar, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D56296

llvm-svn: 350825

5 years ago[LLD][ELF] - Fix the test cases after r350823.
George Rimar [Thu, 10 Jan 2019 14:57:25 +0000 (14:57 +0000)]
[LLD][ELF] - Fix the test cases after r350823.

r350823 changed the output of the llvm-objdump.

llvm-svn: 350824

5 years ago[llvm-objdump] - Implement -z/--disassemble-zeroes.
George Rimar [Thu, 10 Jan 2019 14:55:26 +0000 (14:55 +0000)]
[llvm-objdump] - Implement -z/--disassemble-zeroes.

This is https://bugs.llvm.org/show_bug.cgi?id=37151,

GNU objdump spec says that "Normally the disassembly output will skip blocks of zeroes.",
but currently, llvm-objdump prints them.

The patch implements the -z/--disassemble-zeroes option and switches the default to always
skip blocks of zeroes.

Differential revision: https://reviews.llvm.org/D56083

llvm-svn: 350823

5 years ago[X86] Add SSE41 vector abs tests
Simon Pilgrim [Thu, 10 Jan 2019 14:26:15 +0000 (14:26 +0000)]
[X86] Add SSE41 vector abs tests

llvm-svn: 350822

5 years ago[llvm-symbolizer] Add support for specifying addresses on command-line
James Henderson [Thu, 10 Jan 2019 14:10:02 +0000 (14:10 +0000)]
[llvm-symbolizer] Add support for specifying addresses on command-line

See https://bugs.llvm.org/show_bug.cgi?id=40070.

GNU addr2line accepts input addresses both on the command-line and via
stdin. llvm-symbolizer previously only supported the latter. This
change adds support for the former. As with addr2line, the new
behaviour is to only look for addresses on stdin if no positional
arguments were provided to llvm-symbolizer.

Reviewed by: ruiu

Differential Revision: https://reviews.llvm.org/D56272

llvm-svn: 350821

5 years ago[MCA] Fix wrong definition of ResourceUnitMask in DefaultResourceStrategy.
Andrea Di Biagio [Thu, 10 Jan 2019 13:59:13 +0000 (13:59 +0000)]
[MCA] Fix wrong definition of ResourceUnitMask in DefaultResourceStrategy.

Field ResourceUnitMask was incorrectly defined as a 'const unsigned' mask. It
should have been a 64 bit quantity instead. That means, ResourceUnitMask was
always implicitly truncated to a 32 bit quantity.
This issue has been found by inspection. Surprisingly, that bug was latent, and
it never negatively affected any existing upstream targets.

This patch fixes  the wrong definition of ResourceUnitMask, and adds a bunch of
extra debug prints to help debugging potential issues related to invalid
processor resource masks.

llvm-svn: 350820

5 years ago[LLD][ELF] - Support MSP430.
George Rimar [Thu, 10 Jan 2019 13:43:06 +0000 (13:43 +0000)]
[LLD][ELF] - Support MSP430.

Patch by Michael Skvortsov!

This change adds a basic support for linking static MSP430 ELF code.
Implemented relocation types are intended to correspond to the BFD.

Differential revision: https://reviews.llvm.org/D56535

llvm-svn: 350819

5 years ago[compiler-rt][builtins][PowerPC] Implemented __floattitf builtin on PowerPC
Amy Kwan [Thu, 10 Jan 2019 13:23:33 +0000 (13:23 +0000)]
[compiler-rt][builtins][PowerPC] Implemented __floattitf builtin on PowerPC

This patch implements the long double __floattitf (int128_t) method for
PowerPC -- specifically to convert a 128 bit integer into a long double
(IBM double-double).

To invoke this method, one can do so by linking against compiler-rt, via the
--rtlib=compiler-rt command line option supplied to clang.

Differential Revision: https://reviews.llvm.org/D54313/

llvm-svn: 350818

5 years agoCorrect the spelling of helpURI to helpUri.
Aaron Ballman [Thu, 10 Jan 2019 13:19:48 +0000 (13:19 +0000)]
Correct the spelling of helpURI to helpUri.

JSON is case sensitive and the SARIF spec uses the corrected spelling.

llvm-svn: 350817

5 years ago[compiler-rt][builtins][PowerPC] Implemented __fixunstfti builtin on PowerPC
Amy Kwan [Thu, 10 Jan 2019 12:30:12 +0000 (12:30 +0000)]
[compiler-rt][builtins][PowerPC] Implemented __fixunstfti builtin on PowerPC

This patch implements the __uint128_t __fixunstfti (long double) method for
PowerPC -- specifically to convert a long double (IBM double-double) to an
unsigned 128 bit integer.

The general approach of this algorithm is to convert the high and low doubles
of the long double and add them together if the doubles fit within 64 bits.
However, additional adjustments and scaling is performed when the high or low
double does not fit within a 64 bit integer.

To invoke this method, one can do so by linking against compiler-rt, via the
--rtlib=compiler-rt command line option supplied to clang.

Differential Revision: https://reviews.llvm.org/D54911

llvm-svn: 350815

5 years ago[clang-tidy] Fix case of local variables in modernize-use-nodiscard checker
Jonas Toth [Thu, 10 Jan 2019 11:56:44 +0000 (11:56 +0000)]
[clang-tidy] Fix case of local variables in modernize-use-nodiscard checker

Summary:
Correct the case of the local variables..

Rational:
I want to be able to run clang-tidy on new clang-tidy checker code prior to creating a review (to demonstrate we should dog food our own tools during development, not my suggestion but @Eugene.Zelenko)

To this end I am running the following in a script, prior to make a change.

```
tidy:
    @for source in $$(git status -suno | grep ".cpp$$" | cut -c4-) ;\
    do \
        clang-tidy -quiet  $$source -- $(TIDY_FLAGS);\
    done

```

I then want to go through the checkers and see which checkers most closely match the review style of the reviewers

```
---
Checks:          '
-clang-diagnostic-*,
readability-identifier-naming,
llvm-header-guard
'
WarningsAsErrors: ''
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle:     LLVM
CheckOptions:
  - key:             readability-identifier-naming.IgnoreFailedSplit
    value:           '0'
  - key:             readability-identifier-naming.VariableCase
    value:           'CamelCase'
  - key:             readability-identifier-naming.LocalVariableCase
    value:           'CamelCase'
...

```

Unfortunately in doing so, I have identified that my previous review {D55433} it violates what looks like to be the convention of local variables being in CamelCase.

Sending this small review in the hope it can be corrected.

Patch by MyDeveloperDay.

Reviewers: JonasToth, Eugene.Zelenko

Reviewed By: JonasToth

Subscribers: xazax.hun, Eugene.Zelenko

Differential Revision: https://reviews.llvm.org/D56536

llvm-svn: 350814

5 years ago[pstl] Fix compile errors when PARALLEL_POLICIES is disabled
Louis Dionne [Thu, 10 Jan 2019 11:23:33 +0000 (11:23 +0000)]
[pstl] Fix compile errors when PARALLEL_POLICIES is disabled

Reviewed as https://reviews.llvm.org/D56139.
Thanks to @jerryct for the patch.

llvm-svn: 350813

5 years ago[pstl] Fix CMake configuration when parallel policies are disabled
Louis Dionne [Thu, 10 Jan 2019 11:17:26 +0000 (11:17 +0000)]
[pstl] Fix CMake configuration when parallel policies are disabled

llvm-svn: 350812

5 years ago[ARM] Fix for verifier buildbot
Sam Parker [Thu, 10 Jan 2019 10:47:23 +0000 (10:47 +0000)]
[ARM] Fix for verifier buildbot

Copy the MachineOperand first and then change the flags instead of
making a copy.

llvm-svn: 350811

5 years agoRevert "Add a verbose mode to "image dump line-table" and use it to write a .debug_li...
Pavel Labath [Thu, 10 Jan 2019 10:23:27 +0000 (10:23 +0000)]
Revert "Add a verbose mode to "image dump line-table" and use it to write a .debug_line test"

This reverts commit r350802 because the test fails on windows. This
happens because we treat the paths as windows paths even though they
have linux path separators in the asm file. That results in wrong paths
being computed (\tmp\tmp\a.c instead of /tmp/a.c).

Reverting until I can figure out what to do with this.

llvm-svn: 350810

5 years agoPECOFF: Fix section name computation
Pavel Labath [Thu, 10 Jan 2019 10:23:19 +0000 (10:23 +0000)]
PECOFF: Fix section name computation

If a section name is exactly 8 bytes long (or has been truncated to 8
bytes), it will not contain the terminating nul character. This means
reading the name as a c string will pick up random data following the
name field (which happens to be the section vm size).

This fixes the name computation to avoid out-of-bounds access and adds a
test.

Reviewers: zturner, stella.stamenova

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D56124

llvm-svn: 350809

5 years ago[LoopUnroll] add parsing for unroll parameters in -passes pipeline
Fedor Sergeev [Thu, 10 Jan 2019 10:01:53 +0000 (10:01 +0000)]
[LoopUnroll] add parsing for unroll parameters in -passes pipeline

Allow to specify loop-unrolling with optional parameters explicitly
spelled out in -passes pipeline specification.
Introducing somewhat generic way of specifying parameters parsing via
FUNCTION_PASS_PARAMETRIZED pass registration.

Syntax of parametrized unroll pass name is as follows:
   'unroll<' parameter-list '>'

Where parameter-list is ';'-separate list of parameter names and optlevel
   optlevel: 'O[0-3]'
   parameter: { 'partial' | 'peeling' | 'runtime' | 'upperbound' }
   negated:  'no-' parameter

Example:
   -passes=loop(unroll<O3;runtime;no-upperbound>)

    this invokes LoopUnrollPass configured with OptLevel=3,
    Runtime, no UpperBound, everything else by default.

llvm-svn: 350808

5 years agoFix RUN line in test/Transforms/LoopDeletion/crashbc.ll
Bjorn Pettersson [Thu, 10 Jan 2019 09:58:23 +0000 (09:58 +0000)]
Fix RUN line in test/Transforms/LoopDeletion/crashbc.ll

llvm-svn: 350807

5 years ago[asan] Mark tests as UNSUPPORTED on arm
Diana Picus [Thu, 10 Jan 2019 09:40:56 +0000 (09:40 +0000)]
[asan] Mark tests as UNSUPPORTED on arm

Temporarily mark a couple of tests as UNSUPPORTED until we figure out
why they fail on the thumb bots.

The failure was introduced in
r350139 - Add support for background thread on NetBSD in ASan.

llvm-svn: 350806

5 years ago[libclang] Fix clang_Cursor_isAnonymous
Ivan Donchevskii [Thu, 10 Jan 2019 09:34:44 +0000 (09:34 +0000)]
[libclang] Fix clang_Cursor_isAnonymous

Use the same logic as in TypePrinter::printTag to determine that the tag is anonymous and the separate check for namespaces.

Differential Revision: https://reviews.llvm.org/D54996

llvm-svn: 350805

5 years agoImplement ObjectFileELF::GetBaseAddress
Pavel Labath [Thu, 10 Jan 2019 09:32:31 +0000 (09:32 +0000)]
Implement ObjectFileELF::GetBaseAddress

Summary:
The concept of a base address was already present in the implementation
(it's needed for computing section load addresses properly), but it was
never exposed through this function. This fixes that.

llvm-svn: 350804

5 years ago[clangd] Don't store completion info if the symbol is not used for code completion.
Haojian Wu [Thu, 10 Jan 2019 09:22:40 +0000 (09:22 +0000)]
[clangd] Don't store completion info if the symbol is not used for code completion.

Summary:
This would save us some memory and disk space:
  - Dex usage (261 MB vs 266 MB)
  - Disk (75 MB vs 76 MB)

It would save more when we index the main file symbol D55185.

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: nridge, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D56314

llvm-svn: 350803

5 years agoAdd a verbose mode to "image dump line-table" and use it to write a .debug_line test
Pavel Labath [Thu, 10 Jan 2019 09:16:00 +0000 (09:16 +0000)]
Add a verbose mode to "image dump line-table" and use it to write a .debug_line test

Summary:
The motivation for this is being able to write tests for the upcoming
breakpad line table parser, but this could be useful for testing the
low-level workings of any line table format. Or simply for viewing the
line table information with more detail (the brief format doesn't
include any of the flags for end_of_prologue and similar).

I've also removed the load_addresses argument from the
DumpCompileUnitLineTable function, as it wasn't being used anywhere.

Reviewers: clayborg, zturner

Subscribers: JDevlieghere, lldb-commits

Differential Revision: https://reviews.llvm.org/D56315

llvm-svn: 350802

5 years ago[ARM] Size reduce teq to eors
Sam Parker [Thu, 10 Jan 2019 08:36:33 +0000 (08:36 +0000)]
[ARM] Size reduce teq to eors

Add t2TEQrr to the map of instructions with can be reduced down into
a T1 instruction. This is a special case because TEQ just sets the
CPSR and doesn't write to a GPR, which is not the case for EOR. So,
we need to ensure that the EOR can write to the first operand.

Differential Revision: https://reviews.llvm.org/D56255

llvm-svn: 350801

5 years ago[X86] Disable DomainReassignment pass when AVX512BW is disabled to avoid injecting...
Craig Topper [Thu, 10 Jan 2019 07:43:54 +0000 (07:43 +0000)]
[X86] Disable DomainReassignment pass when AVX512BW is disabled to avoid injecting VK32/VK64 references into the MachineIR

Summary:
This pass replaces GR8/GR16/GR32/GR64 with their equivalent sized mask register classes. But VK32/VK64 aren't legal without AVX512BW. Apparently this mostly appears to work if the register coalescer is able to remove the VK32/VK64 register class reference. Or if we don't ever spill it. But there's no guarantee of that.

Another Intel employee managed to trigger a crash due to this with ISPC. Unfortunately, I've lost the test case he sent me at the time. I'm trying to get him to reproduce it for me. I'd like to get this in before 8.0 branches since its a little scary.

The regressions here are unfortunate, but I think we can make some improvements to DAG combine, load folding, etc. to fix them. Just not sure if we can get that done for 8.0.

Fixes PR39741

Reviewers: RKSimon, spatel

Reviewed By: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D56460

llvm-svn: 350800

5 years agoRecommit "[PowerPC] Fix assert from machine verify pass that unmatched register class...
Zi Xuan Wu [Thu, 10 Jan 2019 06:20:14 +0000 (06:20 +0000)]
Recommit "[PowerPC] Fix assert from machine verify pass that unmatched register class about fcmp selection in fast-isel"

This re-commit r350685.

Differential Revision: https://reviews.llvm.org/D55686

llvm-svn: 350799

5 years ago[AArch64] Emit the correct MCExpr relocations specifiers like VK_ABS_G0, etc
Mandeep Singh Grang [Thu, 10 Jan 2019 04:59:44 +0000 (04:59 +0000)]
[AArch64] Emit the correct MCExpr relocations specifiers like VK_ABS_G0, etc

Summary:
D55896 and D56029 add support to emit fixups for :abs_g0: , :abs_g1_s: , etc.
This patch adds the necessary enums and MCExpr needed for lowering these.

Reviewers: rnk, mstorsjo, efriedma

Reviewed By: efriedma

Subscribers: javed.absar, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D56037

llvm-svn: 350798

5 years agoRemove unnecessary include.
Richard Trieu [Thu, 10 Jan 2019 04:53:10 +0000 (04:53 +0000)]
Remove unnecessary include.

QuerySession.h does not need anything from Query.h, so it does not need to
include it.

llvm-svn: 350797