- Mar 16, 2023
-
-
Simon Pilgrim authored
Avoid widening the shift to a bigger type if the zext would be free anyway Pulled out of D146121
-
Alexey Lapshin authored
This patch is extracted from D96035. It adds AddressesMap map interface to the DWARFLinkerParallel library. This interface mostly match with the paired interface from the DWARFLinker library, except that it does not depend on DIEInfo class. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D140788
-
Yuanfang Chen authored
A similar fix to D133095. Fixes https://github.com/llvm/llvm-project/issues/58770. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D145607
-
Mark de Wever authored
-
Philip Reames authored
Note that getCleanShadow always returns Constant::getNullValue so the prior code is equivalent to convertToBool.
-
Philip Reames authored
This is an implementation detail of the flattening scheme, so hide it in the implementation thereof. This does require one caller to go through the appropriate utility, but doing that makes the code cleaner anyways.
-
Simon Pilgrim authored
[X86] Add more thorough testing of the zext(logicalshift(zext(x),c)) -> logicalshift(zext(x),c) fold Add tests for more extension combos, 64-bit targets and some illegal types
-
Mark de Wever authored
-
ibricchi authored
Adds the ability to load a plugin to control the inline order. This allows developing and distributing inlining heuristics outside of tree. And together with the inline advisor plugins allows for fine grained control of the inliner. The PluginInlineOrderAnalysis class serves as the entry point for dynamic advisors. Plugins must register instances of this class to provide their own InlineOrder. Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D140637
-
Stephen Tozer authored
Adds an option to Dexter that passes command line arguments to the debugged process, following (and in addition to) any arguments given by the DexCommandLine command. Differential Revision: https://reviews.llvm.org/D144979
-
Paul Kirth authored
Currently we don't emit any CFI instructions for the SCS register when enabling SCS on RISCV. This causes problems when unwinding, since the SCS register isn't being handled properly. Reviewed By: mcgrathr Differential Revision: https://reviews.llvm.org/D145205
-
Alex Bradbury authored
After D134050, it makes sense to combine the RV64 ABI tests into a single file in order to make it more maintainable (i.e. not having to split tests based on the combinations of ABIs they're expected to impact). This patch deletes duplicated tests but doesn't do much further reorganisation beyond that. I imagine the logical ordering of tests in the file and comments could be further improved in the future. My personal feeling is that it's probably not worth investing the time to try to get this "perfect", and to instead settle for this incremental step forward. But if there's reviewer interest in attempting to further iterate, I'm happy to do so. Differential Revision: https://reviews.llvm.org/D140400
-
Mark de Wever authored
-
Mark de Wever authored
Having the header granularized makes it possible to remove the dependency on this header in <format>. This <format> header gets included in more headers due to more usage of std::formatter in the library. This should reduce the number of transitive includes. Note formatting the new headers will be done in a followup patch. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D145590
-
Mark de Wever authored
I noticed this wile investigating https://llvm.org/PR61314 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D145798
-
Valentin Clement authored
Catch invalid element type in fir.box in the verifier so it does not propagate later in lowering. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D146078
-
Philip Reames authored
-
Valentin Clement authored
Adapat the fix made in D146079 to just avoid the type to be wrapped with an extra fir.box or fir.class. The potential load is delegated to the code that is after. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D146120
-
Arthur Eubanks authored
Since debugify inserts instructions.
-
Tres Popp authored
Differential Revision: https://reviews.llvm.org/D146151
-
Jakub Kuderski authored
This makes it so that calling `llvm::is_contained` no longer degrades performance over member contains, even though both have almost identical names. This would be the case in most set/map classes that can check for an element being present in O(1) or O(log n) time vs. linear scan with `std::find`. For C++17 maps/sets without `.contains`, use `.find` when available, falling back to a linear scan with `std::find`. I also considered detecting member contains and triggering a `static_assert` instead, but decided against it because it's just as easy to do the right thing and call `.contains`. This would also make some code fail only when compiled in the C++20 mode when more container types come with `.contains` member functions. This was actually already the case with `CommandLine.h` calling `is_contained` on `SmallPtrSet` and in a recent BOLT patch. Reviewed By: kazu, dblaikie, MaskRay Differential Revision: https://reviews.llvm.org/D146061
-
Frederic Cambus authored
-
Nikita Popov authored
-
- Mar 15, 2023
-
-
Nikita Popov authored
-
Kazu Hirata authored
Differential Revision: https://reviews.llvm.org/D146104
-
Alex Bradbury authored
[clang][RISCV][NFC][test] Move riscv-abi.cpp and riscv{32,64}-*abi.c tests to use update_cc_test_checks.py This patch implements an initial step towards refactoring our ABI tests (moving them to update_cc_test_checks.py). Future patches combine them. Differential Revision: https://reviews.llvm.org/D134050 -
Nikita Popov authored
-
Arthur Eubanks authored
https://llvm-compile-time-tracker.com/compare.php?from=3fd42f50d8aadb4d0c348ac17cd2115c1b0564a4&to=50c37f6fc62a1e7bb4f0e307c89f760d42dbe4e9&stat=instructions:u shows that this is fairly expensive, 5-10% increase in compile time, and I'd like to add more similar checks under the same flag. This matches the legacy pass manager. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D146068
-
Arthur Eubanks authored
-
Arthur Eubanks authored
This allows instrumentation to inspect cached analyses to verify them. The CGSCC PassInstrumentation previously ran `runAfterPass()` on the original SCC, but really it should be running on UpdatedC when relevant since that's the relevant SCC after the pass. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D146096
-
Valentin Clement authored
When fsource or tsource is not polymorphic, the result is not polymorphic. Rebox the polymoprhic arguement so the dynamic type of the result is correct. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D146133
-
Alexey Lapshin authored
This patch adds handling of DW_FORM_implicit_const form. Differential Revision: https://reviews.llvm.org/D146047
-
Konstantina Mitropoulou authored
Reviewed By: foad Differential Revision: https://reviews.llvm.org/D145990
-
Simon Pilgrim authored
-
Philip Reames authored
This patch adjusts the memory instrumentation to account for scalable vector types in allocas. Note that we don't allow scalable vector globals, so we don't need to update that codepath. A couple points. First, this simply disables the optimization for scalable allocas. We can revisit this in the future, but it requires a bit of plumbing to get scalable object sizes through the visitor to be useful. Second, I am simply disabling stack poisoning for scalable vector allocas. This is mostly for staging the change as I can't write a working test for memory instrumentation without doing so. I don't think it's unreasonable to do on it's own basis as without the bailout, we crash the compiler. Differential Revision: https://reviews.llvm.org/D145259
-
Jakub Kuderski authored
Replace references to enumerate results with either result_pairs (reference wrapper type) or structured bindings. I did not use structured bindings everywhere as it wasn't clear to me it would improve readability. This is in preparation to the switch to zip semantics which won't support non-const lvalue reference to elements: https://reviews.llvm.org/D144503. I chose to use values instead of const lvalue-refs because MLIR is biased towards avoiding `const` local variables. This won't degrade performance because currently `result_pair` is cheap to copy (size_t + iterator), and in the future, the enumerator iterator dereference will return temporaries anyway. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D146006
-
Hristo Hristov authored
Implements parts of P1614R2: `operator<=>` for `map` and `multimap` Reviewed By: #libc, philnik Spies: philnik, libcxx-commits, yaxunl Differential Revision: https://reviews.llvm.org/D145976
-
pvanhout authored
For D141247 - if that pattern was used by GISel it could cause constant bus limitation failures. Just use inline immediates instead of S_MOV to avoid the issue. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D146131
-
Sander de Smalen authored
This is an alternative fix to D145497, which also addresses https://github.com/llvm/llvm-project/issues/60918 In D124457 which added the original code for this, @efriedma pointed out that it wasn't safe to assume that FI #0 would be allocated at offset 0, but that part of the patch went in without any changes. The downside of this solution is that any access to an object on the stack that has been allocated at SP + 0, still gets moved to a separate register first, which degrades performance. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D146056
-