llvm/test
Benjamin Kramer 19ea37059a SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive.
We can't do this for the general case as saying a GEP with a negative index
doesn't have unsigned wrap isn't valid for negative indices.
  %gep = getelementptr inbounds i32* %p, i64 -1

But an inbounds GEP cannot run past the end of address space. So we check for
the very common case of a positive index and make GEPs derived from that NUW.
Together with Andy's recent non-unit stride work this lets us analyze loops
like

  void foo3(int *a, int *b) {
    for (; a < b; a++) {}
  }

PR12375, PR12376.

Differential Revision: http://llvm-reviews.chandlerc.com/D2033

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-28 07:30:06 +00:00
..
Analysis SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive. 2013-10-28 07:30:06 +00:00
Assembler Change objectsize intrinsic to accept different address spaces. 2013-10-07 18:06:48 +00:00
Bindings Fix check for supported targets in llvm-c lit.local.cfg 2013-10-23 08:47:52 +00:00
Bitcode
BugPoint
CodeGen Make first substantial checkin of my port of ARM constant islands code to Mips. 2013-10-27 21:57:36 +00:00
DebugInfo DebugInfo: Hash DW_FORM_GNU_str_index as a string. 2013-10-21 16:37:22 +00:00
ExecutionEngine MCJIT-remote: __main should be resolved in child context. 2013-10-27 10:22:52 +00:00
Feature
FileCheck Really fix CHECK-LABEL and CHECK-DAG interaction. This actually just restores the initial implementation that was in r186162 but got lost in some subsequent refactoring. More explicit variable names and comments are present now to hopefully prevent repeat regression, as well as another test. 2013-10-11 18:38:36 +00:00
Instrumentation fix PR17635: false positive with packed structures 2013-10-24 09:17:24 +00:00
Integer
JitListener
Linker
LTO Optimize more linkonce_odr values during LTO. 2013-10-21 17:14:55 +00:00
MC ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
Object Create an atom with just the data that failed to disassemble. 2013-10-16 19:03:14 +00:00
Other llvm/test/Other/close-stderr.ll: Remove "XFAIL:win32". It reverts r173509. 2013-10-26 02:50:14 +00:00
TableGen
tools [Mips] Teach llvm-readobj to print MIPS-specific ELF program headers. 2013-10-07 08:58:27 +00:00
Transforms Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
Unit
Verifier Add support for metadata representing .ident directives. 2013-10-16 01:49:05 +00:00
YAMLParser [Support][YAML] Add support for accessing tags and tag handle substitution. 2013-10-18 22:38:04 +00:00
CMakeLists.txt Add llvm-c-test to check-llvm. 2013-10-23 17:57:04 +00:00
lit.cfg llvm/test/lit.cfg: Tighten conditions to enable 'native'. 2013-10-26 02:50:20 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh