- Oct 09, 2020
-
-
Fangrui Song authored
-
Jim Ingham authored
Except for the few people actually debugging shells, stopping on a SIGCONT doesn't add any value. And for people trying to run tests under the debugger, stopping here is actively inconvenient. So this patch switches the default behavior to not stop. Differential Revision: https://reviews.llvm.org/D89019
-
Mircea Trofin authored
Mostly LiveIntervals, with their effects (users). Differential Revision: https://reviews.llvm.org/D89018
-
Thomas Raoux authored
Differential Revision: https://reviews.llvm.org/D89062
-
Thomas Raoux authored
When distributing a vector larger than the given multiplicity, we can distribute it by block where each id gets a chunk of consecutive element along the dimension distributed. This adds a test for this case and adds extra checks to make sure we don't distribute for cases not multiple of multiplicity. Differential Revision: https://reviews.llvm.org/D89061
-
Arthur Eubanks authored
Move it as an EP callback (-O[123]) or in addSanitizersAtO0. This makes it not run in ThinLTO pre-link (like the other sanitizers), so don't check LTO runs in hwasan-new-pm.c. Changing its position also seems to change the generated IR. I think we just need to make sure the pass runs. Reviewed By: leonardchan Differential Revision: https://reviews.llvm.org/D88936
-
Alexandre Ganea authored
This is a follow-up for https://reviews.llvm.org/D88975
-
Simon Pilgrim authored
Annoyingly vectors aren't supported by shouldChangeType(), but we have precedents for always performing this on vector types (e.g. narrowBinOp). Differential Revision: https://reviews.llvm.org/D89067
-
Quentin Colombet authored
The IRTranslator depends on the branch probability info pass when the optimization level is different than None and it depends all the time on the StackProtector pass. We have to explicitly call out pass dependencies otherwise the pass manager may not be able to schedule the IRTranslator. Before this patch, we were lucky because previous passes depend on the branch probability info pass (like the Global Variable Optimization) and the stack protector pass is initialized in initializeCodeGen. However, if the target has a custom pipeline without any passes like Global Variable Optimization, the pipeline creation will fail, at least because of the branch probability info pass dependency (it is unlikely that initializeCodeGen is not called). This patch adds the missing dependencies to the IRTranslator. Differential Revision: https://reviews.llvm.org/D89063
-
Paula Toth authored
Tested locally by connecting to LLVM master. (: http://lab.llvm.org:8011/#/builders/78/builds/1 Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D89069
-
Simon Pilgrim authored
-
Sanjay Patel authored
This can be allowed with undef elements too, but that can be another step: https://alive2.llvm.org/ce/z/hnC4Z-
-
Mehdi Amini authored
-
Simon Pilgrim authored
Use cast<> as we immediately dereference the pointer afterwards - cast<> will assert if we fail. Prevents clang static analyzer warning that we could deference a null pointer.
-
Sanjay Patel authored
Pre-conditions seem to be optimal, but we don't need a use check because we are only replacing an add with a sub. https://rise4fun.com/Alive/hzN Pre: (~C1 | C2 == -1) && isPowerOf2(C2+1) %m = and i8 %x, C1 %f = xor i8 %m, C2 %r = add i8 %f, C3 => %r = sub i8 C2 + C3, %m
-
Sanjay Patel authored
-
Simon Pilgrim authored
Wrap the containErrors() calls together - assert we have any containErrors cases in the conditional operator.
-
Simon Pilgrim authored
Fixes clang static analyzer warning.
-
Heejin Ahn authored
In LowerEmscriptenEHSjLj, `longjmp` used to be replaced with `emscripten_longjmp_jmpbuf(jmp_buf*, i32)`, which will eventually be lowered to `emscripten_longjmp(i32, i32)`. The reason we used two different names was because they had different signatures in the IR pass. D88697 fixed this by only using `emscripten_longjmp(i32, i32)` and adding a `ptrtoint` cast to its first argument, so ``` longjmp(buf, 0) ``` becomes ``` emscripten_longjmp((i32)buf, 0) ``` But this assumed all uses of `longjmp` was a direct call to it, which was not the case. This patch handles indirect uses of `longjmp` by replacing ``` longjmp ``` with ``` (i32(*)(jmp_buf*, i32))emscripten_longjmp ``` Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D89032
-
Quentin Colombet authored
We already offer zextOrTrunc and it seems natural to offer the same capability for sign extension. This patch is a preparatory addition useful for future computeKnownBits developments. Differential Revision: https://reviews.llvm.org/D88937
-
Quentin Colombet authored
This patch refactors the logic in ValueTracking.cpp so that computeKnownBitsForMul now uses a helper function from KnownBits. NFC Differential Revision: https://reviews.llvm.org/D88935
-
Quentin Colombet authored
These tests make sure that the range information is properly understood during computeKnownBits analysis. NFC Differential Revision: https://reviews.llvm.org/D88934
-
Louis Dionne authored
This is needed when running the tests in Freestanding mode, where main() isn't treated specially. In Freestanding, main() doesn't get mangled as extern "C", so whatever runtime we're using fails to find the entry point. One way to solve this problem is to define a symbol alias from __Z4mainiPPc to _main, however this requires all definitions of main() to have the same mangling. Hence this commit.
-
Rahman Lavaee authored
This patch lets the bb_addr_map (renamed to __llvm_bb_addr_map) section use a special section type (SHT_LLVM_BB_ADDR_MAP) instead of SHT_PROGBITS. This would help parsers, dumpers and other tools to use the sh_type ELF field to identify this section rather than relying on string comparison on the section name. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D88199
-
Simon Pilgrim authored
Use cast<> as we immediately dereference the pointer afterwards - cast<> will assert if we fail. Prevents clang static analyzer warning that we could deference a null pointer.
-
Simon Pilgrim authored
Found by clang static analyzer.
-
Simon Pilgrim authored
We were checking if the ConstantSDNode was null but then immediately dereferencing it afterward - fold these both into a single check. Use the APInt::ult() helper as well. Found by clang static analyzer.
-
Joseph Huber authored
Summary: Replace the OpenMP Runtime Library functions used in CGOpenMPRuntimeGPU for OpenMP device code generation with ones in OMPKinds.def and use OMPIRBuilder for generating runtime calls. This allows us to consolidate more OpenMP code generation into the OMPIRBuilder. Future additions to the GPU runtime functions should now go in OMPKinds.def Reviewers: jdoerfert Subscribers: aaron.ballman cfe-commits guansong llvm-commits sstefan1 yaxunl Tags: #OpenMP #LLVM #clang Differential Revision: https://reviews.llvm.org/D88430
-
Dan Liew authored
The tests previously relied on the `short.py` and `FirstTest.subTestA` script being executed on a machine within a short time window (1 or 2 seconds). While this "seems to work" it can fail on resource constrained machines. We could bump the timeout a little bit (bumping it too much would mean the test would take a long time to execute) but it wouldn't really solve the problem of the test being prone to failures. This patch tries to remove this flakeyness by separating testing into two separate parts: 1. Testing if a test can hit a timeout. 2. Testing if a test can run to completion in the presence of a timeout. This way we can give (1.) a really short timeout (to make the test run as fast as possible) and (2.) a really long timeout. This means for (2.) we are no longer trying to rely on the "short" test executing within some short time window. Instead the window is now 3600 seconds which should be long enough even for a heavily resource constrained machine to execute the "short" test. Thanks to Julian Lettner for suggesting this approach. This superseeds my original approach in https://reviews.llvm.org/D88807. This patch also changes the command line override test to run the quick test rather than the slow one to make the test run faster. Differential Revision: https://reviews.llvm.org/D89020
-
Teresa Johnson authored
Fixes bot failure from 4d5b1de4: https://luci-milo.appspot.com/p/fuchsia/builders/ci/clang-linux-x64/b8867057367989385504 Updates the version of RenderFrame used by Fuchsia and adds a version of the new RenderNeedsSymbolization.
-
David Green authored
-
Amara Emerson authored
These mirror the IR and SelectionDAG intrinsics & nodes. Opcodes added: G_VECREDUCE_SEQ_FADD G_VECREDUCE_SEQ_FMUL G_VECREDUCE_FADD G_VECREDUCE_FMUL G_VECREDUCE_FMAX G_VECREDUCE_FMIN G_VECREDUCE_ADD G_VECREDUCE_MUL G_VECREDUCE_AND G_VECREDUCE_OR G_VECREDUCE_XOR G_VECREDUCE_SMAX G_VECREDUCE_SMIN G_VECREDUCE_UMAX G_VECREDUCE_UMIN Differential Revision: https://reviews.llvm.org/D88750
-
Leonard Chan authored
This will be enabled if relative vtables is enabled. Differential revision: https://reviews.llvm.org/D85924
-
MaheshRavishankar authored
The methods allow to check - if an operation has dependencies, - if there is a dependence from one operation to another. Differential Revision: https://reviews.llvm.org/D88993
-
peter klausler authored
Some legacy compiler directives use colons rather than equals signs. Differential revision: https://reviews.llvm.org/D89017
-
Pavel Labath authored
The problem here is in the "sliding" code in ValueObjectChild::UpdateValue. It modifies m_bitfield_bit_offset and m_value to ensure the bitfield value fits the window given by the underlying type. However, this is broken next time UpdateValue is called, because it updates the m_value value from the parent. However, the value cannot be slid again because the m_bitfield_bit_offset is already modified. It seems this can happen only under specific circumstances. One way to trigger is is to run an expression which can be interpreted (jitting it causes a new StackFrame and ValueObject variables to be created). I fix this bug by modifying m_byte_offset instead of m_scalar, and ensuring the changes are folded into m_scalar regardless of how many times UpdateValue is called. Differential Revision: https://reviews.llvm.org/D88992
-
Pavel Labath authored
Raise awareness of the fact that some versions of swig and python (and build types) just don't mix. One day this will be a reason to require swig>=4.0, but this version is too hot off the press right now.. Differential Revision: https://reviews.llvm.org/D88967
-
Petr Hosek authored
This fixes the issue introduced in 80ef4126.
-
Joseph Huber authored
Summary: This patch changes the CMake files for Clang and Libomptarget to query the system for its supported CUDA architecture. This makes it much easier for the user to build optimal code without needing to set the flags manually. This relies on the now deprecated FindCUDA method in CMake, but full support for architecture detection is only availible in CMake >3.18 Reviewers: jdoerfert ye-luo Subscribers: cfe-commits guansong mgorny openmp-commits sstefan1 yaxunl Tags: #clang #OpenMP Differential Revision: https://reviews.llvm.org/D87946
-
- Oct 08, 2020
-
-
Alexandre Ganea authored
This patch fixes a few issues seen when running `ninja check-lldb` in a Release build with VS2017: - Some binaries couldn't be found (such as lldb-vscode.exe), because .exe wasn't appended to the file name. - Many tests used to fail since our installed locale is in French - the OS error messages are not emitted in English. - Our codepage being Windows-1252, python failed to decode some error messages with accentuations. Differential Revision: https://reviews.llvm.org/D88975
-