platform/upstream/llvm.git
4 years ago[AArch64] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after r366857
Fangrui Song [Wed, 24 Jul 2019 01:59:44 +0000 (01:59 +0000)]
[AArch64] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after r366857

llvm-svn: 366866

4 years ago[SafeStack] Insert the deref before remaining elements
Petr Hosek [Wed, 24 Jul 2019 00:16:23 +0000 (00:16 +0000)]
[SafeStack] Insert the deref before remaining elements

This is a follow up to D64971. While we need to insert the deref after
the offset, it needs to come before the remaining elements in the
original expression since the deref needs to happen before the LLVM
fragment if present.

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

llvm-svn: 366865

4 years ago[Remarks] String tables should be move-only
Francis Visoiu Mistrih [Tue, 23 Jul 2019 22:50:08 +0000 (22:50 +0000)]
[Remarks] String tables should be move-only

Copying them is expensive. This allows the tables to be moved around at
lower cost, and allows a remarks::StringTable to be constructed from
a remarks::ParsedStringTable.

llvm-svn: 366864

4 years ago[lldb] Fix enum value description
Jonas Devlieghere [Tue, 23 Jul 2019 22:46:16 +0000 (22:46 +0000)]
[lldb] Fix enum value description

llvm-svn: 366863

4 years ago[FileCheck] Use ASSERT for fatal unit tests
Thomas Preud'homme [Tue, 23 Jul 2019 22:41:51 +0000 (22:41 +0000)]
[FileCheck] Use ASSERT for fatal unit tests

Summary:
A number of EXPECT statements in FileCheck's unit tests are dependent
from results of other values being tested. This commit changes those
earlier test to use ASSERT instead of EXPECT to avoid cascade errors
when they are all related to the same issue.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

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

llvm-svn: 366862

4 years ago[FileCheck]] Canonicalize caret location testing
Thomas Preud'homme [Tue, 23 Jul 2019 22:41:46 +0000 (22:41 +0000)]
[FileCheck]] Canonicalize caret location testing

Summary:
Testing of caret location in diagnostic message is currently made with
CHECK directive with the following general format:
CHECK: {{^         \^$}}

James Henderson suggested the following would be more readable:
CHECK: {{^}}         ^{{$}}

and when whole lines can be matched (as is the case for command-line
testing where error messages do not include path):
CHECK:         ^
using the option --match-full-lines.

This commit implements these 2 changes on all existing caret position
tests. It also aligns the caret to the character it is trying to match
in the above line.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

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

llvm-svn: 366861

4 years agoFileCheck [8/12]: Define numeric var from expr
Thomas Preud'homme [Tue, 23 Jul 2019 22:41:38 +0000 (22:41 +0000)]
FileCheck [8/12]: Define numeric var from expr

Summary:
This patch is part of a patch series to add support for FileCheck
numeric expressions. This specific patch lift the restriction for a
numeric expression to either be a variable definition or a numeric
expression to try to match.

This commit allows a numeric variable to be set to the result of the
evaluation of a numeric expression after it has been matched
successfully. When it happens, the variable is allowed to be used on
the same line since its value is known at match time.

It also makes use of this possibility to reuse the parsing code to
parse a command-line definition by crafting a mirror string of the
-D option with the equal sign replaced by a colon sign, e.g. for option
'-D#NUMVAL=10' it creates the string
'-D#NUMVAL=10 (parsed as [[#NUMVAL:10]])' where the numeric expression
is parsed to define NUMVAL. This result in a few tests needing updating
for the location diagnostics on top of the tests for the new feature.

It also enables empty numeric expression which match any number without
defining a variable. This is done here rather than in commit #5 of the
patch series because it requires to dissociate automatic regex insertion
in RegExStr from variable definition which would make commit #5 even
bigger than it already is.

Copyright:
    - Linaro (changes up to diff 183612 of revision D55940)
    - GraphCore (changes in later versions of revision D55940 and
                 in new revision created off D55940)

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

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

llvm-svn: 366860

4 years ago[DWARF] Use 32-bit format specifier for offset
Jonas Devlieghere [Tue, 23 Jul 2019 22:34:21 +0000 (22:34 +0000)]
[DWARF] Use 32-bit format specifier for offset

This should fix PR42730.

llvm-svn: 366859

4 years ago[lldb][test_suite] Update tests with unexpected pass on Android aarch64
Alex Langford [Tue, 23 Jul 2019 22:12:16 +0000 (22:12 +0000)]
[lldb][test_suite] Update tests with unexpected pass on Android aarch64

Summary: update some test decorates that can actually pass on andriod aarch64

Patch by Wanyi Ye <kusmour@gmail.com>

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

llvm-svn: 366858

4 years ago[AArch64][GlobalISel] Add support for s128 loads, stores, extracts, truncs.
Amara Emerson [Tue, 23 Jul 2019 22:05:13 +0000 (22:05 +0000)]
[AArch64][GlobalISel] Add support for s128 loads, stores, extracts, truncs.

We need to be able to load and store s128 for memcpy inlining, where we want to
generate Q register mem ops. Making these legal also requires that we add some
support in other instructions. Regbankselect should also know about these since
they have no GPR register class that can hold them, so need special handling to
live on the FPR bank.

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

llvm-svn: 366857

4 years agoFix "control reaches end of non-void function" warning. NFCI.
Simon Pilgrim [Tue, 23 Jul 2019 21:59:48 +0000 (21:59 +0000)]
Fix "control reaches end of non-void function" warning. NFCI.

llvm-svn: 366856

4 years ago[docs] Clarify where the indirect UB due to write-write races comes from
Eli Friedman [Tue, 23 Jul 2019 21:51:26 +0000 (21:51 +0000)]
[docs] Clarify where the indirect UB due to write-write races comes from

This is based on https://bugs.llvm.org/show_bug.cgi?id=42435#c3.

Patch by Ralf Jung.

llvm-svn: 366855

4 years ago[GlobalISel][AArch64] Save a copy on G_SELECT by fixing condition to GPR
Jessica Paquette [Tue, 23 Jul 2019 21:39:50 +0000 (21:39 +0000)]
[GlobalISel][AArch64] Save a copy on G_SELECT by fixing condition to GPR

The condition can never be fed by FPRs, so it should always be on a GPR.

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

