platform/upstream/llvm.git
6 years agoFix failing buildbots
Gabor Marton [Thu, 24 Jan 2019 15:42:20 +0000 (15:42 +0000)]
Fix failing buildbots

Related commit which caused the buildbots to fail:
rL352050

llvm-svn: 352055

6 years ago[CPU-Dispatch] Make pentium_iii_no_xmm_regs and pentium_iii alias.
Erich Keane [Thu, 24 Jan 2019 15:28:57 +0000 (15:28 +0000)]
[CPU-Dispatch] Make pentium_iii_no_xmm_regs and pentium_iii alias.

I discovered that in ICC (where this list comes from), that the two
pentium_iii versions were actually identical despite the two different
names (despite them implying a difference). Because of this, they ended
up having identical manglings, which obviously caused problems when used
together.

This patch makes pentium_iii_no_xmm_regs an alias for pentium_iii so
that it can still be used, but has the same meaning as ICC. However, we
still prohibit using the two together which is different (albeit better)
behavior.

Change-Id: I4f3c9a47e48490c81525c8a3d23ed4201921b288
llvm-svn: 352054

6 years ago[SelectionDAGBuilder] Fuse inline asm input operand loops passes. NFCI.
Nirav Dave [Thu, 24 Jan 2019 15:15:32 +0000 (15:15 +0000)]
[SelectionDAGBuilder] Fuse inline asm input operand loops passes. NFCI.

llvm-svn: 352053

6 years ago[Docs] Add information about unit tests to the testing guide
Michael Platings [Thu, 24 Jan 2019 15:11:26 +0000 (15:11 +0000)]
[Docs] Add information about unit tests to the testing guide

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

llvm-svn: 352052

6 years ago[X86] Add missing isReg() guards in FixupSetCCs pass.
Nirav Dave [Thu, 24 Jan 2019 15:04:17 +0000 (15:04 +0000)]
[X86] Add missing isReg() guards in FixupSetCCs pass.

llvm-svn: 352051

6 years ago[ASTImporter] Fix inequality of functions with different attributes
Gabor Marton [Thu, 24 Jan 2019 14:47:44 +0000 (14:47 +0000)]
[ASTImporter] Fix inequality of functions with different attributes

Summary:
FunctionType::ExtInfo holds such properties of a function which are needed
mostly for code gen. We should not compare these bits when checking for
structural equivalency.
Checking ExtInfo caused false ODR errors during CTU analysis (of tmux).

Reviewers: a_sidorin, a.sidorin, shafik

Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits

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

llvm-svn: 352050

6 years ago[clangd] Clean the cache of file statuses on vscode-clangd when clangd crashes.
Haojian Wu [Thu, 24 Jan 2019 14:25:53 +0000 (14:25 +0000)]
[clangd] Clean the cache of file statuses on vscode-clangd when clangd crashes.

Summary:
Clear the cached file statuses, otherwise we will leave some garbage texts on
the status bar when clangd crashes.

Reviewers: ilya-biryukov

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

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

llvm-svn: 352049

6 years ago[x86] add tests for unpack shuffle lowering; NFC
Sanjay Patel [Thu, 24 Jan 2019 14:12:34 +0000 (14:12 +0000)]
[x86] add tests for unpack shuffle lowering; NFC

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

llvm-svn: 352048

6 years ago[Sema] Don't crash when recovering from a misspelled pseudo destructor call to an...
Bruno Ricci [Thu, 24 Jan 2019 13:52:47 +0000 (13:52 +0000)]
[Sema] Don't crash when recovering from a misspelled pseudo destructor call to an incomplete type.

When attempting to correct a misspelled pseudo destructor call as in:

struct Foo;
void foo(Foo *p) {
  p.~Foo();
}

a call is made in canRecoverDotPseudoDestructorCallsOnPointerObjects
to LookupDestructor without checking that the record has a definition.

This causes an assertion later in LookupSpecialMember which assumes that
the record has a definition.

Patch By Roman Zhikharevich!

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

Reviewed By: riccibruno

llvm-svn: 352047

6 years ago[CostModel][X86] Add SMUL fixed point cost tests
Simon Pilgrim [Thu, 24 Jan 2019 13:48:20 +0000 (13:48 +0000)]
[CostModel][X86] Add SMUL fixed point cost tests

llvm-svn: 352046

6 years ago[TTI] Add generic SADDO/SSUBO costs
Simon Pilgrim [Thu, 24 Jan 2019 13:36:45 +0000 (13:36 +0000)]
[TTI] Add generic SADDO/SSUBO costs

Added x86 scalar sadd_with_overflow/ssub_with_overflow costs.

llvm-svn: 352045

6 years ago[TTI] Add generic UADDSAT/USUBSAT costs
Simon Pilgrim [Thu, 24 Jan 2019 12:27:10 +0000 (12:27 +0000)]
[TTI] Add generic UADDSAT/USUBSAT costs

Add generic costs calculation for UADDSAT/USUBSAT intrinsics, this fallbacks to using generic costs for uadd_with_overflow/usub_with_overflow + a select.

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

llvm-svn: 352044

6 years ago[TTI] Add generic UADDO/USUBO costs
Simon Pilgrim [Thu, 24 Jan 2019 12:10:20 +0000 (12:10 +0000)]
[TTI] Add generic UADDO/USUBO costs

Added x86 scalar uadd_with_overflow/usub_with_overflow costs.

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

llvm-svn: 352043

6 years agoTest commit: fix typo.
Pierre Gousseau [Thu, 24 Jan 2019 11:44:24 +0000 (11:44 +0000)]
Test commit: fix typo.

llvm-svn: 352042

6 years agoRevert "[HotColdSplitting] Get DT and PDT from the pass manager."
Florian Hahn [Thu, 24 Jan 2019 11:22:08 +0000 (11:22 +0000)]
Revert "[HotColdSplitting] Get DT and PDT from the pass manager."

This reverts commit a6982414edf315c39ae93f3c3322476217119e99 (llvm-svn: 352036),
because it causes a memory leak in the pass manager. Failing bot

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/10351/steps/check-llvm%20asan/logs/stdio

llvm-svn: 352041

