1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
Go to file
Chris Lattner e1a2489017 Generalize the previous xform to handle cases where exactly
two elements match or don't match with two comparisons.  For
example, the testcase compiles into:

define i1 @test5(i32 %X) {
  %1 = icmp eq i32 %X, 2                          ; <i1> [#uses=1]
  %2 = icmp eq i32 %X, 7                          ; <i1> [#uses=1]
  %R = or i1 %1, %2                               ; <i1> [#uses=1]
  ret i1 %R
}

This generalizes the previous xforms when the array is larger than
64 elements (and this case matches) and generates better code for
cases where it overlaps with the magic bitshift case.

This generalizes more cases than you might expect.  For example,
400.perlbmk has:

@PL_utf8skip = constant [256 x i8] c"\01\01\01\...
%15 = icmp ult i8 %7, 7

403.gcc has:
@rid_to_yy = internal constant [114 x i16] [i16 259, i16 260, ...
%18 = icmp eq i16 %16, 295 

and xalancbmk has a bunch of examples, such as 
_ZN11xercesc_2_5L15gCombiningCharsE and _ZN11xercesc_2_5L10gBaseCharsE.

llvm-svn: 92417
2010-01-02 09:35:17 +00:00
autoconf Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
bindings Fix another parallel make race condition. 2009-12-18 20:12:14 +00:00
cmake CMake: Update lib deps. 2009-12-19 21:27:30 +00:00
docs Regenerate. 2009-12-23 12:49:51 +00:00
examples fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier! 2009-12-01 01:56:27 +00:00
include teach instcombine to optimize pointer difference idioms involving constant 2010-01-01 22:29:12 +00:00
lib Generalize the previous xform to handle cases where exactly 2010-01-02 09:35:17 +00:00
projects Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test Generalize the previous xform to handle cases where exactly 2010-01-02 09:35:17 +00:00
tools Forward -O0 to llvm-gcc. 2010-01-02 08:27:23 +00:00
unittests Silence compiler warning. 2009-12-31 16:27:13 +00:00
utils Typo. 2010-01-01 04:40:54 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
Xcode Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt Don't default warnings to ON on MSVC, the spew is enough to triple the build time. :/ 2009-12-01 19:11:36 +00:00
configure Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT Add regular expression matching support, based on OpenBSD regexec()/regcomp() 2009-08-30 08:24:09 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile Update install-clang target for clang-cc removal. 2009-12-12 21:17:54 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
Makefile.rules Add the rest of the build system logic for optional target disassemblers 2009-11-25 04:46:58 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt First test commit 2009-10-05 22:29:11 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.