- Mar 25, 2014
-
-
Tom Stellard authored
------------------------------------------------------------------------ r199917 | thomas.stellard | 2014-01-23 10:49:31 -0800 (Thu, 23 Jan 2014) | 6 lines R600: Correctly handle vertex fetch clauses the precede ENDIFs The control flow finalizer would sometimes use an ALU_POP_AFTER instruction before the vetex fetch clause instead of using a POP instruction after it. llvm-svn: 204639
-
Tom Stellard authored
------------------------------------------------------------------------ r202336 | michel.daenzer | 2014-02-26 17:47:02 -0800 (Wed, 26 Feb 2014) | 4 lines R600/SI: Allow SI_KILL for geometry shaders Reviewed-by:Tom Stellard <thomas.stellard@amd.com> llvm-svn: 204638
-
Tom Stellard authored
------------------------------------------------------------------------ r200196 | michel.daenzer | 2014-01-26 23:20:51 -0800 (Sun, 26 Jan 2014) | 4 lines R600/SI: Add intrinsic for BUFFER_LOAD_DWORD* instructions Reviewed-by:Tom Stellard <thomas.stellard@amd.com> llvm-svn: 204637
-
Tom Stellard authored
------------------------------------------------------------------------ r200195 | michel.daenzer | 2014-01-26 23:20:44 -0800 (Sun, 26 Jan 2014) | 4 lines R600/SI: Add intrinsic for S_SENDMSG instruction Reviewed-by:Tom Stellard <thomas.stellard@amd.com> llvm-svn: 204636
-
- Mar 20, 2014
-
-
Tom Stellard authored
llvm-svn: 204266
-
Tom Stellard authored
------------------------------------------------------------------------ r203025 | richard-llvm | 2014-03-05 15:32:50 -0800 (Wed, 05 Mar 2014) | 3 lines PR19010: Make sure we initialize (empty) indirect base class subobjects when evaluating trivial default initialization of a literal class type. llvm-svn: 204263
-
Tom Stellard authored
------------------------------------------------------------------------ r202720 | thomas.stellard | 2014-03-03 07:22:00 -0800 (Mon, 03 Mar 2014) | 8 lines Add patch level to llvm version in CMake and Autoconf The shared library generated by autoconf will now be called libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so and a symlink named libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will also be created in the install directory. llvm-svn: 204262
-
- Mar 18, 2014
-
-
Tom Stellard authored
------------------------------------------------------------------------ r200954 | richard-llvm | 2014-02-06 15:35:16 -0800 (Thu, 06 Feb 2014) | 9 lines Temporary fix for PR18473: Don't try to evaluate the initializer for a type-dependent variable, even if the initializer isn't value-dependent. This happens for ParenListExprs composed of non-value-dependent subexpressions, for instance. We should really give ParenListExprs (and InitListExprs) the type of the initialized entity if they're used to represent a dependent initialization (and if so, set them to be type-, value- and instantiation-dependent). llvm-svn: 204050
-
- Mar 14, 2014
-
-
Tom Stellard authored
------------------------------------------------------------------------ r202721 | thomas.stellard | 2014-03-03 07:22:14 -0800 (Mon, 03 Mar 2014) | 2 lines Update tests for addition of patch level to LLVM version llvm-svn: 203870
-
- Feb 25, 2014
-
-
Tom Stellard authored
------------------------------------------------------------------------ r197520 | dexonsmith | 2013-12-17 12:28:21 -0800 (Tue, 17 Dec 2013) | 7 lines Assert that the last operand is actually EFLAGS This is another follow-up to r197503, after a post-commit review by Andy. <rdar://problem/15627766> ------------------------------------------------------------------------ r197505 | dexonsmith | 2013-12-17 08:20:37 -0800 (Tue, 17 Dec 2013) | 6 lines Setting the CPU in the new vaargs test Trying to fix buildbots after r197503 (test passes locally). <rdar://problem/15627766> ------------------------------------------------------------------------ r197503 | dexonsmith | 2013-12-17 07:54:45 -0800 (Tue, 17 Dec 2013) | 17 lines Revert "Revert "Mark vastart_save_xmm_regs as changing EFLAGS"" This reverts commit r197481, recommiting r197469 with an extra fix. The vastart_save_xmm_regs pseudo-instruction expands to a test and a branch, so it modifies EFLAGS. Mark it so, or else the scheduler might place it in the middle of another test+branch. This fixes a bug exposed by r192750, which changed the initial scheduler to source-order as part of enabling the MI Scheduler for X86. This re-commit changes the VASTART_SAVE_XMM_REGS custom inserter not to try to save %flags, and adds a test that catches the bad behavior of r197469. <rdar://problem/15627766> ------------------------------------------------------------------------ llvm-svn: 202060
-
- Jan 07, 2014
-
-
Richard Smith authored
Clang 3.4. Add link to referenced PR. llvm-svn: 198626
-
- Dec 28, 2013
-
-
Bill Wendling authored
------------------------------------------------------------------------ r197314 | logan | 2013-12-13 22:45:09 -0800 (Fri, 13 Dec 2013) | 9 lines Fix GCC unknown pragma warning in libc++. We should check defined(__clang__) before the usage of the clang diagnostic pragmas. The [-Wswitch] warning in src/future.cpp should be ignored. As the result, the equivalent GCC pragma is added. ------------------------------------------------------------------------ llvm-svn: 198100
-
- Dec 24, 2013
-
-
Bill Wendling authored
------------------------------------------------------------------------ r197483 | yrnkrn | 2013-12-17 00:40:11 -0800 (Tue, 17 Dec 2013) | 8 lines There are no __register_frame and __deregister_frame functions when using structured exception handling (SEH) on Windows 64. http://llvm-reviews.chandlerc.com/D2378 Patch by Jonathan Liu! ------------------------------------------------------------------------ llvm-svn: 197944
-
Bill Wendling authored
llvm-svn: 197933
-
Bill Wendling authored
llvm-svn: 197932
-
- Dec 23, 2013
-
-
Bill Wendling authored
Parse: Recover better from bad definitions with base specifiers We would skip until the next comma, hoping good things whould lie there, however this would fail when we have such things as this: struct A {}; template <typename> struct D; template <> struct D<C> : B, A::D; Once this happens, we would believe that D with a nested namespace specifier of A was a variable that was being declared. We would go on to complain that there was an extraneous 'template <>' on their variable declaration. Crashes would happen when 'A' gets defined as 'enum class A {}' as various asserts would fire. Instead, we should skip up until the semicolon if we see that we are in the middle of a definition and the current token is a ':' This fixes PR17084. llvm-svn: 197905
-
- Dec 21, 2013
-
-
Bill Wendling authored
llvm-svn: 197841
-
Bill Wendling authored
llvm-svn: 197840
-
- Dec 20, 2013
-
-
Bill Wendling authored
------------------------------------------------------------------------ r197492 | dyatkovskiy | 2013-12-17 04:07:33 -0800 (Tue, 17 Dec 2013) | 26 lines Fix for PR18045: http://llvm.org/bugs/show_bug.cgi?id=18045 Short issue description: For X86 machines with sse < sse4.1 we got failures for some particular load/store vector sequences: $ clang-trunk -m32 -O2 test-case.c fatal error: error in backend: Cannot select: 0x4200920: v4i32,ch = load 0x41d6ab0, 0x4205850, 0x41dcb10<LD16[getelementptr inbounds ([4 x i32]* @e, i32 0, i32 0)](align=4)> [ORD=82] [ID=58] 0x4205850: i32 = X86ISD::Wrapper 0x41d5490 [ORD=26] [ID=43] 0x41d5490: i32 = TargetGlobalAddress<[4 x i32]* @e> 0 [ORD=26] [ID=23] 0x41dcb10: i32 = undef [ID=2] The reason is that EltsFromConsecutiveLoads could emit such load instruction both before and after legalize stage. Though this instruction is not legal for machines with SSSE3 and lower. The fix: In EltsFromConsecutiveLoads, if we have passed legalize stage, we check whether nodes it emits are legal. P.S.: If you get failure in time from 12:00 and till 22:00 (UTC-8), perhaps I'll slow with response, so you better reject this commit. Thanks! ------------------------------------------------------------------------ llvm-svn: 197779
-
Bill Wendling authored
------------------------------------------------------------------------ r197718 | hans | 2013-12-19 12:32:44 -0800 (Thu, 19 Dec 2013) | 10 lines Make sys::ThreadLocal<> zero-initialized on non-thread builds (PR18205) According to the docs, ThreadLocal<>::get() should return NULL if no object has been set. This patch makes that the case also for non-thread builds and adds a very basic unit test to check it. (This was causing PR18205 because PrettyStackTraceHead didn't get zero- initialized and we'd crash trying to read past the end of that list. We didn't notice this so much on Linux since we'd crash after printing all the entries, but on Mac we print into a SmallString, and would crash before printing that.) ------------------------------------------------------------------------ llvm-svn: 197778
-
- Dec 19, 2013
-
-
Sylvestre Ledru authored
llvm-svn: 197667
-
- Dec 17, 2013
-
-
Bill Wendling authored
llvm-svn: 197468
-
Bill Wendling authored
------------------------------------------------------------------------ r197409 | rikka | 2013-12-16 11:19:18 -0800 (Mon, 16 Dec 2013) | 4 lines Make Sema::BuildCXXNestedNameSpecifier correctly clear the previous CXXScopeSpec when necessary while performing typo correction. This fixes the crash reported in PR18213 (the problem existed since r185487, and r193020 made it easier to hit). ------------------------------------------------------------------------ llvm-svn: 197463
-
Bill Wendling authored
------------------------------------------------------------------------ r197449 | arnolds | 2013-12-16 17:11:01 -0800 (Mon, 16 Dec 2013) | 7 lines LoopVectorizer: Don't if-convert constant expressions that can trap A phi node operand or an instruction operand could be a constant expression that can trap (division). Check that we don't vectorize such cases. PR16729 radar://15653590 ------------------------------------------------------------------------ llvm-svn: 197453
-
Bill Wendling authored
llvm-svn: 197443
-
Bill Wendling authored
llvm-svn: 197417
-
- Dec 16, 2013
-
-
Sylvestre Ledru authored
llvm-svn: 197381
-
Gabor Greif authored
llvm-svn: 197379
-
Sylvestre Ledru authored
After chatting with Anna Zaks, she believes that my code samples were more bugs in the previous releases of the static analyzer. llvm-svn: 197377
-
Sylvestre Ledru authored
Bill accepted this commit for the 3.4 release. The build was failing with: /tmp/buildd/llvm-toolchain-3.4-3.4~+/tools/lldb/source/Host/common/Host.cpp:1222:30: error: request for member 'Printf' in 'log', which is of non-class type 'double(double)throw ()' log->Printf("Host::GetLLDBPath(ePathTypeLLDBTempSystemDir) => '%s'", g_lldb_tmp_dir.GetCString()); llvm-svn: 197376 -
Bill Wendling authored
------------------------------------------------------------------------ r195411 | mgottesman | 2013-11-21 21:00:51 -0800 (Thu, 21 Nov 2013) | 1 line [block-freq] Update data in test case to be unsigned long long to fix mingw build. ------------------------------------------------------------------------ llvm-svn: 197363
-
Bill Wendling authored
------------------------------------------------------------------------ r196802 | chandlerc | 2013-12-09 11:25:51 -0800 (Mon, 09 Dec 2013) | 11 lines Revert three patches which were committed without explicit contribution by their authors. This may break builds where others added code relying on these patches, but please *do not* revert this commit. Instead, we will prepare patches which fix the failures. Reverts the following commits: r168306: "[asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu" r168356: "[asan] more support for powerpc, patch by Peter Bergner" r196489: "[sanitizer] fix the ppc32 build (patch by Jakub Jelinek)" ------------------------------------------------------------------------ llvm-svn: 197360
-
Bill Wendling authored
------------------------------------------------------------------------ r196212 | alp | 2013-12-02 22:13:01 -0800 (Mon, 02 Dec 2013) | 22 lines Emit an extension warning when changing system header tokens clang converts keywords to identifiers for compatibility with various system headers such as GNU libc. Implement a -Wkeyword-compat extension warning to diagnose those cases. The warning is on by default but will generally be ignored in system headers. It can however be enabled globally to aid standards conformance testing. This also changes the __uptr keyword avoidance from r195710 to no longer special-case system headers, bringing it in line with other similar workarounds in clang. Implementation returns bool for symmetry with token annotation functions. Some examples: warning: keyword '__is_pod' will be treated as an identifier for the remainder of the translation unit [-Wkeyword-compat] struct __is_pod warning: keyword '__uptr' will be treated as an identifier here [-Wkeyword-compat] union w *__uptr; ------------------------------------------------------------------------ llvm-svn: 197359
-
Bill Wendling authored
------------------------------------------------------------------------ r197047 | d0k | 2013-12-11 08:36:09 -0800 (Wed, 11 Dec 2013) | 3 lines SelectionDAG: Fix a typo. Found by "cppcheck". PR18208. ------------------------------------------------------------------------ llvm-svn: 197355
-
Bill Wendling authored
------------------------------------------------------------------------ llvm-svn: 197354
-
Bill Wendling authored
------------------------------------------------------------------------ r196779 | samsonov | 2013-12-09 05:21:43 -0800 (Mon, 09 Dec 2013) | 11 lines PR17977: don't assume EOWNERDEAD is always defined Summary: See details in http://llvm.org/bugs/show_bug.cgi?id=17977 Reviewers: dvyukov Reviewed By: dvyukov CC: glider, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2340 ------------------------------------------------------------------------ llvm-svn: 197353
-
Bill Wendling authored
------------------------------------------------------------------------ r197216 | chandlerc | 2013-12-13 00:00:01 -0800 (Fri, 13 Dec 2013) | 9 lines [inliner] Fix PR18206 by preventing inlining functions that call setjmp through an invoke instruction. The original patch for this was written by Mark Seaborn, but I've reworked his test case into the existing returns_twice test case and implemented the fix by the prior refactoring to actually run the cost analysis over invoke instructions, and then here fixing our detection of the returns_twice attribute to work for both calls and invokes. We never noticed because we never saw an invoke. =[ ------------------------------------------------------------------------ llvm-svn: 197352
-
Bill Wendling authored
------------------------------------------------------------------------ r197215 | chandlerc | 2013-12-12 23:59:56 -0800 (Thu, 12 Dec 2013) | 24 lines [inliner] Completely change (and fix) how the inline cost analysis handles terminator instructions. The inline cost analysis inheritted some pretty rough handling of terminator insts from the original cost analysis, and then made it much, much worse by factoring all of the important analyses into a separate instruction visitor. That instruction visitor never visited the terminator. This works fine for things like conditional branches, but for many other things we simply computed The Wrong Value. First example are unconditional branches, which should be free but were counted as full cost. This is most significant for conditional branches where the condition simplifies and folds during inlining. We paid a 1 instruction tax on every branch in a straight line specialized path. =[ Oh, we also claimed that the unreachable instruction had cost. But it gets worse. Let's consider invoke. We never applied the call penalty. We never accounted for the cost of the arguments. Nope. Worse still, we didn't handle the *correctness* constraints of not inlining recursive invokes, or exception throwing returns_twice functions. Oops. See PR18206. Sadly, PR18206 requires yet another fix, but this refactoring is at least a huge step in that direction. ------------------------------------------------------------------------ llvm-svn: 197351
-
- Dec 14, 2013
-
-
Hal Finkel authored
llvm-svn: 197325
-
Bill Wendling authored
------------------------------------------------------------------------ r197178 | hfinkel | 2013-12-12 12:45:24 -0800 (Thu, 12 Dec 2013) | 9 lines Fix a use-after-free error in GlobalOpt CleanupConstantGlobalUsers GlobalOpt's CleanupConstantGlobalUsers function uses a worklist array to manage constant users to be visited. The pointers in this array need to be weak handles because when we delete a constant array, we may also be holding a pointer to one of its elements (or an element of one of its elements if we're dealing with an array of arrays) in the worklist. Fixes PR17347. ------------------------------------------------------------------------ llvm-svn: 197322
-