6 years ago[CodeComplete] [clangd] Fix crash on ValueDecl with a null type
Ilya Biryukov [Thu, 24 Jan 2019 10:41:43 +0000 (10:41 +0000)]
[CodeComplete] [clangd] Fix crash on ValueDecl with a null type

Reviewers: kadircet

Reviewed By: kadircet

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

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

llvm-svn: 352040

6 years agoFix python3 compability issue in clang binding
Serge Guelton [Thu, 24 Jan 2019 10:34:44 +0000 (10:34 +0000)]
Fix python3 compability issue in clang binding

The file contents could be of str type. Should use byte length instead
of str length, otherwise utf-8 encoded files may not get properly parsed
for completion.

Source issue: https://github.com/ncm2/ncm2-pyclang#2

Commited on behalf of `roxma'

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

llvm-svn: 352039

6 years ago[MIPS GlobalISel] Select zero extending and sign extending load
Petar Avramovic [Thu, 24 Jan 2019 10:27:21 +0000 (10:27 +0000)]
[MIPS GlobalISel] Select zero extending and sign extending load

Select zero extending and sign extending load for MIPS32.
Use size from MachineMemOperand to determine number of bytes to load.

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

llvm-svn: 352038

6 years ago[MIPS GlobalISel] Combine extending loads
Petar Avramovic [Thu, 24 Jan 2019 10:09:52 +0000 (10:09 +0000)]
[MIPS GlobalISel] Combine extending loads

Use CombinerHelper to combine extending load instructions.
G_LOAD combined with G_ZEXT, G_SEXT or G_ANYEXT gives G_ZEXTLOAD,
G_SEXTLOAD or G_LOAD with same type as def of extending instruction
respectively.
Similarly G_ZEXTLOAD combined with G_ZEXT gives G_ZEXTLOAD and
G_SEXTLOAD combined with G_SEXT gives G_SEXTLOAD with same type
as def of extending instruction.

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

llvm-svn: 352037

6 years ago[HotColdSplitting] Get DT and PDT from the pass manager.
Florian Hahn [Thu, 24 Jan 2019 09:44:52 +0000 (09:44 +0000)]
[HotColdSplitting] Get DT and PDT from the pass manager.

Instead of manually computing DT and PDT, we can get the from the pass
manager, which ideally has them already cached. With the new pass
manager, we could even preserve DT/PDT on a per function basis in a
module pass.

I think this also addresses the TODO about re-using the computed DTs for
BFI. IIUC, GetBFI will fetch the DT from the pass manager and when we
will fetch the cached version later.

Reviewers: vsk, hiraditya, tejohnson, thegameg, sebpop

Reviewed By: vsk

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

llvm-svn: 352036

6 years agoFix potential ODR vialation.
Haojian Wu [Thu, 24 Jan 2019 09:35:08 +0000 (09:35 +0000)]
Fix potential ODR vialation.

llvm-svn: 352035

6 years agoReapply: [mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag
Simon Atanasyan [Thu, 24 Jan 2019 09:13:14 +0000 (09:13 +0000)]
Reapply: [mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag

This reapplies commit r351987 with a failed test fix. Now the test
accepts both DW_OP_GNU_push_tls_address and DW_OP_form_tls_address
opcode.

Original commit message:
```
  This is a fix for a regression introduced by the rL348194 commit. In
  that change new type (MEK_DTPREL) of MipsMCExpr expression was added,
  but in some places of the code this type of expression considered as
  unexpected.

  This change fixes the bug. The MEK_DTPREL type of expression is used for
  marking TLS DIEExpr only and contains a regular sub-expression. Where we
  need to handle the expression, we retrieve the sub-expression and
  handle it in a common way.