llvm-svn: 366854

4 years ago[ExpressionParser] Handle llvm::Expected result
Jonas Devlieghere [Tue, 23 Jul 2019 21:14:41 +0000 (21:14 +0000)]
[ExpressionParser] Handle llvm::Expected result

This fixes the unchecked-error assertion at runtime.

  Expected<T> must be checked before access or destruction. Expected<T>
  value was in success state. (Note: Expected<T> values in success mode
  must still be checked prior to being destroyed).

llvm-svn: 366853

4 years ago[ExpressionParser] Fix formatting and whitespace (NFC)
Jonas Devlieghere [Tue, 23 Jul 2019 21:14:23 +0000 (21:14 +0000)]
[ExpressionParser] Fix formatting and whitespace (NFC)

Fix formatting and whitespace before making changes to this file.

llvm-svn: 366852

4 years ago[ARM] Add opt-bisect support to ARMParallelDSP.
Eli Friedman [Tue, 23 Jul 2019 20:48:46 +0000 (20:48 +0000)]
[ARM] Add opt-bisect support to ARMParallelDSP.

llvm-svn: 366851

4 years ago[lldb] Fix occasional hangs of VSCode testcases
Jan Kratochvil [Tue, 23 Jul 2019 20:45:03 +0000 (20:45 +0000)]
[lldb] Fix occasional hangs of VSCode testcases

On slower machines the vscode testcases were sometimes hanging:

  1910 ? Sl 0:00 |   \_ /usr/bin/python .../llvm/tools/lldb/test/dotest.py ... -p TestVSCode_setBreakpoints.py
  2649 ? Sl 0:00 |       \_ .../build/bin/lldb-vscode
  2690 ? S  0:00 |           \_ .../build/bin/lldb-server gdbserver --fd=9 --native-regs --setsid
  2708 ? t  0:00 |               \_ .../build/lldb-test-build.noindex/tools/lldb-vscode/breakpoint/TestVSCode_setBreakpoints.test_functionality/a.out

A reproducer of the racy bug for send_recv():
#         self.send_packet(command)
#+        import time
#+        time.sleep(1)
#         done = False

I guess `request_continue` was probably originally intended to be synchronous
but then it isn't and this code has been leftover there.

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

llvm-svn: 366850

4 years ago[Remarks] Introduce a new format: yaml-strtab
Francis Visoiu Mistrih [Tue, 23 Jul 2019 20:42:46 +0000 (20:42 +0000)]
[Remarks] Introduce a new format: yaml-strtab

This exposes better support to use a string table with a format through
an actual new remark::Format, called yaml-strtab.

This can now be used with -fsave-optimization-record=yaml-strtab.

llvm-svn: 366849

4 years agoRevert "Revert "Add ReadCStringFromMemory for faster string reads""
Antonio Afonso [Tue, 23 Jul 2019 20:40:37 +0000 (20:40 +0000)]
Revert "Revert "Add ReadCStringFromMemory for faster string reads""

This reverts commit 9c10b620c0619611dfe062216459431955ac4801.

llvm-svn: 366848

4 years agoRevert "Revert "Implement xfer:libraries-svr4:read packet""
Antonio Afonso [Tue, 23 Jul 2019 20:40:30 +0000 (20:40 +0000)]
Revert "Revert "Implement xfer:libraries-svr4:read packet""

This reverts commit 08c38f77c5fb4d3735ec215032fed8ee6730b3db.

llvm-svn: 366847

4 years ago[Remarks][NFC] Move the YAML serializer to its own header
Francis Visoiu Mistrih [Tue, 23 Jul 2019 19:28:03 +0000 (19:28 +0000)]
[Remarks][NFC] Move the YAML serializer to its own header

llvm-svn: 366842

4 years ago[PowerPC] Remove redundant load immediate instructions
Yi-Hong Lyu [Tue, 23 Jul 2019 19:11:07 +0000 (19:11 +0000)]
[PowerPC] Remove redundant load immediate instructions

Currently PowerPC backend emits code like this:

  r3 = li 0
  std r3, 264(r1)
  r3 = li 0
  std r3, 272(r1)

This patch fixes that and other cases where a register already contains a value that is loaded so we will get:

  r3 = li 0
  std r3, 264(r1)
  std r3, 272(r1)

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

llvm-svn: 366840

4 years agogn build: Merge r366832
Nico Weber [Tue, 23 Jul 2019 19:02:47 +0000 (19:02 +0000)]
gn build: Merge r366832

llvm-svn: 366837

4 years agold.lld: Demangle symbols from archives in diagnostics
Nico Weber [Tue, 23 Jul 2019 19:00:01 +0000 (19:00 +0000)]
ld.lld: Demangle symbols from archives in diagnostics

This ports r366573 from COFF to ELF.

There are now to toString(Archive::Symbol), one doing MSVC demangling
in COFF and one doing Itanium demangling in ELF, so rename these two
to toCOFFString() and to toELFString() to not get a duplicate symbol.

Nothing ever passes a raw Archive::Symbol to CHECK(), so these not
being part of the normal toString() machinery seems ok.

There are two code paths in the ELF linker that emits this type of
diagnostic:

1. The "normal" one in InputFiles.cpp. This is covered by the tweaked test.

2. An additional one that's only used for libcalls if there's at least
   one bitcode in the link, and if the libcall symbol is lazy, and
   lazily loaded from an archive (i.e. not from a lazy .o file).
   (This code path was added in r339301.) Since all libcall names so far
   are C symbols and never mangled, the change there is not observable
   and hence not covered by tests.

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

llvm-svn: 366836

4 years ago[X86] In lowerVectorShuffle, instead of creating a new node to canonicalize the shuff...
Craig Topper [Tue, 23 Jul 2019 18:46:15 +0000 (18:46 +0000)]
[X86] In lowerVectorShuffle, instead of creating a new node to canonicalize the shuffle mask by commuting, just commute the mask and swap V1/V2.

LegalizeDAG tries to legal the DAG by legalizing nodes before
their operands.

If we create a new node, we end up legalizing it after its operands.
This prevents some of the optimizations that can be done when the
operand is a build_vector since the build_vector will have been
legalized to something else.

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

llvm-svn: 366835

