- Feb 19, 2021
-
-
Wouter van Oortmerssen authored
Fixes assert in: https://bugs.llvm.org/show_bug.cgi?id=49036 getWasmSection creates sections if they don't exist, but doesn't add them to the Symbols table. This may cause problems in subsequent calls to getOrCreateSymbol which checks this table, the calls createSymbol assuming it doesn't exist, which then checks UsedNames and finds out it does exist, causing an assert on trying to rename a non-temp symbol. I tried also fixing the somewhat unintuitive forced suffixing (adding `0`), but it turns out that WasmObjectWriter currently assumes these section symbols are unique, so that may have to be a separate fix: https://bugs.llvm.org/show_bug.cgi?id=49252 Also worth noting is that getWasmSection calling createSymbol may not be correct to start with, given that createSymbol seems to assume it is creating non-section symbols. But again, for a future fix. Related: where some of this was introduced: https://github.com/llvm/llvm-project/commit/8d396acac3bc21f688ac707bb42e4698dbdcab7e Differential Revision: https://reviews.llvm.org/D96473
-
Craig Topper authored
The expansions of the saturating intrinsics can make use of the min(u)/max(u) instructions in Zbb.
-
Zequan Wu authored
-
Nico Weber authored
-
Jessica Clarke authored
This avoids tedious repetition and matches what we do for the ValueTypeByHwMode uses. Reviewed By: craig.topper, luismarques Differential Revision: https://reviews.llvm.org/D96649
-
Pengxuan Zheng authored
This patch adds the following intrinsics: vadd_p8 vadd_p16 vadd_p64 vaddq_p8 vaddq_p16 vaddq_p64 vaddq_p128 Reviewed By: t.p.northover, DavidSpickett Differential Revision: https://reviews.llvm.org/D96825 -
Nico Weber authored
-
Guozhi Wei authored
Pre-commit test case for https://reviews.llvm.org/D95086, so that patch can show the actual diff.
-
Ta-Wei Tu authored
This fixes https://bugs.llvm.org/show_bug.cgi?id=49185 When `NDEBUG` is not set, `LPMUpdater` checks if the added loops have the same parent loop as the current one in `addSiblingLoops`. If multiple loop passes are executed through `LoopPassManager`, `U.ParentL` will be the same across all passes. However, the parent loop might change after running a loop pass, resulting in assertion failures in subsequent passes. This patch resets `U.ParentL` after running individual loop passes in `LoopPassManager`. Reviewed By: asbirlea, ychen Differential Revision: https://reviews.llvm.org/D96727
-
Joerg Sonnenberger authored
Differential Revision: https://reviews.llvm.org/D96955
-
Jonas Devlieghere authored
Remove the unused code I noticed when working on d6e80578 and do some other minor cleanups in the vicinity.
-
Jonas Paulsson authored
The recent commit 00a62547 "Stop traping on sNaN in builtin_isnan" changed the lowering in constrained FP mode of builtin_isnan from an FP comparison to integer operations to avoid trapping. SystemZ has a special instruction "Test Data Class" which is the preferred way to do this check. This patch adds a new target hook "testFPKind()" that lets SystemZ emit the s390_tdc intrinsic instead. testFPKind() takes the BuiltinID as an argument and is expected to soon handle more opcodes than just 'builtin_isnan'. Review: Thomas Preud'homme, Ulrich Weigand Differential Revision: https://reviews.llvm.org/D96568
-
Sean Fertile authored
Enable passing more vector arguments then available vector argument passing registers. Differential Revision: https://reviews.llvm.org/D96415
-
Heejin Ahn authored
Usually `EH_LABEL`s are placed in - Before an `invoke` (which becomes calls in the backend) - After an `invoke` - At the start of an EH pad I don't know exactly why, but I noticed there are cases of multiple, not a single, `EH_LABEL` instructions in the beginning of an EH pad. In that case `global.set` instruction placed to restore `__stack_pointer` ended up between two `EH_LABEL` instructions before `CATCH`. It should follow after the `EH_LABEL`s and `CATCH`. This CL fixes that case. Reviewed By: dschuff Differential Revision: https://reviews.llvm.org/D96970
-
Jianzhou Zhao authored
This is a part of https://reviews.llvm.org/D95835. Reviewed-by: morehouse Differential Revision: https://reviews.llvm.org/D96941
-
Jianzhou Zhao authored
This is a part of https://reviews.llvm.org/D95835. Reviewed-by: morehouse Differential Revision: https://reviews.llvm.org/D96940
-
Jianzhou Zhao authored
This is a part of https://reviews.llvm.org/D95835. Added 1) TLS storage 2) a weak global used to set by instrumented code 3) move origins These APIs are similar to MSan's APIs https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/msan/msan_poisoning.cpp We first improved MSan's by https://reviews.llvm.org/D94572 and https://reviews.llvm.org/D94552. So the correctness has been verified by MSan. After the DFSan instrument code is ready, we wil be adding more test cases 4) read To reduce origin tracking cost, some of the read APIs return only the origin from the first taint data. Note that we did not add origin set APIs here because they are related to code instrumentation, will be added later with IR transformation code. Reviewed-by: morehouse Differential Revision: https://reviews.llvm.org/D96564
-
Pavel Labath authored
The test passes after D96779.
-
Akira Hatanaka authored
would otherwise include template specialization types This helps reduce the size of the encoded C++ type strings in the binary. This is enabled by default only on Darwin, but can be enabled/disabled via command line options. rdar://63288571 Differential Revision: https://reviews.llvm.org/D96816
-
Philip Reames authored
-
Craig Topper authored
This includes i32 SHFLI tests for RV64 which we currently don't optimize. And tests for associativity of OR.
-
Andrzej Warzynski authored
These dependencies were introduced via the `ParseTreeDumper` API in: * https://reviews.llvm.org/D96716 They manifested themselves in buildbot builders that set `BUILD_SHARED_LIBS` to `On`.
-
Craig Topper authored
This uses to division by constant optimization to use MULHU/MULHS. Reviewed By: frasercrmck, arcbbb Differential Revision: https://reviews.llvm.org/D96934
-
Philip Reames authored
I've now hit several cases where a mistake in the regalloc main loop caused corrupt live intervals that didn't get caught until either the next verify or during post-optimization. The later case is rather confusing and tends to lead one down false trails, so let's catch corruption before that.
-
Joe Ellis authored
The inline keyword is not defined in the C89 standard, so source files that include arm_sve.h will fail compilation if -std=c89 is specified. For consistency with arm_neon.h, we should use __inline__ instead. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D96852
-
Craig Topper authored
Due to vXi64 on RV32, I've directly emitted this using _VL ISD opcodes. If it wasn't for that we could just use fixed vector BUILD_VECTOR and VSELECT and let those each be legalized. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D96910
-
Craig Topper authored
These should be NOPs so we can just replace with the input. This matches what SVE does with isel patterns for all permutations. Custom isel saves us from having to list all permurations for all LMULs. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D96921
-
Philip Reames authored
-
Nico Weber authored
See `grep 'option.LIBCXX_INCLUDE_TESTS' libcxx/CMakeLists.txt`.
-
Nico Weber authored
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D96967
-
Bradley Smith authored
Adjust generateFMAsInMachineCombiner to return false if SVE is present in order to combine fmul+fadd into fma. Also add new pseudo instructions so as to select the most appropriate of FMLA/FMAD depending on register allocation. Depends on D96599 Differential Revision: https://reviews.llvm.org/D96424
-
Craig Topper authored
[TableGen][SelectionDAG] Improve efficiency of encoding negative immediates for isel's CheckInteger opcode. CheckInteger uses an int64_t encoded using a variable width encoding that is optimized for encoding a number with a lot of leading zeros. Negative numbers have no leading zeros so use the largest encoding requiring 9 bytes. I believe its most like we want to check for positive and negative numbers near 0. -1 is quite common due to its use in the 'not' idiom. To optimize for this, we can borrow an idea from the bitcode format and move the sign bit to bit 0 with the magnitude stored in the upper bits. This will drastically increase the number of leading zeros for small magnitudes. Then we can run this value through VBR encoding. This gives a small reduction in the table size on all in tree targets except VE where size increased by about 300 bytes due to intrinsic ids now requiring 3 bytes instead of 2. Since the intrinsic enum space is shared by all targets this an unfortunate consquence of where VE is currently located in the range. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D96317
-
Bradley Smith authored
isFMAFasterThanFMulAndFAdd should return true for FP16 types when HasFullFP16 is present, since we have the instructions to handle it for both SVE and NEON. (SVE patterns and tests will follow). Differential Revision: https://reviews.llvm.org/D96599
-
Philip Reames authored
-
Philip Reames authored
This patch simply implements the documented UB of the current nofree attributes as specified. It doesn't try to be fancy about inference (yet), it just implements the cases already specified and inferred. Note: When this lands, it may expose miscompiles. If so, please revert and provide a test case. It's likely the bug is in the existing inference code and without a relatively complete test case, it will be hard to debug. Differential Revision: https://reviews.llvm.org/D96349
-
Jeroen Dobbelaere authored
As described in * https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-pure-function-attribute * https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-function-attribute An `__attribute__((pure))` function must always return, as well as an `__attribute__((const))` function. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D96960
-
- Feb 18, 2021
-
-
lightmelodies authored
This commit fix https://github.com/clangd/clangd/issues/520 and https://github.com/clangd/clangd/issues/601. {F15544293} Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D96751
-
Nico Weber authored
This is a tiny bit messy because compiler-rt needs different sysroots for macOS, iOS, etc. We want sysroot.py to create something that is a hermetic representation of all build deps, so it needs to create a directory that contains all needed SDKs, and these subdirectories are then passed to cmake which passes each of these _subdirectories_ as different -isysroot flags while building the runtime libraries. Differential Revision: https://reviews.llvm.org/D96958
-
Ties Stuij authored
The following commits added commandline arguments to control following the Arm Procedure Call Standard for certain volatile bitfield operations: - https://reviews.llvm.org/D67399 - https://reviews.llvm.org/D72932 This commit fixes the oversight that these args weren't passed from the driver to cc1 if appropriate. Where *appropriate* means: - `-faapcs-bitfield-width`: is the default, so won't be passed - `-fno-aapcs-bitfield-width`: should be passed - `-faapcs-bitfield-load`: should be passed Differential Revision: https://reviews.llvm.org/D96784
-