- Feb 18, 2020
-
-
Nikita Popov authored
-
Nikita Popov authored
Accept IRBuilderBase instead of IRBuilder<>. Remove dependency on IRBuilder from header.
-
Nikita Popov authored
When simplifying demanded bits, we currently only report the instruction on which SimplifyDemandedBits was called as changed. However, this is a recursive call, and the actually modified instruction will usually be further up the chain. Additionally, all the intermediate instructions should also be revisited, as additional combines may be possible after the demanded bits simplification. We fix this by explicitly adding them back to the worklist. Differential Revision: https://reviews.llvm.org/D72944
-
Nikita Popov authored
The select-of-cttz transform can currently duplicate cttz intrinsics and zext/trunc ops. The cause is that it unnecessarily duplicates the intrinsic and the zext/trunc when setting the "undef_on_zero" flag to false. However, it's always legal to set the flag from true to false, so we can make this replacement even if there are extra users. Differential Revision: https://reviews.llvm.org/D74685
-
Sean Fertile authored
Create preprocessor defines for callee saved floating-point register spill slots, vector register spill slots, and both 32-bit and 64-bit general purpose register spill slots. This is an NFC refactor to prepare for adding ABI compliant callee saves and restores for AIX.
-
Nikita Popov authored
Fix for https://bugs.llvm.org/show_bug.cgi?id=44754. We already have a fold that converts icmp (and (ashr X, C3), C2), C1 into icmp (and C2'), C1', but it imposed overly strict requirements on the transform. Relax this by checking that both C2 and C1 don't shift out bits (in a signed sense) when forming the new constants. Alive proofs (https://rise4fun.com/Alive/PTz0): Name: ashr_legal Pre: ((C2 << C3) >> C3) == C2 && ((C1 << C3) >> C3) == C1 %a = ashr i16 %x, C3 %b = and i16 %a, C2 %c = icmp i16 %b, C1 => %d = and i16 %x, C2 << C3 %c = icmp i16 %d, C1 << C3 Name: ashr_shiftout_eq Pre: ((C2 << C3) >> C3) == C2 && ((C1 << C3) >> C3) != C1 %a = ashr i16 %x, C3 %b = and i16 %a, C2 %c = icmp eq i16 %b, C1 => %c = false Note that >> corresponds to ashr here. The case of an equality comparison has some special handling in this transform, because it will form to a true/false result if the condition on the comparison constant it violated. Differential Revision: https://reviews.llvm.org/D74294
-
Nikita Popov authored
-
Alexey Romanov authored
readability-redundant-expression now detects expressions where a logical or bitwise operator had equivalent LHS and RHS where the equivalent operands were separated by more operands.
-
Aaron Ballman authored
Should fix the changes from 260b91f3.
-
Jacques Pienaar authored
Summary: Refer folks to the main website and make it explicit that the rendered output is what is of interest and that the GitHub viewing experience may not match (even though we are trying to keep it as close as possible, the renderers do differ). Differential Revision: https://reviews.llvm.org/D74739
-
John Marshall authored
Use the more accurate location when emitting the location of the function being called's prototype in diagnostics emitted when calling a function with an incorrect number of arguments. In particular, avoids showing a trace of irrelevant macro expansions for "MY_EXPORT static int AwesomeFunction(int, int);". Fixes PR#23564.
-
Benjamin Kramer authored
lib\Target\Hexagon\HexagonGenDFAPacketizer.inc(109): error C2131: expression did not evaluate to a constant
-
Andrew Wei authored
Implement TargetLowering callback mayBeEmittedAsTailCall for riscv in CodeGenPrepare, which will duplicate return instructions to enable tailcall optimization. Differential Revision: https://reviews.llvm.org/D73699
-
Sander de Smalen authored
Summary: Making `Scale` a `TypeSize` in AArch64InstrInfo::getMemOpInfo, has the effect that all places where this information is used (notably, TargetInstrInfo::getMemOperandWithOffset) will need to consider Scale - and derived, Offset - possibly being scalable. This patch adds a new operand `bool &OffsetIsScalable` to TargetInstrInfo::getMemOperandWithOffset and fixes up all the places where this function is used, to consider the offset possibly being scalable. In most cases, this means bailing out because the algorithm does not (or cannot) support scalable offsets in places where it does some form of alias checking for example. Reviewers: rovka, efriedma, kristof.beyls Reviewed By: efriedma Subscribers: wuzish, kerbowa, MatzeB, arsenm, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, javed.absar, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72758
-
Louis Dionne authored
I just took a snapshot of the current ABI lists on master, since I don't think they changed since the actual 9.0 release.
-
Djordje Todorovic authored
This reverts commit rGa82d3e8a6e67.
-
serge-sans-paille authored
This is a follow up to d1262a6e, more explicit to cope with GCC smartness. Differential Revision: https://reviews.llvm.org/D74666
-
Kazushi (Jam) Marukawa authored
Summary: Codegen and tests for thread-local storage. This implements only the general dynamic model due to limitations in nld 2.26. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D74718
-
Alex Zinenko authored
The existing name is an artifact dating back to the times when we did not have a dedicated TypeConverter infrastructure. It is also confusing with with the name of classes using it. Differential revision: https://reviews.llvm.org/D74707
-
Luke Geeson authored
This patch upstreams support for the AArch64 Armv8-A cpu Cortex-A34. In detail adding support for: - mcpu option in clang - AArch64 Target Features in clang - llvm AArch64 TargetParser definitions details of the cpu can be found here: https://developer.arm.com/ip-products/processors/cortex-a/cortex-a34 Reviewers: SjoerdMeijer Reviewed By: SjoerdMeijer Subscribers: SjoerdMeijer, kristof.beyls, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D74483 Change-Id: Ida101fc544ca183a0a0e61a1277c8957855fde0b
-
Melanie Blower authored
Change clang option -ffp-model=precise, the default, to select ffp-contract=on The patch caused some problems for PowerPC but ibm has made adjustments so I am resubmitting this patch. Additionally, Andy looked at the performance regressions on LNT and it looks like a loop unrolling decision that could be adjusted. Reviewers: rjmccall, Andy Kaylor Differential Revision: https://reviews.llvm.org/D74436
-
evgeny authored
Differential revision: https://reviews.llvm.org/D74420
-
Matt Arsenault authored
This needs to steal the branch target like the other control flow intrinsics.
-
Pavel Labath authored
The two classes are equivalent, except: - the former uses a llvm::SmallVector (with a configurable size), while the latter uses std::vector. - the former has a typo in one of the functions name This patch just leaves one class, using llvm::SmallVector, and defaults the small size to zero. This is the same thing we did with the RangeDataVector class in D56170.
-
Yitzhak Mandelbaum authored
Summary: Currently, `buildAST[WithArgs]` either succeeds or fails. This patch adds support for the caller to pass a `DiagnosticConsumer` to receive all relevant diagnostics. Reviewers: gribozavr Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74763
-
Louis Dionne authored
-
Djordje Todorovic authored
This patch enables the debug entry values feature. - Remove the (CC1) experimental -femit-debug-entry-values option - Enable it for x86, arm and aarch64 targets - Resolve the test failures - Leave the llc experimental option for targets that do not support the CallSiteInfo yet Differential Revision: https://reviews.llvm.org/D73534
-
Benjamin Kramer authored
-
Miloš Stojanović authored
Followup to D74085. Replace the use of `report_fatal_error()` with returning the error to `llvm-exegesis.cpp` and handling it there. Differential Revision: https://reviews.llvm.org/D74325
-
Brian Gesiak authored
Summary: I noticed a small regression in a toy project of mine after applying D73835, in which instruction names weren't being set properly. In the example test case included with this patch, `llvm::IRBuilderBase::CreateAdd` returns an `llvm::Value *` that is then passed as an argument to `llvm::IRBuilderBase::Insert`. The overloaded function that is selected for that call then ignores the `Name` parameter that is given. This patch addresses that issue. Reviewers: nikic, Meinersbur, nhaehnle, fhahn, thakis, teemperor Reviewed By: nikic, fhahn Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74754
-
James Clarke authored
Summary: Backends should fold the subtraction into the comparison, but not all seem to. Moreover, on targets where pointers are not integers, such as CHERI, an integer subtraction is not appropriate. Instead we should just compare the two pointers directly, as this should work everywhere and potentially generate more efficient code. Reviewers: bogner, lebedev.ri, efriedma, t.p.northover, uweigand, sunfish Reviewed By: lebedev.ri Subscribers: dschuff, sbc100, arichardson, jgravelle-google, hiraditya, aheejin, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74454
-
Cristian Adam authored
MSVC_DIA_SDK_DIR variable will point to a path which contains spaces, and without quotes it will fail to configure the project.
-
Raphael Isemann authored
[lldb] Fix another instance where we pass a nullptr as TypeSourceInfo to NonTypeTemplateParmDecl::Create Summary: Follow up to an issue pointed out in the review of D73808. We shouldn't just pass in a nullptr TypeSourceInfo in case Clang decided to access it. Reviewers: shafik, vsk Reviewed By: shafik, vsk Subscribers: kristof.beyls, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D73946
-
Tatyana Krasnukha authored
[lldb][test] Remove expected failure decorator from test_copy_from_dummy_target (TestScriptedResolver) This test case doesn't check that breakpoint's locations are resolved, and it passes on Windows too.
-
Florian Hahn authored
-
Georgii Rymar authored
There was a short discussion about this: https://reviews.llvm.org/D73484#inline-676942 To summarize: It is a bit unclear to me why the `DT_SYMENT` tag exist. LLD has the code that does: "addInt(DT_SYMENT, sizeof(Elf_Sym));" and I guess other linkers has the same logic. It is unclear why it can be possible to have other values rather than values of a size of platform symbol. Seems it is not possible, and atm for me it looks that this tag should not be used. This patch starts reporting the warning when the value it contains differs from a symbol size for a 32/64 bit platform for safety. It keeps the rest of the logic we have unchanged. Before this patch we did not handle the tag at all. Differential review: https://reviews.llvm.org/D74479
-
serge-sans-paille authored
Fix for dd230142, in case ld.lld is not available.
-
Djordje Todorovic authored
This is needed for the debug entry values feature. Differential Revision: https://reviews.llvm.org/D74702
-
Tatyana Krasnukha authored
Rename search-filter's CopyForBreakpoint to CreateCopy, since they don't do anything with breakpoints.
-
Tatyana Krasnukha authored
Pass TargetSP to filters' CreateFromStructuredData, don't let them guess whether target object is managed by a shared_ptr. Make Breakpoint sure that m_target.shared_from_this() is safe by passing TargetSP to all its static Create*** member-functions. This should be enough, since Breakpoint's constructors are private/protected and never called directly (except by Target itself).
-