4 years ago[libFuzzer] Fix __sanitizer_print_memory_profile return type in ExtFunctions.def
Max Moroz [Tue, 23 Jul 2019 18:26:53 +0000 (18:26 +0000)]
[libFuzzer] Fix __sanitizer_print_memory_profile return type in ExtFunctions.def

Summary:
Looks like a typo, as that function actually returns void and is used
as such in libFuzzer code as well.

Reviewers: kcc, Dor1s

Reviewed By: Dor1s

Subscribers: delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

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

llvm-svn: 366834

4 years ago[utils] Remove sync-source (with SVN)
Jonas Devlieghere [Tue, 23 Jul 2019 18:09:13 +0000 (18:09 +0000)]
[utils] Remove sync-source (with SVN)

llvm-svn: 366833

4 years ago[Remarks] Add unit tests for YAML serialization
Francis Visoiu Mistrih [Tue, 23 Jul 2019 18:09:12 +0000 (18:09 +0000)]
[Remarks] Add unit tests for YAML serialization

Add tests for both the string table and non string table case.

llvm-svn: 366832

4 years agoclang-format: Fix namespace end comments for namespaces with attributes and macros.
Nico Weber [Tue, 23 Jul 2019 17:49:45 +0000 (17:49 +0000)]
clang-format: Fix namespace end comments for namespaces with attributes and macros.

Fixes PR39247.

While here, also make C++20 `namespace A::inline B::inline C` nested
inline namespaced definitions work.

Before:
    #define DEPRECATE_WOOF [[deprecated("meow")]]

    namespace DEPRECATE_WOOF woof {
    void f() {}
    } // namespace DEPRECATE_WOOFwoof

    namespace [[deprecated("meow")]] woof {
      void f() {}
    } // namespace [[deprecated("meow")]]woof

    namespace woof::inline bark {
      void f() {}
    } // namespace woof::inlinebark

Now:
    #define DEPRECATE_WOOF [[deprecated("meow")]]

    namespace DEPRECATE_WOOF woof {
    void f() {}
    } // namespace woof

    namespace [[deprecated("meow")]] woof {
    void f() {}
    } // namespace woof

    namespace woof::inline bark {
    void f() {}
    } // namespace woof::inline bark

(In addition to the fixed namespace end comments, also note the correct
indent of the namespace contents.)

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

llvm-svn: 366831

4 years ago[Utils] Add back utils directory
Jonas Devlieghere [Tue, 23 Jul 2019 17:47:08 +0000 (17:47 +0000)]
[Utils] Add back utils directory

Due to a bug my earlier commit removed the whole utils directory:
https://reviews.llvm.org/D65123

llvm-svn: 366830

4 years ago[IndVars] Fix a subtle bug in optimizeLoopExits
Philip Reames [Tue, 23 Jul 2019 17:45:11 +0000 (17:45 +0000)]
[IndVars] Fix a subtle bug in optimizeLoopExits

The original code failed to account for the fact that one exit can have a pointer exit count without all of them having pointer exit counts.  This could cause two separate bugs:
1) We might exit the loop early, and leave optimizations undone.  This is what triggered the assertion failure in the reported test case.
2) We might optimize one exit, then exit without indicating a change.  This could result in an analysis invalidaton bug if no other transform is done by the rest of indvars.

Note that the pointer exit counts are a really fragile concept.  They show up only when we have a pointer IV w/o a datalayout to provide their size.  It's really questionable to me whether the complexity implied is worth it.

llvm-svn: 366829

4 years agoImprove clang-format-diff help output
Nico Weber [Tue, 23 Jul 2019 17:34:18 +0000 (17:34 +0000)]
Improve clang-format-diff help output

The description in clang-format-diff.py is more useful than the one
in `clang-format-diff -h`, so use the same description in both places.

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

llvm-svn: 366828

4 years ago[Utils] Remove legacy scripts
Jonas Devlieghere [Tue, 23 Jul 2019 17:23:36 +0000 (17:23 +0000)]
[Utils] Remove legacy scripts

As pointed out by Nathan in D65155, these scrips don't seem to serve any
real need anymore.

llvm-svn: 366827

4 years ago[IR][Verifier] Allow IntToPtrInst to be !dereferenceable
Ryan Taylor [Tue, 23 Jul 2019 17:19:56 +0000 (17:19 +0000)]
[IR][Verifier] Allow IntToPtrInst to be !dereferenceable

Summary:
Allow IntToPtrInst to carry !dereferenceable metadata tag.
This is valid since !dereferenceable can be only be applied to
pointer type values.

Change-Id: If8a6e3c616f073d51eaff52ab74535c29ed497b4

Subscribers: llvm-commits

Tags: #llvm

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

llvm-svn: 366826

4 years ago[RISCV][NFC] Correct RUN in rvi-pseudos-invalid.s
Sam Elliott [Tue, 23 Jul 2019 17:14:42 +0000 (17:14 +0000)]
[RISCV][NFC] Correct RUN in rvi-pseudos-invalid.s

This test should test both riscv32 and riscv64.

llvm-svn: 366825

4 years ago[Logging] Fix format strings
Jonas Devlieghere [Tue, 23 Jul 2019 17:03:37 +0000 (17:03 +0000)]
[Logging] Fix format strings

Change format strings to use the `{}` syntax instead of the printf
syntax when using LLDB_LOG.

llvm-svn: 366824

4 years ago[clang][NFCI] Fix random typos
Jan Korous [Tue, 23 Jul 2019 16:54:11 +0000 (16:54 +0000)]
[clang][NFCI] Fix random typos

llvm-svn: 366823

4 years ago[compiler-rt][builtins] Provide __clear_cache for SPARC
Rainer Orth [Tue, 23 Jul 2019 16:33:54 +0000 (16:33 +0000)]
[compiler-rt][builtins] Provide __clear_cache for SPARC

While working on https://reviews.llvm.org/D40900, two tests were failing since __clear_cache
aborted.  While libgcc's __clear_cache is just empty, this only happens because
gcc (in gcc/config/sparc/sparc.c (sparc32_initialize_trampoline, sparc64_initialize_trampoline))
emits flush insns directly.

The following patch mimics that.

Tested on sparcv9-sun-solaris2.11.

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

llvm-svn: 366822

