- 02 Feb, 2016 6 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258318 | sgundapa | 2016-01-20 07:41:30 -0800 (Wed, 20 Jan 2016) | 2 lines Fix the error in non-asserts Release mode build. NFC ``` --------------------------------------------------------------------- llvm-svn: 259541
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259346 | ibreger | 2016-02-01 01:57:15 -0800 (Mon, 01 Feb 2016) | 3 lines AVX512: fix mask handling for gather/scatter/prefetch intrinsics. Differential Revision: http://reviews.llvm.org/D16755 ``` --------------------------------------------------------------------- llvm-svn: 259536
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259342 | ibreger | 2016-01-31 23:56:09 -0800 (Sun, 31 Jan 2016) | 3 lines AVX512 : Fix SETCCE lowering for KNL 32 bit. Differential Revision: http://reviews.llvm.org/D16752 ``` --------------------------------------------------------------------- llvm-svn: 259533
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258485 | bhushan.attarde | 2016-01-21 21:02:02 -0800 (Thu, 21 Jan 2016) | 9 lines Use "_$" prefix instead of "$" for dynamic checker function inserted by LLDB during expression evaluation SUMMARY: The symbol "$" has a special meaning for MIPS i.e it is marker for temporary symbols for MIPS. So this patch uses additional _ prefix for "$__lldb_valid_pointer_check" so that it wont be marked as temporary symbol in case of MIPS. Reviewers: clayborg, spyffe Subscribers: dean, emaste, mohit.bhakkad, sagar, jaydeep, lldb-commits Differential http://reviews.llvm.org/D14111 ``` --------------------------------------------------------------------- llvm-svn: 259525 -
Hans Wennborg authored
```--------------------------------------------------------------------- r258967 | zturner | 2016-01-27 10:49:35 -0800 (Wed, 27 Jan 2016) | 5 lines Fix some python 3 incompatibilities that went in overnight. * basestring is not a thing anymore. Must use `six.string_types`. * Must use from __future__ import print_function in every new test file. ``` --------------------------------------------------------------------- llvm-svn: 259524
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258919 | bhushan.attarde | 2016-01-27 02:16:30 -0800 (Wed, 27 Jan 2016) | 10 lines [LLDB][MIPS] A small fix in GetBreakableLoadAddress() for MIPS SUMMARY: Get the load address for the address given by symbol and function. Earlier, this was done for function only, this patch does it for symbol too. This patch also adds TestAvoidBreakpointInDelaySlot.py to test this change. Reviewers: clayborg Subscribers: labath, zturner, mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D16049 ``` --------------------------------------------------------------------- llvm-svn: 259523
-
- 01 Feb, 2016 10 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r257926 | ribrdb | 2016-01-15 11:35:48 -0800 (Fri, 15 Jan 2016) | 1 line Implement missing GoASTContext methods ``` --------------------------------------------------------------------- llvm-svn: 259423
-
Hans Wennborg authored
```--------------------------------------------------------------------- r257831 | rtrieu | 2016-01-14 14:56:39 -0800 (Thu, 14 Jan 2016) | 13 lines Refactor template type diffing 1) Instead of using pairs of From/To* fields, combine fields into a struct TemplateArgInfo and have two in each DiffNode. 2) Use default initialization in DiffNode so that the constructor shows the only field that is initialized differently on construction. 3) Use Set and Get functions per each DiffKind to make sure all fields for the diff is set. In one case, the Expr fields were not set. 4) Don't print boolean literals for boolean template arguments. This prevents printing 'false aka 0' Only #3 has a functional change, which is reflected in the test change. ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r257838 | rtrieu | 2016-01-14 15:30:12 -0800 (Thu, 14 Jan 2016) | 6 lines Change the TSTiterator in Template Type Diffing. Modify the TSTiterator to have two internal iterators, which will walk the provided sugared type and the desugared type. This will provide better access to the template argument information. No functional changes. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r257853 | rtrieu | 2016-01-14 17:08:56 -0800 (Thu, 14 Jan 2016) | 11 lines Make template type diffing use the new desguared iterator. If available, use the canonical template argument to fill in information for template type diffing instead of attempting to special case and evaluate Expr's for the value. Since those are the values used in template instantiation, we don't have to worry about difference between our evaluator and theirs. Also move the nullptr template arguments from DiffKind::Expression to DiffKind::Declaration and allow DiffKind::Declaration to set an Expr. The only effect that should result is that a named nullptr will show up as 'ptr aka nullptr' in diagnostics. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r257861 | rtrieu | 2016-01-14 18:55:17 -0800 (Thu, 14 Jan 2016) | 7 lines Save the integer type for integral template arguments. Save the integer type when diffing integers in template type diffing. When integers are different sizes, print out the type along with the integer value. Also with the type information, print true and false instead of 1 and 0 for boolean values. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r257869 | rtrieu | 2016-01-14 21:01:53 -0800 (Thu, 14 Jan 2016) | 6 lines Add new diff modes to template type diffing. Remove an old assertion that does not hold. It is possible for a template argument to be a declaration in one instantiation and an integer in another. Create two new diff kinds for these (decl vs int and int vs decl). ------------------------------------------------------------------------ ------------------------------------------------------------------------ r257870 | rtrieu | 2016-01-14 21:48:38 -0800 (Thu, 14 Jan 2016) | 10 lines Fixing more issues with template type diffing 1) Print qualifiers for templates with zero arguments 2) Add a few more tests for the template type diffing refactoring. Specifically, PR24587 has been fixed and has a test case from http://reviews.llvm.org/D15384 3) Adds asserts to check the DiffTree is in correct state when moving nodes 4) Rename the field FromType and ToType since it is heavily used within member functions. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r257871 | jyknight | 2016-01-14 21:57:41 -0800 (Thu, 14 Jan 2016) | 1 line Fix a -Wparentheses warning in ASTDiagnostic.cpp. ------------------------------------------------------------------------ llvm-svn: 259422
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258396 | abataev | 2016-01-21 04:54:48 -0800 (Thu, 21 Jan 2016) | 2 lines Fix crash for typedefs for arrays of runtime bounds in Lambdas/Captured Statements, used in sizeof() expression only. ``` --------------------------------------------------------------------- llvm-svn: 259414
-
Hans Wennborg authored
```--------------------------------------------------------------------- r257710 | gbiv | 2016-01-13 15:36:34 -0800 (Wed, 13 Jan 2016) | 8 lines [Sema] Suppress diags in overload resolution. We were emitting diagnostics from our shiny new C-only overload resolution mode. This patch attempts to silence all such diagnostics. This fixes PR26085. Differential Revision: http://reviews.llvm.org/D16159 ``` --------------------------------------------------------------------- llvm-svn: 259412
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258621 | mohit.bhakkad | 2016-01-23 02:36:06 -0800 (Sat, 23 Jan 2016) | 5 lines [LLDB] Consider only valid symbols while resolving by address Reviewers: clayborg. Subscribers: jaydeep, bhushan, sagar, nitesh.jain, lldb-commits. Differential Revision: http://reviews.llvm.org/D16397 ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r258758 | amccarth | 2016-01-25 16:58:09 -0800 (Mon, 25 Jan 2016) | 13 lines Set symbol types for function symbols loaded from PE/COFF This fixes the regression of several tests on Windows after rL258621. The root problem is that ObjectFilePECOFF was not setting type information for the symbols, and the new CL rejects symbols without type information, breaking functionality like thread step-over. The fix sets the type information for functions (and creates a TODO for other types). Along the way, I fixed some typos and formatting that made the code I was debugging harder to understand. In the long run, we should consider replacing most of ObjectFilePECOFF with the COFF parsing code from LLVM. Differential Revision: http://reviews.llvm.org/D16563 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r258761 | zturner | 2016-01-25 17:09:38 -0800 (Mon, 25 Jan 2016) | 1 line Remove XFAIL Windows from a test that was fixed by r258758. ------------------------------------------------------------------------ llvm-svn: 259408
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259375 | majnemer | 2016-02-01 09:37:56 -0800 (Mon, 01 Feb 2016) | 6 lines [InstCombine] Don't transform (X+INT_MAX)>=(Y+INT_MAX) -> (X<=Y) This miscompile came about because we tried to use a transform which was only appropriate for xor operators when addition was present. This fixes PR26407. ``` --------------------------------------------------------------------- llvm-svn: 259390
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258685 | slthakur | 2016-01-25 04:33:03 -0800 (Mon, 25 Jan 2016) | 10 lines [LLDB][MIPS] Fix TestPrintStackTraces.py Patch by Nitesh Jain. Summary: The thread_start function in libc doesn't contain any epilogue and prologue instructions. Hence unwinding fail when we are stopped in thread_start. Reviewers: ovyalov, clayborg Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep Differential: reviews.llvm.org/D16136 ``` --------------------------------------------------------------------- llvm-svn: 259374
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258684 | slthakur | 2016-01-25 04:27:46 -0800 (Mon, 25 Jan 2016) | 10 lines [LLDB][MIPS] Fix TestExprsChar.py Patch by Nitesh Jain. Summary: When incorrect type used for 'char' then (at least) one of the expression evaluates to incorrect value. Please refer to bug llvm.org/pr23069 Reviewers: ovyalov, clayborg Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep Differential: reviews.llvm.org/D16132 ``` --------------------------------------------------------------------- llvm-svn: 259373
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259332 | grosser | 2016-01-31 12:25:46 -0800 (Sun, 31 Jan 2016) | 17 lines cmake: Add additional libraries to fix the darwin shared library build darwin requires the additional linkages of... LLVMBitReader LLVMMCParser LLVMObject LLVMProfileData LLVMTarget LLVMVectorize as the darwin requires all of the weak undefined symbols in a library to be resolved when linking it against an executable (unless -Wl,-undefined,dynamic_lookup is used to override the default behavior of -Wl,-undefined,error). Contributed-by: Jack Howarth ``` --------------------------------------------------------------------- llvm-svn: 259372
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259260 | samsonov | 2016-01-29 15:07:14 -0800 (Fri, 29 Jan 2016) | 1 line [UBSan] Add documentation for runtime issue suppression. ``` --------------------------------------------------------------------- llvm-svn: 259371
-
- 29 Jan, 2016 6 commits
-
-
Tim Northover authored
```--------------------------------------------------------------------- r259228 | tnorthover | 2016-01-29 11:18:46 -0800 (Fri, 29 Jan 2016) | 13 lines ARM: don't mangle DAG constant if it has more than one use The basic optimisation was to convert (mul $LHS, $complex_constant) into roughly "(shl (mul $LHS, $simple_constant), $simple_amt)" when it was expected to be cheaper. The original logic checks that the mul only has one use (since we're mangling $complex_constant), but when used in even more complex addressing modes there may be an outer addition that can pick up the wrong value too. I *think* the ARM addressing-mode problem is actually unreachable at the moment, but that depends on complex assessments of the profitability of pre-increment addressing modes so I've put a real check in there instead of an assertion. ``` --------------------------------------------------------------------- llvm-svn: 259247
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259236 | spatel | 2016-01-29 12:21:02 -0800 (Fri, 29 Jan 2016) | 8 lines [InstCombine] avoid an insertelement transformation that induces the opposite extractelement fold (PR26354) We would infinite loop because we created a shufflevector that was wider than needed and then failed to combine that with the insertelement. When subsequently visiting the extractelement from that shuffle, we see that it's unnecessary, delete it, and trigger another visit to the insertelement. ``` --------------------------------------------------------------------- llvm-svn: 259245
-
Hans Wennborg authored
```--------------------------------------------------------------------- r259188 | labath | 2016-01-29 03:59:57 -0800 (Fri, 29 Jan 2016) | 17 lines Fix linking of lldb-server with BUILD_SHARED_LIBS Summary: The BUILD_SHARED_LIBS branch of lldb-server link flags was hopelessly broken, at least since we started restricting the symbols exported by liblldb. lldb-server depends on symbols from the lldb_private namespace, so it cannot link to the public interface of liblldb. Instead I make it link to the individual libraries constituting liblldb, just like it does in the !BUILD_SHARED_LIBS case. This does not make the BUILD_SHARED_LIBS build of lldb fully functional yet, due to the way liblldb dependencies are managed, but it's a step in that direction. Reviewers: zturner, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16678 ``` --------------------------------------------------------------------- llvm-svn: 259241
-
Tom Stellard authored
```--------------------------------------------------------------------- r258922 | marek.olsak | 2016-01-27 06:19:45 -0500 (Wed, 27 Jan 2016) | 12 lines AMDGPU/SI: Stoney has only 16 LDS banks Summary: This is a candidate for stable, along with all patches that add the "stoney" processor. Reviewers: tstellarAMD Subscribers: arsenm Differential Revision: http://reviews.llvm.org/D16485 ``` --------------------------------------------------------------------- llvm-svn: 259207
-
Tom Stellard authored
```--------------------------------------------------------------------- r257666 | changpeng.fang | 2016-01-13 15:39:25 -0500 (Wed, 13 Jan 2016) | 2 lines AMDGPU/SI: Update ISA version for FIJI ``` --------------------------------------------------------------------- llvm-svn: 259206
-
Alexey Bataev authored
```--------------------------------------------------------------------- r258307 | abataev | 2016-01-20 15:29:47 +0300 (Wed, 20 Jan 2016) | 3 lines [OPENMP 4.0] Fix for codegen of 'cancel' directive within 'sections' directive. Allow to emit code for 'cancel' directive within 'sections' directive with single sub-section. ``` --------------------------------------------------------------------- r258495 | abataev | 2016-01-22 11:56:50 +0300 (Fri, 22 Jan 2016) | 3 lines [OPENMP] Generalize codegen for 'sections'-based directive. If 'sections' directive has only one sub-section, the code for 'single'-based directive was emitted. Removed this codegen, because it causes crashes in different cases. ------------------------------------------------------------------------ llvm-svn: 259160
-
- 28 Jan, 2016 7 commits
-
-
Jonathan Peyton authored
```--------------------------------------------------------------------- r258990 | jlpeyton | 2016-01-27 15:20:26 -0600 (Wed, 27 Jan 2016) | 5 lines Restore th_current_task first as suggested by John Mellor-Crummey If an asynchronous inquiry peers into the runtime system it doesn't see the freed task as the current task. ``` --------------------------------------------------------------------- llvm-svn: 259109
-
Daniel Sanders authored
Summary: r257791 disabled the test-suite export since the addition of CMakeLists.txt was causing build failures. This patch exports the test-suite again but does so outside the source tree so that it isn't included in the Phase[123] builds. Reviewers: hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16679 llvm-svn: 259093
-
Daniel Sanders authored
```--------------------------------------------------------------------- r259046 | dsanders | 2016-01-28 13:49:33 +0000 (Thu, 28 Jan 2016) | 18 lines [libcxx] Work around for clang calling GAS after having already failed. Summary: This is a workaround to a clang bug which causes libcxx tests to fail in the 3.8 release. The clang bug is currently being investigated. It seems that clang does not stop after frontend errors when using -verify and -fno-integrated-as (or when this is the default). This patch adds -fsyntax-only to prevent GAS from being called, fixing the libcxx failures. PR26277 Patch by Eric Fiselier Reviewers: mclow.lists, hans, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16584 ``` --------------------------------------------------------------------- llvm-svn: 259092
-
Hans Wennborg authored
- `source/Plugins/Platform/MacOSX/PlatformiOSSimulatorCoreSimulatorSupport.mm` was not matched by the default target, causing link errors. Update Makefile to match r252205. - `test/Makefile` no longer exists for LLDB, since r251532. Differential Revision: http://reviews.llvm.org/D16284 Patch by Isaiah! (Committing directly to 3.8 since the Makefiles were recently removed from trunk.) llvm-svn: 259081
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258971 | spatel | 2016-01-27 11:22:45 -0800 (Wed, 27 Jan 2016) | 26 lines [SimplifyCFG] limit recursion depth when speculating instructions (PR26308) This is a fix for: https://llvm.org/bugs/show_bug.cgi?id=26308 With the switch to using the TTI cost model in: http://reviews.llvm.org/rL228826 ``` it became possible to hit a zero-cost cycle of instructions (gep -> phi -> gep...), so we need a cap for the recursion in DominatesMergePoint(). A recursion depth parameter was already added for a different reason in: http://reviews.llvm.org/rL255660 ...so we can just set a limit for it. I pulled "10" out of the air and made it an independent parameter that we can play with. It might be higher than it needs to be given the currently low default value of PHINodeFoldingThreshold (2). That's the starting cost value that we enter the recursion with, and most instructions have cost set to TCC_Basic (1), so I don't think we're going to speculate more than 2 instructions with the current parameters. As noted in the review and the TODO comment, we can do better than just limiting recursion depth. Differential Revision: http://reviews.llvm.org/D16637 ------------------------------------------------------------------------ llvm-svn: 259066
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258471 | pirama | 2016-01-21 17:16:57 -0800 (Thu, 21 Jan 2016) | 14 lines Do not lower VSETCC if operand is an f16 vector Summary: SETCC with f16 vectors has OperationAction set to Expand but still gets lowered to FCM* intrinsics based on its result type. This patch skips lowering of VSETCC if the operand is an f16 vector. v4 and v8 tests included. Reviewers: ab, jmolloy Subscribers: srhines, llvm-commits Differential Revision: http://reviews.llvm.org/D15361 ``` --------------------------------------------------------------------- llvm-svn: 259064
-
Daniel Sanders authored
```--------------------------------------------------------------------- r258920 | dsanders | 2016-01-27 10:45:07 +0000 (Wed, 27 Jan 2016) | 11 lines [libcxx] Additional 'REQUIRE' directives for tests that require en_US.UTF-8. Summary: These are the tests that didn't fail in the release candidate because they were covered by another 'REQUIRES' directive. Reviewers: mclow.lists, hans, bcraig, EricWF Subscribers: EricWF, dim, cfe-commits Differential Revision: http://reviews.llvm.org/D16408 ``` --------------------------------------------------------------------- llvm-svn: 259058
-
- 27 Jan, 2016 9 commits
-
-
Hans Wennborg authored
llvm-svn: 258968
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258921 | labath | 2016-01-27 03:02:02 -0800 (Wed, 27 Jan 2016) | 12 lines Fix linking with LLVM_LINK_LLVM_DYLIB=ON Linking with LLVM shared libraries currently produces linker errors. This works around the issue (pr24953) by disabling linking with llvm so for lldb libraries. Patch by Evangelos Foutras. Reviewers: zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16293 ``` --------------------------------------------------------------------- llvm-svn: 258964
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258916 | dsanders | 2016-01-27 01:28:01 -0800 (Wed, 27 Jan 2016) | 20 lines [compiler-rt] list_union() is actually an intersect operation. Rename it. Summary: Given: set(T1 a b c) set(T2 b c d) message("T1=${T1}") message("T2=${T2}") list_union(T3 T1 T2) message("T3=${T3}") cmake emitted: T1=a;b;c T2=b;c;d T3=b;c Reviewers: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16580 ``` --------------------------------------------------------------------- llvm-svn: 258963 -
Hans Wennborg authored
```--------------------------------------------------------------------- r258960 | hans | 2016-01-27 10:29:16 -0800 (Wed, 27 Jan 2016) | 1 line docs/conf.py: update copyright year ``` --------------------------------------------------------------------- llvm-svn: 258961
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258926 | alexfh | 2016-01-27 03:37:19 -0800 (Wed, 27 Jan 2016) | 7 lines [clang-tidy] Fix documentation. Fixed broken links to cppcoreguidelines (anchors specified in the .md file should be used, not automatic anchors generated by github). Fixed formatting, array_view -> span, fixed sphinx errors in misc-definitions-in-headers.rst. ``` --------------------------------------------------------------------- llvm-svn: 258959
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258924 | alexfh | 2016-01-27 03:37:08 -0800 (Wed, 27 Jan 2016) | 1 line Add clang-tools-extra documentation to the CMake build. ``` --------------------------------------------------------------------- llvm-svn: 258955
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258953 | hans | 2016-01-27 09:54:35 -0800 (Wed, 27 Jan 2016) | 1 line getting_started.rst: fix 'unknown target name' error ``` --------------------------------------------------------------------- llvm-svn: 258954
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258891 | hans | 2016-01-26 16:19:05 -0800 (Tue, 26 Jan 2016) | 25 lines test-release.sh: Ignore LC_CTYPE in sed invocation on Darwin Here, sed is used to prepare object files for comparison via cmp. On my Darwin 15.4.0 machine, LC_CTYPE is set to UTF-8 (by default, I believe). Under these circumstances, anything sed is made to read will be treated as UTF-8, prompting it to signal an error if it is not, like so: % sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $? sed: RE error: illegal byte sequence 1 % To make sed work as expected, I need to set LC_CTYPE to C: % env LC_CTYPE=C sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $? 0 % Without this change, sed will exit with an error for every single file that it compares between phase 2 and phase 3, thereby making it look as if the differences were far larger than they are. Patch by Elias Pipping! Differential Revision: http://reviews.llvm.org/D16548 ``` --------------------------------------------------------------------- llvm-svn: 258892
-
Hans Wennborg authored
```--------------------------------------------------------------------- r258403 | dsanders | 2016-01-21 07:35:15 -0800 (Thu, 21 Jan 2016) | 7 lines [libcxx] Add appropriate 'REQUIRE' directives to tests that require en_US.UTF-8. Reviewers: mclow.lists, hans Subscribers: bcraig, cfe-commits Differential Revision: http://reviews.llvm.org/D16406 ``` --------------------------------------------------------------------- llvm-svn: 258887
-
- 26 Jan, 2016 2 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r258386 | thomas.stellard | 2016-01-20 23:28:34 -0500 (Wed, 20 Jan 2016) | 14 lines AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute Summary: Currently the SI scheduler can be selected via command line option, but it turned out it would be better if it was selectable via a Target Attribute. This patch adds "si-scheduler" attribute to the backend. Reviewers: tstellarAMD, echristo Subscribers: echristo, arsenm Differential Revision: http://reviews.llvm.org/D16192 ``` --------------------------------------------------------------------- llvm-svn: 258885
-
Sanjoy Das authored
```--------------------------------------------------------------------- r258184 | sanjoy | 2016-01-19 12:53:51 -0800 (Tue, 19 Jan 2016) | 20 lines [SCEV] Fix PR26207 In some cases, the max backedge taken count can be more conservative than the exact backedge taken count (for instance, because ScalarEvolution::getRange is not control-flow sensitive whereas computeExitLimitFromICmp can be). In these cases, computeExitLimitFromCond (specifically the bit that deals with `and` and `or` instructions) can create an ExitLimit instance with a `SCEVCouldNotCompute` max backedge count expression, but a computable exact backedge count expression. This violates an implicit SCEV assumption: a computable exact BE count should imply a computable max BE count. This change - Makes the above implicit invariant explicit by adding an assert to ExitLimit's constructor - Changes `computeExitLimitFromCond` to be more robust around conservative max backedge counts ``` --------------------------------------------------------------------- llvm-svn: 258869
-