- Aug 05, 2016
-
-
Nicolai Haehnle authored
llvm-svn: 277803
-
Hans Wennborg authored
------------------------------------------------------------------------ r277691 | majnemer | 2016-08-03 21:24:02 -0700 (Wed, 03 Aug 2016) | 4 lines Reinstate "[CloneFunction] Don't remove side effecting calls" This reinstates r277611 + r277614 and reverts r277642. A cast_or_null should have been a dyn_cast_or_null. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r277693 | majnemer | 2016-08-03 21:47:18 -0700 (Wed, 03 Aug 2016) | 1 line Forgot the dyn_cast_or_null intended for r277691. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r277773 | majnemer | 2016-08-04 14:28:59 -0700 (Thu, 04 Aug 2016) | 6 lines [CloneFunction] Add a testcase for r277691/r277693 PR28848 had a very nice reduction of the underlying cause of the bug. Our ValueMap had, in an entry for an Instruction, a ConstantInt. This is not at all unexpected but should be handled properly. ------------------------------------------------------------------------ llvm-svn: 277781
-
Devin Coughlin authored
llvm-svn: 277772
-
Nico Weber authored
llvm-svn: 277751
-
Nico Weber authored
llvm-svn: 277750
-
George Burgess IV authored
llvm-svn: 277739
-
- Aug 04, 2016
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r277625 | dexonsmith | 2016-08-03 11:19:43 -0700 (Wed, 03 Aug 2016) | 42 lines IR: Drop uniquing when an MDNode Value operand is deleted This is a fix for PR28697. An MDNode can indirectly refer to a GlobalValue, through a ConstantAsMetadata. When the GlobalValue is deleted, the MDNode operand is reset to `nullptr`. If the node is uniqued, this can lead to a hard-to-detect cache invalidation in a Metadata map that's shared across an LLVMContext. Consider: 1. A map from Metadata* to `T` called RemappedMDs. 2. A node that references a global variable, `!{i1* @GV}`. 3. Insert `!{i1* @GV} -> SomeT` in the map. 4. Delete `@GV`, leaving behind `!{null} -> SomeT`. Looking up the generic and uninteresting `!{null}` gives you `SomeT`, which is likely related to `@GV`. Worse, `SomeT`'s lifetime may be tied to the deleted `@GV`. This occurs in practice in the shared ValueMap used since r266579 in the IRMover. Other code that handles more than one Module (with different lifetimes) in the same LLVMContext could hit it too. The fix here is a partial revert of r225223: in the rare case that an MDNode operand is a ConstantAsMetadata (i.e., wrapping a node from the Value hierarchy), drop uniquing if it gets replaced with `nullptr`. This changes step #4 above to leave behind `distinct !{null} -> SomeT`, which can't be confused with the generic `!{null}`. In theory, this can cause some churn in the LLVMContext's MDNode uniquing map when Values are being deleted. However: - The number of GlobalValues referenced from uniqued MDNodes is expected to be quite small. E.g., the debug info metadata schema only references GlobalValues from distinct nodes. - Other Constants have the lifetime of the LLVMContext, whose teardown is careful to drop references before deleting the constants. As a result, I don't expect a compile time regression from this change. ------------------------------------------------------------------------ llvm-svn: 277639 -
Teresa Johnson authored
llvm-svn: 277628
-
Hans Wennborg authored
------------------------------------------------------------------------ r277504 | nha | 2016-08-02 12:31:14 -0700 (Tue, 02 Aug 2016) | 20 lines AMDGPU: Stay in WQM for non-intrinsic stores Summary: Two types of stores are possible in pixel shaders: stores to memory that are explicitly requested at the API level, and stores that are an implementation detail of register spilling or lowering of arrays. For the first kind of store, we must ensure that helper pixels have no effect and hence WQM must be disabled. The second kind of store must always be executed, because the written value may be loaded again in a way that is relevant for helper pixels as well -- and there are no externally visible effects anyway. This is a candidate for the 3.9 release branch. Reviewers: arsenm, tstellarAMD, mareko Subscribers: arsenm, kzhuravl, llvm-commits Differential Revision: https://reviews.llvm.org/D22675 ------------------------------------------------------------------------ llvm-svn: 277620
-
Hans Wennborg authored
------------------------------------------------------------------------ r277500 | nha | 2016-08-02 12:17:37 -0700 (Tue, 02 Aug 2016) | 17 lines AMDGPU: Track physical registers in SIWholeQuadMode Summary: There are cases where uniform branch conditions are computed in VGPRs, and we didn't correctly mark those as WQM. The stray change in basic-branch.ll is because invoking the LiveIntervals analysis leads to the detection of a dead register that would otherwise not be seen at -O0. This is a candidate for the 3.9 branch, as it fixes a possible hang. Reviewers: arsenm, tstellarAMD, mareko Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: https://reviews.llvm.org/D22673 ------------------------------------------------------------------------ llvm-svn: 277619
-
Chris Bieneman authored
Fleshing out the note about the autoconf build system being removed and pointing to CMake documentation. llvm-svn: 277617
-
Renato Golin authored
llvm-svn: 277606
-
- Aug 03, 2016
-
-
Renato Golin authored
llvm-svn: 277593
-
Renato Golin authored
llvm-svn: 277591
-
Diana Picus authored
llvm-svn: 277590
-
Benjamin Kramer authored
llvm-svn: 277588
-
Renato Golin authored
Adding a short explanation of the GCC ABI Tag discussion and issues, with links and considerations. llvm-svn: 277587
-
Hans Wennborg authored
------------------------------------------------------------------------ r277095 | epilk | 2016-07-28 17:55:40 -0700 (Thu, 28 Jul 2016) | 5 lines [Parser] Fix bug where delayed typo in conditional expression was corrected twice Patch by David Tarditi! Differential revision: https://reviews.llvm.org/D22930 ------------------------------------------------------------------------ llvm-svn: 277525
-
Hans Wennborg authored
------------------------------------------------------------------------ r277371 | mkuper | 2016-08-01 12:39:49 -0700 (Mon, 01 Aug 2016) | 9 lines [DAGCombine] Make sext(setcc) combine respect getBooleanContents We used to combine "sext(setcc x, y, cc) -> (select (setcc x, y, cc), -1, 0)" Instead, we should combine to (select (setcc x, y, cc), T, 0) where the value of T is 1 or -1, depending on the type of the setcc, and getBooleanContents() for the type if it is not i1. This fixes PR28504. ------------------------------------------------------------------------ llvm-svn: 277509
-
Hans Wennborg authored
------------------------------------------------------------------------ r276648 | delena | 2016-07-25 09:51:00 -0700 (Mon, 25 Jul 2016) | 6 lines AVX-512: Fixed [US]INT_TO_FP selection for i1 vectors. It failed with assertion before this patch. Differential Revision: https://reviews.llvm.org/D22735 ------------------------------------------------------------------------ llvm-svn: 277508
-
- Aug 02, 2016
-
-
Diana Picus authored
[clang-cl] Fix PCH tests to use x86_64 as target These tests require x86-registered-target, but they don't force the target as x86 on the command line, which means they will be run and they might fail when building the x86 backend on another platform (such as AArch64). Fixes https://llvm.org/bugs/show_bug.cgi?id=28797 llvm-svn: 277462
-
Renato Golin authored
The saturation instructions appeared in v6T2 / DSP extensions, but they were being accepted / generated on any, with the new introduction of the saturation detection in the back-end. This commit restricts the usage to v6T2 / DSP-enable only cores. Fixes PR28607. llvm-svn: 277440
-
Dimitry Andric authored
------------------------------------------------------------------------ r277307 | dim | 2016-07-31 22:23:23 +0200 (Sun, 31 Jul 2016) | 23 lines Add more gcc compatibility names to clang's cpuid.h Summary: Some cpuid bit defines are named slightly different from how gcc's cpuid.h calls them. Define a few more compatibility names to appease software built for gcc: * `bit_PCLMUL` alias of `bit_PCLMULQDQ` * `bit_SSE4_1` alias of `bit_SSE41` * `bit_SSE4_2` alias of `bit_SSE42` * `bit_AES` alias of `bit_AESNI` * `bit_CMPXCHG8B` alias of `bit_CX8` While here, add the misssing 29th bit, `bit_F16C` (which is how gcc calls this bit). Reviewers: joerg, rsmith Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D22010 ------------------------------------------------------------------------ llvm-svn: 277425
-
Dimitry Andric authored
------------------------------------------------------------------------ r277300 | dim | 2016-07-31 22:16:59 +0200 (Sun, 31 Jul 2016) | 5 lines Fix ASan alloca_constant_size.cc test on FreeBSD. On FreeBSD <alloca.h> does not exist: alloca(3) is defined in <stdlib.h> instead. ------------------------------------------------------------------------ llvm-svn: 277424
-
Dimitry Andric authored
------------------------------------------------------------------------ r277297 | dim | 2016-07-31 21:27:46 +0200 (Sun, 31 Jul 2016) | 21 lines XFAIL one sanitizer symbolizer test for FreeBSD Summary: Due to a QoI issuse in FreeBSD's libcxxrt-based demangler, one sanitizer symbolizer test consistently appears to fail: Value of: DemangleSwiftAndCXX("foo") Actual: "float" Expected: "foo" This is because libcxxrt's __cxa_demangle() incorrectly demangles the "foo" identifier to "float". It should return an error instead. For now, XFAIL this particular test for FreeBSD, until we can fix libcxxrt properly (which might take some time to coordinate with upstream). Reviewers: rnk, zaks.anna, emaste Subscribers: emaste, llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D23001 ------------------------------------------------------------------------ llvm-svn: 277423 -
Hans Wennborg authored
------------------------------------------------------------------------ r277097 | prazek | 2016-07-28 19:10:23 -0700 (Thu, 28 Jul 2016) | 5 lines [clang-tidy] Fixes to modernize-use-emplace Not everything is valid, but it should works for 99.8% cases https://reviews.llvm.org/D22208 ------------------------------------------------------------------------ llvm-svn: 277385
-
Hans Wennborg authored
------------------------------------------------------------------------ r277221 | echristo | 2016-07-29 15:11:11 -0700 (Fri, 29 Jul 2016) | 3 lines Remove unused variable. Fixes PR28761. ------------------------------------------------------------------------ llvm-svn: 277384
-
Hans Wennborg authored
------------------------------------------------------------------------ r277114 | majnemer | 2016-07-28 22:39:21 -0700 (Thu, 28 Jul 2016) | 6 lines [EarlyCSE] Correctly handle simplified, but live, instructions Some instructions may have their uses replaced with a symbolic constant. However, the instruction may still have side effects which percludes it from being removed from the function. EarlyCSE treated such an instruction as if it were removed, resulting in PR28763. ------------------------------------------------------------------------ llvm-svn: 277382
-
- Jul 30, 2016
-
-
Hans Wennborg authored
The test is now failing on Windows. This is causing too much pain, let's just drop it from the branch. llvm-svn: 277207
-
Hans Wennborg authored
------------------------------------------------------------------------ r276983 | sfantao | 2016-07-28 07:56:19 -0700 (Thu, 28 Jul 2016) | 5 lines [OpenMP] Fix link command pattern in offloading interoperability test. It was causing a few bots to fail. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r277138 | d0k | 2016-07-29 06:07:09 -0700 (Fri, 29 Jul 2016) | 4 lines Make test not fail on hosts where the default omp library is gomp. This is the case on some linuxes, just force libomp so we get the desired results. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r277141 | djasper | 2016-07-29 06:45:03 -0700 (Fri, 29 Jul 2016) | 1 line Add missing '-no-canonical-prefixes' in test. ------------------------------------------------------------------------ llvm-svn: 277193
-
Hans Wennborg authored
------------------------------------------------------------------------ r277135 | niravd | 2016-07-29 04:49:32 -0700 (Fri, 29 Jul 2016) | 12 lines Cleanup TransferDbgValues [DAG] Check debug values for invalidation before transferring and mark old debug values invalid when transferring to another SDValue. This fixes PR28613. Reviewers: jyknight, hans, dblaikie, echristo Subscribers: yaron.keren, ismail, llvm-commits Differential Revision: https://reviews.llvm.org/D22858 ------------------------------------------------------------------------ llvm-svn: 277164
-
- Jul 29, 2016
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r276980 | tstellar | 2016-07-28 07:30:43 -0700 (Thu, 28 Jul 2016) | 12 lines AMDGPU/SI: Don't use reserved VGPRs for SGPR spilling Summary: We were using reserved VGPRs for SGPR spilling and this was causing some programs with a workgroup size of 1024 to use more than 64 registers, which is illegal. Reviewers: arsenm, mareko, nhaehnle Subscribers: nhaehnle, arsenm, llvm-commits, kzhuravl Differential Revision: https://reviews.llvm.org/D22032 ------------------------------------------------------------------------ llvm-svn: 277084
-
Hans Wennborg authored
------------------------------------------------------------------------ r276435 | arsenm | 2016-07-22 10:01:21 -0700 (Fri, 22 Jul 2016) | 4 lines AMDGPU: Fix i1 fp_to_int R600's i1 fp_to_uint selected but was incorrect according to what instcombine constant folds to. ------------------------------------------------------------------------ llvm-svn: 277082
-
Hans Wennborg authored
------------------------------------------------------------------------ r276119 | yaxunl | 2016-07-20 07:38:06 -0700 (Wed, 20 Jul 2016) | 3 lines AMDGPU: Fix bug causing crash due to invalid opencl version metadata. Differential Revision: https://reviews.llvm.org/D22526 ------------------------------------------------------------------------ llvm-svn: 277079
-
Hans Wennborg authored
------------------------------------------------------------------------ r276956 | majnemer | 2016-07-27 22:03:22 -0700 (Wed, 27 Jul 2016) | 6 lines [CodeView] Don't crash on functions without subprograms A function may have instructions annotated with debug info without having a subprogram. This fixes PR28747. ------------------------------------------------------------------------ llvm-svn: 277078
-
Hans Wennborg authored
------------------------------------------------------------------------ r275869 | arsenm | 2016-07-18 11:34:53 -0700 (Mon, 18 Jul 2016) | 7 lines AMDGPU: Remove dead check in AMDGPUPromoteAlloca This is currently only called with GEP users. A direct alloca would only happen with current typed pointers for arrays which are a perverse case. Also fix crashes on 0 x and 1 x arrays. ------------------------------------------------------------------------ llvm-svn: 277077
-
Hans Wennborg authored
------------------------------------------------------------------------ r275868 | arsenm | 2016-07-18 11:34:48 -0700 (Mon, 18 Jul 2016) | 4 lines AMDGPU: Remove dead code and redundant check Non intrinsic calls aren't really handled, and this IntrinsicInst dyn_cast checks for the function for us. ------------------------------------------------------------------------ llvm-svn: 277076
-
Hans Wennborg authored
------------------------------------------------------------------------ r276653 | ssrivastava | 2016-07-25 10:17:06 -0700 (Mon, 25 Jul 2016) | 11 lines Support '#pragma once' in headers when using PCH The '#pragma once' directive was erroneously ignored when encountered in the header-file specified in generate-PCH-mode. This resulted in compile-time errors in some cases with legal code, and also a misleading warning being produced. Patch by Warren Ristow! Differential Revision: http://reviews.llvm.org/D19815 ------------------------------------------------------------------------ llvm-svn: 277075 -
Hans Wennborg authored
------------------------------------------------------------------------ r276979 | sfantao | 2016-07-28 07:29:18 -0700 (Thu, 28 Jul 2016) | 12 lines [OpenMP][CUDA] Do not forward OpenMP flags for CUDA device actions. Summary: This patch prevents OpenMP flags from being forwarded to CUDA device commands. That was causing the CUDA frontend to attempt to emit OpenMP code which is not supported. This fixes the bug reported in https://llvm.org/bugs/show_bug.cgi?id=28723. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, tra, ABataev Subscribers: caomhin, cfe-commits Differential Revision: https://reviews.llvm.org/D22895 ------------------------------------------------------------------------ llvm-svn: 277004
-
- Jul 28, 2016
-
-
Hans Wennborg authored
Patch by: Andrey Bokhanko <andreybokhanko@gmail.com> Differential Revision: https://reviews.llvm.org/D22913 llvm-svn: 276994
-