4 years ago[CMake] Add -z defs on Solaris
Rainer Orth [Tue, 23 Jul 2019 16:27:34 +0000 (16:27 +0000)]
[CMake] Add -z defs on Solaris

Like other ELF targets, shared objects should be linked with -z defs on Solaris.

Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11.

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

llvm-svn: 366821

4 years ago[clang, test] Fix Clang :: Headers/max_align.c on 64-bit SPARC
Rainer Orth [Tue, 23 Jul 2019 16:24:00 +0000 (16:24 +0000)]
[clang, test] Fix Clang :: Headers/max_align.c on 64-bit SPARC

Clang :: Headers/max_align.c currently FAILs on 64-bit SPARC:

  error: 'error' diagnostics seen but not expected:
    File /vol/llvm/src/clang/dist/test/Headers/max_align.c Line 12: static_assert failed due to requirement '8 == _Alignof(max_align_t)' ""
  1 error generated.

This happens because SuitableAlign isn't defined for SPARCv9 unlike SPARCv8
(which uses the default of 64 bits).  gcc's sparc/sparc.h has

  #define BIGGEST_ALIGNMENT (TARGET_ARCH64 ? 128 : 64)

This patch sets SuitableAlign to match and updates the corresponding testcase.

Tested on sparcv9-sun-solaris2.11.

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

llvm-svn: 366820

4 years ago[GlobalISel][AArch64] Teach GISel to handle shifts in load addressing modes
Jessica Paquette [Tue, 23 Jul 2019 16:09:42 +0000 (16:09 +0000)]
[GlobalISel][AArch64] Teach GISel to handle shifts in load addressing modes

When we select the XRO variants of loads, we can pull in very specific shifts
(of the size of an element). E.g.

```
ldr x1, [x2, x3, lsl #3]
```

This teaches GISel to handle these when they're coming from shifts
specifically.

This adds a new addressing mode function, `selectAddrModeShiftedExtendXReg`
which recognizes this pattern.

This also packs this up with `selectAddrModeRegisterOffset` into
`selectAddrModeXRO`. This is intended to be equivalent to `selectAddrModeXRO`
in AArch64ISelDAGtoDAG.

Also update load-addressing-modes to show that all of the cases here work.

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

llvm-svn: 366819

4 years ago[ASTImporter] Fix inequivalence of ClassTemplateInstantiations
Gabor Marton [Tue, 23 Jul 2019 15:46:38 +0000 (15:46 +0000)]
[ASTImporter] Fix inequivalence of ClassTemplateInstantiations

Summary:
We falsely state inequivalence if the template parameter is a
qualified/nonquialified template in the first/second instantiation.
Also, different kinds of TemplateName should be equal if the template
decl (if available) is equal (even if the name kind is different).

Reviewers: a_sidorin, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

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

llvm-svn: 366818

4 years ago[TargetLowering] SimplifyMultipleUseDemandedBits - add VECTOR_SHUFFLE support.
Simon Pilgrim [Tue, 23 Jul 2019 15:35:55 +0000 (15:35 +0000)]
[TargetLowering] SimplifyMultipleUseDemandedBits - add VECTOR_SHUFFLE support.

If all the demanded elts are from one operand and are inline, then we can use the operand directly.

The changes are mainly from SSE41 targets which has blendvpd but not cmpgtq, allowing the v2i64 comparison to be simplified as we only need the signbit from alternate v4i32 elements.

llvm-svn: 366817

4 years agoRevert "[Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections()."
Vlad Tsyrklevich [Tue, 23 Jul 2019 15:02:13 +0000 (15:02 +0000)]
Revert "[Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections()."

This reverts commit r366796 because it was causing ubsan buildbot
failures.

llvm-svn: 366815

4 years ago[llvm-ar] Fix support for archives with members larger than 4GB
Owen Reynolds [Tue, 23 Jul 2019 14:44:21 +0000 (14:44 +0000)]
[llvm-ar] Fix support for archives with members larger than 4GB

llvm-ar outputs a strange error message when handling archives with
members larger than 4GB due to not checking file size when passing the
value as an unsigned 32 bit integer. This overflow issue caused
malformed archives to be created.:

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

This change allows for members above 4GB and will error in a case that
is over the formats size limit, a 10 digit decimal integer.

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

llvm-svn: 366813

4 years ago[clangd] Log version, cwd, args, and transport on startup. NFC
Sam McCall [Tue, 23 Jul 2019 14:30:28 +0000 (14:30 +0000)]
[clangd] Log version, cwd, args, and transport on startup. NFC

Reviewers: hokein

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

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

llvm-svn: 366811

4 years ago[libomptarget] Handle offload policy in push_tripcount
Jonas Hahnfeld [Tue, 23 Jul 2019 14:20:48 +0000 (14:20 +0000)]
[libomptarget] Handle offload policy in push_tripcount

If the first target region in a program calls the push_tripcount
function, libomptarget didn't handle the offload policy correctly.
This could lead to unexpected error messages as seen in
http://lists.llvm.org/pipermail/openmp-dev/2019-June/002561.html

To solve this, add a check calling IsOffloadDisabled() as all other
entry points already do. If this method returns false, libomptarget
is effectively disabled.

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

llvm-svn: 366810

4 years ago[ARM][LowOverheadLoops] Fix branch target codegen
Sam Parker [Tue, 23 Jul 2019 14:08:46 +0000 (14:08 +0000)]
[ARM][LowOverheadLoops] Fix branch target codegen

While lowering test.set.loop.iterations, it wasn't checked how the
brcond was using the result and so the wls could branch to the loop
preheader instead of not entering it. The same was true for
loop.decrement.reg.

So brcond and br_cc and now lowered manually when using the hwloop
intrinsics. During this we now check whether the result has been
negated and whether we're using SETEQ or SETNE and 0 or 1. We can
then figure out which basic block the WLS and LE should be targeting.

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

llvm-svn: 366809

4 years agoFix MSVC warning about extending a uint32_t shift result to uint64_t. NFCI.
Simon Pilgrim [Tue, 23 Jul 2019 14:04:54 +0000 (14:04 +0000)]
Fix MSVC warning about extending a uint32_t shift result to uint64_t. NFCI.

llvm-svn: 366808

4 years ago[SLPVectorizer] Revert local change that got accidently got committed in rL366799
Simon Pilgrim [Tue, 23 Jul 2019 13:42:01 +0000 (13:42 +0000)]
[SLPVectorizer] Revert local change that got accidently got committed in rL366799

