- Oct 09, 2020
-
-
Stella Laurenzo authored
* I believe this was done early on due to it being experimental/etc. * Needed for dynamic linking in npcomp. Differential Revision: https://reviews.llvm.org/D89081
-
Louis Dionne authored
This significantly speeds up the configuration of libc++'s test suite by making sure that we don't perform the same operations over and over again. Differential Revision: https://reviews.llvm.org/D89003
-
Alexandre Ganea authored
Previously, when clang was compiled with -DLLVM_ENABLE_ASSERTIONS=ON, the added tests were displaying: inlinable function call in a function with debug info must have a !dbg location call void @"??1?$c@UB@@@@QEAA@XZ"(%struct.c* @"?f@?1??d@@YAPEAU?$c@UB@@@@XZ@4U2@A") fatal error: error in backend: Broken module found, compilation aborted! Stack dump: 0. Program arguments: <f:\svn\buildninja\bin\clang -cc1 -emit-llvm debug-info-no-location.cpp> -gcodeview -debug-info-kind=limited 1. <eof> parser at end of file 2. Per-function optimization Fixes PR43012 Differential Revision: https://reviews.llvm.org/D66328
-
Kai Luo authored
-
Austin Kerbow authored
Fixes: SWDEV-251863 Differential Revision: https://reviews.llvm.org/D89079
-
Richard Smith authored
types. Previously, a type-dependent cast to a deduced class template specialization type would end up with a non-dependent class template specialization type, leading to confusion downstream.
-
Yuanfang Chen authored
Fix "warning: '\returns' command used in a comment that is not attached to a function or method declaration [-Wdocumentation] 1 warning generated."
-
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
-