- Apr 14, 2023
-
-
Kevin P. Neal authored
Based on the direction of IR Verifier changes in D146845, this documentation needs to be updated. Differential Revision: https://reviews.llvm.org/D148138
-
Dave Lee authored
Add a `StringRef` conversion function to `ConstString`. This will make using llvm, and other non-ConstString, APIs more convenient. For demonstration, this updates Module.cpp. Differential Revision: https://reviews.llvm.org/D148175
-
Christian Sigg authored
The test CHECKs for `-nan`, but printing the sign is optional. This change removes the sign because it has no meaning.
-
Zain Jaffal authored
If we have a >s b and we know that b >s 0 then we also can infer that a >u b. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D148321
-
Joseph Huber authored
There's a desire to move away from `undef` in LLVM. Currently we want to have the `addressspace(3)` variables use `poison` instead. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D147719
-
Joseph Huber authored
We recently reverted a patch that automatically set the rpath on OpenMP executables. This was used because the `libomptarget.so` library is only expected to work with the same version of compiler that will be using it. This patch adds some documentation for how to get similar behaviour as before using a clang configuration file. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D147943
-
Kiran Chandramohan authored
Andrzej proposed the design and led the work for the Flang Driver over the past couple of years. He is continuing to function as the primary reviewer and gate-keeper of the Driver. Reviewed By: sscalpone Differential Revision: https://reviews.llvm.org/D147573
-
Simon Pilgrim authored
Another part of Issue #60007
-
Nikita Popov authored
-
Balaji V. Iyer authored
Powf functions are pushed directly to libm. This is problematic for situations where libm is not available. This patch will decompose the powf function into log of exponent multiplied by log of base and raise it to the exp. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D148164
-
Nikita Popov authored
-
Krasimir Georgiev authored
This reverts commit de4c038c. The change that triggered this fix got reverted.
-
pvanhout authored
In some cases, breaking large PHIs can very negatively affect performance (3x more instructions observed in a particular test case). This patch adds some basic profitability heuristics to help with some of these issues without affecting the "good" cases. e.g. avoid breaking PHIs if it causes back-and-forth between vector/scalar form for no good reason. Fixes SWDEV-392803 Fixes SWDEV-393781 Fixes SWDEV-394228 Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D147786
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D148333
-
Luke Lau authored
I was working on legalising vector binary ops to their VP counterparts when I noticed that `vp_copysign` wasn't marked as a binary op. It looks like this might have been an oversight, so this marks it as one. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D148241
-
Pavel Labath authored
The test fails when the two generated files have the same timestamp (lldb uses second granularity).
-
Dmitry Makogon authored
This preserves NSW flag for AddRecs multiplied by -1 if we can prove via constant ranges that the AddRec cannot be signed minimum. An explanation: Let M be signed minimum. If AddRec's range contains M, then M * (-1) will stay M and (M + 1) * (-1) will be signed maximum, so we get a signed overflow. In all other cases if an AddRec didn't signed overflow, then AddRec * (-1) wouldn't too. Differential Revision: https://reviews.llvm.org/D148084
-
Ivan Butygin authored
Fix review comments from https://reviews.llvm.org/D146252 Merge `WhileRemoveUnusedArgs` pattern with (unused) `WhileUnusedArg`, use `getConditionOp`, use `SmallPtrSet` and early check, move tests Differential Revision: https://reviews.llvm.org/D148256
-
Christian Sigg authored
-
Christian Ulmann authored
This commit moves the CFGLoopInfo instantiation into the C++ file to ensure that it is only compiled once. Instantiating the template explicitly revealed two missing functions that this commit also adds. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D148219
-
Aaron Ballman authored
Instead of using the validity of a brace's source location as a flag for list initialization, this now uses a PointerIntPair to model it so we do not increase the size of the AST node to track this information. This allows us to retain the valid source location information, which fixes the coverage assertion. Fixes https://github.com/llvm/llvm-project/issues/62105 Differential Revision: https://reviews.llvm.org/D148245
-
Dmitry Makogon authored
This fixes a failing check in tests added by 05a142cc.
-
Simon Pilgrim authored
We often repeat the vector operand in TESTPS(X,X)/TESTPD(X,X) for anyof comparisons - ensure we still only demand the sign bits when the TESTP is the only user of that operand
-
Kito Cheng authored
Zfa provide fli instruction to load a floating point immediate value, and some of those are not easy to write and read by human, so hexadecimal floating-point format should be a good alternative way to write: Consider this case: 1^-16 = 1.52587890625e-05 (decimal) vs 0x1p-16 (hexadecimal) The hexadecimal format is easier to write for human. Fortunately hexadecimal floating-point constants already supported in C99, so actually we don't need to add any extra code to support that. This patch added test case for demonstrate we support that and also make sure this will be supported in future. I also gonna to talk with ISA folks to adding hexadecimal floating-point to the ISA spec, so that user will know fli accept value in this format. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D148077
-
Serge Pavlov authored
This reverts commit 75f1f158. It caused fail on https://lab.llvm.org/buildbot#builders/37/builds/21461
-
Florian Hahn authored
Adjust lowerDotProduct cost estimate to include the cost benefits of: * emitting a wide load * emitting a wide multiply. Reviewed By: thegameg Differential Revision: https://reviews.llvm.org/D147330
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[X86] Add TESTPS/TESTPD test coverage showing failure to simplify demanded sign bit when the operands has multiple uses
-
Dmitry Makogon authored
-
Chen Zheng authored
These case are excluded in https://reviews.llvm.org/D113049. Now AIX XCOFF 64 integrated-as support improves a lot and all these cases pass now, so enable them.
-
Nikita Popov authored
Remove C APIs for interacting with PassRegistry and pass initialization. These are legacy PM concepts, and are no longer relevant for the new pass manager. Calls to these initialization functions can simply be dropped. Differential Revision: https://reviews.llvm.org/D145043
-
Nico Weber authored
-
Nikita Popov authored
Currently, FunctionAttrs treats landingpads as non-throwing, and will infer nounwind for functions with landingpads (assuming they can't unwind in some other way, e.g. via resum). There are two problems with this: * Non-cleanup landingpads with catch/filter clauses do not necessarily catch all exceptions. Unless there are catch ptr null or filter [0 x ptr] zeroinitializer clauses, we should assume that we may unwind past this landingpad. This seems like an outright bug. * Cleanup landingpads are skipped during phase one unwinding, so we effectively need to support unwinding past them. Marking these nounwind is technically correct, but not compatible with how unwinding works in reality. Fixes https://github.com/llvm/llvm-project/issues/61945. Differential Revision: https://reviews.llvm.org/D147694
-
Florian Hahn authored
Extra tests for D147330.
-
Kai Luo authored
After performing signed extension, we update the register in MI. We should also update `incr` register which is tracking the register in `MI`. Fixes https://github.com/llvm/llvm-project/issues/61882. Reviewed By: #powerpc, shchenz Differential Revision: https://reviews.llvm.org/D147594
-
Nikita Popov authored
foldAllocaCmp() needs to fold all comparisons of an alloca at the same time, to ensure that there is a consistent view of the alloca address. Currently, it folds "all" comparisons by limiting to the case where there is only one. This patch switches the algorithm to instead actually collect and fold all comparisons. Something we need to be careful about here is that there may be comparisons where both sides of the icmp are based on the alloca. Such comparisons are comparing offsets of the alloca, and as such can be ignored here, but shouldn't be folded to false. Differential Revision: https://reviews.llvm.org/D144492
-
Nikita Popov authored
-
Christian Sigg authored
-
Peter Smith authored
Embedded systems that do not use an ELF loader locate the .ARM.exidx exception table via linker defined __exidx_start and __exidx_end rather than use the PT_ARM_EXIDX program header. This means that some linker scripts such as the picolibc C library's linker script, do not have the .ARM.exidx sections at offset 0 in the OutputSection. For example: .except_unordered : { . = ALIGN(8); PROVIDE(__exidx_start = .); *(.ARM.exidx*) PROVIDE(__exidx_end = .); } >flash AT>flash :text This is within the specification of Arm exception tables, and is handled correctly by ld.bfd. This patch has 2 parts. The first updates the writing of the data of the .ARM.exidx SyntheticSection to account for a non-zero OutputSection offset. The second part makes the PT_ARM_EXIDX program header generation a special case so that it covers only the SyntheticSection and not the parent OutputSection. While not strictly necessary for programs locating the exception tables via the symbols it may cause ELF utilities that locate the exception tables via the PT_ARM_EXIDX program header to fail. This does not seem to be the case for GNU and LLVM readelf which seems to look for the SHT_ARM_EXIDX section. Differential Revision: https://reviews.llvm.org/D148033 -
Kristof Beyls authored
Differential Revision: https://reviews.llvm.org/D148121
-