- Mar 10, 2020
-
-
George Burgess IV authored
Patch by Zola Bridges! From the review: """ I moved these functions to X86InstrInfo.cpp, so they are available from another pass. In addition, this is a step toward resolving the FIXME to move this metadata to the instruction tables. This is the final step to make these two data invariance checks available for non-SLH passes. The other two steps were here: - https://reviews.llvm.org/D70283 - https://reviews.llvm.org/D75650 Tested via llvm-lit llvm/test/CodeGen/X86/speculative-load-hardening* """ Differential Revision: https://reviews.llvm.org/D75654
-
George Burgess IV authored
Patch by Zola Bridges! From the review: """ In this changeset (https://reviews.llvm.org/D70283), I added a liveness check everywhere the isDataInvariant* functions were used, so that I could safely delete the checks within the function. I mistakenly left that deletion out of the patch. The result is that the same condition is checked twice for some instructions which is functionally fine, but not good. This change deletes the redundant check that I intended to delete in the last change. This is the second of three patches that will make the data invariance checks available for non-SLH passes and enable the FIXMEs related to moving this metadata to the instruction tables to be resolved. Tested via llvm-lit llvm/test/CodeGen/X86/speculative-load-hardening* """ Differential Revision: https://reviews.llvm.org/D75650
-
Richard Smith authored
This reverts commit 2669e41b, which was pushed by mistake.
-
Richard Smith authored
A recent change to MemorySSA caused LLVM to start optimizing the call to 'f(x)' into just 'x', despite the 'noinline' attribute. So try harder to prevent this optimization from firing.
-
Richard Smith authored
dependent constructs. We previously assumed they were neither value- nor instantiation-dependent under any circumstances, which would lead to crashes and other misbehavior. This doesn't match GCC's behavior (where statement expressions appear to be treated as value-dependent if they appear in a dependent context), but seems to be the best thing we can do in the short term: it turns out to be remarkably difficult for us to correctly determine whether we are in a dependent context (and it's not even possible in some cases, such as in a generic lambda where we might not have seen the 'auto' yet). This was previously reverted in 8e4a8677 for rejecting some code, but that code was invalid and Clang was previously incorrectly accepting it.
-
Matt Morehouse authored
It looks like the recent -fno-common is making it pass now.
-
River Riddle authored
[mlir][SideEffects] Replace the old SideEffects dialect interface with the newly added op interfaces/traits. Summary: The old interface was a temporary stopgap to allow for implementing simple LICM that took side effects of region operations into account. Now that MLIR has proper support for specifying memory effects, this interface can be deleted. Differential Revision: https://reviews.llvm.org/D74441
-
George Burgess IV authored
Patch by Zhizhou Yang! In his own words: """ Similar change to CMakeLists as r372312. After r372209, compiler command line may include argument with quotes: ``` -fprofile-instr-use="/foo/bar.profdata" ``` And it causes a hidden failure with execute_process later: Could not read profile "/foo/bar.profdata": No such file or directory. In this particular case, the check for .init_array will fail silently and creates a PGO-ed binary with bad .init_array section in compiler-rt. Bug details can be found in PR45022 """ Differential Revision: https://reviews.llvm.org/D75065
-
George Burgess IV authored
Patch by Zhizhou Yang! In his own words: """ Currently compiler-rt doesn't officially support either PGO instrumentation or use PGO profdata to build it. PGO related flags are passed into compiler-rt since rL372209, and causing bugs: 45022, crbug:1018840 This patch adds several checks in compiler-rt to disable PGO related flags and provides a flag to turn on PGO for compiler-rt if needed. """ Differential Revision: https://reviews.llvm.org/D75499
-
Jonathan Roelofs authored
-
Douglas Yung authored
Change tests to use -S instead of -c to work when an external assembler is used that is not present. NFCI. Reviewed By: NoQ Subscribers: Charusso, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74104
-
Erik Pilkington authored
Nobody needs these symbols, so there isn't any benefit in including them. This saves some code-size in Objective-C binaries. Partially reverts: https://reviews.llvm.org/D61454. rdar://56579760 Differential revision: https://reviews.llvm.org/D75491
-
Davide Italiano authored
-
Davide Italiano authored
-
Davide Italiano authored
-
Philip Reames authored
-
Jonathan Roelofs authored
-
Reid Kleckner authored
I noticed my links were a bit slower on Windows than usual. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D75774
-
Jonathan Roelofs authored
-
LLVM GN Syncbot authored
-
Jonathan Roelofs authored
Detects and fixes suspicious code like: `#include "foo.cpp"`. Inspired by: https://twitter.com/lefticus/status/1228458240364687360?s=20 https://reviews.llvm.org/D74669
-
Alexey Bataev authored
Implemented codegen for depobj modifier in depend clauses.
-
Jay Foad authored
Summary: Instruction variants like S_MOV_B32_term should have the same SchedRW class as the base instruction, S_MOV_B32. This probably doesn't make any difference in practice because as terminators, they'll always be scheduled at the end of a basic block, but it's simply more correct than giving them all the default SchedRW class of Write32Bit, which implies a VALU operation. Reviewers: rampitec, arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75860
-
Jonathan Roelofs authored
-
Sjoerd Meijer authored
Attempt to pacify windows bot where this failed: clang/test/CodeGen/vlt_to_pointer.c
-
Yaxun (Sam) Liu authored
HIP emits a device stub function for each kernel in host code. The HIP debugger requires device stub function to have a different unmangled name as the kernel. Currently the name of the device stub function is the mangled name with a postfix .stub. However, this does not work with the HIP debugger since the unmangled name is the same as the kernel. This patch adds prefix __device__stub__ to the unmangled name of the device stub before mangling, therefore the device stub function has a valid mangled name which is different than the device kernel name. The device side kernel name is kept unchanged. kernels with extern "C" also gets the prefix added to the corresponding device stub function. Differential Revision: https://reviews.llvm.org/D68578
-
Arthur Eubanks authored
SKD -> SDK
-
Arthur Eubanks authored
Summary: MSVC also warns on this: $ cat /tmp/a.c int f(void* p) { return (int) p; } $ cl /c /tmp/a.c C:/src/tmp/a.c(1): warning C4311: 'type cast': pointer truncation from 'void *' to 'int' Warnings originally added in https://reviews.llvm.org/D72231. Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75643 -
ahatanak authored
a tail call Previosly ARC optimizer removed the autoreleaseRV/retainRV pair in the following code, which caused the object returned by @something to be placed in the autorelease pool because the call to @something isn't a tail call: ``` %call = call i8* @something(...) %2 = call i8* @objc_retainAutoreleasedReturnValue(i8* %call) %3 = call i8* @objc_autoreleaseReturnValue(i8* %2) ret i8* %3 ``` Fix the bug by checking whether @something is a tail call. rdar://problem/59275894
-
Lei Zhang authored
Differential Revision: https://reviews.llvm.org/D75854
-
Matt Arsenault authored
Most importantly, this fixes ret i8. Also make sure to handle signext/zeroext for odd types > i32. Some of the corresponding argument passing fixes also need to be handled.
-
Sjoerd Meijer authored
After a first attempt to fix the test-suite failures, my first recommit caused the same failures again. I had updated CMakeList.txt files of tests that needed -fcommon, but it turns out that there are also Makefiles which are used by some bots, so I've updated these Makefiles now too. See the original commit message for more details on this change: 0a9fc923
-
Matt Arsenault authored
Interpret these as extending to the next multiple of 32-bits. This had no effect with i48 for example, which is really split into {i32, i16}, which should extend the high part. -
Fangrui Song authored
Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D75810
-
Krzysztof Parzyszek authored
-
Erich Keane authored
This adds infrastructure for a multiversioning whitelist, plus adds 'used' to the allowed list with 'target'. The behavior here mirrors the implementation in GCC, where 'used' only applies to the single declaration and doesn't apply to the ifunc or resolver. This is not being applied to cpu_dispatch and cpu_specific, since the rules are more complicated for cpu_specific, which emits multiple symbols. Additionally, the author isn't currently aware of uses in the wild of this combination, but is aware of a number of target+used combinations.
-
Matt Arsenault authored
Use a hack to only enable this for GlobalISel. Technically this also works with SelectionDAG, but the divergence selection isn't reliable enough and a few cases fail, but I have no desire to spend time writing the manual expansion code for it. The DAG actually does a better job since it catches using v_add_lshl_u32 in the mixed SGPR/VGPR cases.
-
Akira Hatanaka authored
RebuildLambdaScopeInfo Previously the type of the variable was being passed, which was causing clang to crash when a non-reference variable was captured by reference or a reference variable was captured by value by a lambda and a block nested inside the lambda body was referencing the variable. Original patch by JF Bastien. rdar://problem/47550338 Differential Revision: https://reviews.llvm.org/D58164
-
Cameron McInally authored
These tests should have been added with a5b22b76 in D73711. Differential Revision: https://reviews.llvm.org/D75767
-
Louis Dionne authored
-