- Jun 23, 2022
-
-
Max Kazantsev authored
Scale reg should never be zero, so when the quotient is zero, we cannot assign it there. Limit this transform to avoid this situation. Differential Revision: https://reviews.llvm.org/D128339 Reviewed By: eopXD
-
Craig Topper authored
This adds RISCVISD opccodes for LA, LA_TLS_IE, and LA_TLS_GD to remove creation of MachineSDNodes form get*Addr. This makes the code consistent with the previous patches that added RISCVISD::HI, ADD_LO, LLA, and TPREL_ADD. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D128325
-
Mark de Wever authored
-
Xiang Li authored
When writeValueAsMetadata for GlobalVariable and Function, write TypedPointerType for ValueType and FunctionType. Reviewed By: bogner Differential Revision: https://reviews.llvm.org/D127705
-
Peixin Qiao authored
As Fortran 2018 C1520, if proc-language-binding-spec with NAME= is specified, then proc-decl-list shall contain exactly one proc-decl, which shall neither have the POINTER attribute nor be a dummy procedure. Add this check. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D127725
-
- Jun 22, 2022
-
-
Peixin Qiao authored
This patch refines //when// driver diagnostics are formatted so that `flang-new` and `flang-new -fc1` behave consistently with `clang` and `clang -cc1`, respectively. This change only applies to driver diagnostics. Scanning, parsing and semantic diagnostics are separate and not covered here. **NEW BEHAVIOUR** To illustrate the new behaviour, consider the following input file: ```! file.f90 program m integer :: i = k end ``` In the following invocations, "error: Semantic errors in file.f90" _will be_ formatted: ``` $ flang-new file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k $ flang-new -fc1 -fcolor-diagnostics file.f90 error: Semantic errors in file.f90 ./file.f90:2:18: error: Must be a constant value integer :: i = k ``` However, in the following invocations, "error: Semantic errors in file.f90" _will not be_ formatted: ``` $ flang-new -fno-color-diagnostics file.f90 err... -
Peixin Qiao authored
This adds the test case with portability warning preparing for D125804, which supports checking for portability warnings in test_errors.py. Reviewed By: ekieri Differential Revision: https://reviews.llvm.org/D127821
-
Martin Storsjö authored
This test does succeed in my local test environment though, but fails on the buildbot.
-
Jonathan Peyton authored
When many nested teams are formed, __kmp_threads may be reallocated to accommodate new threads. This reallocation causes a data race when another existing team's thread simultaneously references __kmp_threads. This patch keeps the old thread arrays around until library shutdown so these lingering references can complete without issue and access to __kmp_threads remains a simple array reference. Fixes: https://github.com/llvm/llvm-project/issues/54708 Differential Revision: https://reviews.llvm.org/D125013
-
Nikita Popov authored
Use an IRBuilder to insert instructions in preWriteTileCfg(). While here, also remove some unnecessary bool return values. There are some test changes because the IRBuilder folds "trunc i16 8 to i8" to "i8 8", and that has knock-on effects on instruction naming. I ran into this when converting tests to opaque pointers and noticed that this pass introduces unnecessary "bitcast ptr to ptr" instructions.
-
Mark de Wever authored
-
Nikita Popov authored
This runs the test through -instnamer and generates test checks using update_test_checks.py. (The previous comment indicated that update_llc_test_checks.py was used, but I rather doubt that.) This relies on the non-determinism fix from fbb72530, the previous check lines have apparently been written to accomodate that non-determinism.
-
Nikita Popov authored
We generate code by iterating over this map, so make sure that the order is deterministic.
-
Guillaume Chatelet authored
This reverts commit 8ba2cbff.
-
Nikita Popov authored
Run the test through -instnamer, to make it easier to modify.
-
Nico Weber authored
The name of the host binary changed from make_confusable_table to make-confusable-table, so match that.
-
serge-sans-paille authored
Detect identifiers that are confusable using a variant of Unicode definition http://www.unicode.org/reports/tr39/#Confusable_Detection and have conflicting scopes. This a recommit (with portability and feature fixes) of b94db7ed Differential Revision: https://reviews.llvm.org/D112916 -
Alvin Wong authored
The setting `plugin.object-file.pe-coff.module-abi` is a string-to-enum map that allows specifying an ABI to a module name. For example: ucrtbase.dll=msvc libstdc++-6.dll=gnu This allows for debugging a process which mixes both modules built using the MSVC ABI and modules built using the MinGW ABI. Depends on D127048 Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D127234 -
Alvin Wong authored
LLDB tries to follow `EXCEPTION_RECORD::ExceptionRecord` to follow the nested exception chain. In practice this code just causes Access Violation whenever there is a nested exception. Since there does not appear to be any code in LLDB that is actually using the nested exceptions, this change just removes the crashing code and adds a comment for future reference. Fixes https://github.com/mstorsjo/llvm-mingw/issues/292 Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D128201
-
Alvin Wong authored
This fixes an issue that, when you start lldb or use `target create` with a program name which is on $PATH, or not specify the .exe suffix of a program in the working directory on Windows, you get a confusing error, for example: (lldb) target create notepad error: 'C:\WINDOWS\SYSTEM32\notepad.exe' doesn't contain any 'host' platform architectures: i686, x86_64, i386, i386 Fixes https://github.com/mstorsjo/llvm-mingw/issues/265 Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D127436 -
Martin Storsjö authored
25c8a061 / D127048 added an option for setting the ABI to GNU. When an object file is loaded, there's only minimal verification done for the architecture spec set for it, if the object file only provides one. However, for i386 object files, the PECOFF object file plugin provides two architectures, i386-pc-windows and i686-pc-windows. This picks a totally different codepath in TargetList::CreateTargetInternal, where it's treated as a fat binary. This goes through more verifications to see if the architectures provided by the object file matches what the platform plugin supports. The PlatformWindows() constructor explicitly adds the "i386-pc-windows" and "i686-pc-windows" architectures (even when running on other architectures), which allows this "fat binary verification" to succeed for the i386 object files that provide two architectures. However, after that commit, if the object file is advertised with the different environment (either when lldb is built in a mingw environment, or if that setting is set), the fat binary validation won't accept the file any longer. Update ArchSpec::IsEqualTo with more logic for the Windows use cases; mismatching vendors is not an issue (they don't have any practical effect on Windows), and GNU and MSVC environments are compatible to the point that PlatformWindows can handle object files for both environments/ABIs. As a separate path forward, one could also consider to stop returning two architecture specs from ObjectFilePECOFF::GetModuleSpecifications for i386 files. Differential Revision: https://reviews.llvm.org/D128268
-
James Y Knight authored
Almost all attributes currently marked `Undocumented` are user-facing attributes which _ought_ to be documented, but nobody has written it yet. This change ensures that we at least acknowledge that these attributes exist in the documentation, even if we have no description of their semantics. A new category, `InternalOnly` has been added for those few attributes which are not user-facing, and should remain omitted from the docs.
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D128118
-
Joseph Huber authored
Summary: A recent patch added some new code paths to the linker wrapper. Older compilers seem to have problems with returning errors wrapped in an Excepted type without explicitly moving them. This caused failures in some of the buildbots. This patch fixes that.
-
Nikita Popov authored
Migrate some more tests that required manual fixups (e.g. due to phi nodes), but have no codegen changes. Also tweak some more tests that had leftover no-op constant expressions.
-
Valentin Clement authored
This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D128331 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com>
-
Guillaume Chatelet authored
-
Florian Hahn authored
This patch adds a new transferToOtherSystem helper that tries to transfer information from signed predicates to the unsigned system and vice versa. The initial version adds A >=u B for A >=s B && B >=s 0 https://alive2.llvm.org/ce/z/8b6F9i
-
Joseph Huber authored
This patch updates the `--[no-]offload-arch` command line arguments to allow the user to pass in many architectures in a single argument rather than specifying it multiple times. This means that the following command line, ``` clang foo.cu --offload-arch=sm_70 --offload-arch=sm_80 ``` can become: ``` clang foo.cu --offload-arch=sm_70,sm_80 ``` Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D128206
-
Joseph Huber authored
The linker wrapper currently eagerly extracts all identified offloading binaries to a file. This isn't ideal because we will soon open these files again to examine their symbols for LTO and other things. Additionally, we may not use every extracted file in the case of static libraries. This would be very noisy in the case of static libraries that may contain code for several targets not participating in the current link. Recent changes allow us to treat an Offloading binary as a standard binary class. So that allows us to use an OwningBinary to model the file. Now we keep it in memory and only write it once we know which files will be participating in the final link job. This also reworks a lot of the structure around how we handle this by removing the old DeviceFile class. The main benefit from this is that the following doesn't output 32+ files and instead will only output a single temp file for the linked module. ``` $ clang input.c -fopenmp --offload-arch=sm_70 -foffload-lto -save-temps ``` Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D127246
-
Nikita Popov authored
Run the test through -instnamer, which makes it simpler to modify it.
-
Guillaume Chatelet authored
-
Martin Storsjö authored
This comment became outdated in 053eb356 (but was moved along); that commit moved the code and the comment to a separate function, with a separate local variable `num_of_bytes_read`. On error, the possibly garbage value is never copied back to the caller's reference, thus the comment is no longer relevant (and slightly confusing as is). Differential Revision: https://reviews.llvm.org/D128226
-
Aaron Ballman authored
The misc-unused-parameters check would trigger false positive warnings about the parameter being unused when the parameter declaration was invalid. No longer issue the warning in that case on the assumption that most parameters are used in practice, so the extra diagnostic is most likely a false positive. Fixes #56152
-
Igor Kudrin authored
This helps to preserve the debug information of global variables. Differential Revision: https://reviews.llvm.org/D127510
-
Simon Pilgrim authored
Another minor cleanup as we work toward removing GetDemandedBits entirely - call SimplifyMultipleUseDemandedBits directly.
-
Nikita Popov authored
Test updates were performed using: https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34 These are only the test updates where the test passed without further modification (which is almost all of them, as the backend is largely pointer-type agnostic).
-
Guillaume Chatelet authored
This is a reland of D126773 / b2a9ea44. The removal of `-mllvm -combiner-global-alias-analysis` has landed separately in D128051 / 7b73f537. And the removal of `-mllvm --tail-merge-threshold=0` is scheduled for removal in a subsequent patch.
-
Nikita Popov authored
Previously left these behind due to the required instruction renumbering, drop them now. This more accurately represents opaque pointer input IR. Also drop duplicate opaque pointer check lines in one SROA test.
-