This wasn't part of D63281

llvm-svn: 366807

4 years agoRevert [RISCV] Re-enable rv32i-aliases-invalid.s test
Sam Elliott [Tue, 23 Jul 2019 13:30:56 +0000 (13:30 +0000)]
Revert [RISCV] Re-enable rv32i-aliases-invalid.s test

This reverts r366797 (git commit 53f9fec8e8b58f5a904bbfb4a1d648cde65aa860)

llvm-svn: 366806

4 years ago[NFC][ASAN] Add brackets around not command
Lei Huang [Tue, 23 Jul 2019 13:10:29 +0000 (13:10 +0000)]
[NFC][ASAN] Add brackets around not command

Under certain execution conditions, the `not` command binds to the command the
output is piped to rather than the command piping the output. In this case, that
flips the return code of the FileCheck invocation, causing a failure when
FileCheck succeeds.

llvm-svn: 366805

4 years ago[lldb][NFC] Tablegenify process
Raphael Isemann [Tue, 23 Jul 2019 12:54:33 +0000 (12:54 +0000)]
[lldb][NFC] Tablegenify process

llvm-svn: 366804

4 years agoProcessMachCore: Fix a -Wmisleading-indentation warning
Pavel Labath [Tue, 23 Jul 2019 12:53:45 +0000 (12:53 +0000)]
ProcessMachCore: Fix a -Wmisleading-indentation warning

llvm-svn: 366803

4 years ago[NFC][InstCombine] Fixup commutative/negative tests with icmp preds in @llvm.umul...
Roman Lebedev [Tue, 23 Jul 2019 12:42:57 +0000 (12:42 +0000)]
[NFC][InstCombine] Fixup commutative/negative tests with icmp preds in @llvm.umul.with.overflow tests

llvm-svn: 366802

4 years ago[InstSimplify][NFC] Tests for skipping 'div-by-0' checks before inverted @llvm.umul...
Roman Lebedev [Tue, 23 Jul 2019 12:42:49 +0000 (12:42 +0000)]
[InstSimplify][NFC] Tests for skipping 'div-by-0' checks before inverted @llvm.umul.with.overflow

It would be already handled by the non-inverted case if we were hoisting
the `not` in InstCombine, but we don't (granted, we don't sink it
in this case either), so this is a separate case.

llvm-svn: 366801

4 years ago[NFC][PhaseOredering][SimplifyCFG] Add more runlines to umul.with.overflow tests
Roman Lebedev [Tue, 23 Jul 2019 12:42:41 +0000 (12:42 +0000)]
[NFC][PhaseOredering][SimplifyCFG] Add more runlines to umul.with.overflow tests

This way it will be more obvious that the problem is both
in cost threshold and in hardcoded benefit check,
plus will show how the instsimplify cleans this all in the end.

llvm-svn: 366800

4 years ago[TargetLowering] Add SimplifyMultipleUseDemandedBits
Simon Pilgrim [Tue, 23 Jul 2019 12:39:08 +0000 (12:39 +0000)]
[TargetLowering] Add SimplifyMultipleUseDemandedBits

This patch introduces the DAG version of SimplifyMultipleUseDemandedBits, which attempts to peek through ops (mainly and/or/xor so far) that don't contribute to the demandedbits/elts of a node - which means we can do this even in cases where we have multiple uses of an op, which normally requires us to demanded all bits/elts. The intention is to remove a similar instruction - SelectionDAG::GetDemandedBits - once SimplifyMultipleUseDemandedBits has matured.

The InstCombine version of SimplifyMultipleUseDemandedBits can constant fold which I haven't added here yet, and so far I've only wired this up to some basic binops (and/or/xor/add/sub/mul) to demonstrate its use.

We do see a couple of regressions that need to be addressed:

    AMDGPU unsigned dot product codegen retains an AND mask (for ZERO_EXTEND) that it previously removed (but otherwise the dotproduct codegen is a lot better).

    X86/AVX2 has poor handling of vector ANY_EXTEND/ANY_EXTEND_VECTOR_INREG - it prematurely gets converted to ZERO_EXTEND_VECTOR_INREG.

The code owners have confirmed its ok for these cases to fixed up in future patches.

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

llvm-svn: 366799

4 years agoFix windows build after r366791
Pavel Labath [Tue, 23 Jul 2019 12:26:09 +0000 (12:26 +0000)]
Fix windows build after r366791

A side effect of this commit was that it exchanged the order of types
and compile units in the output of SymbolVendor::Dump. A couple of PDB
tests dependened on that to assert the links between the two.

While it wouldn't be too hard to update the tests, the change of
ordering was not something I intended to do with that patch, and is easy
to restore the original order, so I do just that.

llvm-svn: 366798

4 years ago[RISCV] Re-enable rv32i-aliases-invalid.s test
Sam Elliott [Tue, 23 Jul 2019 11:40:55 +0000 (11:40 +0000)]
[RISCV] Re-enable rv32i-aliases-invalid.s test

We were getting test failures on some builders, which pointed to @LINE
being an undefined variable. I think that these failures should have
been fixed by https://reviews.llvm.org/rL366434, so I'm re-enabling the
test.

llvm-svn: 366797