```

llvm-svn: 352034

6 years agoRevert https://reviews.llvm.org/D56485.
Martin Liska [Thu, 24 Jan 2019 08:46:06 +0000 (08:46 +0000)]
Revert https://reviews.llvm.org/D56485.

llvm-svn: 352033

6 years agoAlways compare C++ typeinfo (based on libstdc++ implementation).
Martin Liska [Thu, 24 Jan 2019 08:25:36 +0000 (08:25 +0000)]
Always compare C++ typeinfo (based on libstdc++ implementation).

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

llvm-svn: 352032

6 years ago[extra] unit tests enable crash-recovery cases on FreeBSD
David Carlier [Thu, 24 Jan 2019 07:58:42 +0000 (07:58 +0000)]
[extra] unit tests enable crash-recovery cases on FreeBSD

Seems the previous statement does not hold up anymore.

Reviewers: steveire

Reviewed By: steveire

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

llvm-svn: 352031

6 years ago[SystemZ] Remember to reset the NoPHIs property on MF in createPHIsForSelects()
Jonas Paulsson [Thu, 24 Jan 2019 07:54:41 +0000 (07:54 +0000)]
[SystemZ]  Remember to reset the NoPHIs property on MF in createPHIsForSelects()

After creating new PHI instructions during isel pseudo expansion, the NoPHIs
property of MF should be reset in case it was previously set.

Review: Ulrich Weigand
llvm-svn: 352030

6 years ago[X86] Update SelectionDAGDumper to print the extension type and expanding flag for...
Craig Topper [Thu, 24 Jan 2019 07:51:34 +0000 (07:51 +0000)]
[X86] Update SelectionDAGDumper to print the extension type and expanding flag for masked loads. Add truncating and compressing for masked stores.

llvm-svn: 352029

6 years ago[X86] Add test cases for opportunities to fold a truncate and a masked store into...
Craig Topper [Thu, 24 Jan 2019 06:15:03 +0000 (06:15 +0000)]
[X86] Add test cases for opportunities to fold a truncate and a masked store into a truncating masked store.

llvm-svn: 352027

6 years ago[NFC] Add another failing test on LoopSimplifyCFG
Max Kazantsev [Thu, 24 Jan 2019 05:43:19 +0000 (05:43 +0000)]
[NFC] Add another failing test on LoopSimplifyCFG

llvm-svn: 352026

6 years agoReland r345009 "[DebugInfo] Generate debug information for labels."
Hsiangkai Wang [Thu, 24 Jan 2019 05:34:29 +0000 (05:34 +0000)]
Reland r345009 "[DebugInfo] Generate debug information for labels."

Generate DILabel metadata and call llvm.dbg.label after label
statement to associate the metadata with the label.

After fixing PR37395.
After fixing problems in LiveDebugVariables.
After fixing NULL symbol problems in AddressPool when enabling
split-dwarf-file.
After fixing PR39094.
After landing D54199 and D54465 to fix Chromium build failed.

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

llvm-svn: 352025

6 years ago[LoopSimplifyCFG] Fix inconsistency in live blocks markup
Max Kazantsev [Thu, 24 Jan 2019 05:20:29 +0000 (05:20 +0000)]
[LoopSimplifyCFG] Fix inconsistency in live blocks markup

When we choose whether or not we should mark block as dead, we have an
inconsistent logic in markup of live blocks.
- We take candidate IF its terminator branches on constant AND it is immediately
  in current loop;
- We mark successor live IF its terminator doesn't branch by constant OR it branches
  by constant and the successor is its always taken block.

What we are missing here is that when the terminator branches on a constant but is
not taken as a candidate because is it not immediately in the current loop, we will
mark only one (always taken) successor as live. Therefore, we do NOT do the actual
folding but may NOT mark one of the successors as live. So the result of markup is
wrong in this case, and we may then hit various asserts.

Thanks Jordan Rupprech for reporting this!

Differential Revision: https://reviews.llvm.org/D57095
Reviewed By: rupprecht

llvm-svn: 352024

6 years ago[NFC] Add a failing test on live block markup in term folding
Max Kazantsev [Thu, 24 Jan 2019 05:05:55 +0000 (05:05 +0000)]
[NFC] Add a failing test on live block markup in term folding

llvm-svn: 352023

6 years agoBreakpadRecords: Address post-commit feedback
Pavel Labath [Thu, 24 Jan 2019 04:17:59 +0000 (04:17 +0000)]
BreakpadRecords: Address post-commit feedback

Summary:
This addresses the issues raised in D56844. It removes the accessors from the
breakpad record structures by making the fields public. Also, I refactor the
UUID parsing code to remove hard-coded constants.

Reviewers: lemo

Subscribers: clayborg, lldb-commits

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

llvm-svn: 352021

6 years agoTemporarily deactivate tests; it fails on certain bots
Julian Lettner [Thu, 24 Jan 2019 03:51:01 +0000 (03:51 +0000)]
Temporarily deactivate tests; it fails on certain bots

llvm-svn: 352020

6 years agoDebugInfo: Use assembly label arithmetic for address pool size for easier reading...
David Blaikie [Thu, 24 Jan 2019 03:27:57 +0000 (03:27 +0000)]
DebugInfo: Use assembly label arithmetic for address pool size for easier reading/editing

Recommits 350048, 350050 That broke buildbots because of some typos in
the test case.

llvm-svn: 352019

6 years ago[CMake][Fuchsia] Enable hermetic static libc++abi for Fuchsia
Petr Hosek [Thu, 24 Jan 2019 03:24:37 +0000 (03:24 +0000)]
[CMake][Fuchsia] Enable hermetic static libc++abi for Fuchsia

Similarly to libc++, we want to use hermetic static libc++abi.

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

llvm-svn: 352018

6 years ago[libcxxabi] Support building hermetic static library
Petr Hosek [Thu, 24 Jan 2019 03:18:29 +0000 (03:18 +0000)]
[libcxxabi] Support building hermetic static library

This is useful when the static libc++abi library is being linked into
shared libraries that may be used in with other shared libraries that
use different C++ library. We want to avoid avoid exporting libc++abi
or libc++ symbols in those cases. This achieved by a new CMake option
which can be enabled by libc++abi vendors as needed.

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

llvm-svn: 352017

6 years ago[libunwind] Don't abort if encoutering invalid .eh_frame_hdr
Petr Hosek [Thu, 24 Jan 2019 03:04:42 +0000 (03:04 +0000)]
[libunwind] Don't abort if encoutering invalid .eh_frame_hdr

Recent Linux kernel release has introduced a bug as part of the ORC
rollout where the vDSO has a valid .eh_frame section, but it's missing
the .eh_frame_hdr section and GNU_EH_FRAME segment has zero size. This
causes libunwind to abort which breaks programs that use libunwind.

The other unwinder implementation (libgcc, non-gnu) instead silently
bail out unless being compiled as debug. This change modifies libunwind
to use the same strategy.

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

llvm-svn: 352016

6 years agoRevert "[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI"
Ana Pazos [Thu, 24 Jan 2019 03:00:26 +0000 (03:00 +0000)]
Revert "[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI"

This reverts commit ccfb060ecb5d7e18ea729455660484d576bde2cc.

Some tests need to to fixed before reapplying this commit.

llvm-svn: 352014

6 years ago[ubsan] Fix test when isPICDefault() returns false after rCTE352003
Fangrui Song [Thu, 24 Jan 2019 02:56:34 +0000 (02:56 +0000)]
[ubsan] Fix test when isPICDefault() returns false after rCTE352003

llvm-svn: 352013

6 years agoImprove diagnostic for -fvisibility mismatch between module/PCH build
Richard Smith [Thu, 24 Jan 2019 02:41:46 +0000 (02:41 +0000)]
Improve diagnostic for -fvisibility mismatch between module/PCH build
and use.

llvm-svn: 352011

6 years ago[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI
Ana Pazos [Thu, 24 Jan 2019 02:41:40 +0000 (02:41 +0000)]
[RISCV] Set isAsCheapAsAMove for ADDI, ORI, XORI, LUI

Summary:
Affected instructions:
PseudoLI simplest form (ADDI with X0)
ALU operations with immediate (they do not set status flag - ADDI, ORI, XORI)

Reviewers: asb

Reviewed By: asb

Subscribers: shiva0217, rkruppe, kito-cheng, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, zzheng, edward-jones, mgrang, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei

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

llvm-svn: 352010

6 years agoSkip test on clang <8 instead of 7
Adrian Prantl [Thu, 24 Jan 2019 02:37:28 +0000 (02:37 +0000)]
Skip test on clang <8 instead of 7

llvm-svn: 352009

6 years ago[RISCV] Set isReMaterializable for ORI, XORI
Ana Pazos [Thu, 24 Jan 2019 02:31:23 +0000 (02:31 +0000)]
[RISCV] Set isReMaterializable for ORI, XORI

Reviewers: asb

Reviewed By: asb

Subscribers: asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei

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

llvm-svn: 352008

6 years agoChange a couple of '&' to addressof(). NFC
Marshall Clow [Thu, 24 Jan 2019 02:02:50 +0000 (02:02 +0000)]
Change a couple of '&' to addressof(). NFC

llvm-svn: 352007

6 years agoUncomment the entire test, but mark as XFAIL on linux-gnu because it uses locales...
Marshall Clow [Thu, 24 Jan 2019 01:52:56 +0000 (01:52 +0000)]
Uncomment the entire test, but mark as XFAIL on linux-gnu because it uses locales that aren't generally available there, similar to the other regex tests

llvm-svn: 352006

6 years ago[docs] Remove extra character from git URL in Getting Started guide.
Douglas Yung [Thu, 24 Jan 2019 01:22:32 +0000 (01:22 +0000)]
[docs] Remove extra character from git URL in Getting Started guide.

llvm-svn: 352005

6 years agollvm-symbolizer: Extract individual test cases now that it's easier to use directly...
David Blaikie [Thu, 24 Jan 2019 01:19:17 +0000 (01:19 +0000)]
llvm-symbolizer: Extract individual test cases now that it's easier to use directly (without a piped input file)

Pulling out the split-dwarf tests by way of example of how I think
llvm-symbolizer should be tested going forward. Open to
debate/discussion, though.

llvm-svn: 352004

6 years ago[Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn...
Julian Lettner [Thu, 24 Jan 2019 01:06:19 +0000 (01:06 +0000)]
[Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

Summary:
UBSan wants to detect when unreachable code is actually reached, so it
adds instrumentation before every `unreachable` instruction. However,
the optimizer will remove code after calls to functions marked with
`noreturn`. To avoid this UBSan removes `noreturn` from both the call
instruction as well as from the function itself. Unfortunately, ASan
relies on this annotation to unpoison the stack by inserting calls to
`_asan_handle_no_return` before `noreturn` functions. This is important
for functions that do not return but access the the stack memory, e.g.,
unwinder functions *like* `longjmp` (`longjmp` itself is actually
"double-proofed" via its interceptor). The result is that when ASan and
UBSan are combined, the `noreturn` attributes are missing and ASan
cannot unpoison the stack, so it has false positives when stack
unwinding is used.

Changes:
  # UBSan now adds the `expect_noreturn` attribute whenever it removes
    the `noreturn` attribute from a function
  # ASan additionally checks for the presence of this attribute

Generated code:
```
call void @__asan_handle_no_return    // Additionally inserted to avoid false positives
call void @longjmp
call void @__asan_handle_no_return
call void @__ubsan_handle_builtin_unreachable
unreachable
```

The second call to `__asan_handle_no_return` is redundant. This will be
cleaned up in a follow-up patch.

rdar://problem/40723397

Reviewers: delcypher, eugenis

Tags: #sanitizers

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

llvm-svn: 352003

6 years agogn build: Merge r351320 (the 9.0.0 version bump)
Nico Weber [Thu, 24 Jan 2019 01:00:52 +0000 (01:00 +0000)]
gn build: Merge r351320 (the 9.0.0 version bump)

llvm-svn: 352002

6 years agoUpdate entry count for cold calls
David Callahan [Thu, 24 Jan 2019 00:55:23 +0000 (00:55 +0000)]
Update entry count for cold calls

Summary:
Profile sample files include the number of times each entry or inlined
call site is sampled. This is translated into the entry count metadta
on functions.

When sample data is being read, if a call site that was inlined
in the sample program is considered cold and not inlined, then
the entry count of the out-of-line functions does not reflect
the current compilation.

In this patch, we note call sites where the function was not inlined
and as a last action of the sample profile loading, we update the
called function's entry count to reflect the calls from these
call sites which are not included in the profile file.

Reviewers: danielcdh, wmi, Kader, modocache

Reviewed By: wmi

Subscribers: davidxl, eraman, llvm-commits

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

llvm-svn: 352001

6 years ago[llvm-symbolizer] Add support for -i and -inlines as aliases for -inlining
Douglas Yung [Thu, 24 Jan 2019 00:34:09 +0000 (00:34 +0000)]
[llvm-symbolizer] Add support for -i and -inlines as aliases for -inlining

This change adds two options, -i and -inlines as aliases for the -inlining option to llvm-symbolizer to improve compatibility with the GNU addr2line utility which accepts these options.

It also modifies existing tests that use -inlining to exercise these new aliases as well.

This fixes PR40073.

Reviewed by: jhenderson, Quolyk, ruiu

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

llvm-svn: 351999

6 years agoRevert "[mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag"
Amara Emerson [Thu, 24 Jan 2019 00:24:59 +0000 (00:24 +0000)]
Revert "[mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag"

This reverts commit r351987 as it broke some bots.

llvm-svn: 351998

6 years ago[Sema] Fix Modified Type in address_space AttributedType
Leonard Chan [Thu, 24 Jan 2019 00:11:35 +0000 (00:11 +0000)]
[Sema] Fix Modified Type in address_space AttributedType

This is a fix for https://reviews.llvm.org/D51229 where we pass the
address_space qualified type as the modified type of an AttributedType. This
change now instead wraps the AttributedType with either the address_space
qualifier or a DependentAddressSpaceType.

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

llvm-svn: 351997

6 years ago[llvm] Clarify responsiblity of some of DILocation discriminator APIs
Mircea Trofin [Thu, 24 Jan 2019 00:10:25 +0000 (00:10 +0000)]
[llvm] Clarify responsiblity of some of DILocation discriminator APIs

Summary:
Renamed setBaseDiscriminator to cloneWithBaseDiscriminator, to match
similar APIs. Also changed its behavior to copy over the other
discriminator components, instead of eliding them.

Renamed cloneWithDuplicationFactor to
cloneByMultiplyingDuplicationFactor, which more closely matches what
this API does.

Reviewers: dblaikie, wmi

Reviewed By: dblaikie

Subscribers: zzheng, llvm-commits

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

llvm-svn: 351996

6 years agoMark another test as flaky
Kamil Rytarowski [Wed, 23 Jan 2019 23:24:43 +0000 (23:24 +0000)]
Mark another test as flaky

Reported on the NetBSD 8 buildbot.

llvm-svn: 351995

6 years agoApply D28248: 'Work around GCC PR37804'. Thanks to mdaniels for the patch
Marshall Clow [Wed, 23 Jan 2019 23:06:18 +0000 (23:06 +0000)]
Apply D28248: 'Work around GCC PR37804'. Thanks to mdaniels for the patch

llvm-svn: 351993

6 years ago[ADT] Notify ilist traits about in-list transfers
Reid Kleckner [Wed, 23 Jan 2019 22:59:52 +0000 (22:59 +0000)]
[ADT] Notify ilist traits about in-list transfers

Summary:
Previously no client of ilist traits has needed to know about transfers
of nodes within the same list, so as an optimization, ilist doesn't call
transferNodesFromList in that case. However, now there are clients that
want to use ilist traits to cache instruction ordering information to
optimize dominance queries of instructions in the same basic block.
This change updates the existing ilist traits users to detect in-list
transfers and do nothing in that case.

After this change, we can start caching instruction ordering information
in LLVM IR data structures. There are two main ways to do that:
- by putting an order integer into the Instruction class
- by maintaining order integers in a hash table on BasicBlock

I plan to implement and measure both, but I wanted to commit this change
first to enable other out of tree ilist clients to implement this
optimization as well.

Reviewers: lattner, hfinkel, chandlerc

Subscribers: hiraditya, dexonsmith, llvm-commits

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

llvm-svn: 351992

6 years ago[test] Define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST in msvc_stdlib_force_include.hpp
Casey Carter [Wed, 23 Jan 2019 22:49:44 +0000 (22:49 +0000)]
[test] Define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST in msvc_stdlib_force_include.hpp

...so the tests under test/std/utilities/any continue to
compile with MSVC's standard library.

While we're here, let's test >C++17 features when _HAS_CXX20.

llvm-svn: 351991

6 years ago[LV][VPlan] Change to implement VPlan based predication for
Hideki Saito [Wed, 23 Jan 2019 22:43:12 +0000 (22:43 +0000)]
[LV][VPlan] Change to implement VPlan based predication for
VPlan-native path

Context: Patch Series #2 for outer loop vectorization support in LV
using VPlan. (RFC:
http://lists.llvm.org/pipermail/llvm-dev/2017-December/119523.html).

Patch series #2 checks that inner loops are still trivially lock-step
among all vector elements. Non-loop branches are blindly assumed as
divergent.

Changes here implement VPlan based predication algorithm to compute
predicates for blocks that need predication. Predicates are computed
for the VPLoop region in reverse post order. A block's predicate is
computed as OR of the masks of all incoming edges. The mask for an
incoming edge is computed as AND of predecessor block's predicate and
either predecessor's Condition bit or NOT(Condition bit) depending on
whether the edge from predecessor block to the current block is true
or false edge.

Reviewers: fhahn, rengolin, hsaito, dcaballe

Reviewed By: fhahn

Patch by Satish Guggilla, thanks!

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

llvm-svn: 351990

6 years agohwasan: Read shadow address from ifunc if we don't need a frame record.
Peter Collingbourne [Wed, 23 Jan 2019 22:39:11 +0000 (22:39 +0000)]
hwasan: Read shadow address from ifunc if we don't need a frame record.

This saves a cbz+cold call in the interceptor ABI, as well as a realign
in both ABIs, trading off a dcache entry against some branch predictor
entries and some code size.

Unfortunately the functionality is hidden behind a flag because ifunc is
known to be broken on static binaries on Android.

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

llvm-svn: 351989

6 years agoMark another test as flaky
Kamil Rytarowski [Wed, 23 Jan 2019 22:35:57 +0000 (22:35 +0000)]
Mark another test as flaky

Reported on the NetBSD 8 buildbot.

llvm-svn: 351988

6 years ago[mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag
Simon Atanasyan [Wed, 23 Jan 2019 22:02:53 +0000 (22:02 +0000)]
[mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag

This is a fix for a regression introduced by the rL348194 commit. In
that change new type (MEK_DTPREL) of MipsMCExpr expression was added,
but in some places of the code this type of expression considered as
unexpected.

This change fixes the bug. The MEK_DTPREL type of expression is used for
marking TLS DIEExpr only and contains a regular sub-expression. Where we
need to handle the expression, we retrieve the sub-expression and
handle it in a common way.

llvm-svn: 351987

6 years agoRevert "[PPC64] Sort .toc sections accessed with small code model ..."
Sean Fertile [Wed, 23 Jan 2019 21:46:28 +0000 (21:46 +0000)]
Revert "[PPC64] Sort .toc sections accessed with small code model ..."

This reverts commit ca87c57a3aa4770c9cf0defd4b2feccbc342ee93.
Added test fails on several windows buildbots.

llvm-svn: 351985

6 years agoCorrect mark for flaky tests
Kamil Rytarowski [Wed, 23 Jan 2019 21:45:02 +0000 (21:45 +0000)]
Correct mark for flaky tests

Add missing trailing dot.

llvm-svn: 351983

6 years agoRevert r351938 "[ARM] Alter the register allocation order for minsize on Thumb2"
Reid Kleckner [Wed, 23 Jan 2019 21:10:48 +0000 (21:10 +0000)]
Revert r351938 "[ARM] Alter the register allocation order for minsize on Thumb2"

This change caused fatal backend errors when compiling a file in libvpx
for Android.

llvm-svn: 351979

6 years ago[PPC64] Sort .toc sections accessed with small code model relocs close to .got.
Sean Fertile [Wed, 23 Jan 2019 21:04:03 +0000 (21:04 +0000)]
[PPC64] Sort .toc sections accessed with small code model relocs close to .got.

Small code model global variable access on PPC64 has a very limited range of
addressing. The instructions the relocations are used on add an offset in the
range [-0x8000, 0x7FFC] to the toc pointer which points to .got +0x8000, giving
an addressable range of [.got, .got + 0xFFFC]. While user code can be recompiled
with medium and large code models when the binary grows too large for small code
model, there are small code model relocations in the crt files and libgcc.a
which are typically shipped with the distros, and the ABI dictates that linkers
must allow linking of relocatable object files using different code models.

To minimze the chance of relocation overflow, any file that contains a small
code model relocation should have its .toc section placed closer to the .got
then any .toc from a file without small code model relocations.

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

llvm-svn: 351978

6 years ago[Documentation] Fix problem in docs/SafeStack.rst introduced in r351976.
Eugene Zelenko [Wed, 23 Jan 2019 20:51:06 +0000 (20:51 +0000)]
[Documentation] Fix problem in docs/SafeStack.rst introduced in r351976.

llvm-svn: 351977

6 years ago[Documentation] Use HTTPS whenever possible
Eugene Zelenko [Wed, 23 Jan 2019 20:39:07 +0000 (20:39 +0000)]
[Documentation] Use HTTPS whenever possible

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

llvm-svn: 351976

6 years ago[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target.
Alexey Bataev [Wed, 23 Jan 2019 18:59:54 +0000 (18:59 +0000)]
[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target.

Enable full support for the debug info.

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

llvm-svn: 351974

6 years agoRevert "[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target."
Alexey Bataev [Wed, 23 Jan 2019 18:48:36 +0000 (18:48 +0000)]
Revert "[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target."

This reverts commit r351972. Some pieces of the patch was not applied
correctly.

llvm-svn: 351973

6 years ago[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target.
Alexey Bataev [Wed, 23 Jan 2019 18:28:59 +0000 (18:28 +0000)]
[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target.

Enable full support for the debug info. Recommit to fix the emission of
the not required closing brace.

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

llvm-svn: 351972

6 years agoCommit D11348: 'Win32 support: wcsnrtombs and mbsnrtowcs don't handle null output...
Marshall Clow [Wed, 23 Jan 2019 18:27:22 +0000 (18:27 +0000)]
Commit D11348: 'Win32 support: wcsnrtombs and mbsnrtowcs don't handle null output buffers correctly' which has been hanging around for a long time

llvm-svn: 351971

6 years ago[X86] Autogenerate complete checks. NFC
Craig Topper [Wed, 23 Jan 2019 18:25:49 +0000 (18:25 +0000)]
[X86] Autogenerate complete checks. NFC

llvm-svn: 351970

6 years agoMerge similar target diagnostics for interrupt attribute into one; NFC
Aaron Ballman [Wed, 23 Jan 2019 18:02:17 +0000 (18:02 +0000)]
Merge similar target diagnostics for interrupt attribute into one; NFC

Patch by Kristina Bessonova!

llvm-svn: 351969

6 years ago[llvm-symbolizer] Improve compatibility of --functions with GNU addr2line
James Henderson [Wed, 23 Jan 2019 17:27:48 +0000 (17:27 +0000)]
[llvm-symbolizer] Improve compatibility of --functions with GNU addr2line

This fixes https://bugs.llvm.org/show_bug.cgi?id=40072.

GNU addr2line's --functions switch is off by default, has a short alias
of -f, and does not take an argument. This patch changes llvm-symbolizer
to allow the second and third point (changing the default behaviour may
have negative impacts on users). If the option is missing a value, it
now treats it as "linkage".

This change does cause one previously valid command-line to behave
differently. Before --functions <value> was accepted, but now only
--functions=<value> is allowed (as well as --functions). The old
behaviour will result in the value being treated as a positional
argument.

The previous testing for --functions=short has been pulled out into a
new test that also tests the other accepted values and option formats.

Reviewed by: ruiu

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

llvm-svn: 351968

6 years agoRevert "[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target."
Haojian Wu [Wed, 23 Jan 2019 16:39:57 +0000 (16:39 +0000)]
Revert "[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target."

This reverts commit r351846.

This patch may generate illegal assembly code, see

```
$ ./bin/clang -cc1 -triple nvptx64-nvidia-cuda -aux-triple x86_64-grtev4-linux-gnu -S -disable-free -disable-llvm-verifier -discard-value-names -main-file-name new.cc -mrelocation-model pic -pic-level 2 -mthread-model posix -fmerge-all-constants -mdisable-fp-elim -relaxed-aliasing -no-integrated-as -mpie-copy-relocations -munwind-tables -fcuda-is-device -target-feature +ptx60 -target-cpu sm_35 -dwarf-column-info -debug-info-kind=line-directives-only -dwarf-version=2 -debugger-tuning=gdb -o empty.s -x cuda empty.cc
$  cat empty.s
//
// Generated by LLVM NVPTX Back-End
//

