- Feb 19, 2021
-
-
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
-
Sanjay Patel authored
Checking existing functionality before D96904.
-
Hsiangkai Wang authored
-
Stephen Kelly authored
For example, before this patch we can use has() to get from a cxxRewrittenBinaryOperator to its operand, but hasParent doesn't get back to the cxxRewrittenBinaryOperator. This patch fixes that. Differential Revision: https://reviews.llvm.org/D96113
-
Zbigniew Sarbinowski authored
The use of fchmodat() is beeing guarded but its using declaration is not. Let's use the same guard in both places to avoid compiler errors on platforms where `fchmodat` does not exist. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D96303
-
David Green authored
Currently the load/store optimizer will only fold in increments of the same size as the load/store. This patch expands that to any legal immediate for the post-inc instruction. Differential Revision: https://reviews.llvm.org/D95885
-
Pavel Labath authored
Our code for locating the shared library directory works via dladdr (or the windows equivalent) to locate the path of an address known to reside in liblldb. This works great for C++ programs, but there's a catch. When (lib)lldb is used from python (like in our test suite), this dladdr call will return a path to the _lldb.so (or such) file in the python directory. To compensate for this, we have code which attempts to resolve this symlink, to ensure we get the canonical location. However, here's the second catch. On windows, this file is not a symlink (but a copy), so this logic fails. Since most of our other paths are derived from the liblldb location, all of these paths will be wrong, when running the test suite. One effect of this was the failure to find lldb-server in D96202. To fix this issue, I add some windows-specific code to locate the liblldb directory. Since it cannot rely on symlinks, it works by manually walking the directory tree -- essentially doing the opposite of what we do when computing the python directory. To avoid python leaking back into the host code, I implement this with the help of a callback which can be passed to HostInfo::Initialize in order to assist with the directory location. The callback lives inside the python plugin. I also strenghten the existing path test to ensure the returned path is the right one. Differential Revision: https://reviews.llvm.org/D96779
-
Jay Foad authored
-
Paul C. Anagnostopoulos authored
This reverts commit e589207d5aaee6cbf1d7c7de8867a17727d14aca.
-
Baptiste Saleil authored
This patch generates the vinsw, vinsd, vinsblx, vinshlx, vinswlx, vinsdlx, vinsbrx, vinshrx, vinswrx and vinsdrx instructions for vector insertion on P10. Differential Revision: https://reviews.llvm.org/D94454
-
Hsiangkai Wang authored
For masked segment load, the destination register should not overlap with mask register. It could not be V0. In the original implementation, there is no segment load/store register class without V0. In this patch, I added these register classes and modify `GetVRegNoV0` to get the correct one. Differential Revision: https://reviews.llvm.org/D96937
-
Hsiangkai Wang authored
Differential Revision: https://reviews.llvm.org/D96923
-
Paul C. Anagnostopoulos authored
Rework template argument checking so that all arguments are type-checked and cast if necessary. Add a test. Differential Revision: https://reviews.llvm.org/D96416
-
Jonas Otto authored
Clang-tidy seems to output color only when printing directly to terminal, but an option to force color-output has been added in https://reviews.llvm.org/D7947
-
David Green authored
It appears that pointer types were causing issues for the min/max cost code in getIntrinsicInstrCost. This makes sure that when matching icmp/select to a min/max, we only do that for normal int or float types.
-
Alexander Belyaev authored
`subtensor_insert` was used instead of `linalg.subtensor_yield` to make this PR smaller. Verification will be added in a follow-up PR. Differential Revision: https://reviews.llvm.org/D96943
-
Stefan Pintilie authored
Added -mrop-protection for Power PC to turn on codegen that provides some protection from ROP attacks. The option is off by default and can be turned on for Power 8, Power 9 and Power 10. This patch is for the option only. The feature will be implemented by a later patch. Reviewed By: amyk Differential Revision: https://reviews.llvm.org/D96512
-