aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-01[𝘀𝗽𝗿] changes introduced through rebaseusers/arichardson/spr/main.compiler-rt-build-libfuzzer-sources-with-the-chosen-c-compilerAlex Richardson1661-20493/+39317
Created using spr 1.3.4 [skip ci]
2024-03-01[libc] Fix a bug in fx_bits.h due to integer promotion of bitwise ops. (#83647)lntue2-15/+64
2024-03-01[libc] Fix flipped AMDGPU kernel launch arguments (#83648)Joseph Huber1-6/+6
Summary: These values were incorrectly flipped, setting the size of the blocks to the threads and vice-versa. When I originally wrote the thread utilities it was using COV4 which used an implicit format. Then when I updated I accidentally flipped them and never noticed because nothing depended on the size of the threads until I checked it manually.
2024-03-02[Sparc] Use generated MatchRegisterName (NFCI) (#82165)Sergei Barannikov2-328/+115
2024-03-01[libc] Fix GPU include install directoryJoseph Huber1-2/+2
2024-03-01[flang] Support INDEX as a procedure interface (#83073)Peter Klausler3-0/+151
The specific intrinsic function INDEX should work as a PROCEDURE interface in the declaration of a procedure pointer or dummy procedure, and it should be compatible with a user-defined interface. Fixes https://github.com/llvm/llvm-project/issues/82397.
2024-03-01[flang] Downgrade error to warning (#83032)Peter Klausler2-2/+2
It's probably a bad idea to have a Cray pointer whose type is a derived type that is not a sequence type, but the feature is a nonstandard extension in the first place. Downgrade the message to a warning. Fixes https://github.com/llvm/llvm-project/issues/82210.
2024-03-01[clang][deps] Implement move-conversion for `CowCompilerInvocation` (follow-up)Jan Svoboda2-0/+16
2024-03-01[clang][api-notes] NFC: Upstream some documentationJan Svoboda2-2/+19
2024-03-01[clang] NFC: Extract `CompilerInstance` functionJan Svoboda2-24/+34
2024-03-01[clang][driver] NFC: Upstream commentJan Svoboda1-0/+3
2024-03-01[clang][index] NFC: Stylistic changesJan Svoboda2-3/+2
2024-03-01[clang][sema] NFC: Stylistic changesJan Svoboda3-4/+7
2024-03-01[flang] Enforce F'2023 C1520 correctly (#82842)Peter Klausler2-4/+5
When a procedure declaration statement has a binding label, it must declare no more than one procedure. Fixes https://github.com/llvm/llvm-project/issues/82528.
2024-03-01[flang] Fix handling of shadowed procedure name used as interface (#82837)Peter Klausler2-4/+8
Use BypassGeneric() to process the name of an interface in a procedure declaration statement, so that if it's the name of a generic with a homonymous specific procedure, that's what defines the interface. Fixes https://github.com/llvm/llvm-project/issues/82267.
2024-03-01[Driver] Add BoolMOption to simplify boolean -m* optionsFangrui Song1-13/+18
Similar to BoolFOption/BoolGOption for -f* and -g*
2024-03-01[flang] Allow PROCEDURE() with explicit type elsewhere (#82835)Peter Klausler3-7/+13
Fortran allows a procedure declaration statement with no interface or type, with an explicit type declaration statement elsewhere being used to define a function's result. Fixes https://github.com/llvm/llvm-project/issues/82006.
2024-03-01[flang] Ensure names resolve in DATA statement objects (#82825)Peter Klausler2-7/+38
When DATA statement objects have derived types obtained by implicit typing rules, their types aren't known until specification part processing is complete. In the case of a derived type, any component name in a designator may still be in need of name resolution. Take care of it in the deferred check visitor that runs at the end of name resolution in each specification and execution part. Fixes https://github.com/llvm/llvm-project/issues/82069.
2024-03-01[ARM] Simplify shouldAssumeDSOLocal for ELF. NFCFangrui Song3-10/+6
2024-03-01[clang][sema] consolidate diags for incompatible_vector_* (#83609)Farzon Lotfi4-26/+25
removing the additions of `err_vec_builtin_non_vector_all` & `err_vec_builtin_incompatible_vector_all` caused by https://github.com/llvm/llvm-project/pull/83077. Instead adding a select option to `err_vec_builtin_non_vector` & `err_vec_builtin_incompatible_vector` to account for uses where there are more than two arguments.
2024-03-01[flang] Accept whole assumed-size arrays as variable selectors (#82806)Peter Klausler2-10/+34
Include variable selectors ("select type (x => y)") as a context in which a whole assumed-size array may legitimately appear. Fixes https://github.com/llvm/llvm-project/issues/81910.
2024-03-01[flang] Whether a procedure's interface is explicit or not is not a d… ↵Peter Klausler11-32/+116
(#82796) …istinguishing characteristic We note whether a procedure's interface is explicit or implicit as an attribute of its characteristics, so that other semantics can be checked appropriately, but this internal attribute should not be used as a distinguishing characteristic in itself. Fixes https://github.com/llvm/llvm-project/issues/81876.
2024-03-01[flang] Fix "suspicious condition" in C++ usage (#82790)Peter Klausler1-1/+1
Address a reported C++ coding "suspicious condition". Fixes https://github.com/llvm/llvm-project/issues/80807.
2024-03-01[flang] Fix DATA-like default component initialization (#82784)Peter Klausler2-3/+20
Ensure that the values in a DATA-like default component initialization pass through expression analysis. Fixes https://github.com/llvm/llvm-project/issues/81097.
2024-03-01[flang] Catch attempt to type a subroutine (#82704)Peter Klausler2-6/+14
The presence of a type in the prefix of a SUBROUTINE statement should elicit an error message, not a crash. Fixes https://github.com/llvm/llvm-project/issues/80530.
2024-03-01[flang] Fix crash in statement function semantics (bug #80532) (#82702)Peter Klausler2-1/+3
When statement function expressions are analyzed, ensure that the semantics context has a valid location set, otherwise a type spec (like "integer::") can lead to a crash. Fixes https://github.com/llvm/llvm-project/issues/80532.
2024-03-01[InstallAPI] Add missing link to clangLexCyndy Ishida1-0/+1
2024-03-01[flang] Fix separate MODULE PROCEDURE when binding label exists (#82686)Peter Klausler2-1/+10
When a separate module procedure is defined with a MODULE PROCEDURE and its corresponding interface has a binding label, the compiler was emitting an error about mismatching binding labels because the binding label wasn't being copied into the subprogram's definition.
2024-03-01[InstallAPI] Collect frontend attributes & ObjCInterface decls (#83378)Cyndy Ishida7-22/+331
* This patch introduces a container class, for holding records and attributes only collectible from the clang frontend, which is a subclass of `llvm::MachO::RecordsSlice` * This also prunes out collecting declarations from headers that aren't considered input to installapi. * Uses these constructs for collecting global objective-c interfaces.
2024-03-01[flang] Handle implied ASYNCHRONOUS attribute (#82638)Peter Klausler6-139/+315
The standard states that data objects involved in an asynchronous data transfer statement gain the ASYNCHRONOUS attribute implicitly in the surrounding subprogram or BLOCK scope. This attribute affects the checks in call semantics, as an ASYNCHRONOUS actual object associated with an ASYNCHRONOUS dummy argument must not require data copies in or out. (Most compilers don't implement implied ASYNCHRONOUS attributes correctly; XLF gets these right, and GNU is close.)
2024-03-01[flang][runtime] Allow 1023 active asynchronous IDs (#82446)Peter Klausler2-11/+20
The present limit of 63 is too low for some tests; bump it up to 1023 by using an array of bit-sets.
2024-03-01[OpenACC] Implement no throw out of Compute constructerichkeane5-25/+82
Exception handling SHOULD be possible depending on codegen (and if not, we can make it trap and add a warning when we make that decision), but throwing out of a compute construct is ill formed. This patch adds an error for a 'throw' that isn't in a 'try' scope. This error is imperfect as it won't diagnose a 'throw' that escapes its 'try', or one in a separate function, but it catches the obvious mistakes. The other cases will need to be handled as runtime failures.
2024-03-01[flang][runtime] Underflow real input to -0. when negative (#82443)Peter Klausler2-2/+8
When the result of real input editing underflows to zero, return -0. when the input field had a minus sign.
2024-03-01[lld][macho][NFC] Add specific namespace scope for objc symbol names (#83618)alx323-6/+8
Move symbol names from directly under `objc` scope to `objc::symbol_names`. Ex: `objc::klass` -> `objc::symbol_names::klass` Co-authored-by: Alex B <alexborcan@meta.com>
2024-03-01[flang] Use module file hashes for more checking and disambiguation (#80354)Peter Klausler19-46/+334
f18's module files are Fortran with a leading header comment containing the module file format version and a hash of the following contents. This hash is currently used only to protect module files against corruption and truncation. Extend the use of these hashes to catch or avoid some error cases. When one module file depends upon another, note its hash in additional module file header comments. This allows the compiler to detect when the module dependency is on a module file that has been updated. Further, it allows the compiler to find the right module file dependency when the same module file name appears in multiple directories on the module search path. The order in which module files are written, when multiple modules appear in a source file, is such that every dependency is written before the module(s) that depend upon it, so that their hashes are known. A warning is emitted when a module file is not the first hit on the module file search path. Further work is needed to add a compiler option that emits (larger) stand-alone module files that incorporate copies of their dependencies rather than relying on search paths. This will be desirable for application libraries that want to ship only "top-level" module files without needing to include their dependencies. Another future work item would be to admit multiple modules in the same compilation with the same name if they have distinct hashes.
2024-03-01[libomptarget] Fix 'libomptarget' libraries being installed twice (#83624)Joseph Huber4-0/+4
Summary: We use `add_llvm_library` as a shorthand for setting up all the dependencies and libraries we need for the OpenMP offloading runtime as they depend on a lot of the LLVM utilities. However, we always explicitly installed these manually. Behind the scenes the function would then install it again. This was unnoticed because until now the destinations matched. Now that we want it to optionally go into the other directory it is duplicating them. Fix this by stating that this is a build tree only library so we can handle it ourselves.
2024-03-01[X86] Don't always separate conditions in `(br (and/or cond0, cond1))` into ↵Noah Goldstein28-740/+920
separate branches It makes sense to split if the cost of computing `cond1` is high (proportionally to how likely `cond0` is), but it doesn't really make sense to introduce a second branch if its only a few instructions. Splitting can also get in the way of potentially folding patterns. This patch introduces some logic to try to check if the cost of computing `cond1` is relatively low, and if so don't split the branches. Modest improvement on clang bootstrap build: https://llvm-compile-time-tracker.com/compare.php?from=79ce933114e46c891a5632f7ad4a004b93a5b808&to=978278eabc0bafe2f390ca8fcdad24154f954020&stat=cycles Average stage2-O3: 0.59% Improvement (cycles) Average stage2-O0-g: 1.20% Improvement (cycles) Likewise on llvm-test-suite on SKX saw a net 0.84% improvement (cycles) There is also a modest compile time improvement with this patch: https://llvm-compile-time-tracker.com/compare.php?from=79ce933114e46c891a5632f7ad4a004b93a5b808&to=978278eabc0bafe2f390ca8fcdad24154f954020&stat=instructions%3Au Note that the stage2 instruction count increases is expected, this patch trades instructions for decreasing branch-misses (which is proportionately lower): https://llvm-compile-time-tracker.com/compare.php?from=79ce933114e46c891a5632f7ad4a004b93a5b808&to=978278eabc0bafe2f390ca8fcdad24154f954020&stat=branch-misses NB: This will also likely help for APX targets with the new `CCMP` and `CTEST` instructions. Closes #81689
2024-03-01[X86] Regenerate X86/lsr-addrecloops.ll test; NFCNoah Goldstein1-2/+93
2024-03-01[TargetParser][AArch64] Add alias for FEAT_RDM. (#80540)Alexandros Lamprineas7-14/+37
This patch allows using the name "rdma" as an alias for "rdm". The name makes its way to target attributes as well as the command line via the -march and -mcpu options. The motivation was originally to support this in Function Multi Versioning but it also makes sense to align with GCC on the command line.
2024-03-01[clang-format] Enable again some operator tests (#83380)rayroudc1-14/+9
Multiple formatting operator tests are commented. This change enables them again. [PR506629](https://llvm.org/PR50629) fixed by [D153798](https://reviews.llvm.org/D153798). Tests in `ConfigurableSpaceBeforeParens` have the same behavior as before [D110833](https://reviews.llvm.org/D110833). Update the test for function declaration and definition, as changed in [D114696](https://reviews.llvm.org/D114696).
2024-03-01[SLP] Collect candidate VFs in vector in vectorizeStores (NFC). (#82793)Florian Hahn1-1/+8
This is in preparation for https://github.com/llvm/llvm-project/pull/77790 and makes it easy to add other, non-power-of-2 VFs for processing. PR: https://github.com/llvm/llvm-project/pull/82793
2024-03-01[lldb] Fix -Wformat after #83602Fangrui Song1-2/+2
2024-03-01[unittest] Fix -Wsign-compare warnings in KnownBits.cpp after #82354Fangrui Song1-4/+4
2024-03-01[DWARF] Use std::tie after #83047. NFCFangrui Song1-3/+2
The code suggestion was neglected when the patch landed.
2024-03-01[Support] Fix crash in install_bad_alloc_error_handler (#83160)Fabian Schiebel2-1/+28
Previously, the function `install_bad_alloc_error_handler` was asserting that a bad_alloc error handler was not already installed. However, it was actually checking for the fatal-error handler, not for the bad_alloc error handler, causing an assertion failure if a fatal-error handler was already installed. Fixes #83040
2024-03-01[libc++][NFC] rename variable in atomic_syncHui1-3/+3
As discussed in https://github.com/llvm/llvm-project/pull/81427/files#r1509266817 rename the variable as a separate commit
2024-03-01[M68k] Fix compilation pipeline checkMichael Liao1-0/+1
- Add 'Init Undef Pass', which is target-independent now.
2024-03-01[SLP] Exit early if MaxVF < MinVF (NFCI). (#83283)Florian Hahn1-2/+3
Exit early if MaxVF < MinVF. In that case, the loop body below will never get entered. Note that this adjusts the condition from MaxVF <= MinVF. If MaxVF == MinVF, vectorization may still be feasible (and the loop below gets entered). PR: https://github.com/llvm/llvm-project/pull/83283
2024-03-01[llvm][vfs] Remove blank comment after \endverbatim doxygen command (#83240)yelleyee1-5/+0
Blank comment line afer \endverbatim malfunctions the doxygen parser. Check the "Detailed Description" section on https://llvm.org/doxygen/classllvm_1_1vfs_1_1RedirectingFileSystem.html Screenshot is attached below ![image](https://github.com/llvm/llvm-project/assets/22870466/35fc2444-d2f4-4638-990e-241cc14d0986)
2024-03-01[KnownBits] Add KnownBits::absdiff to compute the absolute difference of 2 ↵Simon Pilgrim3-1/+53
unsigned values (#82354) Equivalent to "umax(A, B) - umin(A, B)" This is just an initial correctness implementation, hopefully we can make this optimal in the future.