Alvin Wong [Wed, 28 Sep 2022 09:45:23 +0000 (12:45 +0300)]
[lldb][COFF] Load absolute symbols from COFF symbol table
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D134517
Alvin Wong [Wed, 28 Sep 2022 09:44:03 +0000 (12:44 +0300)]
[lldb][COFF] Match symbols from COFF symbol table to export symbols
If a symbol is the same as an export symbol, mark it as 'Additional' to
prevent the duplicated symbol from being repeated in some commands (e.g.
`disas -n func`). If the RVA is the same but exported with a different
name, only synchronize the symbol types.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D134426
Alvin Wong [Wed, 28 Sep 2022 09:43:14 +0000 (12:43 +0300)]
[lldb][COFF] Improve info of symbols from export table
- Skip dummy/invalid export symbols.
- Make the export ordinal of export symbols visible when dumping the
symtab.
- Stop setting the 'Debug' flag and set the 'External' flag instead to
better match the meaning of export symbols.
- Try to guess the type (code vs data) of the symbol from section flags.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D134265
Alvin Wong [Wed, 28 Sep 2022 09:40:37 +0000 (12:40 +0300)]
[lldb][COFF] Rewrite ParseSymtab to list both export and symbol tables
This reimplements `ObjectFilePECOFF::ParseSymtab` to replace the manual
data extraction with what `COFFObjectFile` already provides. Also use
`SymTab::AddSymbol` instead of resizing the SymTab then assigning each
elements afterwards.
Previously, ParseSymTab loads symbols from both the COFF symbol table
and the export table, but if there are any entries in the export table,
it overwrites all the symbols already loaded from the COFF symbol table.
Due to the change to use AddSymbols, this no longer happens, and so the
SymTab now contains all symbols from both tables as expected.
The export symbols are now ordered by ordinal, instead of by the name
table order.
In its current state, it is possible for symbols in the COFF symbol
table to be duplicated by those in the export table. This behaviour will
be modified in a separate change.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D134196
Simon Pilgrim [Wed, 28 Sep 2022 09:55:16 +0000 (10:55 +0100)]
Fix MSVC "not all control paths return a value" warning. NFCI.
wanglei [Wed, 28 Sep 2022 09:31:44 +0000 (17:31 +0800)]
[LoongArch] Specify registers used in DWARF exception handling
Defines LoongArch registers for getExceptionPointerRegister() and
getExceptionSelectorRegister().
Differential Revision: https://reviews.llvm.org/D134709
River Riddle [Wed, 28 Sep 2022 09:50:06 +0000 (02:50 -0700)]
[vscode-mlir] Bump to version 0.0.11
Since version 0.10 we've:
* Added support for viewing/editing bytecode files
Muhammad Omair Javaid [Mon, 12 Sep 2022 11:46:04 +0000 (16:46 +0500)]
[LLVM] Fix GetErrcMessages.cmake module for WoA
GetErrcMessages.cmake module makes use of cmake's try_run which by
default builds its sources in debug mode unless configured with
CMAKE_TRY_COMPILE_CONFIGURATION. Debug builds on Windows sometimes fail
when appropraite DLLs are not included in path. Also on Windows on Arm
machines debug builds sometimes fail to link the correct debug DLLs.
To fix this I am setting CMAKE_TRY_COMPILE_CONFIGURATION to active build
configuration of currently configured LLVM project. This makes sure we
select same build type for try_run/try_compile cmake modules as
currently configured LLVM project.
Reviewed By: zero9178
Differential Revision: https://reviews.llvm.org/D133482
Igor Kirillov [Fri, 9 Sep 2022 08:17:07 +0000 (09:17 +0100)]
[LoopVectorize][Fix] Crash when invariant store address is calculated inside loop
Fixes #57572
Generally LICM pass is responsible for sinking out code that calculates
invariant address inside loop as it only needed to be calculated once.
But in rare case it does not happen we will not be vectorizing the
loop.
Differential Revision: https://reviews.llvm.org/D133687
jacquesguan [Tue, 27 Sep 2022 08:37:25 +0000 (16:37 +0800)]
[LegalizeTypes] Use getVectorElementCount to avoid crash of scalable vector.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D134718
Cullen Rhodes [Wed, 28 Sep 2022 08:01:58 +0000 (08:01 +0000)]
[AArch64][SVE] Remove redundant ptest after match/nmatch
These instructions are flag setting so the ptest is redundant, the
TableGen class wasn't setting the element size for the predicate causing
the checks in AArch64InstrInfo::optimizePTestInstr to fail.
Cullen Rhodes [Wed, 28 Sep 2022 07:45:27 +0000 (07:45 +0000)]
[AArch64][SVE] Precommit tests for redundant ptest after match/nmatch
Christian Sigg [Wed, 28 Sep 2022 08:15:41 +0000 (10:15 +0200)]
[MLIR] Fix after 4b27825.
The 'RUN' command was missing the input file argument.
River Riddle [Wed, 28 Sep 2022 07:47:48 +0000 (00:47 -0700)]
[TableGen] Only track reference locations if asked
Normal compilation doesn't care about tracking references,
and shouldn't pay the compilation time cost.
Chenbing Zheng [Wed, 28 Sep 2022 07:39:52 +0000 (15:39 +0800)]
[InstCombine] Add one more test for shl_trunc_icmp. nfc
Fraser Cormack [Wed, 28 Sep 2022 05:45:47 +0000 (06:45 +0100)]
[RISCV] Rename vp.ceil test functions
These look like they were copy/pasted from vfabs-vp.ll
Reviewed By: eopXD
Differential Revision: https://reviews.llvm.org/D134789
Vitaly Buka [Wed, 28 Sep 2022 07:08:33 +0000 (00:08 -0700)]
[test][StackLifetime] Add simple cycle test
Fangrui Song [Wed, 28 Sep 2022 07:06:49 +0000 (07:06 +0000)]
Revert "[ELF] --pack-dyn-relocs=android: scan relocation serially after D133003"
This reverts commit
bce6416775ea1577f0a7f82cc012cf0c1b9d9ce5.
The workaround is unneeded after
7dac9f4e481c9119a2205e869e07a643828f53db.
Fangrui Song [Wed, 28 Sep 2022 06:58:58 +0000 (06:58 +0000)]
[ELF] Make --pack-dyn-relocs=android compatible with parallel relocation scanning
River Riddle [Wed, 28 Sep 2022 06:56:51 +0000 (23:56 -0700)]
[mlir:LSP] Add bullet for tablegen hover in the vscode section
This allows hover documentation to show up in the vscode extension.
Siva Chandra Reddy [Tue, 27 Sep 2022 08:13:16 +0000 (08:13 +0000)]
[libc] Add implementation of pthread_once.
The existing thrd_once function has been refactored so that the
implementation can be shared between thrd_once and pthread_once
functions.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D134716
River Riddle [Wed, 28 Sep 2022 06:20:13 +0000 (23:20 -0700)]
[mlir:LSP] Add a doc blurb for bytecode editing support
This was missed when bytecode support was originally added.
River Riddle [Tue, 20 Sep 2022 08:45:17 +0000 (01:45 -0700)]
[TableGen:LSP] Resolve "go-to-def" on a let field to the base definition
This allows for go-to-def on the a `let` field to resolve to the definition
of the base class. This is kind of like how C++ works with go-to-def
from use->def->decl, with the decl in this case being the base definition
of the field.
Differential Revision: https://reviews.llvm.org/D134264
River Riddle [Tue, 20 Sep 2022 08:11:09 +0000 (01:11 -0700)]
[TableGen:LSP] Add hover support for records and recordvals
This provides hover information for classes, defs, fields, and template
arguments. Like PDLL, this pulls documentation from the source code
when hovering over fields and records.
Differential Revision: https://reviews.llvm.org/D134259
River Riddle [Fri, 16 Sep 2022 22:06:51 +0000 (15:06 -0700)]
[TableGen] Track reference locations of Records/RecordVals
This is extremely useful for language tooling as it allows
for providing go-to-def/find-references/etc. for many
more situations than what is currently possible.
Differential Revision: https://reviews.llvm.org/D134087
jacquesguan [Tue, 27 Sep 2022 08:49:31 +0000 (16:49 +0800)]
[RISCV][NFC] Add test for extractelt of vector types that should be split.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D134720
Tobias Hieta [Thu, 15 Sep 2022 08:30:38 +0000 (10:30 +0200)]
[Release] Add bump-version script.
There are many files that needs to be updated when you
bump the version of LLVM. This script tries to automate
that in order to make the release managers job easier.
Reviewed By: kwk, hans, ldionne
Differential Revision: https://reviews.llvm.org/D133923
Jean Perier [Wed, 28 Sep 2022 06:35:08 +0000 (08:35 +0200)]
[flang] Move main variables static promotion from lowering into IsSaved
Currently, lowering is promoting main program array and character
variables that are not saved into static memory.
This causes issues with equivalence initial value images because
semantics is relying on IsSaved to build the initial value of variables
in static memory. It seems more robust to have IsSaved be the place
deciding if a variable needs to be in static memory (except for common
block members).
Move the logic to decide if a main program variable must be in static
memory into evaluate::IsSaved and add two options to semantics to
replace the llvm options that were used in lowering:
- SaveMainProgram (off by default): save all main program variables.
- SaveBigMainProgramVariables (on by default): save all main program
variables that are bigger than 32 bytes.
The first options is required to run a few old programs that expect all
main program variables to be in bss (and therefore zero initialized).
The second option is added to allow performance testing: placing big
arrays in static memory seems a sane default to avoid blowing up the
stack with old programs that define big local arrays in the main
program, but since it is easier to prove that an alloca does not
escape/is not modified by calls, keeping big arrays on the stack could
yield improvements.
The logic of SaveBigMainProgramVariables is slightly changed compared to what
it was doing in lowering. The old code was placing all arrays and all
explicit length characters in static memory.
The new code is placing everything bigger than 32 bytes in static
memory. This has the advantages of being a simpler logic, and covering
the cases of scalar derived type with big array components or many
components. Small strings and arrays are now left on the stack (after
all, a character(1) can fit in register).
Note: I think it could have been nicer to add a single "integer" option
to set a threshold to place main program variables in static memory so
that this can be fine tuned by the drivers (SaveMainProgram would be
implemented by setting it to zero). But the language feature options are
not meant to carry integer options. Extending it for this seems an
overkill precedent, and placing it in SemanticsContext is weird (it is
a too low level option to be a bare member of SemanticsContext in my
opinion). So I just rolled my own dices and picked 32 for the sake of
simplicity.
Differential Revision: https://reviews.llvm.org/D134735
Serge Pavlov [Wed, 28 Sep 2022 06:32:20 +0000 (13:32 +0700)]
Revert "[Support] Class for response file expansion (NFC)"
This reverts commit
6e491c48d6b9cadcc5b77f730dd83a1448197329.
There are missed changes in flang.
Christian Sigg [Wed, 28 Sep 2022 06:29:00 +0000 (08:29 +0200)]
[Bazel] NFC: Move ParseUtilities.h from 'hdrs' to 'srcs'.
This is slightly cleaner.
Vitaly Buka [Wed, 28 Sep 2022 06:24:09 +0000 (23:24 -0700)]
[NFC][StackLifetime] Rename local variable
The next patch will require more generic name.
Christian Sigg [Wed, 28 Sep 2022 06:17:04 +0000 (08:17 +0200)]
Vitaly Buka [Wed, 28 Sep 2022 06:13:43 +0000 (23:13 -0700)]
[test][StackLifetime] Add new test created debugging an issue
The issue is not confirmened, but tests can stay.
Vitaly Buka [Wed, 28 Sep 2022 06:06:15 +0000 (23:06 -0700)]
[NFC][StackLifetime] Remove local variable
Serge Pavlov [Sun, 21 Aug 2022 17:30:28 +0000 (00:30 +0700)]
[Support] Class for response file expansion (NFC)
Functions that implement expansion of response and config files depend
on many options, which are passes as arguments. Extending the expansion
requires new options, it in turn causes changing calls in various places
making them even more bulky.
This change introduces a class ExpansionContext, which represents set of
options that control the expansion. Its methods implements expansion of
responce files including config files. It makes extending the expansion
easier.
No functional changes.
Differential Revision: https://reviews.llvm.org/D132379
Jun Zhang [Wed, 28 Sep 2022 04:30:02 +0000 (12:30 +0800)]
[Clang] Don't warn if deferencing void pointers in unevaluated context
After https://reviews.llvm.org/D134461, Clang will diagnose a warning if
trying to deference void pointers in C mode. However, this causes a lot
of noises when compiling a 5.19.11 Linux kernel.
This patch reduces the warning by marking deferencing void pointers in
unevaluated context OK, like `sizeof(*void_ptr)`, `typeof(*void_ptr)`
and etc.
Fixes https://github.com/ClangBuiltLinux/linux/issues/1720
Signed-off-by: Jun Zhang <jun@junz.org>
Differential Revision: https://reviews.llvm.org/D134702
eopXD [Wed, 28 Sep 2022 02:53:28 +0000 (19:53 -0700)]
[LangRef][Doc] Fix warning for too short title underline
eopXD [Tue, 27 Sep 2022 20:03:25 +0000 (13:03 -0700)]
[VP][RISCV] Add vp.floor, vp.round, vp.roundeven and their RISC-V support
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D134759
gonglingqin [Wed, 28 Sep 2022 01:25:32 +0000 (09:25 +0800)]
[LoongArch] Expand FSIN/FCOS/FSINCOS/FPOW/FREM
Differential Revision: https://reviews.llvm.org/D134628
Anlun Xu [Tue, 27 Sep 2022 23:25:20 +0000 (16:25 -0700)]
[mlir][sparse] Support sparse2sparse collapse for dynamic sizes
This patch implements sparse2sparse collapse for operands with dynamic shape.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D131599
Haowei Wu [Wed, 28 Sep 2022 01:35:34 +0000 (18:35 -0700)]
Revert "[clang-doc] Add typedef/using information."
This reverts commit
eed22583fd78d4d657fb70b99e62fbdc1f83b8f9, which
breaks clang build with -Werror.
Florian Mayer [Wed, 28 Sep 2022 01:19:25 +0000 (18:19 -0700)]
[HWASan] [NFC] use auto* over auto& for pointers
rkayaith [Wed, 28 Sep 2022 01:09:34 +0000 (21:09 -0400)]
[mlir-opt] Support parsing operations other than 'builtin.module' as top-level
This adds a `--no-implicit-module` option, which disables the insertion
of a top-level `builtin.module` during parsing. In this mode any op may
be top-level, however it's required that there be exactly one top-level
op in the source.
`parseSource{File,String}` now support `Operation *` as the container op
type, which disables the top-level-op-insertion behaviour.
Following patches will add the same option to the other tools as well.
Depends on D133644
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D133645
rkayaith [Fri, 9 Sep 2022 01:39:55 +0000 (21:39 -0400)]
[mlir-opt] Delay pass manager creation until after parsing
Currently the pass manager is created before parsing, which requires an
assumption that the top-level operation will be `builtin.module`.
Delaying the creation allows for using the parsed top-level operation as
the PassManager operation instead.
A followup change will allow for parsing top-level operations other than
`builtin.module`.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D133644
Han-Kuan Chen [Tue, 27 Sep 2022 05:48:52 +0000 (22:48 -0700)]
[RISCV] Lower BUILD_VECTOR to RISCVISD::VID_VL if it is floating-point type.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D133688
Nico Weber [Wed, 28 Sep 2022 00:16:56 +0000 (20:16 -0400)]
[gn build] re-add hlsl.h after
e432108bf254
Nemanja Ivanovic [Tue, 27 Sep 2022 23:50:56 +0000 (18:50 -0500)]
[PowerPC][NFC] Pre-commit test case for an upcoming atomics patch
Just a new test case with auto generated checks.
Lang Hames [Tue, 27 Sep 2022 23:32:19 +0000 (16:32 -0700)]
[llvm-jitlink] Remove stray global.
This was accidentally introduced in an earlier commit.
Yuanfang Chen [Tue, 27 Sep 2022 23:42:55 +0000 (16:42 -0700)]
Fix the test added in
55cd5bc50964449627f6f1
It is hard to test the functionality for multiple platforms. Just test it
on Linux as similar patches did in the past.
Aart Bik [Thu, 22 Sep 2022 00:40:50 +0000 (17:40 -0700)]
[mlir][sparse] change memref argument to proper SSA components
The indices for insert/compress were previously provided as
a memref<?xindex> with proper rank, since that matched the
argument for the runtime support libary better. However, with
proper codegen coming, providing the indices as SSA values
is much cleaner. This also brings the sparse_tensor.insert
closer to unification with tensor.insert, planned in the
longer run.
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D134404
Brett Wilson [Tue, 27 Sep 2022 23:33:29 +0000 (23:33 +0000)]
[clang-doc] Add typedef/using information.
Read typedef and "using" type alias declarations and serialize into the internal structures. Emit this information in the YAML output. The HTML and MD generators are unchanged.
Separate out the logic to create the parent namespace or record object and insert the newly created child into it. This logic was previously duplicated for every "info" type and is now shared.
To help this, a struct containing the child vectors was separated out so children can be added generically and without having too many templates.
A small change was made to populateParentNamespaces() to allow using types that aren't themselves DeclContexts (typedefs are the first example of this).
Reviewed By: paulkirth, haowei
Differential Revision: https://reviews.llvm.org/D134371
Brett Wilson [Tue, 27 Sep 2022 23:29:04 +0000 (23:29 +0000)]
[clang-doc] Clean up *Info constructors.
The *Info object (for the copy of the AST") constructors had many duplicated variants. Many of the variants seemed to be in an attempt to avoid default arguments. But default arguments are not prohibited and using them allows most of the variants to be removed which improves readability.
Remove the IsInGlobalNamespace flag on a Reference. This is set when the path is empty, and only read once in the HTML generator with the identical condition. The constructor cleanup exposed a problem where this was set to false when the constructor with no path was used, but true when the path was set to empty.
There should be no observable change with the exception that IsInGlobalNamespace is no longer emitted in YAML.
Reviewed By: paulkirth, haowei
Differential Revision: https://reviews.llvm.org/D134235
Jason Molenda [Tue, 27 Sep 2022 23:17:22 +0000 (16:17 -0700)]
Clear old section-to-addr entry when loading Section at new addr
SectionLoadList has a section-to-address map (m_sect_to_addr) and
an address-to-section map (m_addr_to_sect). When the load address
of a section is updated, the old entry from m_addr_to_sect would
never be cleared, resulting in incorrect address-to-section address
lookups from that point forward.
Differential Revision: https://reviews.llvm.org/D130534
rdar://
97308773
Katherine Rasmussen [Thu, 25 Aug 2022 17:09:47 +0000 (10:09 -0700)]
[flang] Add co_min and co_max to the list of intrinsics
Add the collective subroutines, co_min and co_max, to the list
of intrinsic subroutines. Add those two subroutines to the check
for coindexed objects for the first, third, and fourth dummy
arguments. Update the co_min and co_max semantics tests.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D133526
Michael Jones [Mon, 26 Sep 2022 21:28:23 +0000 (14:28 -0700)]
[libc][windows] fix small build issues.
The windows build has fallen behind a little, this patch fixes some
issues that were preventing it from building.
Specifically: Some subfolders weren't being included, leading to missing
targets in the cmake.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D134676
Philip Reames [Tue, 27 Sep 2022 22:55:44 +0000 (15:55 -0700)]
[LAA] Make getPtrStride return Option instead of overloading zero as error value [nfc]
This is purely NFC restructure in advance of a change which actually exposes zero strides. This is mostly because I find this interface confusing each time I look at it.
Philip Reames [Tue, 27 Sep 2022 21:33:41 +0000 (14:33 -0700)]
[LV] Remove two unused default arguments [nfc]
Jorge Gorbe Moya [Thu, 15 Sep 2022 00:20:33 +0000 (17:20 -0700)]
[NFCI] Refactor FormatterContainerPair into TieredFormatterContainer.
`FormatterContainerPair` is (as its name indicates) a very thin wrapper
over two formatter containers, one for exact matches and another one for
regex matches. The logic to decide which subcontainer to access is
replicated everywhere `FormatterContainerPair`s are used.
So, for example, when we look for a formatter there's some adhoc code
that does a lookup in the exact match formatter container, and if it
fails it does a lookup in the regex match formatter container. The same
logic is then copied and pasted for summaries, filters, and synthetic
child providers.
This change introduces a new `TieredFormatterContainer` that has two
main characteristics:
- It generalizes `FormatterContainerPair` from 2 to any number of
subcontainers, that are looked up in priority order.
- It centralizes all the logic to choose which subcontainer to use for
lookups, add/delete, and indexing.
This allows us to have a single copy of the same logic, templatized for
each kind of formatter. It also simplifies the upcoming addition of a
new tier of callback-based matches. See
https://discourse.llvm.org/t/rfc-python-callback-for-data-formatters-type-matching/64204
for more details about this.
The rest of the change is mostly replacing copy-pasted code with calls
to methods of the relevant `TieredFormatterContainer`, and adding some
methods to the `TypeCategoryImpl` class so we can remove some of this
copy-pasted code from `SBTypeCategory`.
Differential Revision: https://reviews.llvm.org/D133910
Amaury Séchet [Tue, 27 Sep 2022 21:08:23 +0000 (21:08 +0000)]
Change constant in cmov-promotion to avoid optimizations
Amaury Séchet [Tue, 27 Sep 2022 20:47:41 +0000 (20:47 +0000)]
[X86] Add test case for D134736. NFC
Yuanfang Chen [Tue, 27 Sep 2022 21:00:44 +0000 (14:00 -0700)]
Fix test after
5839fb6d25b4ba6edb
The test is not expected for Windows.
Aart Bik [Tue, 27 Sep 2022 20:11:16 +0000 (13:11 -0700)]
[mlir][sparse] fix signed/unsigned warning
Reviewed By: wrengr
Differential Revision: https://reviews.llvm.org/D134760
Martin Sebor [Mon, 1 Aug 2022 21:12:44 +0000 (15:12 -0600)]
[InstCombine] Add support for stpncpy folding
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D130922
Yuanfang Chen [Tue, 27 Sep 2022 20:37:36 +0000 (13:37 -0700)]
Fix test after
5839fb6d25b4ba6edb
The test is not expected for PS4.
Quentin Colombet [Mon, 26 Sep 2022 22:10:01 +0000 (22:10 +0000)]
[RISCV][ISel] Remove the commutative flag on SUB
I wasn't able to produce a testcase for that because right now VWSUB is
only generated from VWSUB_W and from there to trigger the commutative
bug we would need to grab VWSUB where the splat value is on the LHS,
which is currently not matched.
Differential Revision: https://reviews.llvm.org/D134701
Yuanfang Chen [Tue, 27 Sep 2022 20:06:18 +0000 (13:06 -0700)]
[Driver] pass -fjmc to LTO
So the behavior is consistent with non-LTO mode.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D134659
Yuanfang Chen [Tue, 27 Sep 2022 20:06:00 +0000 (13:06 -0700)]
[Driver][PS4] pass -fcrash-diagnostics-dir to LTO
Also refactor the existing code a little bit.
Reviewed By: probinson
Differential Revision: https://reviews.llvm.org/D134673
Yuanfang Chen [Tue, 27 Sep 2022 20:05:15 +0000 (13:05 -0700)]
[Driver] pass -fcrash-diagnostics-dir to LTO
So the behavior is consistent with non-LTO mode.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D134657
Michele Scuttari [Tue, 27 Sep 2022 17:41:08 +0000 (19:41 +0200)]
[MLIR] Migrate Arithmetic -> LLVM conversion pass to the auto-generated constructor
See #57475
Differential Revision: https://reviews.llvm.org/D134752
Simon Pilgrim [Tue, 27 Sep 2022 19:59:51 +0000 (20:59 +0100)]
[PhaseOrdering] Add missing x86 registered target requirement to fast-basictest.ll
Philip Reames [Tue, 27 Sep 2022 19:49:05 +0000 (12:49 -0700)]
[RISCV] Extend strided load/store pattern matching to non-loop cases
The motivation here is to enable a change I'm exploring in vectorizer to prefer base + offset_vector addressing for scatter/gather. The form the vectorizer would end up emitting would be a gep whose vector operand is an add of the scalar IV (splated) and the index vector. This change makes sure we can recognize that pattern as well as the current code structure. As a side effect, it might improve scatter/gathers from other sources.
Differential Revision: https://reviews.llvm.org/D134755
mitchell [Tue, 27 Sep 2022 19:40:39 +0000 (15:40 -0400)]
[clang-format] Fix alignment in #else preprocessor blocks
Summary:
clang-format makes multiple passes when #if/#else preprocessor blocks are found. It will make
one pass for normal code and code in the #if block, and then it will make another pass for just
the code in #else blocks. This often results in invalid alignment inside the else blocks because
they do not have any scope or indentAndNestingLevel context from their surrounding tokens/lines.
This patch remedies that by caching any initial indentAndNestingLevel from a second pass and
not breaking/returning early when a scope change is detected.
Fixes #36070
Reviewers: HazardyKnusperkeks, MyDeveloperDay
Tags: clang, clang-format
Differential Revision: https://reviews.llvm.org/D134042
Jim Ingham [Tue, 27 Sep 2022 19:38:22 +0000 (12:38 -0700)]
Rename a duplicate test, also give the test class a useful name.
Nikolas Klauser [Thu, 22 Sep 2022 16:05:08 +0000 (18:05 +0200)]
[libc++][NFC] Fix some standard-mandated includes comments
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D134447
eopXD [Sat, 24 Sep 2022 12:52:55 +0000 (05:52 -0700)]
[VP][RISCV] Add vp.ceil and RISC-V support
Previous commit
8b00b24f8505 missed to add `int_ceil` anchor for the
llvm.ceil.* section under LangRef.rst
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D134586
bixia1 [Tue, 27 Sep 2022 18:45:02 +0000 (11:45 -0700)]
[mlir][sparse] Add sparse_tensor.sort operator.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D134482
Jennifer Yu [Fri, 23 Sep 2022 03:05:15 +0000 (20:05 -0700)]
[Clang][OpenMP] Fix run time crash when use_device_addr is used.
It is data mapping ordering problem.
According omp spec
If one or more map clauses are present, the list item conversions that
are performed for any use_device_ptr or use_device_addr clause occur
after all variables are mapped on entry to the region according to those
map clauses.
The change is to put mapping data for use_device_addr at end of data
mapping array.
Differential Revision: https://reviews.llvm.org/D134556
Qiongsi Wu [Tue, 27 Sep 2022 18:22:40 +0000 (14:22 -0400)]
[LTO][clang] Using Single Dash Consistently when Passing LTO Options
The following three static functions in `clang/lib/Driver/ToolChains/CommonArgs.cpp`
```
static void renderRpassOptions(...)
static void renderRemarksOptions(...)
static void renderRemarksHotnessOptions(...)
```
use `--plugin-opt` for the plugin option prefix, while the function `tools::addLTOOptions` uses `-plugin-opt`. This patch makes sure that we only use `-plugin-opt` (single dash) everywhere. It is not clear to me that why we decided to use `--plugin-opt` in https://reviews.llvm.org/D85810. If using `--plugin-opt` is intended, I'd love to hear the reason and I will close this patch.
We intend to followup this patch with a few other patches that teach `clang` to pass plugin options to the AIX linker, which uses a different prefix (`-bplugin_opt:`).
Reviewed By: w2yehia
Differential Revision: https://reviews.llvm.org/D134668
Zain Jaffal [Tue, 27 Sep 2022 18:43:43 +0000 (19:43 +0100)]
[AArch64] Add tests for selecting SMULL instruction where the operand is zero extended and the top bit value is 0
This covers the case where we can convert a zext instruction to a sext and then select smull
Differential Revision: https://reviews.llvm.org/D134643
Zequan Wu [Mon, 26 Sep 2022 17:20:18 +0000 (10:20 -0700)]
[LLDB][NativePDB] Add class/union layout bit size.
Missing it causes lldb to crash or give incorrect result.
Differential Revision: https://reviews.llvm.org/D134656
Philip Reames [Tue, 27 Sep 2022 18:15:38 +0000 (11:15 -0700)]
[RISCV] Expand strided store test coverage for missing opts during codegen
eopXD [Tue, 27 Sep 2022 18:12:57 +0000 (11:12 -0700)]
Revert "[VP][RISCV] Add vp.ceil and RISC-V support"
This reverts commit
8b00b24f8505970f54eab85aad8db5845a635850.
eopXD [Sat, 24 Sep 2022 12:52:55 +0000 (05:52 -0700)]
[VP][RISCV] Add vp.ceil and RISC-V support
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D134586
Zequan Wu [Fri, 23 Sep 2022 17:57:25 +0000 (10:57 -0700)]
[LLDB][NativePDB] Let native pdb use class layout in debug info.
Before, class layout in native pdb is not hooked up in [[https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp#L9375-L9380 | here]].
This changes hooked it up by refactoring SymbolFileNativePDB and PdbAstBuilder.
PdbIndex (corresponds to a single pdb file) is removed from PdbAstBuilder, so it
can only be accessed via SymbolFileNativePDB and we can construct PdbAstBuilder
with just TypeSystemClang.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D134509
Krzysztof Parzyszek [Tue, 27 Sep 2022 17:51:14 +0000 (10:51 -0700)]
[Hexagon] Unify getSizeOfs in HexagonVectorCombine, NFC
LLVM GN Syncbot [Tue, 27 Sep 2022 17:33:35 +0000 (17:33 +0000)]
[gn build] Port
13e1a653278b
Chris Bieneman [Tue, 27 Sep 2022 02:44:13 +0000 (21:44 -0500)]
[CMake] Add `CLANG_ENABLE_HLSL` CMake option
The HLSL support in clang is in progress and not fully functioning. As
such we don't want to install the related optional build components by
default (yet), but we do need an option to build and install them
locally for testing and for some key users.
This adds the `CLANG_ENABLE_HLSL` option which is off by default and can
be enabled to install the HLSL clang headers and the clang-dxc symlink.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D134693
Krzysztof Parzyszek [Tue, 27 Sep 2022 17:03:44 +0000 (10:03 -0700)]
[Hexagon] Move function to a different class, NFC
"Sector" is a concept from AlignVectors, so the check for it
should be there.
Craig Topper [Tue, 27 Sep 2022 17:25:18 +0000 (10:25 -0700)]
[Driver] Silence a -Wparentheses error. NFC
Doru Bercea [Tue, 27 Sep 2022 01:51:17 +0000 (01:51 +0000)]
Move allocas converted from __kmpc_alloc_shared to entry block.
Gergely Nagy [Tue, 27 Sep 2022 11:59:55 +0000 (07:59 -0400)]
[libcxx] Make stdatomic.h work when included from a C source file
If a C source file includes the libc++ stdatomic.h, compilation will
break because (a) the C++ standard check will fail (which is expected),
and (b) `_LIBCPP_COMPILER_CLANG_BASED` won't be defined because the
logic defining it in `__config` is guarded by a `__cplusplus` check, so
we'll end up with a blank header. Move the detection logic outside of
the `__cplusplus` check to make the second check pass even in a C context
when you're using Clang. Note that `_LIBCPP_STD_VER` is not defined when
in C mode, hence stdatomic.h needs to check if in C++ mode before using
that macro to avoid a warning.
In an ideal world, a C source file wouldn't be including the libc++
header directory in its search path, so we'd never have this issue.
Unfortunately, certain build environments make this hard to guarantee,
and in this case it's easy to tweak this header to make it work in a C
context, so I'm hoping this is acceptable.
Fixes https://github.com/llvm/llvm-project/issues/57710.
Differential Revision: https://reviews.llvm.org/D134591
Lei Zhang [Tue, 27 Sep 2022 17:08:22 +0000 (13:08 -0400)]
[mlir][spirv] Use "SPIR-V" in the doc after dialect renaming
Craig Topper [Tue, 27 Sep 2022 17:04:30 +0000 (10:04 -0700)]
[Driver] Prevent Mips specific code from claiming -mabi argument on other targets.
Fixes PR57976.
Reviewed By: erichkeane, arichardson, MaskRay
Differential Revision: https://reviews.llvm.org/D134671
Lang Hames [Tue, 27 Sep 2022 15:59:58 +0000 (08:59 -0700)]
[ORC][JITLink] Retain Weak flags in JITDylib interfaces, propagate to LinkGraph.
Previously we stripped Weak flags from JITDylib symbol table entries once they
were resolved (there was no particularly good reason for this). Now we want to
retain them and query them when setting the Linkage on external symbols in
LinkGraphs during symbol resolution (this was the motivation for
75404e9ef88).
Making weak linkage of external definitions discoverable in the LinkGraph will
in turn allow future plugins to implement correct handling for them (by
recording locations that depend on exported weak definitions and pointing all
of these at one chosen definition at runtime).
Lang Hames [Tue, 27 Sep 2022 15:37:15 +0000 (08:37 -0700)]
[JITLink] Fix typo in debugging output.
Michael Buch [Mon, 26 Sep 2022 16:38:37 +0000 (18:38 +0200)]
[lldb][TypeSystemClang] Honor DW_AT_rvalue_reference when creating C++ FunctionPrototypes
Currently funciton lookup in the expression evaluator
fails to disambiguate member functions the are overloaded
on lvalue/rvalue reference-qualifiers. This happens because
we unconditionally set a `FunctionPrototype`s
`ExtProtoInfo::RefQualifier` to `RQ_None`. We lose
the ref-qualifiers in the synthesized AST and `clang::Sema`
fails to pick a correct overload candidate.
DWARF emits information about a function's ref-qualifiers
in the form of a boolean `DW_AT_rvalue_reference` (for rvalues)
and `DW_AT_reference` (for lvalues).
This patch sets the `FunctionPrototype::ExtProtoInfo::RefQualifier`
based on the DWARF attributes above.
**Testing**
* Added API test
llvm/llvm-project issue #57866
Differential Revision: https://reviews.llvm.org/D134661
Craig Topper [Tue, 27 Sep 2022 16:35:21 +0000 (09:35 -0700)]
[VP][RISCV] Add vp.fmuladd.
Expanded in SelectionDAGBuilder similar to llvm.fmuladd.
Reviewed By: frasercrmck, simoll
Differential Revision: https://reviews.llvm.org/D134474
Min-Yih Hsu [Wed, 3 Aug 2022 21:08:33 +0000 (14:08 -0700)]
[mlir][LLVMIR] Fix incorrect result type from llvm.fcmp
If any of the operands for FCmpOp is a vector, returns a vector<Nxi1>,
rather than an i1 type result.
Differential Revision: https://reviews.llvm.org/D134449
Krzysztof Drewniak [Tue, 27 Sep 2022 16:13:07 +0000 (16:13 +0000)]
[mlir][ExecutionEngine] Remove ScopedContext from ROCm wrappers
The push/pop context APIs are deprecated in HIP, and keeping the
default device set is handled in IHP using hipSetDevice().
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D134747
Stefan Gränitz [Tue, 27 Sep 2022 16:43:26 +0000 (18:43 +0200)]
[ObjC][ARC] Fix target register for call expanded from CALL_RVMARKER on Windows
Fix regression https://github.com/llvm/llvm-project/issues/56952 for Clang CodeGen on Windows. In the Windows ABI the instruction sequence that is expanded from CALL_RVMARKER should use RCX as target register and not RDI.
Reviewed By: rnk, fhahn
Differential Revision: https://reviews.llvm.org/D134441