Roman Lebedev [Thu, 19 Dec 2019 17:13:20 +0000 (20:13 +0300)]
[NFC][InstCombine] Add some more non-zero assumption variants (D71660)
https://rise4fun.com/Alive/6yR
Alexey Bataev [Thu, 19 Dec 2019 17:49:01 +0000 (12:49 -0500)]
[SLP]Added test for gathering reused extracts from narrow vector, NFC.
Luís Marques [Thu, 19 Dec 2019 17:20:02 +0000 (17:20 +0000)]
[RISCV] Don't crash on unsupported relocations
Summary: Instead of crashing due to the `llvm_unreachable`, provide a proper
error when invalid fixups/relocations are encountered.
Reviewers: asb, lenary
Reviewed By: asb
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71536
Sanjay Patel [Thu, 19 Dec 2019 17:16:16 +0000 (12:16 -0500)]
[x86] add test for missing FMF propagation; NFC
This is a reduced test for D71495.
David Spickett [Thu, 19 Dec 2019 17:15:33 +0000 (17:15 +0000)]
Revert "[cmake] Add dependency on llvm-dwarfdump to llvm-locstats"
This reverts commit
ba430f503244d1498529d47f31090cdf79b5c231.
Which appears to have caused a failure on the lld-x86_64-ubuntu-fast
buildbot.
Jonas Paulsson [Tue, 17 Dec 2019 21:13:16 +0000 (13:13 -0800)]
[SystemZ] Recognize mrecord-mcount in backend
Emit the __mcount_loc section for all fentry calls.
Review: Ulrich Weigand
https://reviews.llvm.org/D71629
Jon Chesterfield [Thu, 19 Dec 2019 16:54:27 +0000 (16:54 +0000)]
[libomptarget][nfc] Provide target_impl malloc/free
Summary:
[libomptarget][nfc] Provide target_impl malloc/free
Sufficient to build support.cu for amdgcn
Reviewers: jdoerfert, ABataev, grokos
Reviewed By: jdoerfert
Subscribers: jvesely, mgorny, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D71685
Jonas Paulsson [Tue, 17 Dec 2019 20:00:43 +0000 (12:00 -0800)]
[Clang FE, SystemZ] Recognize -mrecord-mcount CL option.
Recognize -mrecord-mcount from the command line and add a function attribute
"mrecord-mcount" when passed.
Only valid on SystemZ (when used with -mfentry).
Review: Ulrich Weigand
https://reviews.llvm.org/D71627
lewis-revill [Thu, 19 Dec 2019 16:41:53 +0000 (16:41 +0000)]
[RISCV] Enable the machine outliner for RISC-V
This patch enables the machine outliner for RISC-V and adds the
necessary logic for checking whether sequences can be safely outlined,
and describing how they should be outlined. Outlined functions are
called using the register t0 (x5) as the return address register, which
must be available for an occurrence of a sequence to be safely outlined.
Differential Revision: https://reviews.llvm.org/D66210
David Spickett [Thu, 19 Dec 2019 15:00:56 +0000 (15:00 +0000)]
[cmake] Add dependency on llvm-dwarfdump to llvm-locstats
Though llvm-locstat is a "util" it requires llvm-dwarfdump
to be useful. So what happens now is that unless LLVM_BUILD_TOOLS
is ON llvm-locstats won't be part of the "all" target.
However given that it requires llvm-dwarfdump, this is less
confusing/build time consuming than suddenly having llvm-dwarfdump
build when all other tools are disabled.
Differential Revision: https://reviews.llvm.org/D71705
Bardia Mahjour [Thu, 19 Dec 2019 15:56:44 +0000 (10:56 -0500)]
[DDG] Data Dependence Graph - Ordinals
Summary:
This patch associates ordinal numbers to the DDG Nodes allowing
the builder to order nodes within a pi-block in program order. The
algorithm works by simply assuming the order in which the BBList
is fed into the builder. The builder already relies on the blocks being
in program order so that it can compute the dependencies correctly.
Similarly the order of instructions in their parent basic blocks
determine their program order.
Authored By: bmahjour
Reviewer: Meinersbur, fhahn, myhsu, xtian, dmgreen, kbarton, jdoerfert
Reviewed By: Meinersbur
Subscribers: ychen, arphaman, simoll, a.elovikov, mgorny, hiraditya, jfb, wuzish, llvm-commits, jsji, Whitney, etiotto, ppc-slack
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70986
Justin Hibbits [Thu, 21 Nov 2019 22:33:24 +0000 (16:33 -0600)]
[PowerPC] Only use PLT annotations if using PIC relocation model
Summary:
The default static (non-PIC, non-PIE) model for 32-bit powerpc does not
use @PLT annotations and relocations in GCC. LLVM shouldn't use @PLT
annotations either, because it breaks secure-PLT linking with (some
versions of?) GNU LD.
Update the available-externally.ll test to reflect that default mode should be
the same as the static relocation, by using the same check prefix.
Reviewed by: sfertile
Differential Revision: https://reviews.llvm.org/D70570
Cullen Rhodes [Thu, 19 Dec 2019 14:23:00 +0000 (14:23 +0000)]
Revert "[AArch64][SVE] Add permutation and selection intrinsics"
This reverts commit
23c28c40436143006be740533375c036d11c92cd.
It caused build failures in the following expensive checks builders:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-ubuntu/builds/1295
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/700
Reverting for now whilst I figure what the issue is.
Sanjay Patel [Thu, 19 Dec 2019 14:03:57 +0000 (09:03 -0500)]
[InstCombine] add/adjust tests for pow->sqrt; NFC
There's at least 1 bug here as discussed in PR44330.
Bjorn Pettersson [Wed, 18 Dec 2019 12:30:47 +0000 (13:30 +0100)]
[ConstantHoisting] Ignore unreachable bb:s when collecting candidates
Summary:
Ignore looking at blocks that are unreachable from entry when
collecting candidates for hosting.
Normally the consthoist pass is executed in the llc pipeline,
just after unreachableblockelim. So it is abnormal to have code
that is unreachable from the entry block. But when running the
pass as part of opt, for example as part of fuzzy testing, we
might trigger various kinds of asserts when collecting candidates
if we include unreachable blocks in that analysis.
It seems like a waste of time to hoist constants in unreachble
blocks, so the solution is to simply ignore such blocks when
collecting the hoisting candidates.
The two added test cases used to end up in two different asserts,
and the intention with the checks is just to verify that we no
longer fail.
Fixes: PR43903
Reviewers: spatel
Reviewed By: spatel
Subscribers: hiraditya, uabelho, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71678
Cullen Rhodes [Wed, 4 Dec 2019 16:33:49 +0000 (16:33 +0000)]
[AArch64][SVE] Add permutation and selection intrinsics
Summary:
Adds the following intrinsics:
* @llvm.aarch64.sve.clasta
* @llvm.aarch64.sve.clasta_n
* @llvm.aarch64.sve.clastb
* @llvm.aarch64.sve.clastb_n
* @llvm.aarch64.sve.compact
* @llvm.aarch64.sve.ext
* @llvm.aarch64.sve.lasta
* @llvm.aarch64.sve.lastb
* @llvm.aarch64.sve.rev
* @llvm.aarch64.sve.splice
* @llvm.aarch64.sve.tbl
* @llvm.aarch64.sve.trn1
* @llvm.aarch64.sve.trn2
* @llvm.aarch64.sve.uzp1
* @llvm.aarch64.sve.uzp2
* @llvm.aarch64.sve.zip1
* @llvm.aarch64.sve.zip2
Reviewers: sdesmalen, efriedma, dancgr, mgudim, huntergr, rengolin
Reviewed By: sdesmalen, efriedma
Subscribers: kmclaughlin, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71401
James Henderson [Wed, 18 Dec 2019 16:10:04 +0000 (16:10 +0000)]
[DebugInfo] Fix verbose printing of rows added via DW_LNE_end_sequence
The debug line verbose printing was printing the wrong values for rows
added via DW_LNE_end_sequence, because the row was being printed AFTER
its state had been reset following it being appended to the line table.
This patch fixes this issue by printing the row before appending it.
Reviewers: dblaikie, MaskRay
Differential Revision: https://reviews.llvm.org/D71664
LLVM GN Syncbot [Thu, 19 Dec 2019 12:43:20 +0000 (12:43 +0000)]
[gn build] Port
abc7f6800df
Alexey Lapshin [Sat, 7 Dec 2019 22:37:53 +0000 (01:37 +0300)]
[Dsymutil][Debuginfo][NFC] Refactor dsymutil to separate DWARF optimizing part 2.
That patch is extracted from the D70709. It moves CompileUnit, DeclContext
into llvm/DebugInfo/DWARF. It also adds new file DWARFOptimizer with
AddressesMap class. AddressesMap generalizes functionality
from RelocationManager.
Differential Revision: https://reviews.llvm.org/D71271
David Green [Thu, 19 Dec 2019 10:41:13 +0000 (10:41 +0000)]
[InstCombine] Canonicalize select immediates
In certain situations after inlining and simplification we end up with
code that is _almost_ a min/max pattern, but contains constants that
have been demand-bit optimised to the wrong values, ending up with code
like:
%1 = icmp slt i32 %shr, -128
%2 = select i1 %1, i32 128, i32 %shr
%.inv = icmp sgt i32 %shr, 127
%spec.select.i = select i1 %.inv, i32 127, i32 %2
%conv7 = trunc i32 %spec.select.i to i8
This should be turned into a min/max pattern, but the -128 in the first
select was instead transformed into 128, as only the bottom byte was
ever demanded.
To fix this, I've put in further canonicalisation for the immediates of
selects, preferring to use the same value as the icmp if available.
Differential Revision: https://reviews.llvm.org/D71516
David Green [Thu, 19 Dec 2019 10:40:17 +0000 (10:40 +0000)]
[Instcombine] Add select canonicalization tests. NFC
Hans Wennborg [Thu, 19 Dec 2019 12:23:13 +0000 (13:23 +0100)]
Re-land "Add an -fno-temp-file flag for compilation"
This time making sure to initialize FrontendOptions::UseTemporary.
Patch by Zachary Henkel!
Differential revision: https://reviews.llvm.org/D70615
Miloš Stojanović [Thu, 19 Dec 2019 11:52:15 +0000 (12:52 +0100)]
[llvm-exegesis] Fix pfm counter names for Haswell for older versions of libpfm
The inconsistency caused uops mode to fail on an older version of libpfm
since the dispatched_port was added as an alias for executed_port only
after v4.6.0 of libpfm.
Differential revision: https://reviews.llvm.org/D71665
Jay Foad [Thu, 19 Dec 2019 11:19:36 +0000 (11:19 +0000)]
Make more use of MachineInstr::mayLoadOrStore.
Victor Campos [Mon, 16 Dec 2019 14:22:15 +0000 (14:22 +0000)]
[ARM] Improve codegen of volatile load/store of i64
Summary:
Instead of generating two i32 instructions for each load or store of a volatile
i64 value (two LDRs or STRs), now emit LDRD/STRD.
These improvements cover architectures implementing ARMv5TE or Thumb-2.
Reviewers: dmgreen, efriedma, john.brawn
Reviewed By: efriedma
Subscribers: kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70072
Cullen Rhodes [Fri, 13 Dec 2019 16:32:35 +0000 (16:32 +0000)]
[AArch64][SVE] Implement pfirst and pnext intrinsics
Reviewers: sdesmalen, efriedma, dancgr, mgudim, cameron.mcinally
Reviewed By: cameron.mcinally
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71472
Cullen Rhodes [Thu, 12 Dec 2019 15:24:30 +0000 (15:24 +0000)]
[AArch64][SVE] Implement ptrue intrinsic
Reviewers: sdesmalen, eli.friedman, dancgr, mgudim, cameron.mcinally,
huntergr, efriedma
Reviewed By: sdesmalen
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71457
Kadir Cetinkaya [Tue, 17 Dec 2019 11:13:28 +0000 (12:13 +0100)]
[clangd] Improve documentation for auto and implicit specs
Summary:
Clangd didn't fill documentation for `auto` when it wasn't available in
index. Also it wasn't showing any documentations for implicit instantiations.
This patch ensures auto and normal decl case behaves in the same way and also
makes use of the explicit template specialization while fetching comments for
implicit instantiations.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71596
David Spickett [Thu, 19 Dec 2019 10:17:53 +0000 (10:17 +0000)]
[cmake] Include the llvm-locstats target when
utils and tools are not being built.
This was uncovered by: https://reviews.llvm.org/D71611
Which added llvm-locstats to the test dependencies.
Previously the build target was only added if you
were building tools. This meant that you couldn't
configure at all if you had LLVM_BUILD_TOOLS=OFF.
Differential revision: https://reviews.llvm.org/D71695
Dmitri Gribenko [Thu, 19 Dec 2019 10:24:51 +0000 (11:24 +0100)]
Revert "Support powerpc when builing without init_array."
This reverts commit
5789e83dedb97588ad75cca36d01ba6c5142d6d3. It broke
the build on aarch64.
Martin Storsjö [Wed, 18 Dec 2019 08:41:41 +0000 (10:41 +0200)]
[clang] Fix compilation with GCC < 8 for MinGW
GCC 7 and earlier, when targeting MinGW, seems to have a bug in
layout/size of bitfield structs if they contain a nested enum,
making the size of the struct 8 bytes, while we have a static assert
requiring it to be 4 bytes or less.
While this clearly is a GCC bug, the workaround (moving the enum out
of the bitfield) also is very nonintrusive and matches other existing
enums there.
Differential Revision: https://reviews.llvm.org/D71650
Martin Storsjö [Wed, 18 Dec 2019 21:58:51 +0000 (23:58 +0200)]
[LLD] [COFF] Fix reporting duplicate errors for absolute symbols
Previously this caused crashes in the reportDuplicate method.
A DefinedAbsolute doesn't have any InputFile attached to it, so we
can't report the file for the original symbol.
We could add an InputFile argument to SymbolTable::addAbsolute
only for the sake of error reporting, but even then it'd be assymetrical,
only pointing out the file containing the new conflicting definition,
not the original one.
Differential Revision: https://reviews.llvm.org/D71679
Raphael Isemann [Thu, 19 Dec 2019 09:34:28 +0000 (10:34 +0100)]
[lldb][NFC] Change if statements in ClangASTImporter to follow LLVM code style
czhengsz [Thu, 19 Dec 2019 09:11:45 +0000 (04:11 -0500)]
[SCEV] NFC - add testcase for get accurate range for AddExpr
Georgii Rymar [Tue, 17 Dec 2019 10:54:29 +0000 (13:54 +0300)]
[llvm-readobj][test] - Improve dyn-symbols.test.
This removes the precompiled binary used, simplifies
the first test case, adds comments and llvm-readelf tool
invocations.
It also adds a test case for checking versioning symbols.
Differential revision: https://reviews.llvm.org/D71595
Georgii Rymar [Wed, 18 Dec 2019 09:44:54 +0000 (12:44 +0300)]
[llvm-readobj][test] - Refactor mips-st-other.test
This removes 2 precompiled binaries, adds testing
for STO_* flags missing, refines and renames the test.
Differential revision: https://reviews.llvm.org/D71651
Georgii Rymar [Tue, 17 Dec 2019 12:53:36 +0000 (15:53 +0300)]
[llvm-readobj][llvm-objdump] - Cleanup testing of dynamic tags dumping.
We have the `elf-dynamic-tags-machine-specific.yaml` input shared
between the llvm-readobj and llvm-objdump test.
It looks strange, because tools usually does not share inputs.
Also there are following problems related:
1) `elf-dynamic-tags-machine-specific.yaml` input contains excessive YAML parts.
2) objdump's test case never test AARCH64 tags.
3) There are unknown tags in the `elf-dynamic-tags-machine-specific.yaml` and
`dynamic-tags-machine-specific.test`, though we already testing unknown tags
in `\llvm-readobj\ELF\dynamic-tags.test` and `llvm-objdump\elf-dynamic-section.test` tests.
This patch removes the shared input and refines the test cases to resolve
issues mentioned.
Differential revision: https://reviews.llvm.org/D71602
Stanislav Mekhanoshin [Wed, 18 Dec 2019 21:29:21 +0000 (13:29 -0800)]
[AMDGPU] Implemented fma cost analysis
Differential Revision: https://reviews.llvm.org/D71676
Liu, Chen3 [Thu, 19 Dec 2019 06:43:45 +0000 (14:43 +0800)]
Enable STRICT_FP_TO_SINT/UINT on X86 backend
This patch is mainly for custom lowering the vector operation.
Differential Revision: https://reviews.llvm.org/D71592
David Blaikie [Thu, 19 Dec 2019 03:00:40 +0000 (19:00 -0800)]
Kamil Rytarowski [Thu, 19 Dec 2019 02:21:46 +0000 (03:21 +0100)]
[compiler-rt] Enable SANITIZER_CAN_USE_PREINIT_ARRAY on NetBSD
.preinit_array is supported since 9.0.
czhengsz [Thu, 19 Dec 2019 02:03:54 +0000 (21:03 -0500)]
[PowerPC] make lwa as a valid ds candidate in ppcloopinstrformprep pass
Fix a FIXME in ppcloopinstrformprep pass.
Reviewed by: nemanjai
Differential Revision: https://reviews.llvm.org/D71346
JonChesterfield [Thu, 19 Dec 2019 02:00:26 +0000 (02:00 +0000)]
[libomptarget][nvptx] Fix build, second symbol reordering
Artem Dergachev [Thu, 19 Dec 2019 01:59:16 +0000 (17:59 -0800)]
[analysis] Re-discard type sugar when casting values retrieved from the Store.
Canonicalization was accidentally omitted in
6d3f43ec.
Jon Chesterfield [Thu, 19 Dec 2019 01:50:06 +0000 (01:50 +0000)]
[libomptarget][nvptx] Fix build, symbol ordering in target_impl.h
David Blaikie [Thu, 19 Dec 2019 01:10:24 +0000 (17:10 -0800)]
DebugInfo: Include DW_AT_base_addr even in gmlt with no inline functions
Since the address pool doesn't get populated in this case (due to the
lack of inlining, no child DIEs are added to the CU - so no addresses
are needed for the DIEs themselves) until the range list is emitted - at
the time the attributes are added to the CU, the address pool is empty.
So check whether the address pool will be used for the range lists & add
an addr_base if that's the case.
Jordan Rupprecht [Thu, 19 Dec 2019 00:44:53 +0000 (16:44 -0800)]
[clang] Remove -Wexperimental-float-control.
Summary: Per D62731, the behavior of clang with `-frounding-math` is no worse than when the rounding flag was completely ignored, so remove this unnecessary warning.
Reviewers: mibintc, chandlerc, echristo, rjmccall, kpn, erichkeane, rsmith, andrew.w.kaylor
Reviewed By: mibintc
Subscribers: merge_guards_bot, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71671
Jonas Devlieghere [Thu, 19 Dec 2019 00:42:07 +0000 (16:42 -0800)]
[lldb/Scripting] Simplify code by removing the #if.
The "none" script interpreter does not depend on Python so it doesn't
make sense to have it withing the if-block. The only goal seems to be to
have a slightly different error for when there's no script interpreter,
but as per the comment this doesn't make sense for more than one
scripting language. I think the existing error is perfectly clear, so I
just removed this altogether.
Francis Visoiu Mistrih [Wed, 18 Dec 2019 23:55:30 +0000 (15:55 -0800)]
[Remarks][Driver] Place temporary remark files next to temporary object files
On Darwin, when used for generating a linked binary from a source file
(through an intermediate object file), the driver will invoke `cc1` to
generate a temporary object file. The temporary remark file will now be
emitted next to the object file, which will then be picked up by
`dsymutil` and emitted in the .dSYM bundle.
This is available for all formats except YAML since by default, YAML
doesn't need a section and the remark file will be lost.
Francis Visoiu Mistrih [Wed, 18 Dec 2019 23:27:21 +0000 (15:27 -0800)]
[Docs] Fix indentation in remarks section
David Blaikie [Thu, 19 Dec 2019 00:19:17 +0000 (16:19 -0800)]
DebugInfo: Don't use implicit zero addr_base
(found when LLVM fails to emit addr_base for gmlt+DWARFv5)
David Blaikie [Mon, 16 Dec 2019 23:19:25 +0000 (15:19 -0800)]
Reapply "NFC: DebugInfo: Refactor RangeSpanList to be a struct, like DebugLocStream::List"
Move these data structures closer together so their emission code can
eventually share more of its implementation.
Was an egregious bug (completely untested, evidently) where I hadn't
inverted a DWARFv5 test as needed, so it was doing the exact opposite of
what was required & thus tried to emit a DWARFv5 range list header in
DWARFv4.
Reapply
8e04896288d22ed8bef7ac367923374f96b753d6 which was
reverted in
a8154e5e0c83d2f0f65f3b4fb1a0bc68785bd975.
Kamil Rytarowski [Thu, 19 Dec 2019 00:15:03 +0000 (01:15 +0100)]
[compiler-rt] [fuzzer] Enable LSan in libFuzzer tests on NetBSD
Jason Molenda [Thu, 19 Dec 2019 00:11:06 +0000 (16:11 -0800)]
make err msg in MachSymtabSectionInfo::GetSection clear about the file
This error message didn't specify which file was malformed, so
there's some hunting-around required if it comes up. We have the
filename; include it in the error message.
Kamil Rytarowski [Thu, 19 Dec 2019 00:08:26 +0000 (01:08 +0100)]
[compiler-rt] [fuzzer] Include stdarg.h for va_list
Fixes build on NetBSD after
139e216e6610091b7ee3c30bc11114f5d73cbd3e.
JonChesterfield [Thu, 19 Dec 2019 00:11:21 +0000 (00:11 +0000)]
[libomptarget][amdgcn] Correct return type of extern __clock64 to unsigned
Jonas Devlieghere [Wed, 18 Dec 2019 23:41:07 +0000 (15:41 -0800)]
[lldb/test] Move script interpreter tests
Create a new test for lldb launched without a script interpreter and
move it under a new `ScriptInterpreter` directory. Also move
crashlog.test there for consistency.
Thomas Lively [Wed, 18 Dec 2019 05:53:46 +0000 (21:53 -0800)]
[WebAssembly] Add avgr_u intrinsics and require nuw in patterns
Summary:
The vector pattern `(a + b + 1) / 2` was previously selected to an
avgr_u instruction regardless of nuw flags, but this is incorrect in
the case where either addition may have an unsigned wrap. This CL
changes the existing pattern to require both adds to have nuw flags
and adds builtin functions and intrinsics for the avgr_u instructions
because the corrected pattern is not representable in C.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D71648
Yuanfang Chen [Wed, 18 Dec 2019 23:19:01 +0000 (15:19 -0800)]
[Docs] Fix a typo
Lang Hames [Wed, 18 Dec 2019 23:13:35 +0000 (15:13 -0800)]
Revert "[Orc][LLJIT] Use JITLink even if a custom JITTargetMachineBuilder is supplied."
This reverts commit
298e183e813c884dd22816383405bae3ef9ef278.
This commit caused some build failures -- reverting while I investigate.
Vedant Kumar [Wed, 18 Dec 2019 22:52:51 +0000 (14:52 -0800)]
Revert concepts changes from D41910
These changes caused LibcxxVariantDataFormatterTestCase in lldb to fail
with an assert:
Assertion failed: (Idx < size() && "Out-of-bounds Bit access."),
function operator[], file
/Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/llvm/include/llvm/ADT/SmallBitVector.h,
line 452.
In:
7 clang-10 0x00000001094b79d9 isAtLeastAsSpecializedAs(clang::Sema&, clang::SourceLocation, clang::FunctionTemplateDecl*, clang::FunctionTemplateDecl*, clang::TemplatePartialOrderingContext, unsigned int) + 1865
8 clang-10 0x00000001094b7111 clang::Sema::getMoreSpecializedTemplate(clang::FunctionTemplateDecl*, clang::FunctionTemplateDecl*, clang::SourceLocation, clang::TemplatePartialOrderingContext, unsigned int, unsigned int) + 97
9 clang-10 0x000000010939bf88 clang::isBetterOverloadCandidate(clang::Sema&, clang::OverloadCandidate const&, clang::OverloadCandidate const&, clang::SourceLocation, clang::OverloadCandidateSet::CandidateSetKind) + 1128
Revert "[Concepts] Fix incorrect move out of temporary in D41910"
This reverts commit
11d5fa6e87e3584f72056ecc2b17f88c58323dde.
Revert "[Concepts] Fix crash in D41910"
This reverts commit
12038be20ee6a903cdbd3fddce65535ef683e31d.
Revert "[Concepts] Constrained partial specializations and function overloads."
This reverts commit
fc0731b98a67c793862288f8ae334322666214dc.
Craig Topper [Wed, 18 Dec 2019 22:24:20 +0000 (14:24 -0800)]
[X86] Add a simple hack to IsProfitableToFold to prevent vselect+strict fp operations from being folded into masked instructions.
We really need to update the isel patterns to prevent this, but
that requires some tablegen de-tangling. So this hack will work
for correctness in the short term.
Craig Topper [Wed, 18 Dec 2019 22:19:55 +0000 (14:19 -0800)]
[X86] Add test case to show incorrect formation of masked add from vselect+strict_fadd.
The masked operation will suppress exceptions on masked out lanes.
But that's not what vselect+strict_fadd means.
Stephen Kelly [Sat, 4 May 2019 15:51:58 +0000 (16:51 +0100)]
Add method to ignore invisible AST nodes
Reviewers: aaron.ballman
Subscribers: mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D70613
Stephen Kelly [Wed, 18 Dec 2019 22:12:10 +0000 (22:12 +0000)]
Trim trailing whitespace
Stephen Kelly [Wed, 18 Dec 2019 21:50:50 +0000 (21:50 +0000)]
Output names in the AST in tests
Francis Visoiu Mistrih [Wed, 18 Dec 2019 19:13:46 +0000 (11:13 -0800)]
[Remarks][Driver] Run dsymutil when remarks are enabled
When clang is invoked with a source file without -c or -S, it creates a
cc1 job, a linker job and if debug info is requested, a dsymutil job. In
case of remarks, we should also create a dsymutil job to avoid losing
the remarks that will be generated in a tempdir that gets removed.
Differential Revision: https://reviews.llvm.org/D71675
Francis Visoiu Mistrih [Wed, 18 Dec 2019 21:16:09 +0000 (13:16 -0800)]
[Remarks][Driver][NFC] Make shouldEmitRemarks more available in the Driver
Move the function to Driver.h so that it can be re-used in other places.
Artem Dergachev [Wed, 18 Dec 2019 21:19:44 +0000 (13:19 -0800)]
[analyzer] Teach MismatchedDealloc about initWithBytesNoCopy with deallocator.
MallocChecker warns when memory is passed into -[NSData initWithBytesNoCopy]
but isn't allocated by malloc(), because it will be deallocated by free().
However, initWithBytesNoCopy has an overload that takes an arbitrary block
for deallocating the object. If such overload is used, it is no longer
necessary to make sure that the memory is allocated by malloc().
Jason Molenda [Wed, 18 Dec 2019 22:18:22 +0000 (14:18 -0800)]
Add prototype for a function we call.
Lang Hames [Mon, 16 Dec 2019 10:45:51 +0000 (02:45 -0800)]
[Orc][LLJIT] Use JITLink even if a custom JITTargetMachineBuilder is supplied.
LLJITBuilder will now use JITLink on supported platforms even if a custom
JITTargetMachineBuilder is supplied, provided that neither the code model,
nor the relocation model, nor the ObjectLinkingLayerCreator is set.
Richard Smith [Wed, 18 Dec 2019 22:01:40 +0000 (14:01 -0800)]
Refactor CompareReferenceRelationship and its callers in preparation for
implementing the resolution of CWG2352.
No functionality change, except that we now convert the referent of a
reference binding to the underlying type of the reference in more cases;
we used to happen to preserve the type sugar from the referent if the
only type change was in the cv-qualifiers.
This exposed a bug in how we generate code for trivial assignment
operators: if the type sugar (particularly the may_alias attribute)
got lost during reference binding, we'd use the "wrong" TBAA information
for the load during the assignment.
Akira Hatanaka [Wed, 18 Dec 2019 21:54:30 +0000 (13:54 -0800)]
Use hasOffsetApplied to initialize member HasOffsetApplied
This is NFC since none of the constructor calls in trunk pass
hasOffsetApplied=true.
Reid Kleckner [Sat, 7 Dec 2019 00:10:28 +0000 (16:10 -0800)]
Move TypeSourceInfo to Type.h
TypeSourceInfo is a thin wrapper around TypeLocs. Notionally, the best
place for it to live would be TypeLoc.h, but Decl.h requires it to be
complete, so it needs to be lower in the dependency graph. Type.h seems
like the next best place.
By itself, this change has no impact on build time, because it doesn't
remove a single dependency edge from a .cpp file to a .h file, but it is
an incremental step towards making the AST headers less interdependent.
Reviewers: rsmith
Differential Revision: https://reviews.llvm.org/D71427
Sterling Augustine [Wed, 18 Dec 2019 19:15:32 +0000 (11:15 -0800)]
Support powerpc when builing without init_array.
Summary: Also add an error case when targetting an unimplement architecture.
Subscribers: nemanjai, jsji, shchenz, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D71670
Michał Górny [Wed, 18 Dec 2019 21:10:20 +0000 (22:10 +0100)]
[clang-tools-extra] Fix linking dylib for LLVMFrontendOpenMP
Use LLVM_LINK_COMPONENTS to link the FrontendOpenMP library
instead of passing it explicitly to LINK_LIBS. This fixes duplicating
the library when clang-tidy is linked to LLVM dylib.
Differential Revision: https://reviews.llvm.org/D71674
Amy Huang [Wed, 18 Dec 2019 21:15:13 +0000 (13:15 -0800)]
Change triple in test case to not include triples the test shouldn't
pass.
This is fixes changes from
a85f5efd9597d0036f5c347b362cb873bdf51f16.
Mehdi Amini [Wed, 18 Dec 2019 21:11:24 +0000 (16:11 -0500)]
[gn build] Update console print to match the commit message (NFC)
Piotr Sobczak [Wed, 18 Dec 2019 21:01:04 +0000 (22:01 +0100)]
Revert "[InstCombine][AMDGPU] Trim more components of *buffer_load"
Revert D70315, as it breaks gfx8 for some reason.
This reverts commit
65f94b33808d7d69539961a6f5a2168f0a1eef41.
Mehdi Amini [Wed, 18 Dec 2019 20:55:27 +0000 (15:55 -0500)]
Tweak commit message for auto update of gn build script
Use `[tag]` as a prefix and "port" instead of "merge" to
avoid confusing with "git merge".
Jonas Devlieghere [Wed, 18 Dec 2019 20:49:46 +0000 (12:49 -0800)]
[lldb/MachO] "Fix" intentional out-of-bounds error (NFC)
Remove the hack that populates the cpsr register in the gpr struct by
writing past the end of the array. This was tripping up ASan.
Patch by: Reva Cuthbertson
Ulrich Weigand [Wed, 18 Dec 2019 20:33:10 +0000 (21:33 +0100)]
[FPEnv] Strict versions of llvm.minimum/llvm.maximum
Add new intrinsics
llvm.experimental.constrained.minimum
llvm.experimental.constrained.maximum
as strict versions of llvm.minimum and llvm.maximum.
Includes SystemZ back-end support.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D71624
Steven Wu [Wed, 18 Dec 2019 20:22:21 +0000 (12:22 -0800)]
[libunwind] Fix evaluating DWARF operation DW_OP_pick
reg is unsigned type and used here for getting array element from the end by
negating it. negation of unsigned can result in large number and array access
with that index will result in segmentation fault.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=43872
Patched by: kamlesh kumar
Differential Revision: https://reviews.llvm.org/D69893
Kamil Rytarowski [Wed, 18 Dec 2019 20:03:17 +0000 (21:03 +0100)]
Correct version check 9.9.26 -> 9.99.26
Artem Dergachev [Wed, 18 Dec 2019 20:04:18 +0000 (12:04 -0800)]
[analyzer] NonnullGlobalConstants: Add support for kCFNull.
It's a singleton in CoreFoundation that always contains a non-null CFNullRef.
Jon Chesterfield [Wed, 18 Dec 2019 20:06:16 +0000 (20:06 +0000)]
[libomptarget][nfc] Introduce atomic wrapper function
Summary:
[libomptarget][nfc] Introduce atomic wrapper function
Wraps atomic functions in a template prefixed __kmpc_atomic that
dispatches to cuda or hip atomic functions. Intended to be easily extended
to dispatch to OpenCL or C++ atomics for a third target.
Reviewers: ABataev, jdoerfert, grokos
Reviewed By: jdoerfert
Subscribers: Anastasia, jvesely, mgrang, dexonsmith, llvm-commits, mgorny, jfb, openmp-commits
Tags: #openmp, #llvm
Differential Revision: https://reviews.llvm.org/D71404
Kit Barton [Mon, 16 Dec 2019 21:37:30 +0000 (16:37 -0500)]
[LoopFusion] Use the LoopInfo::isRotatedForm method (NFC).
Loop fusion previously had a method to check whether a loop was in rotated form. This method has
been moved into the LoopInfo class. This patch removes the old isRotated method from loop fusion,
in favour of the new one in LoopInfo.
Jakub Kuderski [Wed, 18 Dec 2019 19:55:41 +0000 (14:55 -0500)]
[InstCombine] Insert instructions before adding them to worklist
Summary:
This patch adds instructions to the InstCombine worklist after they are properly inserted. This way we don't get `<badref>`s printed when logging added instructions.
It also adds a check in `Worklist::Add` that ensures that all added instructions have parents.
Simple test case that illustrates the difference when run with `--debug-only=instcombine`:
```
define i32 @test35(i32 %a, i32 %b) {
%1 = or i32 %a, 1135
%2 = or i32 %1, %b
ret i32 %2
}
```
Before this patch:
```
INSTCOMBINE ITERATION #1 on test35
IC: ADDING: 3 instrs to worklist
IC: Visiting: %1 = or i32 %a, 1135
IC: Visiting: %2 = or i32 %1, %b
IC: ADD: %2 = or i32 %a, %b
IC: Old = %3 = or i32 %1, %b
New = <badref> = or i32 %2, 1135
IC: ADD: <badref> = or i32 %2, 1135
...
```
With this patch:
```
INSTCOMBINE ITERATION #1 on test35
IC: ADDING: 3 instrs to worklist
IC: Visiting: %1 = or i32 %a, 1135
IC: Visiting: %2 = or i32 %1, %b
IC: ADD: %2 = or i32 %a, %b
IC: Old = %3 = or i32 %1, %b
New = <badref> = or i32 %2, 1135
IC: ADD: %3 = or i32 %2, 1135
...
```
Reviewers: fhahn, davide, spatel, foad, grosser, nikic
Reviewed By: nikic
Subscribers: nikic, lebedev.ri, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71093
Saar Raz [Wed, 18 Dec 2019 19:43:53 +0000 (21:43 +0200)]
[Concepts] Fix incorrect move out of temporary in D41910
Moves out of temporaries caused warnings that failed builds.
JonChesterfield [Wed, 18 Dec 2019 19:39:34 +0000 (19:39 +0000)]
[libomptarget][nfc] Extract function from data_sharing, move to common
Summary:
[libomptarget][nfc] Extract function from data_sharing, move to common
Finding the first active thread in the warp is different on nvptx and amdgcn,
mostly due to warp size and the desire for efficiency.
Reviewers: ABataev, jdoerfert, grokos
Reviewed By: jdoerfert
Subscribers: jvesely, mgorny, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D71643
Adrian McCarthy [Wed, 4 Dec 2019 21:11:02 +0000 (13:11 -0800)]
[NFC] Update FIXME for one VFS test
The VFS/subframework-symlink.m test is still XFAIL on Windows, but for
a different reason than those fixed in PR43272, so I've updated the
PR number.
Adrian McCarthy [Mon, 25 Nov 2019 23:57:21 +0000 (15:57 -0800)]
Fix more VFS tests on Windows
Since VFS paths can be in either Posix or Windows style, we have to use
a more flexible definition of "absolute" path.
The key here is that FileSystem::makeAbsolute is now virtual, and the
RedirectingFileSystem override checks for either concept of absolute
before trying to make the path absolute by combining it with the current
directory.
Differential Revision: https://reviews.llvm.org/D70701
Saar Raz [Wed, 18 Dec 2019 19:31:33 +0000 (21:31 +0200)]
[Concepts] Fix crash in D41910
Differential Revision: https://reviews.llvm.org/D41910
Danilo Carvalho Grael [Wed, 18 Dec 2019 19:01:38 +0000 (14:01 -0500)]
Revert "[AArch64][SVE] Replace integer immediate intrinsics with splat vector variant"
This reverts commit
830e08b98bcb427136443093c282b25328137cf0 and
eb1857ce0da481caf82271e6d0c9fc745dfab26f.
This commit leads to an unexpected failure on test/CodeGen/AArch64/sve-gather-scatter-dag-combine.ll.
The review will need more changes before its re-commited.
Jonas Paulsson [Wed, 18 Dec 2019 18:12:41 +0000 (10:12 -0800)]
[Clang FE, SystemZ] Don't add "true" value for the "mnop-mcount" attribute.
Let the "mnop-mcount" function attribute simply be present or non-present.
Update SystemZ backend as well to use hasFnAttribute() instead.
Review: Ulrich Weigand
https://reviews.llvm.org/D71669
Saar Raz [Wed, 18 Dec 2019 18:59:01 +0000 (20:59 +0200)]
[Concepts] Constrained partial specializations and function overloads.
Added support for constraint satisfaction checking and partial ordering of constraints in constrained partial specialization and function template overloads.
Phabricator: D41910
Jakub Kuderski [Wed, 18 Dec 2019 18:48:54 +0000 (13:48 -0500)]
[InstCombine] Allow to limit the max number of iterations
Summary:
This patch teaches InstCombine to accept a new parameter: maximum number of iterations over functions.
InstCombine tries to simplify instructions by iterating over the whole function until the function stops changing. As a consequence, the last iteration before reaching a fixpoint visits all instructions in the worklist and never performs any rewrites.
Bounding the number of iterations can have 2 benefits:
* In case the users of the pass can make a good guess about the number of required iterations, we can save the time normally spent on the last iteration that doesn't change anything.
* When the wants to use InstCombine as a cleanup pass, it may be enough to run just a few iterations and stop even before reaching a fixpoint. This can be also useful for implementing a lightweight pass pipeline (think `-O1`).
This patch does not change the behavior of opt or Clang -- limiting the number of iterations is entirely opt-in.
Reviewers: fhahn, davide, spatel, foad, nlopes, grosser, lebedev.ri, nikic, xbolva00
Reviewed By: spatel
Subscribers: craig.topper, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71145
Richard Smith [Wed, 18 Dec 2019 18:44:29 +0000 (10:44 -0800)]
llvm-cxxmap: fix support for remapping non-mangled names.
Remappings involving extern "C" names were already supported in the
context of <local-name>s, but this support didn't work for remapping the
complete mangling itself. (Eg, we would remap X<foo> but not foo itself,
if foo is an extern "C" function.)
Craig Topper [Wed, 18 Dec 2019 18:41:34 +0000 (10:41 -0800)]
[SelectionDAGBuilder] Use getConstant instead of getTargetConstant to build the offset for struct types in getUniformBase.
getTargetConstant prevents any optimizations from operating on the
value and basically says its already been iseled. But since we
want the index to be in a register, this isn't true.
Prior to this we were generating a vbroadcast with an immediate
argument which is illegal and was flagged by the expensive checks
bot.
Stefan Pintilie [Wed, 18 Dec 2019 18:19:04 +0000 (12:19 -0600)]
[PowerPC][NFC] Refactor splat of constant to vector.
Refactor the splatting of a constant to a vector so that common code is used
both for Power9 and Power8.
Patch by: Anil Mahmud
Differential Revision: https://reviews.llvm.org/D71481