1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
Go to file
Chandler Carruth e0484f6b37 Initial CodeGen support for CTTZ/CTLZ where a zero input produces an
undefined result. This adds new ISD nodes for the new semantics,
selecting them when the LLVM intrinsic indicates that the undef behavior
is desired. The new nodes expand trivially to the old nodes, so targets
don't actually need to do anything to support these new nodes besides
indicating that they should be expanded. I've done this for all the
operand types that I could figure out for all the targets. Owners of
various targets, please review and let me know if any of these are
incorrect.

Note that the expand behavior is *conservatively correct*, and exactly
matches LLVM's current behavior with these operations. Ideally this
patch will not change behavior in any way. For example the regtest suite
finds the exact same instruction sequences coming out of the code
generator. That's why there are no new tests here -- all of this is
being exercised by the existing test suite.

Thanks to Duncan Sands for reviewing the various bits of this patch and
helping me get the wrinkles ironed out with expanding for each target.
Also thanks to Chris for clarifying through all the discussions that
this is indeed the approach he was looking for. That said, there are
likely still rough spots. Further review much appreciated.

llvm-svn: 146466
2011-12-13 01:56:10 +00:00
autoconf Hexagon backend support 2011-12-12 21:14:40 +00:00
bindings LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
cmake cmake: work with CMake < 2.8.5 2011-12-12 13:06:25 +00:00
docs Use the example from clang, not the GCC frontend, which doesn't exist anymore. 2011-12-13 01:07:07 +00:00
examples LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
include Initial CodeGen support for CTTZ/CTLZ where a zero input produces an 2011-12-13 01:56:10 +00:00
lib Initial CodeGen support for CTTZ/CTLZ where a zero input produces an 2011-12-13 01:56:10 +00:00
projects Hexagon backend support 2011-12-12 21:14:40 +00:00
runtime LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
test Don't rely on a particular version string for llvm. 2011-12-13 00:34:14 +00:00
tools LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
unittests Revert r146363 to allow buildbots to make forward progress. 2011-12-12 17:58:31 +00:00
utils llvm-build: Switch to using the common subdirectory list instead of 2011-12-12 22:45:59 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt Hexagon backend support 2011-12-12 21:14:40 +00:00
configure Hexagon backend support 2011-12-12 21:14:40 +00:00
CREDITS.TXT CREDITS.TXT: Add a line. (test commit) 2011-10-29 23:42:14 +00:00
LICENSE.TXT Happy new year. 2011-06-12 15:26:54 +00:00
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile llvm-config: Replace with C++ version (was llvm-config-2). 2011-12-01 20:18:09 +00:00
Makefile.common
Makefile.config.in Add an optional separate install prefix for internal components. rdar://10217046 2011-11-28 07:59:52 +00:00
Makefile.rules Add a deterministic finite automaton based packetizer for VLIW architectures 2011-12-01 21:10:21 +00:00
README.txt Undo test commit 2011-11-22 20:05:48 +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.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.