4 years ago[Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections().
George Rimar [Tue, 23 Jul 2019 11:37:14 +0000 (11:37 +0000)]
[Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections().

This eliminates a one error untested and
also introduces a error for one more possible case
which lead to crash previously.

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

llvm-svn: 366796

4 years ago[lldb][NFC] Tablegenify source
Raphael Isemann [Tue, 23 Jul 2019 11:08:12 +0000 (11:08 +0000)]
[lldb][NFC] Tablegenify source

llvm-svn: 366795

4 years ago[yaml2obj] - Add a support for defining null sections in YAMLs.
George Rimar [Tue, 23 Jul 2019 11:03:37 +0000 (11:03 +0000)]
[yaml2obj] - Add a support for defining null sections in YAMLs.

ELF spec shows (Figure 4-10: Section Header Table Entry:Index 0,
http://www.sco.com/developers/gabi/latest/ch4.sheader.html)
that section header at index 0 (null section) can have sh_size and
sh_link fields set to non-zero values.

It says (https://docs.oracle.com/cd/E19683-01/817-3677/6mj8mbtc9/index.html):

"If the number of sections is greater than or equal to SHN_LORESERVE (0xff00),
this member has the value zero and the actual number of section header table
entries is contained in the sh_size field of the section header at index 0.
Otherwise, the sh_size member of the initial entry contains 0."

and:

"If the section name string table section index is greater than or equal to SHN_LORESERVE
(0xff00), this member has the value SHN_XINDEX (0xffff) and the actual index of the section
name string table section is contained in the sh_link field of the section header at index 0.
Otherwise, the sh_link member of the initial entry contains 0."

At this moment it is not possible to create custom section headers at index 0 using yaml2obj.

This patch implements this.

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

llvm-svn: 366794

4 years ago[SLPVectorizer] Remove null-pointer test. NFCI.
Simon Pilgrim [Tue, 23 Jul 2019 10:51:43 +0000 (10:51 +0000)]
[SLPVectorizer] Remove null-pointer test. NFCI.

cast<CallInst> shouldn't return null and we dereference the pointer in a lot of other places, causing both MSVC + cppcheck to warn about dereferenced null pointers

llvm-svn: 366793

4 years agoPlistDiagnostics Fix for compile warning (NFC).
Balazs Keri [Tue, 23 Jul 2019 10:21:42 +0000 (10:21 +0000)]
PlistDiagnostics Fix for compile warning (NFC).

llvm-svn: 366792

4 years agoSymbolVendor: Move compile unit handling into the SymbolFile class
Pavel Labath [Tue, 23 Jul 2019 09:24:02 +0000 (09:24 +0000)]
SymbolVendor: Move compile unit handling into the SymbolFile class

Summary:
SymbolFile classes are responsible for creating CompileUnit instances
and they already need to have a notion of the id<->CompileUnit mapping
(because of APIs like ParseCompileUnitAtIndex). However, the
SymbolVendor has remained as the thing responsible for caching created
units (which the SymbolFiles were calling via convoluted constructs like
"m_obj_file->GetModule()->GetSymbolVendor()->SetCompileUnitAtIndex(...)").

This patch moves the responsibility of caching the units into the
SymbolFile class. It does this by moving the implementation of
SymbolVendor::{GetNumCompileUnits,GetCompileUnitAtIndex} into the
equivalent SymbolFile functions. The SymbolVendor functions become just
a passthrough much like the rest of SymbolVendor.

The original implementations of SymbolFile::GetNumCompileUnits is moved
to "CalculateNumCompileUnits", and are made protected, as the "Get"
function is the external api of the class.
SymbolFile::ParseCompileUnitAtIndex is made protected for the same
reason.

This is the first step in removing the SymbolVendor indirection, as
proposed in
<http://lists.llvm.org/pipermail/lldb-dev/2019-June/015071.html>. After
removing all interesting logic from the SymbolVendor class, I'll proceed
with removing the indirection itself.

Reviewers: clayborg, jingham, JDevlieghere

Subscribers: jdoerfert, lldb-commits

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

llvm-svn: 366791

4 years ago[ARM] Rename NEONModImm to VMOVModImm. NFC
David Green [Tue, 23 Jul 2019 09:19:24 +0000 (09:19 +0000)]
[ARM] Rename NEONModImm to VMOVModImm. NFC

Rename NEONModImm to VMOVModImm as it is used in both NEON and MVE.

llvm-svn: 366790

4 years ago[Attributor][NFC] Re-run clang-format on the Attributor.cpp
Hideto Ueno [Tue, 23 Jul 2019 08:29:22 +0000 (08:29 +0000)]
[Attributor][NFC] Re-run clang-format on the Attributor.cpp

llvm-svn: 366789

4 years ago[Attributor] Deduce "dereferenceable" attribute
Hideto Ueno [Tue, 23 Jul 2019 08:16:17 +0000 (08:16 +0000)]
[Attributor] Deduce "dereferenceable" attribute

Summary:
Deduce dereferenceable attribute in Attributor.

These will be added in a later patch.
* dereferenceable(_or_null)_globally (D61652)
* Deduction based on load instruction (similar to D64258)

Reviewers: jdoerfert, sstefan1

Reviewed By: jdoerfert

Subscribers: hiraditya, jfb, llvm-commits

Tags: #llvm

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

llvm-svn: 366788

4 years ago[llvm-objcopy] Allow strip symtab in executables and DSOs
Eugene Leviant [Tue, 23 Jul 2019 08:03:30 +0000 (08:03 +0000)]
[llvm-objcopy] Allow strip symtab in executables and DSOs

Re-commit of the patch after addressing -Wl,--emit-relocs case.
Differential revision: https://reviews.llvm.org/D61672

llvm-svn: 366787

4 years agoFix gold-plugin Windows build
Yi Kong [Tue, 23 Jul 2019 07:41:17 +0000 (07:41 +0000)]
Fix gold-plugin Windows build

r365588 missed one instance of integer file descriptor use in
gold-plugin.cpp.

llvm-svn: 366786

4 years ago[yaml2elf] - Treat the SHN_UNDEF section as kind of regular section.
George Rimar [Tue, 23 Jul 2019 07:38:44 +0000 (07:38 +0000)]
[yaml2elf] - Treat the SHN_UNDEF section as kind of regular section.

We have a logic that adds a few sections implicitly.
Though the SHT_NULL section with section number 0
is an exception.

In D64913 I want to teach yaml2obj to redefine the null section.
And in this patch I add it to the sections list,
to make it kind of a regular section.

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

llvm-svn: 366785

4 years ago[test] Fix the test from the previous commit when run on windows. NFC.
Martin Storsjo [Tue, 23 Jul 2019 07:28:23 +0000 (07:28 +0000)]
[test] Fix the test from the previous commit when run on windows. NFC.

Apparently the escaped dollar sign didn't work the same way in "echo -e"
on windows buildbots.

llvm-svn: 366784

5 years ago[lldb][NFC] Tablegenify disassemble
Raphael Isemann [Tue, 23 Jul 2019 07:15:54 +0000 (07:15 +0000)]
[lldb][NFC] Tablegenify disassemble

llvm-svn: 366783

5 years ago[CrossTU] Added CTU argument to diagnostic consumer create fn.
Balazs Keri [Tue, 23 Jul 2019 07:04:20 +0000 (07:04 +0000)]
[CrossTU] Added CTU argument to diagnostic consumer create fn.

Summary:
The PListDiagnosticConsumer needs a new CTU parameter that is passed
through the create functions.

Reviewers: NoQ, Szelethus, xazax.hun, martong

Reviewed By: Szelethus

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

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

llvm-svn: 366782

5 years ago[AMDGPU][NFC] Simplify test file for amdgcn intrinsics
Hideto Ueno [Tue, 23 Jul 2019 06:48:47 +0000 (06:48 +0000)]
[AMDGPU][NFC] Simplify test file for amdgcn intrinsics

Summary: Remove unchecked attribute in the call site and use FileCheck String Substitution for `convergent` check.

Reviewers: nhaehnle

Reviewed By: nhaehnle

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #llvm

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

llvm-svn: 366781

5 years ago[COFF] Unbreak sorting of mingw comdat .tls sections after SVN r363457
Martin Storsjo [Tue, 23 Jul 2019 06:38:04 +0000 (06:38 +0000)]
[COFF] Unbreak sorting of mingw comdat .tls sections after SVN r363457

Code built for mingw with -fdata-sections will store each TLS variable
in a comdat section, named .tls$$<varname>. Normal TLS variables are
stored in sections named .tls$ with a trailing dollar, which are
sorted after a starter marker (in a later linked object file) in a
section named ".tls" (with no dollar suffix), before an ending marker
in a section named ".tls$ZZZ".

The mingw comdat section suffix stripping introduced in SVN r363457
broke sorting of such tls sections, ending up sorting the stripped
.tls$$<varname> sections (stripped to ".tls") before the start marker
in the section named ".tls".

We could add exceptions to the section name suffix stripping for
.tls (and .CRT, where suffixes always should be honored), but the
more conservative option is probably the reverse; to only apply the
stripping for the normal sections where sorting shouldn't have any
effect.

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

llvm-svn: 366780

5 years ago[DAGCombiner] Make ShrinkLoadReplaceStoreWithStore return an SDValue instead of an...
Craig Topper [Tue, 23 Jul 2019 05:13:39 +0000 (05:13 +0000)]
[DAGCombiner] Make ShrinkLoadReplaceStoreWithStore return an SDValue instead of an SDNode*. NFCI

The function was calling getNode() on an SDValue to return and the
caller turned the result back into a SDValue. So just return the
original SDValue to avoid this.

llvm-svn: 366779

5 years ago[DAGCombiner] Use SDNode::isOperandOf to simplify some code. NFCI
Craig Topper [Tue, 23 Jul 2019 05:13:35 +0000 (05:13 +0000)]
[DAGCombiner] Use SDNode::isOperandOf to simplify some code. NFCI

llvm-svn: 366778

5 years ago[LLVM-C] Improve Bindings to The Internalize Pass
Robert Widmann [Tue, 23 Jul 2019 04:56:44 +0000 (04:56 +0000)]
[LLVM-C] Improve Bindings to The Internalize Pass

Summary: Adds a binding to the internalize pass that allows the caller to pass a function pointer that acts as the visibility-preservation predicate.  Previously, one could only pass an unsigned value (not LLVMBool?) that directed the pass to consider "main" or not.

Reviewers: whitequark, deadalnix, harlanhaskins

Reviewed By: whitequark, harlanhaskins

Subscribers: kren1, hiraditya, llvm-commits, harlanhaskins

Tags: #llvm

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

llvm-svn: 366777

5 years agoImplement most of P1612R1: Relocate endian. Moves the std::endian functionality...
Marshall Clow [Tue, 23 Jul 2019 04:20:19 +0000 (04:20 +0000)]
Implement most of P1612R1: Relocate endian.  Moves the std::endian functionality from 'type-traits' to 'bit'. No other change. The reason that this is 'partial' is that P1621 also recommends a feature-test macro, but I don't have the value for that one yet. In a month or so, I'll add that

llvm-svn: 366776

5 years ago[PowerPC] Replace float load/store pair with integer load/store pair when it's only...
Zi Xuan Wu [Tue, 23 Jul 2019 03:34:40 +0000 (03:34 +0000)]
[PowerPC] Replace float load/store pair with integer load/store pair when it's only used in load/store

Replace float load/store pair with integer load/store pair when it's only used in load/store,
because float load/store instructions cost more cycles then integer load/store.

A typical scenario is when there is a call with more than 13 float arguments passing, we need pass them by stack.
So we need a load/store pair to do such memory operation if the variable is global variable.

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

llvm-svn: 366775

5 years agoInline function call into assert to fix unused variable warning.
Richard Trieu [Tue, 23 Jul 2019 03:10:06 +0000 (03:10 +0000)]
Inline function call into assert to fix unused variable warning.

llvm-svn: 366774

5 years agoMove variable out from debug only section.
Richard Trieu [Tue, 23 Jul 2019 02:59:15 +0000 (02:59 +0000)]
Move variable out from debug only section.

MFI is no longer just needed for an assert.  Move it out of the debug only
section to allow non-assert builds to be able to find it.

llvm-svn: 366773

5 years ago[llvm-lipo] Implement -info
Shoaib Meenai [Tue, 23 Jul 2019 00:42:03 +0000 (00:42 +0000)]
[llvm-lipo] Implement -info

Prints architecture type of all input files.

Patch by Anusha Basana <anusha.basana@gmail.com>

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

llvm-svn: 366772

5 years ago[lldb][test_suite] Fix skipIfTargetAndroid decorator
Alex Langford [Tue, 23 Jul 2019 00:41:00 +0000 (00:41 +0000)]
[lldb][test_suite] Fix skipIfTargetAndroid decorator

Summary:
Delete the duplicate func `skipIfTargetAndroid`
Fix the old one. It didn't work for missing an argument `bugnumber`, this somehow made the decorator failed

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

Patch by Wanyi Ye <kusmour@gmail.com>

llvm-svn: 366771

5 years ago[lldb][test_suite] skip tests of `libstdcpp` on Android and clean up
Alex Langford [Tue, 23 Jul 2019 00:28:26 +0000 (00:28 +0000)]
[lldb][test_suite] skip tests of `libstdcpp` on Android and clean up

Summary: Delete the android target from `libstdcpp` test category, since android no longer support libstdcxx

Reviewers: xiaobai, labath

Reviewed By: labath

Subscribers: srhines, lldb-commits

Tags: #lldb

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

llvm-svn: 366770

5 years agoFixing build error from commit 95cbc3d
Stefan Stipanovic [Mon, 22 Jul 2019 23:58:23 +0000 (23:58 +0000)]
Fixing build error from commit 95cbc3d

[Attributor] Liveness analysis.

Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
Right now we are only looking at noreturn calls.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, llvm-commits

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

llvm-svn: 366769

5 years ago[Logging] Replace LogIfAnyCategoriesSet with LLDB_LOG.
Jonas Devlieghere [Mon, 22 Jul 2019 23:48:01 +0000 (23:48 +0000)]
[Logging] Replace LogIfAnyCategoriesSet with LLDB_LOG.

This patch removes any remaining instances of LogIfAnyCategoriesSet and
replaces them with the LLDB_LOG macro. This in turn made it possible to
make Log::VAPrintf and Log::VAError private.

llvm-svn: 366768

5 years agoRestore tests for lldb-server and lldb-vscode removed at rL366590
Antonio Afonso [Mon, 22 Jul 2019 23:35:05 +0000 (23:35 +0000)]
Restore tests for lldb-server and lldb-vscode removed at rL366590

Summary: This was removed here rL366590 by accident.

Reviewers: xiaobai, jfb

Reviewed By: xiaobai

Subscribers: dexonsmith, srhines, krytarowski, jfb, lldb-commits

Tags: #lldb

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

llvm-svn: 366766

5 years ago[Statepoints] Fix a bug in statepoint lowering for functions w/no-realign-stack
Philip Reames [Mon, 22 Jul 2019 23:33:18 +0000 (23:33 +0000)]
[Statepoints] Fix a bug in statepoint lowering for functions w/no-realign-stack

We were silently using the ABI alignment for all of the stores generated for deopt and gc values.  We'd gotten the alignment of the stack slot itself properly reduced (via MachineFrameInfo's clamping), but having the MMO on the store incorrect was enough for us to generate an aligned store to a unaligned location.

The simplest fix would have been to just pass the alignment to the helper function, but once we do that, the helper function doesn't really help.  So, inline it and directly call the MMO version of DAG.getStore with a properly constructed MMO.

Note that there's a separate performance possibility here.  Even if we *can* realign stacks, we probably don't *want to* if all of the stores are in slowpaths.  But that's a later patch, if at all.  :)

llvm-svn: 366765

5 years agoFix pointer width in test from r366754.
Peter Collingbourne [Mon, 22 Jul 2019 23:32:41 +0000 (23:32 +0000)]
Fix pointer width in test from r366754.

llvm-svn: 366764

5 years agogn build: Wrap two comments to 80 columns
Nico Weber [Mon, 22 Jul 2019 23:23:38 +0000 (23:23 +0000)]
gn build: Wrap two comments to 80 columns

llvm-svn: 366763

5 years ago[DWARF] Add more error handling to debug line parser.
Jonas Devlieghere [Mon, 22 Jul 2019 23:23:34 +0000 (23:23 +0000)]
[DWARF] Add more error handling to debug line parser.

This patch exnteds the error handling in the debug line parser to get
rid of the existing MD5 assertion. I want to reuse the debug line parser
from LLVM in LLDB where we cannot crash on invalid input.

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

llvm-svn: 366762

5 years ago[NFC][clang] Refactor getCompilationPhases()+Types.def step 1.
Puyan Lotfi [Mon, 22 Jul 2019 23:10:10 +0000 (23:10 +0000)]
[NFC][clang] Refactor getCompilationPhases()+Types.def step 1.

Moves list of phases into Types.def table: Currently Types.def contains a
table of strings that are used to assemble a list of compilation phases to be
setup in the clang driver's jobs pipeline. This change makes it so that the table
itself contains the list of phases. A subsequent patch will remove the strings.

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

llvm-svn: 366761

5 years ago[Statepoints] Add a test which shows a miscompile with no-realign-stacks
Philip Reames [Mon, 22 Jul 2019 23:08:56 +0000 (23:08 +0000)]
[Statepoints] Add a test which shows a miscompile with no-realign-stacks

llvm-svn: 366760

5 years agoRevert "Fixing build error from commit 9285295."
Stefan Stipanovic [Mon, 22 Jul 2019 22:55:05 +0000 (22:55 +0000)]
Revert "Fixing build error from commit 9285295."

This reverts commit 95cbc3da8871f43c1ce2b2926afaedcd826202b1.

llvm-svn: 366759

5 years agollvm-objcopy/test: add REQUIRES: shell for use of umask
David Blaikie [Mon, 22 Jul 2019 22:23:52 +0000 (22:23 +0000)]
llvm-objcopy/test: add REQUIRES: shell for use of umask

(follow-up to r365162)

llvm-svn: 366755

5 years agoAnalysis: Don't look through aliases when simplifying GEPs.
Peter Collingbourne [Mon, 22 Jul 2019 22:13:46 +0000 (22:13 +0000)]
Analysis: Don't look through aliases when simplifying GEPs.

It is not safe in general to replace an alias in a GEP with its aliasee
if the alias can be replaced with another definition (i.e. via strong/weak
resolution (linkonce_odr) or via symbol interposition (default visibility
in ELF)) while the aliasee cannot. An example of how this can go wrong is
in the included test case.

I was concerned that this might be a load-bearing misoptimization (it's
possible for us to use aliases to share vtables between base and derived
classes, and on Windows, vtable symbols will always be aliases in RTTI
mode, so this change could theoretically inhibit trivial devirtualization
in some cases), so I built Chromium for Linux and Windows with and without
this change. The file sizes of the resulting binaries were identical, so it
doesn't look like this is going to be a problem.

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

llvm-svn: 366754

5 years agoFixing build error from commit 9285295.
Stefan Stipanovic [Mon, 22 Jul 2019 22:10:59 +0000 (22:10 +0000)]
Fixing build error from commit 9285295.

[Attributor] Liveness analysis.

Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
Right now we are only looking at noreturn calls.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, llvm-commits

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

llvm-svn: 366753