.version 6.0
.target sm_35
.address_size 64

}
```

llvm-svn: 351966

6 years ago[MC][X86] Correctly model additional operand latency caused by transfer delays from...
Andrea Di Biagio [Wed, 23 Jan 2019 16:35:07 +0000 (16:35 +0000)]
[MC][X86] Correctly model additional operand latency caused by transfer delays from the integer to the floating point unit.

This patch adds a new ReadAdvance definition named ReadInt2Fpu.
ReadInt2Fpu allows x86 scheduling models to accurately describe delays caused by
data transfers from the integer unit to the floating point unit.
ReadInt2Fpu currently defaults to a delay of zero cycles (i.e. no delay) for all
x86 models excluding BtVer2. That means, this patch is only a functional change
for the Jaguar cpu model only.

Tablegen definitions for instructions (V)PINSR* have been updated to account for
the new ReadInt2Fpu. That read is mapped to the the GPR input operand.
On Jaguar, int-to-fpu transfers are modeled as a +6cy delay. Before this patch,
that extra delay was added to the opcode latency. In practice, the insert opcode
only executes for 1cy. Most of the actual latency is actually contributed by the
so-called operand-latency. According to the AMD SOG for family 16h, (V)PINSR*
latency is defined by expression f+1, where f is defined as a forwarding delay
from the integer unit to the fpu.

When printing instruction latency from MCA (see InstructionInfoView.cpp) and LLC
(only when flag -print-schedule is speified), we now need to account for any
extra forwarding delays. We do this by checking if scheduling classes declare
any negative ReadAdvance entries. Quoting a code comment in TargetSchedule.td:
"A negative advance effectively increases latency, which may be used for
cross-domain stalls". When computing the instruction latency for the purpose of
our scheduling tests, we now add any extra delay to the formula. This avoids
regressing existing codegen and mca schedule tests. It comes with the cost of an
extra (but very simple) hook in MCSchedModel.

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

llvm-svn: 351965

6 years ago[llvm-readelf] Don't suppress static symbol table with --dyn-symbols + --symbols
James Henderson [Wed, 23 Jan 2019 16:15:39 +0000 (16:15 +0000)]
[llvm-readelf] Don't suppress static symbol table with --dyn-symbols + --symbols

In r287786, a bug was introduced into llvm-readelf where it didn't print
the static symbol table if both --symbols and --dyn-symbols were
specified, even if there was no dynamic symbol table. This is obviously
incorrect.

This patch fixes this issue, by delegating the decision of which symbol
tables should be printed to the final dumper, rather than trying to
decide in the command-line option handling layer. The decision was made
to follow the approach taken in this patch because the LLVM style dumper
uses a different order to the original GNU style behaviour (and GNU
readelf) for ELF output. Other approaches resulted in behaviour changes
for other dumpers which felt wrong. In particular, I wanted to avoid
changing the order of the output for --symbols --dyn-symbols for LLVM
style, keep what is emitted by --symbols unchanged for all dumpers, and
avoid having different orders of .dynsym and .symtab dumping for GNU
"--symbols" and "--symbols --dyn-symbols".

Reviewed by: grimar, rupprecht

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

llvm-svn: 351960

6 years agoFix indentation. NFCI.
Simon Pilgrim [Wed, 23 Jan 2019 16:01:19 +0000 (16:01 +0000)]
Fix indentation. NFCI.

llvm-svn: 351958

6 years ago[IR] Match intrinsic parameter by scalar/vectorwidth
Simon Pilgrim [Wed, 23 Jan 2019 16:00:22 +0000 (16:00 +0000)]
[IR] Match intrinsic parameter by scalar/vectorwidth

This patch replaces the existing LLVMVectorSameWidth matcher with LLVMScalarOrSameVectorWidth.

The matching args must be either scalars or vectors with the same number of elements, but in either case the scalar/element type can differ, specified by LLVMScalarOrSameVectorWidth.

I've updated the _overflow intrinsics to demonstrate this - allowing it to return a i1 or <N x i1> overflow result, matching the scalar/vectorwidth of the other (add/sub/mul) result type.

The masked load/store/gather/scatter intrinsics have also been updated to use this, although as we specify the reference type to be llvm_anyvector_ty we guarantee the mask will be <N x i1> so no change in behaviour

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

llvm-svn: 351957

6 years ago[Hexagon] Remove incorrect bit negation
Krzysztof Parzyszek [Wed, 23 Jan 2019 15:36:33 +0000 (15:36 +0000)]
[Hexagon] Remove incorrect bit negation

llvm-svn: 351956

6 years ago[AArch64] Fix out of bounds strlen
Benjamin Kramer [Wed, 23 Jan 2019 14:51:21 +0000 (14:51 +0000)]
[AArch64] Fix out of bounds strlen

CFIInst is not zero-terminated. This is one of more annoying functional
differences between StringRef and ArrayRef.

Found by asan.

llvm-svn: 351955

6 years agoRe-land rL322538 "Add a value_type to ArrayRef."
Clement Courbet [Wed, 23 Jan 2019 14:20:59 +0000 (14:20 +0000)]
Re-land rL322538 "Add a value_type to ArrayRef."

llvm-svn: 351954

6 years agoMove saturated arithmetic intrinsics to other integer intrinsics. NFCI.
Simon Pilgrim [Wed, 23 Jan 2019 13:49:10 +0000 (13:49 +0000)]
Move saturated arithmetic intrinsics to other integer intrinsics. NFCI.

They were in the floating point group.

llvm-svn: 351953

6 years agoDisable test better.
Nico Weber [Wed, 23 Jan 2019 13:43:42 +0000 (13:43 +0000)]
Disable test better.

llvm-svn: 351952

6 years ago[llvm-objdump] - Move common code to a new printRelocation() helper. NFC.
George Rimar [Wed, 23 Jan 2019 13:39:12 +0000 (13:39 +0000)]
[llvm-objdump] - Move common code to a new printRelocation() helper. NFC.

This extracts the common code for printing relocations into a new helper function.

llvm-svn: 351951

6 years ago[AMDGPU] With XNACK, cannot clause a load with result coalesced with operand
Tim Renouf [Wed, 23 Jan 2019 13:38:06 +0000 (13:38 +0000)]
[AMDGPU] With XNACK, cannot clause a load with result coalesced with operand

Summary:
With XNACK, an smem load whose result is coalesced with an operand (thus
it overwrites its own operand) cannot appear in a clause, because some
other instruction might XNACK and restart the whole clause.

The clause breaker already realized that an smem that overwrites an
operand cannot appear in a clause, and broke the clause. The problem
that this commit fixes is that the SIFormMemoryClauses optimization
formed a bundle with early clobber, which caused the earlier code that
set up the coalesced operand to be removed as dead.

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

Change-Id: I703c4d5b0bf7d6060222bec491f45c18bb3c0016
llvm-svn: 351950

6 years agoDisable test added in r351916.
Nico Weber [Wed, 23 Jan 2019 12:35:08 +0000 (12:35 +0000)]
Disable test added in r351916.

It doesn't pass on Windows:
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/3627

FAIL: lld :: ELF/stdout.s (1521 of 1966)
******************** TEST 'lld :: ELF/stdout.s' FAILED ********************
Script:
--
: 'RUN: at line 3';   C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\llvm-mc.EXE -filetype=obj -triple=x86_64-unknown-linux C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\lld\test\ELF\stdout.s -o C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o
: 'RUN: at line 4';   c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\ld.lld.EXE C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o -o - > C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1
: 'RUN: at line 5';   C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\llvm-objdump.EXE -d C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1 | C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\FileCheck.EXE C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\lld\test\ELF\stdout.s
: 'RUN: at line 10';   c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\ld.lld.EXE C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o -o C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp2
: 'RUN: at line 11';   diff C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1 C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp2
--
Exit Code: 1

Command Output (stdout):
--
$ ":" "RUN: at line 3"
$ "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\llvm-mc.EXE" "-filetype=obj" "-triple=x86_64-unknown-linux" "C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\lld\test\ELF\stdout.s" "-o" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o"
$ ":" "RUN: at line 4"
$ "c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\ld.lld.EXE" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o" "-o" "-"
$ ":" "RUN: at line 5"
$ "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\llvm-objdump.EXE" "-d" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1"
$ "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\FileCheck.EXE" "C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\lld\test\ELF\stdout.s"
$ ":" "RUN: at line 10"
$ "c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\ld.lld.EXE" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp.o" "-o" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp2"
$ ":" "RUN: at line 11"
$ "diff" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1" "C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp2"
# command output:
*** C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp1
--- C:\b\slave\clang-x64-windows-msvc\build\build\stage1\tools\lld\test\ELF\Output\stdout.s.tmp2
***************
*** 1 ****

llvm-svn: 351949

6 years ago[llvm-objcopy] [COFF] Error out on use of unhandled options
Martin Storsjo [Wed, 23 Jan 2019 11:54:55 +0000 (11:54 +0000)]
[llvm-objcopy] [COFF] Error out on use of unhandled options

Prefer erroring out than silently not doing what was requested.

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

llvm-svn: 351948

6 years ago[llvm-objcopy] [COFF] Fix handling of aux symbols for big objects
Martin Storsjo [Wed, 23 Jan 2019 11:54:51 +0000 (11:54 +0000)]
[llvm-objcopy] [COFF] Fix handling of aux symbols for big objects

The aux symbols were stored in an opaque std::vector<uint8_t>,
with contents interpreted according to the rest of the symbol.

All aux symbol types but one fit in 18 bytes (sizeof(coff_symbol16)),
and if written to a bigobj, two extra padding bytes are written (as
sizeof(coff_symbol32) is 20). In the storage agnostic intermediate
representation, store the aux symbols as a series of coff_symbol16
sized opaque blobs. (In practice, all such aux symbols only consist
of one aux symbol, so this is more flexible than what reality needs.)

The special case is the file aux symbols, which are written in
potentially more than one aux symbol slot, without any padding,
as one single long string. This can't be stored in the same opaque
vector of fixed sized aux symbol entries. The file aux symbols will
occupy a different number of aux symbol slots depending on the type
of output object file. As nothing in the intermediate process needs
to have accurate raw symbol indices, updating that is moved into the
writer class.

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

llvm-svn: 351947

6 years ago[llvm-objcopy] [COFF] Remove testcase debugging lines. NFC.
Martin Storsjo [Wed, 23 Jan 2019 11:54:36 +0000 (11:54 +0000)]
[llvm-objcopy] [COFF] Remove testcase debugging lines. NFC.

These are no longer necessary as the testcase now seems to run fine
on the buildbots that previously failed on this case, after SVN r351934.

llvm-svn: 351946

6 years ago[HotColdSplitting] Remove unused SSAUpdater.h include (NFC).
Florian Hahn [Wed, 23 Jan 2019 11:51:38 +0000 (11:51 +0000)]
[HotColdSplitting] Remove unused SSAUpdater.h include (NFC).

llvm-svn: 351945

6 years agoMark more tests flaky
Kamil Rytarowski [Wed, 23 Jan 2019 11:36:19 +0000 (11:36 +0000)]
Mark more tests flaky

Reported on the NetBSD 8 buildbot

llvm-svn: 351944

6 years ago[clangd] Workaround a test failure after r351941
Ilya Biryukov [Wed, 23 Jan 2019 11:32:07 +0000 (11:32 +0000)]
[clangd] Workaround a test failure after r351941

This should fix failing buildbots.

llvm-svn: 351943

6 years ago[llvm-objdump] - Move variable. NFC.
George Rimar [Wed, 23 Jan 2019 10:52:38 +0000 (10:52 +0000)]
[llvm-objdump] - Move variable. NFC.

It was too far from the place where it is used.

llvm-svn: 351942

6 years ago[clangd] Fix crash due to ObjCPropertyDecl
Ilya Biryukov [Wed, 23 Jan 2019 10:35:12 +0000 (10:35 +0000)]
[clangd] Fix crash due to ObjCPropertyDecl

With ObjCPropertyDecl, ASTNode.OrigD can be a ObjCPropertyImplDecl
which is not a NamedDecl, leading to a crash since the code
incorrectly assumes ASTNode.OrigD will always be a NamedDecl.

Change by dgoldman (David Goldman)!

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

llvm-svn: 351941

6 years ago[llvm-objdump] - Split disassembleObject() into two methods. NFCI.
George Rimar [Wed, 23 Jan 2019 10:33:26 +0000 (10:33 +0000)]
[llvm-objdump] - Split disassembleObject() into two methods. NFCI.

Currently, disassembleObject() is a ~550 lines length function.

This patch splits it into two, where first do all helper objects initializations
and calls the second which does all the rest job.
This is a straightforward split.

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

llvm-svn: 351940

6 years ago[SystemZ] Fix test case for buildbot.
Jonas Paulsson [Wed, 23 Jan 2019 10:29:12 +0000 (10:29 +0000)]
[SystemZ]  Fix test case for buildbot.

llvm-clang-x86_64-expensive-checks-win triggered this assert:

"llvm.dbg.value intrinsic requires a !dbg attachment"

Hopefully, adding reasonable !dbg operands solves this.

llvm-svn: 351939

6 years ago[ARM] Alter the register allocation order for minsize on Thumb2
David Green [Wed, 23 Jan 2019 10:18:30 +0000 (10:18 +0000)]
[ARM] Alter the register allocation order for minsize on Thumb2

Currently in Arm code, we allocate LR first, under the assumption that
it needs to be saved anyway. Unfortunately this has the disadvantage
that it will require any instructions using it to be the longer thumb2
instructions, not the shorter thumb1 ones.

This switches the order when we are optimising for minsize, returning to
the default order so that more lower registers can be used. It can end
up requiring more pushed registers, but on average produces smaller code.

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

llvm-svn: 351938